Isi kandungan:

Menggunakan Blender untuk Membuat Model Java3D: 3 Langkah
Menggunakan Blender untuk Membuat Model Java3D: 3 Langkah

Video: Menggunakan Blender untuk Membuat Model Java3D: 3 Langkah

Video: Menggunakan Blender untuk Membuat Model Java3D: 3 Langkah
Video: Apa gunanya belajar 3D Modelling? 2024, Jun
Anonim
Menggunakan Blender untuk Membuat Model Java3D
Menggunakan Blender untuk Membuat Model Java3D

Sekiranya anda seorang pengaturcara Java, anda mungkin ingin memprogram dalam 3D pada satu ketika. Tetapi bagaimana? Anda boleh menggunakan Java3D dan perlahan-lahan menaip setiap titik dalam poligon 3D (cuba percayalah itu idea yang buruk), atau anda boleh menggunakan Blender (https://blender.org) program pemodelan 3D sumber terbuka dan bersama dengan skrip bernama Blend2Java (https://sourceforge.net/projects/blend2java/). Walau bagaimanapun, dokumentasi di Blend2Java hampir tidak ada jarak jadi saya duduk di sini menulis ini.

Langkah 1: Muat turun Program

Anda memerlukan Blender (https://blender.org) dan Blend2Java (https://sourceforge.net/projects/blend2java/). Baiklah apabila anda mempunyai kedua-duanya memulakan dengan membuat model ringkas (atau hanya menggunakan kubus standard) di Blender.

Langkah 2: Eksport Model Anda ke XML

Eksport Model Anda ke XML
Eksport Model Anda ke XML

Setelah anda mempunyai model yang ingin anda gunakan dalam Blender buka Edit Mode dan tekan butang "a" untuk memilih semua titik. Di panel bawah pilih penyunting teks. Buka fail baru dalam penyunting teks. Buka fail blend2java.py yang anda muat turun. Jalankan. Ok objek anda sekarang harus berada di. XML di mana sahaja anda menyimpannya (jika anda mempunyai dan mesej ralat membuat anda hanya mempunyai 1 bahan untuk objek tersebut). Namakan semula objek (ia akan mempunyai nama yang pelik).

Langkah 3: Import Objek ke Java

Import Objek ke Java
Import Objek ke Java

Shape3D fred = null; cuba {XMLDecoder e = XMLDecoder baru (BufferedInputStream baru (FileInputStream baru ("c: /HandShape3D.xml"))); // nama fail anda di sini fred = (Shape3D) e.readObject (); e.tutup (); } tangkapan (Pengecualian e) {e.printStackTrace (); } ColoringAttributes at = ColoringAttributes baru (); Rupa ap = Penampilan baru (); Colour3f col = Color3f baru (1.0f, 0.0f, 1.0f); ColoringAttributes ca = ColoringAttributes baru (col, ColoringAttributes. NICEST); ap.setColoringAttribut (ca); fred.setAppearance (ap); obj.addChild (fred); masukkan ini ke mana-mana kod 3d atau gunakan keseluruhan kod di sini 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; kelas awam MouseBehaviorApp meluaskan Applet {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = TransformGroup baru (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Shape3D fred = null; cuba {XMLDecoder e = XMLDecoder baru (BufferedInputStream baru (FileInputStream baru ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.tutup (); } tangkapan (Pengecualian e) {e.printStackTrace (); } ColoringAttributes at = ColoringAttributes baru (); Rupa ap = Penampilan baru (); Colour3f col = Color3f baru (1.0f, 0.0f, 1.0f); ColoringAttributes ca = ColoringAttributes baru (col, ColoringAttributes. NICEST); ap.setColoringAttribut (ca); fred.setAppearance (ap); objTransform.addChild (fred); MouseRotate myMouseRotate = MouseRotate baru (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (BoundingSphere baru ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = MouseTranslate baru (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (BoundingSphere baru ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = MouseZoom baru (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (BoundingSphere baru ()); objRoot.addChild (myMouseZoom); objRoot.compile (); kembali objRoot; } MouseBehaviorApp awam () {setLayout (BorderLayout baru ()); Canvas3D canvas3D = Canvas3D baru (SimpleUniverse.getPreferredConfiguration ()); tambah ("Pusat", kanvas3D); Adegan BranchGroup = createSceneGraph (); SimpleUniverse simpleU = SimpleUniverse baru (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (pemandangan); } umum kekosongan statik awam (String args) {Frame frame = MainFrame baru (MouseBehaviorApp baru (), 256, 256); }} gunakan ini untuk programtada yang lengkap! anda sudah selesai! dan kemudian anda katakan "sekarang apa"? Saya tidak tahu! Saya baru belajar Java sebulan yang lalu lol!

Disyorkan: