INHOUDSOPGAWE:

Gebruik Blender om Java3D -modelle te skep: 3 stappe
Gebruik Blender om Java3D -modelle te skep: 3 stappe

Video: Gebruik Blender om Java3D -modelle te skep: 3 stappe

Video: Gebruik Blender om Java3D -modelle te skep: 3 stappe
Video: Раскрываю секрет вкусного шашлыка от А до Я. Шашлык из баранины 2024, Junie
Anonim
Gebruik Blender om Java3D -modelle te skep
Gebruik Blender om Java3D -modelle te skep

As u 'n Java -programmeerder is, wou u waarskynlik op 'n stadium in 3D programmeer. Maar hoe? U kan Java3D gebruik en elke punt stadig in 'n 3D -veelhoek invoer (probeer my, dit is 'n slegte idee), of u kan Blender (https://blender.org) 'n gratis en open source 3D -modelleringsprogram saam met 'n skrif genaamd Blend2Java (https://sourceforge.net/projects/blend2java/). Die dokumentasie oor Blend2Java bestaan egter amper nie, daarom sit ek hier en skryf dit.

Stap 1: Laai die programme af

U benodig Blender (https://blender.org) en Blend2Java (https://sourceforge.net/projects/blend2java/). As u hulle eers begin, begin u met 'n eenvoudige model (of net met die standaardblokkie) in Blender.

Stap 2: Voer u model uit na XML

Voer u model uit na XML
Voer u model uit na XML

Sodra u 'n model het wat u in die blender in die wysigingsmodus wil gebruik, druk die "a" -knoppie om alle punte te kies. Kies teksredigeerder in die onderste paneel. Maak 'n nuwe lêer in die teksredigeerder oop. Maak die blend2java.py -lêer oop wat u afgelaai het. Run. Ok, u voorwerp moet nou in. XML wees, waar u dit ook al gestoor het (as u 'n foutboodskap het, maak seker dat u slegs 1 materiaal vir die voorwerp het). Hernoem die voorwerp (dit sal 'n vreemde naam hê).

Stap 3: Voer die voorwerp in na Java

Voer die voorwerp in na Java
Voer die voorwerp in na Java

Shape3D fred = null; probeer {XMLDecoder e = nuwe XMLDecoder (nuwe BufferedInputStream (nuwe FileInputStream ("c: /HandShape3D.xml"))); // u lêernaam hier fred = (Shape3D) e.readObject (); e.close (); } vang (uitsondering e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Voorkoms ap = nuwe Voorkoms (); Color3f col = nuwe Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); plaas dit in enige 3D -kode of gebruik die hele kode hier invoer 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; openbare klas MouseBehaviorApp brei Applet {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup () uit; TransformGroup objTransform = nuwe TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Shape3D fred = null; probeer {XMLDecoder e = nuwe XMLDecoder (nuwe BufferedInputStream (nuwe FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.close (); } vang (uitsondering e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Voorkoms ap = nuwe Voorkoms (); Color3f col = nuwe 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 = nuwe MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (nuwe BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = nuwe MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (nuwe BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = nuwe MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (nuwe BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); terugkeer objRoot; } openbare MouseBehaviorApp () {setLayout (nuwe BorderLayout ()); Canvas3D canvas3D = nuwe Canvas3D (SimpleUniverse.getPreferredConfiguration ()); add ("Sentrum", canvas3D); BranchGroup -toneel = createSceneGraph (); SimpleUniverse simpleU = nuwe SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (toneel); } openbare statiese leemte hoof (String args) {Frame frame = nuwe MainFrame (nuwe MouseBehaviorApp (), 256, 256); }} gebruik dit vir 'n volledige program! jy is klaar! en dan sê jy "nou wat"? Ek het geen idee nie! Ek het pas 'n maand gelede Java geleer lol!

Aanbeveel: