Агуулгын хүснэгт:

Java3D загвар үүсгэхийн тулд Blender -ийг ашиглах: 3 алхам
Java3D загвар үүсгэхийн тулд Blender -ийг ашиглах: 3 алхам

Видео: Java3D загвар үүсгэхийн тулд Blender -ийг ашиглах: 3 алхам

Видео: Java3D загвар үүсгэхийн тулд Blender -ийг ашиглах: 3 алхам
Видео: Unlock Your Imagination AI Animation Generator for Crafting Spectacular 3D Movies 2024, Арваннэгдүгээр
Anonim
Java3D загвар үүсгэхийн тулд Blender -ийг ашиглах
Java3D загвар үүсгэхийн тулд Blender -ийг ашиглах

Хэрэв та 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 (); } барих (онцгой тохиолдол e) {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.set Гадаад төрх (ap); obj.addChild (fred); үүнийг ямар ч 3d кодонд оруулах эсвэл энд байгаа кодыг бүхэлд нь ашиглах java.io импортлох.*; java.beans. XMLDecoder импортлох; java.applet. Applet импортлох; java.awt импортлох. awt.event.*; com.sun.j3d.utils.applet. MainFrame; com.sun.j3d.utils.universe импортлох.*; javax.media.j3d импортлох*; javax.vecmath импортлох.*; java импортлох.applet. Applet; java.awt. BorderLayout импортлох; java.awt. Frame импортлох; com.sun.j3d.utils.applet. MainFrame импортлох; com.sun.j3d.utils.geometry. ColorCube импортлох; com.sun импортлох. j3d.utils.universe.*; com.sun.j3d.utils.behaviors.mouse.*; javax.media.j3d.*; javax.vecmath импортлох.*; java.awt.event импортлох.*; java импортлох.util. Enumeration; public class MouseBehaviorApp нь Applet {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 = new XMLDecoder (шинэ BufferedInputStream (шинэ FileInputStream ("c: /HandShape3D.xml"))) оролдоод үзээрэй); fred = (Shape3D) e.readObject (); e.close (); } барих (онцгой тохиолдол e) {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.set Гадаад төрх (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 ()); нэмэх ("Төв", canvas3D); BranchGroup -ийн дүр зураг = createSceneGraph (); SimpleUniverse simpleU = шинэ SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (үзэгдэл); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} Үүнийг бүрэн хэмжээний програмд ашиглаарай! чи дууслаа! тэгээд чи "одоо яах вэ" гэж хэлээд байна уу? Надад ямар ч ойлголт алга! Би дөнгөж сарын өмнө Java сурсан шүү хэхэ!

Зөвлөмж болгож буй: