İçindekiler:

Java3D Modelleri Oluşturmak için Blender'ı Kullanma: 3 Adım
Java3D Modelleri Oluşturmak için Blender'ı Kullanma: 3 Adım

Video: Java3D Modelleri Oluşturmak için Blender'ı Kullanma: 3 Adım

Video: Java3D Modelleri Oluşturmak için Blender'ı Kullanma: 3 Adım
Video: OYUN YAPMAK İÇİN GEREKEN PROGRAMLAR! 2024, Kasım
Anonim
Java3D Modelleri Oluşturmak için Blender'ı Kullanma
Java3D Modelleri Oluşturmak için Blender'ı Kullanma

Bir Java programcısıysanız, muhtemelen bir noktada 3D olarak programlamak istemişsinizdir. Ama nasıl? Java3D'yi kullanabilir ve her noktayı bir 3B poligonda yavaşça yazabilirsiniz (bana güvenmeyi denedim, bu kötü bir fikir) veya Blender'ı (https://blender.org) ücretsiz ve açık kaynaklı bir 3B modelleme programı ile birlikte kullanabilirsiniz. Blend2Java (https://sourceforge.net/projects/blend2java/) adlı bir komut dosyası. Ancak Blend2Java ile ilgili belgeler neredeyse yok, bu yüzden burada oturup bunu yazıyorum.

Adım 1: Programları İndirin

Blender'a (https://blender.org) ve Blend2Java'ya (https://sourceforge.net/projects/blend2java/) ihtiyacınız olacak. Tamam, o zaman her ikisini de Blender'da basit bir model yaparak (veya sadece standart küpü kullanarak) başlayın.

Adım 2: Modelinizi XML'e Dışa Aktarın

Modelinizi XML'e Dışa Aktarın
Modelinizi XML'e Dışa Aktarın

Blender'da kullanmak istediğiniz bir modeliniz olduğunda Düzenleme Modunu açın ve tüm noktaları seçmek için "a" tuşuna basın. Alt panelde metin düzenleyiciyi seçin. Metin düzenleyicide yeni bir dosya açın. İndirdiğiniz blend2java.py dosyasını açın. Run. Ok nesneniz şimdi kaydettiğiniz her yerde. XML'de olmalıdır (varsa ve hata mesajınız varsa, nesne için yalnızca 1 malzemeniz olduğundan emin olun). Nesneyi yeniden adlandırın (garip bir adı olacaktır).

Adım 3: Nesneyi Java'ya Aktarın

Nesneyi Java'ya Aktarın
Nesneyi Java'ya Aktarın

Shape3D fred = boş; try { XMLDecoder e = new XMLDecoder(new BufferedInputStream(new FileInputStream("c:/HandShape3D.xml"))); //buradaki dosya adınız fred = (Shape3D) e.readObject(); e.kapat(); } catch(Exception e) { e.printStackTrace(); } ColoringAttributes at=new ColoringAttributes(); Görünüm ap = yeni Görünüm(); Color3f sütun = yeni Color3f(1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes(col, ColoringAttributes. NICEST); ap.setColoringAttributes(ca); fred.setAppearance(ap); obj.addChild(fred);bunu herhangi bir 3 boyutlu koda ekleyin veya tüm kodu burada kullanın import java.io.*;import java.beans. XMLDecoder;import java.applet. Applet;import java.awt.*;import java. awt.event.*;ithalat com.sun.j3d.utils.applet. MainFrame;import com.sun.j3d.utils.universe.*;javax.media.j3d.*;import javax.vecmath.*;import java.applet. Applet;iport java.awt. BorderLayout;iport java.awt. Frame;import com.sun.j3d.utils.applet. MainFrame;import com.sun.j3d.utils.geometry. ColorCube;import com.sun. j3d.utils.universe.*;içe aktar.util. Enumeration;genel sınıf MouseBehaviorApp, Applet'i genişletir { 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 = boş; try { XMLDecoder e = new XMLDecoder(new BufferedInputStream(new FileInputStream("c:/HandShape3D.xml"))); fred = (Shape3D) e.readObject(); e.kapat(); } catch(Exception e) { e.printStackTrace(); } ColoringAttributes at=new ColoringAttributes(); Görünüm ap = yeni Görünüm(); Color3f sütun = yeni 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(yeni BoundingSphere()); objRoot.addChild(myMouseRotate); MouseTranslate myMouseTranslate = new MouseTranslate(); myMouseTranslate.setTransformGroup(objTransform); myMouseTranslate.setSchedulingBounds(yeni BoundingSphere()); objRoot.addChild(myMouseTranslate); MouseZoom myMouseZoom = yeni MouseZoom(); myMouseZoom.setTransformGroup(objTransform); myMouseZoom.setSchedulingBounds(yeni BoundingSphere()); objRoot.addChild(myMouseZoom); objRoot.compile(); objRoot'u döndür; } public MouseBehaviorApp() { setLayout(new BorderLayout()); Canvas3D canvas3D = new Canvas3D(SimpleUniverse.getPreferredConfiguration()); add("Merkez", canvas3D); BranchGroup sahne = createSceneGraph(); SimpleUniverse simpleU = yeni SimpleUniverse(canvas3D); simpleU.getViewingPlatform().setNominalViewingTransform(); simpleU.addBranchGraph(sahne); } public static void main(String args) { Frame frame = new MainFrame(new MouseBehaviorApp(), 256, 256); }}bunu tam bir program verisi için kullanın! işin bitti! ve sonra "şimdi ne olacak" diyorsun? Hiçbir fikrim yok! Java'yı bir ay önce öğrendim lol!

Önerilen: