Բովանդակություն:

Օգտագործելով բլենդերը Java3D մոդելներ ստեղծելու համար. 3 քայլ
Օգտագործելով բլենդերը Java3D մոդելներ ստեղծելու համար. 3 քայլ

Video: Օգտագործելով բլենդերը Java3D մոդելներ ստեղծելու համար. 3 քայլ

Video: Օգտագործելով բլենդերը Java3D մոդելներ ստեղծելու համար. 3 քայլ
Video: Ձեռքի Բլենդեր 3-ը 1-ում SONIFER SF-8025/ Hand Blender 3in1 SONIFER SF-8025 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 ֆայլը: Գործարկեք: Ձեր օբյեկտը այժմ պետք է լինի. XML- ում, որտեղ դուք այն պահել եք (եթե ունեք և սխալի հաղորդագրությունը թույլ է տալիս խուսափել, դուք ունեք միայն 1 նյութ օբյեկտի համար): Վերանվանել օբյեկտը (այն կունենա տարօրինակ անուն):

Քայլ 3: Ներմուծեք օբյեկտը Java- ին

Ներմուծեք օբյեկտը Java- ում
Ներմուծեք օբյեկտը Java- ում

Shape3D fred = null; փորձեք {XMLDecoder e = new XMLDecoder (նոր BufferedInputStream (նոր FileInputStream ("c: /HandShape3D.xml"))); // ձեր ֆայլի անունն այստեղ fred = (Shape3D) e.readObject (); ե. փակել (); } բռնել (բացառություն ե) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Արտաքին տեսք ap = նոր Արտաքին տեսք (); Color3f col = նոր Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = նոր ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); տեղադրեք սա ցանկացած 3D կոդի մեջ կամ օգտագործեք ամբողջ ծածկագիրը այստեղ ներմուծեք java.io.*; ներմուծեք java.beans. XMLDecoder; ներմուծեք java.applet. Applet; ներմուծեք java.awt.*; ներմուծեք java: 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.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Արտաքին տեսք ap = նոր Արտաքին տեսք (); Color3f col = նոր Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = նոր 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; } public MouseBehaviorApp () {setLayout (նոր BorderLayout ()); Canvas3D canvas3D = նոր Canvas3D (SimpleUniverse.getPreferredConfiguration ()); ավելացնել («Կենտրոն», կտավ 3D); 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!

Խորհուրդ ենք տալիս: