Obsah:

Použitie programu Blender na vytváranie modelov Java3D: 3 kroky
Použitie programu Blender na vytváranie modelov Java3D: 3 kroky

Video: Použitie programu Blender na vytváranie modelov Java3D: 3 kroky

Video: Použitie programu Blender na vytváranie modelov Java3D: 3 kroky
Video: Transform Your Sketches into Masterpieces with Stable Diffusion ControlNet AI - How To Use Tutorial 2024, November
Anonim
Použitie programu Blender na vytváranie modelov Java3D
Použitie programu Blender na vytváranie modelov Java3D

Ak ste programátorom Java, pravdepodobne ste niekedy chceli programovať v 3D. Ale ako? Môžete použiť Java3D a pomaly vpísať každý bod do 3D polygónu (vyskúšajte mi, verte mi, že je to zlý nápad), alebo môžete použiť Blender (https://blender.org) bezplatný a otvorený zdrojový program 3D modelovania spolu s skript s názvom Blend2Java (https://sourceforge.net/projects/blend2java/). Dokumentácia k Blend2Java je však takmer neexistujúca, a preto tu sedím a píšem.

Krok 1: Stiahnite si programy

Budete potrebovať Blender (https://blender.org) a Blend2Java (https://sourceforge.net/projects/blend2java/). Ok, potom keď ich budete mať obaja, začnite tým, že v Blenderi vytvoríte jednoduchý model (alebo len použijete štandardnú kocku).

Krok 2: Exportujte svoj model do formátu XML

Exportujte svoj model do formátu XML
Exportujte svoj model do formátu XML

Akonáhle budete mať model, ktorý by ste chceli použiť v Blenderi, otvorte režim úprav a stlačením klávesu „a“vyberte všetky body. V dolnom paneli vyberte textový editor. Otvorte nový súbor v textovom editore. Otvorte súbor blend2java.py, ktorý ste stiahli. Spustiť. Ok, váš objekt by teraz mal byť v. XML, kdekoľvek ste ho uložili (ak máte a chybové hlásenie uistite sa, že pre objekt máte iba 1 materiál). Premenujte objekt (bude mať divný názov).

Krok 3: Importujte objekt do Javy

Importujte objekt do Javy
Importujte objekt do Javy

Shape3D fred = null; skúste {XMLDecoder e = nový XMLDecoder (nový BufferedInputStream (nový FileInputStream ("c: /HandShape3D.xml"))); // názov vášho súboru tu fred = (Shape3D) e.readObject (); e.close (); } catch (Výnimka e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Vzhľad ap = nový Vzhľad (); 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 ho do akéhokoľvek 3d kódu alebo tu použite 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; verejná trieda MouseBehaviorApp rozširuje 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; skúste {XMLDecoder e = nový XMLDecoder (nový BufferedInputStream (nový FileInputStream ("c: /HandShape3D.xml")))); fred = (Shape3D) e.readObject (); e.close (); } catch (Výnimka e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Vzhľad ap = nový Vzhľad (); 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 (nový BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = nový MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (nový BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); vrátiť objRoot; } public MouseBehaviorApp () {setLayout (new BorderLayout ()); Canvas3D canvas3D = nové Canvas3D (SimpleUniverse.getPreferredConfiguration ()); add ("Center", canvas3D); BranchGroup scene = 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žite to na úplnú programovú mapu! ste hotoví! a potom poviete „teraz čo“? Nemám potuchy! Java som sa naučil pred mesiacom lol!

Odporúča: