Obsah:

Použití Blenderu k vytváření modelů Java3D: 3 kroky
Použití Blenderu k vytváření modelů Java3D: 3 kroky

Video: Použití Blenderu k vytváření modelů Java3D: 3 kroky

Video: Použití Blenderu k vytváření modelů Java3D: 3 kroky
Video: Blender | Tutoriál pro začátečníky 2024, Červen
Anonim
Použití Blenderu k vytváření modelů Java3D
Použití Blenderu k vytváření modelů Java3D

Pokud jste programátorem Java, pravděpodobně jste někdy chtěli programovat ve 3D. Ale jak? Můžete použít Java3D a pomalu psát každý bod do 3D polygonu (zkuste to, věřte mi, že je to špatný nápad), nebo můžete použít Blender (https://blender.org) bezplatný a otevřený zdrojový 3D modelovací program spolu s skript s názvem Blend2Java (https://sourceforge.net/projects/blend2java/). Dokumentace k Blend2Java je však téměř neexistující, a proto tu sedím a píšu to.

Krok 1: Stáhněte si programy

Budete potřebovat Blender (https://blender.org) a Blend2Java (https://sourceforge.net/projects/blend2java/). Dobře, jakmile je budete mít oba, začněte vytvořením jednoduchého modelu (nebo jen pomocí standardní kostky) v Blenderu.

Krok 2: Exportujte svůj model do XML

Exportujte svůj model do XML
Exportujte svůj model do XML

Jakmile máte model, který byste chtěli použít v Blenderu, otevřete režim úprav a stisknutím tlačítka „a“vyberte všechny body. V dolním panelu vyberte textový editor. Otevřete nový soubor v textovém editoru. Otevřete stažený soubor blend2java.py. Run. Ok váš objekt by nyní měl být v. XML, kamkoli jste jej uložili (pokud máte a chybové hlášení make shure, máte k objektu pouze 1 materiál). Přejmenujte objekt (bude mít divný název).

Krok 3: Importujte objekt do Javy

Importujte objekt do Javy
Importujte objekt do Javy

Shape3D fred = null; zkusit {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); // název vašeho souboru zde fred = (Shape3D) e.readObject (); e.close (); } catch (Výjimka e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Vzhled ap = nový Vzhled (); Color3f col = nový Color3f (1,0f, 0,0f, 1,0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); vložte to do libovolného 3D kódu nebo zde použijte celý kód import java.io.*; import java.beans. XMLDecoder; import java.applet. Applet; import java.awt.*; import java. awt.event.*; import com.sun.j3d.utils.applet. MainFrame; import com.sun.j3d.utils.universe.*; import javax.media.j3d.*; import javax.vecmath.*; import java.applet. Applet; import java.awt. BorderLayout; import java.awt. Frame; import com.sun.j3d.utils.applet. MainFrame; import com.sun.j3d.utils.geometry. ColorCube; import com.sun. j3d.utils.universe.*; import com.sun.j3d.utils.behaviors.mouse.*; import javax.media.j3d.*; import javax.vecmath.*; import java.awt.event.*; import java.util. Enumeration; veřejná třída MouseBehaviorApp rozšiřuje Applet {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = new TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Shape3D fred = null; zkusit {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.close (); } catch (Výjimka e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Vzhled ap = nový Vzhled (); Color3f col = nový 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 = new MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (nový BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = nový MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (new BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = nový MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (nový BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); vrátit objRoot; } public MouseBehaviorApp () {setLayout (new BorderLayout ()); Canvas3D canvas3D = nový Canvas3D (SimpleUniverse.getPreferredConfiguration ()); přidat ("Střed", canvas3D); Scéna BranchGroup = createSceneGraph (); SimpleUniverse simpleU = nové SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (scéna); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} použijte to pro úplnou programovou tadu! jste hotovi! a pak řeknete „co teď?“Nemám tušení! Právě jsem se naučil Javu před měsícem lol!

Doporučuje: