Tartalomjegyzék:

A Blender használata Java3D modellek létrehozásához: 3 lépés
A Blender használata Java3D modellek létrehozásához: 3 lépés

Videó: A Blender használata Java3D modellek létrehozásához: 3 lépés

Videó: A Blender használata Java3D modellek létrehozásához: 3 lépés
Videó: Zero to Hero ControlNet Tutorial: Stable Diffusion Web UI Extension | Complete Feature Guide 2024, November
Anonim
A Blender használata Java3D modellek létrehozásához
A Blender használata Java3D modellek létrehozásához

Ha Java programozó vagy, akkor valószínűleg 3D -ben akartál programozni. De hogyan? Nos, használhatod a Java3D -t, és lassan beírhatod a 3D sokszög minden pontját (próbáld ki, bízz bennem, hogy rossz ötlet), vagy használhatod a Blendert (https://blender.org) egy ingyenes és nyílt forráskódú 3D -s modellező programmal együtt a Blend2Java nevű szkript (https://sourceforge.net/projects/blend2java/). A Blend2Java dokumentációja azonban szinte nem létezik, ezért ülök itt és írom ezt.

Lépés: Töltse le a programokat

Szüksége lesz a Blenderre (https://blender.org) és a Blend2Java -ra (https://sourceforge.net/projects/blend2java/). Ok, ha már mindketten megvannak, akkor kezdjen egy egyszerű modell elkészítésével (vagy csak a szabványos kocka használatával) a Blenderben.

2. lépés: Exportálja modelljét XML formátumba

Modell exportálása XML -be
Modell exportálása XML -be

Ha van egy modellje, amelyet a Blenderben szeretne használni, nyissa meg a Szerkesztés módot, és nyomja meg az "a" gombot az összes pont kiválasztásához. Az alsó panelen válassza ki a szövegszerkesztőt. Nyisson meg egy új fájlt a szövegszerkesztőben. Nyissa meg a letöltött blend2java.py fájlt. Futtassa. Ok. Az objektumnak most. XML formátumban kell lennie, bárhová is mentette (ha van, és a hibaüzenet a shure szerint csak 1 anyagot tartalmaz az objektumhoz). Nevezze át az objektumot (furcsa neve lesz).

3. lépés: Importálja az objektumot Java -ba

Importálja az objektumot a Java -ra
Importálja az objektumot a Java -ra

Alak3D fred = null; try {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); // fájlneved itt fred = (Shape3D) e.readObject (); e.zár (); } fogás (kivétel e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Megjelenés ap = új Megjelenés (); Color3f col = új Color3f (1,0f, 0,0f, 1,0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); illessze be ezt bármelyik 3D kódba, vagy használja a teljes kódot itt: 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; public class MouseBehaviorApp kiterjeszti az Applet {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = új TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Alak3D fred = null; try {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.zár (); } fogás (kivétel e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Megjelenés ap = új Megjelenés (); Color3f col = új 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 = új MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (új BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = új MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (új BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = új MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (új BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); return objRoot; } public MouseBehaviorApp () {setLayout (new BorderLayout ()); Canvas3D canvas3D = új Canvas3D (SimpleUniverse.getPreferredConfiguration ()); add ("Közép", canvas3D); BranchGroup scene = createSceneGraph (); SimpleUniverse simpleU = új SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (jelenet); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} használja ezt a teljes programozáshoz! végeztél! és akkor azt mondod "most mi"? Fogalmam sincs! Egy hónapja tanultam meg a Java -t lol!

Ajánlott: