Sisukord:

Blenderi kasutamine Java3D mudelite loomiseks: 3 sammu
Blenderi kasutamine Java3D mudelite loomiseks: 3 sammu

Video: Blenderi kasutamine Java3D mudelite loomiseks: 3 sammu

Video: Blenderi kasutamine Java3D mudelite loomiseks: 3 sammu
Video: TUDev's Tech Talk! Procedural Generation Presentation by William Power 2024, November
Anonim
Blenderi kasutamine Java3D mudelite loomiseks
Blenderi kasutamine Java3D mudelite loomiseks

Kui olete Java programmeerija, olete ilmselt tahtnud mingil hetkel programmeerida 3D -vormingus. Aga kuidas? Võite kasutada Java3D -d ja sisestada aeglaselt 3D -hulknurga iga punkti (proovige seda, uskuge mind, et see on halb mõte) või kasutada tasuta ja avatud lähtekoodiga 3D -modelleerimisprogrammi Blender (https://blender.org). skripti nimega Blend2Java (https://sourceforge.net/projects/blend2java/). Kuid Blend2Java dokumentatsioon on peaaegu olematu, seega istun siin seda kirjutades.

Samm: laadige programmid alla

Te vajate Blenderit (https://blender.org) ja Blend2Java (https://sourceforge.net/projects/blend2java/). Ok, kui olete need mõlemad alustanud, tehke Blenderis lihtne mudel (või kasutage lihtsalt tavalist kuubikut).

Samm: eksportige oma mudel XML -i

Ekspordi oma mudel XML -i
Ekspordi oma mudel XML -i

Kui olete mudeli, mida soovite Blenderis kasutada, avage redigeerimisrežiim ja vajutage kõigi punktide valimiseks klahvi "a". Valige alumisel paneelil tekstiredaktor. Avage tekstiredaktoris uus fail. Avage allalaaditud fail blend2java.py. Käivita. Ok, teie objekt peaks nüüd olema. XML -vormingus kõikjal, kuhu see salvestati (kui teil on see ja veateade teeb shure, on teil objekti jaoks ainult 1 materjal). Nimetage objekt ümber (sellel on imelik nimi).

Samm: importige objekt Java -sse

Importige objekt Java -sse
Importige objekt Java -sse

Kuju3D fred = null; proovige {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); // sinu failinimi siin fred = (Shape3D) e.readObject (); e.sulge (); } saak (Erand e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Välimus ap = uus Välimus (); Color3f col = uus Color3f (1,0f, 0,0f, 1,0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); sisestage see mis tahes 3D -koodi või kasutage siin kogu koodi 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; avalik klass MouseBehaviorApp laiendab apletti {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = uus TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Kuju3D fred = null; proovige {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.sulge (); } saak (Erand e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Välimus ap = uus Välimus (); Color3f col = uus 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 = uus MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (uus BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = uus MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (uus BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = uus MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (uus BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); return objRoot; } public MouseBehaviorApp () {setLayout (new BorderLayout ()); Canvas3D canvas3D = uus Canvas3D (SimpleUniverse.getPreferredConfiguration ()); add ("Center", canvas3D); BranchGroup stseen = createSceneGraph (); SimpleUniverse simpleU = uus SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (stseen); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} kasutage seda täieliku programmi jaoks! olete valmis! ja siis ütlete "mis nüüd"? Mul pole aimugi! Õppisin just Java keelt kuu aega tagasi, lol!

Soovitan: