Съдържание:

Използване на Blender за създаване на Java3D модели: 3 стъпки
Използване на Blender за създаване на Java3D модели: 3 стъпки

Видео: Използване на Blender за създаване на Java3D модели: 3 стъпки

Видео: Използване на Blender за създаване на Java3D модели: 3 стъпки
Видео: 2022-02-07 лекция 1 [3D технологии] 2024, Юни
Anonim
Използване на Blender за създаване на Java3D модели
Използване на Blender за създаване на Java3D модели

Ако сте програмист на Java, вероятно сте искали да програмирате в 3D в един момент. Но как? Е, можете да използвате Java3D и бавно да въвеждате всяка точка в 3D полигон (опитах се, повярвайте ми, това е лоша идея), или можете да използвате Blender (https://blender.org) безплатна програма за 3D моделиране с отворен код заедно с скрипт, наречен Blend2Java (https://sourceforge.net/projects/blend2java/). Документацията за Blend2Java обаче почти не съществува, затова седя тук и пиша това.

Стъпка 1: Изтеглете програмите

Ще ви трябват Blender (https://blender.org) и Blend2Java (https://sourceforge.net/projects/blend2java/). Добре, след като и двамата започнете, като направите прост модел (или просто използвате стандартния куб) в Blender.

Стъпка 2: Експортирайте модела си в XML

Експортирайте модела си в XML
Експортирайте модела си в XML

След като имате модел, който искате да използвате в Blender, отворете Редактиране на режим и натиснете клавиша "a", за да изберете всички точки. В долния панел изберете текстов редактор. Отворете нов файл в текстовия редактор. Отворете файла blend2java.py, който сте изтеглили. Run. Ok вашият обект сега трябва да бъде в. XML, където и да сте го запазили (ако имате и съобщение за грешка, уверете се, че имате само 1 материал за обекта). Преименувайте обекта (той ще има странно име).

Стъпка 3: Импортирайте обекта в Java

Импортирайте обекта в Java
Импортирайте обекта в Java

Shape3D fred = null; опитайте {XMLDecoder e = нов XMLDecoder (нов BufferedInputStream (нов FileInputStream ("c: /HandShape3D.xml"))); // името на вашия файл тук fred = (Shape3D) e.readObject (); e.close (); } catch (Изключение д) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Външен вид ap = нов Външен вид (); Color3f col = нов Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); поставете това във всеки 3d код или използвайте целия код тук import java.io.*; import java.beans. XMLDecoder; import java.applet. Applet; import java.awt.*; import java. awt.event.*; импортиране com.sun.j3d.utils.applet. MainFrame; импортиране com.sun.j3d.utils.universe.*; импортиране на javax.media.j3d.*; импортиране на javax.vecmath.*; импортиране на 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.*; импортиране com.sun.j3d.utils.behaviors.mouse.*; импортиране на javax.media.j3d.*; импортиране на javax.vecmath.*; импортиране на java.awt.event.*; импортиране на java.util. Enumeration; публичен клас MouseBehaviorApp разширява аплета {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = нов TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Shape3D fred = null; опитайте {XMLDecoder e = нов XMLDecoder (нов BufferedInputStream (нов FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.close (); } catch (Изключение д) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Външен вид ap = нов Външен вид (); Color3f col = нов 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 = нов MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (нов BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = нов MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (нов BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = нов MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (нов BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); връщане objRoot; } обществен MouseBehaviorApp () {setLayout (нов BorderLayout ()); Canvas3D canvas3D = нов Canvas3D (SimpleUniverse.getPreferredConfiguration ()); add ("Център", canvas3D); Сцена на BranchGroup = createSceneGraph (); SimpleUniverse simpleU = нов SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (сцена); } публичен static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} използвайте това за пълна програма! готови сте! и после казвате "сега какво"? Нямам представа! Току -що научих Java преди месец хаха!

Препоръчано: