Satura rādītājs:

Blendera izmantošana Java3D modeļu izveidošanai: 3 soļi
Blendera izmantošana Java3D modeļu izveidošanai: 3 soļi

Video: Blendera izmantošana Java3D modeļu izveidošanai: 3 soļi

Video: Blendera izmantošana Java3D modeļu izveidošanai: 3 soļi
Video: Digitālā centra pulciņu informācijas pēcpusdiena 2024, Jūnijs
Anonim
Blendera izmantošana Java3D modeļu izveidošanai
Blendera izmantošana Java3D modeļu izveidošanai

Ja esat Java programmētājs, jūs, iespējams, kādā brīdī vēlējāties programmēt 3D formātā. Bet kā? Jūs varētu izmantot Java3D un lēnām ierakstīt katru punktu 3D daudzstūrī (mēģiniet, ticiet man, tā ir slikta ideja), vai arī izmantot bezmaksas un atvērtā pirmkoda 3D modelēšanas programmu Blender (https://blender.org). skripts ar nosaukumu Blend2Java (https://sourceforge.net/projects/blend2java/). Tomēr Blend2Java dokumentācijas gandrīz nav, tāpēc es šeit sēžu un rakstu.

1. darbība: lejupielādējiet programmas

Jums būs nepieciešams Blender (https://blender.org) un Blend2Java (https://sourceforge.net/projects/blend2java/). Labi, tad, kad esat tos abus sāciet, izveidojot vienkāršu modeli (vai vienkārši izmantojot standarta kubu) Blenderī.

2. darbība. Eksportējiet savu modeli uz XML

Eksportējiet savu modeli uz XML
Eksportējiet savu modeli uz XML

Kad esat izveidojis modeli, kuru vēlaties izmantot Blender, atveriet rediģēšanas režīmu un nospiediet taustiņu "a", lai atlasītu visus punktus. Apakšējā panelī atlasiet teksta redaktoru. Atveriet jaunu failu teksta redaktorā. Atveriet lejupielādēto failu blend2java.py. Palaidiet. Ok, jūsu objektam tagad jābūt. XML formātā, kur vien to saglabājāt (ja jums ir un kļūdas ziņojums padara shure, jums ir tikai viens materiāls objektam). Pārdēvējiet objektu (tam būs dīvains nosaukums).

3. darbība: importējiet objektu Java

Importējiet objektu uz Java
Importējiet objektu uz Java

Shape3D fred = null; mēģiniet {XMLDecoder e = jauns XMLDecoder (jauns BufferedInputStream (jauns FileInputStream ("c: /HandShape3D.xml"))); // jūsu faila nosaukums šeit fred = (Shape3D) e.readObject (); e. aizvērt (); } catch (Izņēmums e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Izskats ap = jauns Izskats (); Color3f col = jauns Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); ievietojiet šo jebkurā 3D kodā vai izmantojiet visu kodu šeit importēt java.io.*; importēt java.beans. XMLDecoder; importēt java.applet. Applet; importēt java.awt.*; importēt java. awt.event.*; importēt com.sun.j3d.utils.applet. MainFrame; importēt com.sun.j3d.utils.universe.*; importēt javax.media.j3d.*; importēt javax.vecmath.*; importēt java.applet. Applet; importēt java.awt. BorderLayout; importēt java.awt. Frame; importēt com.sun.j3d.utils.applet. MainFrame; importēt com.sun.j3d.utils.geometry. ColorCube; importēt com.sun. j3d.utils.universe.*; importēt com.sun.j3d.utils.behaviors.mouse.*; importēt javax.media.j3d.*; importēt javax.vecmath.*; importēt java.awt.event.*; importēt java.util. Enumeration; public class MouseBehaviorApp paplašina sīklietotni {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; mēģiniet {XMLDecoder e = jauns XMLDecoder (jauns BufferedInputStream (jauns FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e. aizvērt (); } catch (Izņēmums e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Izskats ap = jauns Izskats (); Color3f col = jauns 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 = jauns MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (new BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = jauns MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (new BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = jauns MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (new BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); atgriezties objRoot; } public MouseBehaviorApp () {setLayout (new BorderLayout ()); Canvas3D canvas3D = jauns Canvas3D (SimpleUniverse.getPreferredConfiguration ()); add ("Centrs", canvas3D); Nozares grupas aina = createSceneGraph (); SimpleUniverse simpleU = jauns SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (aina); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} izmantojiet to pilnīgai programmai! jūs esat pabeidzis! un tad jūs sakāt "tagad ko"? Man nav ne jausmas! Es tikko iemācījos Java pirms mēneša lol!

Ieteicams: