Inhoudsopgave:

Blender gebruiken om Java3D-modellen te maken: 3 stappen
Blender gebruiken om Java3D-modellen te maken: 3 stappen

Video: Blender gebruiken om Java3D-modellen te maken: 3 stappen

Video: Blender gebruiken om Java3D-modellen te maken: 3 stappen
Video: 3D HUIS TEKENEN - Blender #1 - Blender-Lessen.nl 2024, Juni-
Anonim
Blender gebruiken om Java3D-modellen te maken
Blender gebruiken om Java3D-modellen te maken

Als je een Java-programmeur bent, heb je waarschijnlijk ooit in 3D willen programmeren. Maar hoe? Nou, je zou Java3D kunnen gebruiken en langzaam elk punt in een 3D-polygoon kunnen typen (geprobeerd dat het een slecht idee is), of je zou Blender (https://blender.org) kunnen gebruiken, een gratis en open source 3D-modelleringsprogramma samen met een script genaamd Blend2Java (https://sourceforge.net/projects/blend2java/). De documentatie over Blend2Java is echter bijna onbestaande, dus daarom zit ik hier dit te schrijven.

Stap 1: Download de programma's

Je hebt Blender (https://blender.org) en Blend2Java (https://sourceforge.net/projects/blend2java/) nodig. Oké, als je ze allebei hebt, begin dan met het maken van een eenvoudig model (of gebruik gewoon de standaard kubus) in Blender.

Stap 2: Exporteer uw model naar XML

Exporteer uw model naar XML
Exporteer uw model naar XML

Zodra je een model hebt dat je in Blender wilt gebruiken, open je de bewerkingsmodus en druk je op de "a"-toets om alle punten te selecteren. Selecteer in het onderste paneel teksteditor. Open een nieuw bestand in de teksteditor. Open het blend2java.py-bestand dat u hebt gedownload. Run. Ok, je object zou nu in. XML moeten staan waar je het ook hebt opgeslagen (als je een foutmelding hebt, zorg er dan voor dat je maar 1 materiaal voor het object hebt). Hernoem het object (het zal een rare naam hebben).

Stap 3: Importeer het object naar Java

Importeer het object naar Java
Importeer het object naar Java

Shape3D fred = null; probeer { XMLDecoder e = nieuwe XMLDecoder (nieuwe BufferedInputStream (nieuwe FileInputStream ("c:/HandShape3D.xml"))); //uw bestandsnaam hier fred = (Shape3D) e.readObject(); e.sluiten(); } catch(Uitzondering e) { e.printStackTrace(); } ColoringAttributes at=new ColoringAttributes(); Uiterlijk ap = nieuw Uiterlijk(); Color3f col = nieuwe Color3f(1.0f, 0.0f, 1.0f); ColoringAttributes ca = nieuwe ColoringAttributes(col, ColoringAttributes. NICEST); ap.setColoringAttributes(ca); fred.setAppearance(ap); obj.addChild(fred);voeg dit in een 3D-code in of gebruik de hele code hier 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;java.awt. BorderLayout importeren;java.awt. Frame importeren;com.sun.j3d.utils.applet. MainFrame importeren;com.sun.j3d.utils.geometry. ColorCube importeren;com.sun importeren. 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 breidt Applet uit {public BranchGroup createSceneGraph() { BranchGroup objRoot = new BranchGroup(); TransformGroup objTransform = nieuwe TransformGroup(); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild(objTransform); Shape3D fred = null; probeer { XMLDecoder e = nieuwe XMLDecoder (nieuwe BufferedInputStream (nieuwe FileInputStream ("c:/HandShape3D.xml"))); fred = (Shape3D) e.readObject(); e.sluiten(); } catch(Uitzondering e) { e.printStackTrace(); } ColoringAttributes at=new ColoringAttributes(); Uiterlijk ap = nieuw Uiterlijk(); Color3f col = nieuwe Color3f(1.0f, 0.0f, 1.0f); ColoringAttributes ca = nieuwe ColoringAttributes(col, ColoringAttributes. NICEST); ap.setColoringAttributes(ca); fred.setAppearance(ap); objTransform.addChild(fred); MouseRotate myMouseRotate = nieuwe MouseRotate(); myMouseRotate.setTransformGroup(objTransform); myMouseRotate.setSchedulingBounds (nieuwe BoundingSphere()); objRoot.addChild(myMouseRotate); MouseTranslate myMouseTranslate = nieuwe MouseTranslate(); myMouseTranslate.setTransformGroup(objTransform); myMouseTranslate.setSchedulingBounds (nieuwe BoundingSphere()); objRoot.addChild(myMouseTranslate); MouseZoom myMouseZoom = nieuwe MouseZoom(); myMouseZoom.setTransformGroup(objTransform); myMouseZoom.setSchedulingBounds (nieuwe BoundingSphere()); objRoot.addChild(myMouseZoom); objRoot.compile(); retourneert objRoot; } public MouseBehaviorApp() { setLayout(new BorderLayout()); Canvas3D canvas3D = nieuw Canvas3D(SimpleUniverse.getPreferredConfiguration()); add("Midden", canvas3D); BranchGroup scene = createSceneGraph(); SimpleUniverse simpleU = nieuw SimpleUniverse(canvas3D); simpleU.getViewingPlatform().setNominalViewingTransform(); simpleU.addBranchGraph(scène); } public static void main (String args) { Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }}gebruik dit voor een compleet programma! je bent klaar! en dan zeg je "wat nu"? Ik heb geen idee! Ik heb net een maand Java geleerd lol!

Aanbevolen: