Indholdsfortegnelse:

Brug af Blender til at oprette Java3D -modeller: 3 trin
Brug af Blender til at oprette Java3D -modeller: 3 trin

Video: Brug af Blender til at oprette Java3D -modeller: 3 trin

Video: Brug af Blender til at oprette Java3D -modeller: 3 trin
Video: Wilfa BL-1200 blender - knuser is og laver smoothie 2024, Juni
Anonim
Brug af Blender til at oprette Java3D -modeller
Brug af Blender til at oprette Java3D -modeller

Hvis du er en Java -programmør, har du sandsynligvis på et tidspunkt ønsket at programmere i 3D. Men hvordan? Du kunne godt bruge Java3D og langsomt skrive hvert punkt i en 3D -polygon (prøvede det, tro mig det er en dårlig idé), eller du kan bruge Blender (https://blender.org) et gratis og open source 3D -modelleringsprogram sammen med et script kaldet Blend2Java (https://sourceforge.net/projects/blend2java/). Dokumentationen om Blend2Java er dog næsten ikke -eksisterende, så derfor sidder jeg her og skriver dette.

Trin 1: Download programmerne

Du skal bruge Blender (https://blender.org) og Blend2Java (https://sourceforge.net/projects/blend2java/). Ok, når du først har dem begge, starter du med at lave en simpel model (eller bare ved hjælp af standardterningen) i Blender.

Trin 2: Eksporter din model til XML

Eksporter din model til XML
Eksporter din model til XML

Når du har en model, du gerne vil bruge i Blender, skal du åbne redigeringstilstand og trykke på "a" -tasten for at vælge alle punkter. Vælg teksteditor i bundpanelet. Åbn en ny fil i teksteditoren. Åbn blend2java.py -filen, som du downloadede. Run. Ok dit objekt skal nu være i. XML, uanset hvor du gemte det (hvis du har og fejlmeddelelse gør shure du kun har 1 materiale til objektet). Omdøb objektet (det vil have et underligt navn).

Trin 3: Importer objektet til Java

Importer objektet til Java
Importer objektet til Java

Shape3D fred = null; prøv {XMLDecoder e = ny XMLDecoder (ny BufferedInputStream (ny FileInputStream ("c: /HandShape3D.xml"))); // dit filnavn her fred = (Shape3D) e.readObject (); e.close (); } fangst (Undtagelse e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Udseende ap = nyt Udseende (); Color3f col = ny Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); indsæt dette i en hvilken som helst 3d -kode eller brug hele koden her 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 udvider Applet {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = ny TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Shape3D fred = null; prøv {XMLDecoder e = ny XMLDecoder (ny BufferedInputStream (ny FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.close (); } fangst (Undtagelse e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Udseende ap = nyt Udseende (); Color3f col = ny 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 = ny MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (ny BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = ny MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (ny BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = ny MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (ny BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); returner objRoot; } offentlig MouseBehaviorApp () {setLayout (ny BorderLayout ()); Canvas3D canvas3D = nyt Canvas3D (SimpleUniverse.getPreferredConfiguration ()); tilføj ("Center", canvas3D); BranchGroup scene = createSceneGraph (); SimpleUniverse simpleU = nyt SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (scene); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} brug dette til en komplet programtada! du er færdig! og så siger du "hvad nu"? jeg aner ikke! Jeg lærte lige Java for en måned siden lol!

Anbefalede: