Sommario:

Utilizzo di Blender per creare modelli Java3D: 3 passaggi
Utilizzo di Blender per creare modelli Java3D: 3 passaggi

Video: Utilizzo di Blender per creare modelli Java3D: 3 passaggi

Video: Utilizzo di Blender per creare modelli Java3D: 3 passaggi
Video: Come creare un gioco da zero! #1🎮 2024, Dicembre
Anonim
Utilizzo di Blender per creare modelli Java3D
Utilizzo di Blender per creare modelli Java3D

Se sei un programmatore Java probabilmente a un certo punto avresti voluto programmare in 3D. Ma come? Bene, potresti usare Java3D e digitare lentamente ogni punto in un poligono 3D (provato fidati di me è una cattiva idea), oppure potresti usare Blender (https://blender.org) un programma di modellazione 3D gratuito e open source insieme a uno script chiamato Blend2Java (https://sourceforge.net/projects/blend2java/). Tuttavia la documentazione su Blend2Java è quasi inesistente, ecco perché mi siedo qui a scrivere questo.

Passaggio 1: scarica i programmi

Avrai bisogno di Blender (https://blender.org) e Blend2Java (https://sourceforge.net/projects/blend2java/). Ok, una volta che li hai entrambi, inizia creando un modello semplice (o semplicemente usando il cubo standard) in Blender.

Passaggio 2: esporta il tuo modello in XML

Esporta il tuo modello in XML
Esporta il tuo modello in XML

Una volta che hai un modello che desideri utilizzare in Blender, apri la modalità Modifica e premi il tasto "a" per selezionare tutti i punti. Nel pannello in basso seleziona l'editor di testo. Apri un nuovo file nell'editor di testo. Apri il file blend2java.py che hai scaricato. Run. Ok il tuo oggetto dovrebbe ora essere in. XML dove lo hai salvato (se hai un messaggio di errore assicurati di avere solo 1 materiale per l'oggetto). Rinominare l'oggetto (avrà un nome strano).

Passaggio 3: importa l'oggetto in Java

Importa l'oggetto in Java
Importa l'oggetto in Java

Shape3D fred = null; try { XMLDecoder e = new XMLDecoder(new BufferedInputStream(new FileInputStream("c:/HandShape3D.xml"))); //il tuo nome file qui fred = (Shape3D) e.readObject(); e.chiudi(); } catch(Eccezione e) { e.printStackTrace(); } ColoringAttributes at=new ColoringAttributes(); Aspetto ap = new Aspetto(); Color3f col = nuovo Color3f(1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes(col, ColoringAttributes. NICEST); ap.setColoringAttributes(ca); fred.setAspetto(ap); obj.addChild(fred);inseriscilo in qualsiasi codice 3d o usa l'intero codice qui 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 estende Applet { 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; try { XMLDecoder e = new XMLDecoder(new BufferedInputStream(new FileInputStream("c:/HandShape3D.xml"))); fred = (Shape3D) e.readObject(); e.chiudi(); } catch(Eccezione e) { e.printStackTrace(); } ColoringAttributes at=new ColoringAttributes(); Aspetto ap = new Aspetto(); Color3f col = nuovo Color3f(1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes(col, ColoringAttributes. NICEST); ap.setColoringAttributes(ca); fred.setAspetto(ap); objTransform.addChild(fred); MouseRotate myMouseRotate = new MouseRotate(); myMouseRotate.setTransformGroup(objTransform); myMouseRotate.setSchedulingBounds(new BoundingSphere()); objRoot.addChild(myMouseRotate); MouseTranslate myMouseTranslate = new MouseTranslate(); myMouseTranslate.setTransformGroup(objTransform); myMouseTranslate.setSchedulingBounds(new BoundingSphere()); objRoot.addChild(myMouseTranslate); MouseZoom mioMouseZoom = new MouseZoom(); myMouseZoom.setTransformGroup(objTransform); myMouseZoom.setSchedulingBounds(new BoundingSphere()); objRoot.addChild(myMouseZoom); objRoot.compile(); restituire objRoot; } public MouseBehaviorApp() { setLayout(new BorderLayout()); Canvas3D canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); add("Centro", canvas3D); BranchGroup scena = createSceneGraph(); SimpleUniverse simpleU = new SimpleUniverse(canvas3D); simpleU.getViewingPlatform().setNominalViewingTransform(); simpleU.addBranchGraph(scena); } public static void main(String args) { Frame frame = new MainFrame(new MouseBehaviorApp(), 256, 256); }}usa questo per un programma completo! hai finito! e poi dici "e adesso"? Non ne ho idea! Ho appena imparato Java un mese fa lol!

Consigliato: