Cuprins:

Utilizarea Blender pentru a crea modele Java3D: 3 pași
Utilizarea Blender pentru a crea modele Java3D: 3 pași

Video: Utilizarea Blender pentru a crea modele Java3D: 3 pași

Video: Utilizarea Blender pentru a crea modele Java3D: 3 pași
Video: Game Engine - 01 (Refactoring) 2024, Iunie
Anonim
Utilizarea Blender pentru a crea modele Java3D
Utilizarea Blender pentru a crea modele Java3D

Dacă sunteți un programator Java, probabil că ați dorit să programați în 3D la un moment dat. Dar cum? Ei bine, puteți folosi Java3D și tastați încet fiecare punct dintr-un poligon 3D (ați încercat să aveți încredere în mine, este o idee proastă) sau puteți utiliza Blender (https://blender.org) un program de modelare 3D gratuit și open source împreună cu un script numit Blend2Java (https://sourceforge.net/projects/blend2java/). Cu toate acestea, documentația de pe Blend2Java este aproape inexistentă, așa că de aceea stau aici scriind acest lucru.

Pasul 1: Descărcați programele

Veți avea nevoie de Blender (https://blender.org) și Blend2Java (https://sourceforge.net/projects/blend2java/). Ok, după ce le aveți pe amândouă, începeți făcând un model simplu (sau doar folosind cubul standard) în Blender.

Pasul 2: Exportați-vă modelul în XML

Exportați-vă modelul în XML
Exportați-vă modelul în XML

Odată ce ai un model pe care ți-ar plăcea să îl folosești în Blender deschide Mod Editare și apasă tasta „a” pentru a selecta toate punctele. În panoul de jos, selectați editorul de text. Deschideți un fișier nou în editorul de text. Deschideți fișierul blend2java.py pe care l-ați descărcat. Run. Ok obiectul dvs. ar trebui să fie acum în. XML oriunde l-ați salvat (dacă aveți și un mesaj de eroare vă asigură că aveți doar 1 material pentru obiect). Redenumiți obiectul (va avea un nume ciudat).

Pasul 3: Importați obiectul în Java

Importați obiectul în Java
Importați obiectul în Java

Shape3D fred = nul; try {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); // numele fișierului dvs. aici fred = (Shape3D) e.readObject (); e.close (); } catch (Exception e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Aspect ap = aspect nou (); Color3f col = new Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); introduceți-l în orice cod 3d sau utilizați întregul cod aici 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.behavior.mouse. *; import javax.media.j3d. *; import javax.vecmath. *; import java.awt.event. *; import java.util. Enumeration; public class MouseBehaviorApp extends 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 = nul; try {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.close (); } catch (Exception e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Aspect ap = Aspect nou (); Color3f col = new 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 (nou BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = new MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (nou BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = new MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (nou BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); returnează objRoot; } public MouseBehaviorApp () {setLayout (nou BorderLayout ()); Canvas3D canvas3D = new Canvas3D (SimpleUniverse.getPreferredConfiguration ()); add ("Centru", canvas3D); Scena BranchGroup = createSceneGraph (); SimpleUniverse simpleU = nou SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (scenă); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} utilizați acest lucru pentru o programă completă! ai terminat! și apoi spui „acum ce”? Habar n-am! Tocmai am învățat Java acum o lună lol!

Recomandat: