Inhaltsverzeichnis:

Verwenden von Blender zum Erstellen von Java3D-Modellen - Gunook
Verwenden von Blender zum Erstellen von Java3D-Modellen - Gunook

Video: Verwenden von Blender zum Erstellen von Java3D-Modellen - Gunook

Video: Verwenden von Blender zum Erstellen von Java3D-Modellen - Gunook
Video: How To Use ChatGPT With BLENDER! - (Blender ChatGPT Tutorial!) 2024, Juni
Anonim
Verwenden von Blender zum Erstellen von Java3D-Modellen
Verwenden von Blender zum Erstellen von Java3D-Modellen

Wenn Sie ein Java-Programmierer sind, wollten Sie wahrscheinlich schon einmal in 3D programmieren. Aber wie? Nun, Sie könnten Java3D verwenden und jeden Punkt in einem 3D-Polygon langsam eintippen (versuchen, glauben Sie mir, es ist eine schlechte Idee), oder Sie könnten Blender (https://blender.org) verwenden, ein kostenloses und Open-Source-3D-Modellierungsprogramm zusammen mit ein Skript namens Blend2Java (https://sourceforge.net/projects/blend2java/). Die Dokumentation zu Blend2Java ist jedoch fast nicht vorhanden, deshalb sitze ich hier und schreibe dies.

Schritt 1: Laden Sie die Programme herunter

Sie benötigen Blender (https://blender.org) und Blend2Java (https://sourceforge.net/projects/blend2java/). Ok, wenn Sie beide haben, beginnen Sie mit der Erstellung eines einfachen Modells (oder verwenden Sie einfach den Standardwürfel) in Blender.

Schritt 2: Exportieren Sie Ihr Modell in XML

Exportieren Sie Ihr Modell in XML
Exportieren Sie Ihr Modell in XML

Sobald Sie ein Modell haben, das Sie in Blender verwenden möchten, öffnen Sie den Bearbeitungsmodus und drücken Sie die Taste "a", um alle Punkte auszuwählen. Wählen Sie im unteren Bereich den Texteditor aus. Öffnen Sie eine neue Datei im Texteditor. Öffnen Sie die heruntergeladene Datei blend2java.py. Run. Ok Ihr Objekt sollte jetzt in. XML sein, wo immer Sie es gespeichert haben (wenn Sie eine Fehlermeldung haben, stellen Sie sicher, dass Sie nur 1 Material für das Objekt haben). Benennen Sie das Objekt um (es wird einen seltsamen Namen haben).

Schritt 3: Importieren Sie das Objekt in Java

Importieren Sie das Objekt in Java
Importieren Sie das Objekt in Java

Shape3D fred = null; try { XMLDecoder e = new XMLDecoder(new BufferedInputStream(new FileInputStream("c:/HandShape3D.xml"))); //Ihr Dateiname hier fred = (Shape3D) e.readObject(); e.close(); } catch (Ausnahme e) { e.printStackTrace(); } ColoringAttributes at=new ColoringAttributes(); Aussehen ap = neues Aussehen(); Color3f col = neue Color3f(1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes(col, ColoringAttributes. NICEST); ap.setColoringAttributes(ca); fred.setAppearance(ap); obj.addChild(fred);fügen Sie dies in einen beliebigen 3D-Code ein oder verwenden Sie den gesamten 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;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;öffentliche Klasse MouseBehaviorApp erweitert 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.close(); } catch (Ausnahme e) { e.printStackTrace(); } ColoringAttributes at=new ColoringAttributes(); Aussehen ap = neues Aussehen(); Color3f col = neue 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 = new MouseRotate(); myMouseRotate.setTransformGroup(objTransform); myMouseRotate.setSchedulingBounds(neue BoundingSphere()); objRoot.addChild(myMouseRotate); MouseTranslate myMouseTranslate = new MouseTranslate(); myMouseTranslate.setTransformGroup(objTransform); myMouseTranslate.setSchedulingBounds(neue BoundingSphere()); objRoot.addChild(myMouseTranslate); MouseZoom myMouseZoom = new MouseZoom(); myMouseZoom.setTransformGroup(objTransform); myMouseZoom.setSchedulingBounds(neue BoundingSphere()); objRoot.addChild(myMouseZoom); objRoot.compile(); return objRoot; } public MouseBehaviorApp () { setLayout (neues BorderLayout ()); Canvas3D canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); add("Center", canvas3D); BranchGroup-Szene = createSceneGraph(); SimpleUniverse simpleU = new SimpleUniverse(canvas3D); simpleU.getViewingPlatform().setNominalViewingTransform(); simpleU.addBranchGraph(Szene); } public static void main(String args) { Frameframe = new MainFrame(new MouseBehaviorApp(), 256, 256); }}benutze dies für eine komplette programtada! du bist fertig!und dann sagst du "was nun"? Ich habe keine Ahnung! Ich habe gerade vor einem Monat Java gelernt, lol!

Empfohlen: