Мазмуну:

Java3D моделдерин түзүү үчүн Blenderди колдонуу: 3 кадам
Java3D моделдерин түзүү үчүн Blenderди колдонуу: 3 кадам

Video: Java3D моделдерин түзүү үчүн Blenderди колдонуу: 3 кадам

Video: Java3D моделдерин түзүү үчүн Blenderди колдонуу: 3 кадам
Video: Java tech talk: Spring Boot and GraphQl integration. Как сделать это просто? 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де ачык редактор режиминде колдонуп, бардык пункттарды тандоо үчүн "а" баскычын басыңыз. Төмөнкү панелде текст редакторун тандаңыз. Текст редакторунда жаңы файлды ачыңыз. Сиз жүктөгөн 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 (Exception e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Appearance ap = new Appearance (); 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 кодуна киргизиңиз же бүт кодду ушул жерден импортто java.io.*; import java.beans. XMLDecoder; import java.applet. Applet; java.awt импорттоо.*; импорттук java. awt.event.*; импорт com.sun.j3d.utils.applet. MainFrame; импорт com.sun.j3d.utils.universe.*; импорт javax.media.j3d.*; импорт javax.vecmath.*; импорттоо.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; коомдук класс 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 = жаңы XMLDecoder (жаңы BufferedInputStream (жаңы FileInputStream ("c: /HandShape3D.xml"))))); fred = (Shape3D) e.readObject (); e.close (); } catch (Exception e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Appearance ap = new Appearance (); 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 (new BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = жаңы MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (new BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = жаңы MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (new BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); return objRoot; } public MouseBehaviorApp () {setLayout (new 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 үйрөндүм lol!

Сунушталууда: