Mündəricat:

Java3D Modelləri Yaratmaq üçün Blenderdən istifadə: 3 addım
Java3D Modelləri Yaratmaq üçün Blenderdən istifadə: 3 addım

Video: Java3D Modelləri Yaratmaq üçün Blenderdən istifadə: 3 addım

Video: Java3D Modelləri Yaratmaq üçün Blenderdən istifadə: 3 addım
Video: OYUN YAPMAK İÇİN GEREKEN PROGRAMLAR! 2024, Noyabr
Anonim
Java3D Modelləri Yaratmaq üçün Blenderdən istifadə
Java3D Modelləri Yaratmaq üçün Blenderdən istifadə

Java proqramçısı olsanız, ehtimal ki, bir anda 3D -də proqramlaşdırmaq istəyərdiniz. Amma necə? Java3D -dən istifadə edə və hər nöqtəni yavaş -yavaş 3D çoxbucaqlı olaraq yaza bilərsiniz (mənə pis bir fikir olduğuna inandırmağa çalışdım) və ya Blender -dən (https://blender.org) pulsuz və açıq mənbə 3D modelləşdirmə proqramından istifadə edə bilərsiniz. Blend2Java adlı bir skript (https://sourceforge.net/projects/blend2java/). Ancaq Blend2Java'dakı sənədlər demək olar ki, yoxdur, buna görə də burada yazıb burada yazıram.

Addım 1: Proqramları yükləyin

Blenderə (https://blender.org) və Blend2Javaya (https://sourceforge.net/projects/blend2java/) ehtiyacınız olacaq. Yaxşı, hər ikisi də Blender -də sadə bir model (və ya sadəcə standart kubdan istifadə edərək) işə saldıqdan sonra.

Addım 2: Modelinizi XML -ə ixrac edin

Modelinizi XML -ə ixrac edin
Modelinizi XML -ə ixrac edin

Bir model əldə etdikdən sonra Blender -dən istifadə edərək Redaktə Edin və bütün nöqtələri seçmək üçün "a" düyməsini basın. Alt paneldə mətn redaktoru seçin. Mətn redaktorunda yeni bir fayl açın. Yüklədiyiniz blend2java.py faylını açın. Run. Ok obyektiniz indi onu saxladığınız yerdə. XML -də olmalıdır (əgər sizdə və səhv mesajı varsa, obyekt üçün yalnız 1 materialınız olduğuna əmin olun). Obyektin adını dəyişdirin (qəribə bir ad alacaq).

Addım 3: Obyekti Java -ya idxal edin

Obyekti Java -ya idxal edin
Obyekti Java -ya idxal edin

Shape3D fred = null; cəhd edin {XMLDecoder e = yeni XMLDecoder (yeni BufferedInputStream (yeni FileInputStream ("c: /HandShape3D.xml")))); // burada fayl adınız fred = (Shape3D) e.readObject (); e.close (); } tutmaq (İstisna e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Görünüş ap = yeni Görünüş (); Color3f col = yeni Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); bunu hər hansı bir 3d koduna daxil edin və ya bütün kodu buradan istifadə edin java.io idxal edin.*; idxal java.beans. XMLDecoder; idxal java.applet. Applet; idxal java.awt.*; awt.event.*; idxal com.sun.j3d.utils.applet. MainFrame; idxal com.sun.j3d.utils.universe.*; idxal javax.media.j3d.*; idxal javax.vecmath.*; idxal java.applet. Applet; idxal java.awt. BorderLayout; idxal java.awt. Frame; idxal com.sun.j3d.utils.applet. MainFrame; idxal com.sun.j3d.utils.geometry. ColorCube; idxal com.sun. j3d.utils.universe.*; idxal com.sun.j3d.utils.behaviors.mouse.*; idxal javax.media.j3d.*; idxal javax.vecmath.*; idxal java.awt.event.*; idxal java.util. Enumeration; ictimai sinif MouseBehaviorApp Applet {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = yeni TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Shape3D fred = null; cəhd edin {XMLDecoder e = yeni XMLDecoder (yeni BufferedInputStream (yeni FileInputStream ("c: /HandShape3D.xml")))); fred = (Shape3D) e.readObject (); e.close (); } tutmaq (İstisna e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Görünüş ap = yeni Görünüş (); Color3f col = yeni Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); objTransform.addChild (fred); MouseRotate myMouseRotate = yeni MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (yeni BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = yeni MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (yeni BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = yeni MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (yeni BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); qaytar objRoot; } ümumi MouseBehaviorApp () {setLayout (yeni BorderLayout ()); Canvas3D canvas3D = yeni Canvas3D (SimpleUniverse.getPreferredConfiguration ()); əlavə et ("Mərkəz", canvas3D); BranchGroup səhnəsi = createSceneGraph (); SimpleUniverse simpleU = yeni SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (səhnə); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} tam bir proqram üçün istifadə edin! bitirdin! sonra da "indi nə" deyirsən? Heç bir fikrim yoxdur! Bir ay əvvəl Java öyrəndim, lol!

Tövsiyə: