Სარჩევი:

ბლენდერის გამოყენება Java3D მოდელების შესაქმნელად: 3 ნაბიჯი
ბლენდერის გამოყენება Java3D მოდელების შესაქმნელად: 3 ნაბიჯი

ვიდეო: ბლენდერის გამოყენება Java3D მოდელების შესაქმნელად: 3 ნაბიჯი

ვიდეო: ბლენდერის გამოყენება Java3D მოდელების შესაქმნელად: 3 ნაბიჯი
ვიდეო: ბლენდერი FRANKO FBL-1127 2024, ნოემბერი
Anonim
ბლენდერის გამოყენება Java3D მოდელების შესაქმნელად
ბლენდერის გამოყენება Java3D მოდელების შესაქმნელად

თუ თქვენ ხართ ჯავა პროგრამისტი, თქვენ ალბათ გსურდათ რაღაც ეტაპზე 3D პროგრამირება. Მაგრამ როგორ? თქვენ შეგიძლიათ გამოიყენოთ Java3D და ნელა ჩაწეროთ თითოეული წერტილი 3D პოლიგონში (დამიჯერეთ ეს ცუდი იდეაა), ან შეგიძლიათ გამოიყენოთ Blender (https://blender.org) უფასო და ღია კოდის 3D მოდელირების პროგრამა. სკრიპტი სახელწოდებით Blend2Java (https://sourceforge.net/projects/blend2java/). თუმცა დოკუმენტაცია Blend2Java– ს შესახებ თითქმის არ არსებობს, ამიტომ ვჯდები აქ და ვწერ ამას.

ნაბიჯი 1: ჩამოტვირთეთ პროგრამები

თქვენ დაგჭირდებათ ბლენდერი (https://blender.org) და Blend2Java (https://sourceforge.net/projects/blend2java/). კარგი მაშინ, როდესაც ორივე გექნებათ, დაიწყეთ ბლენდერში მარტივი მოდელის (ან უბრალოდ სტანდარტული კუბიკის) გამოყენებით.

ნაბიჯი 2: თქვენი მოდელის ექსპორტი XML– ში

თქვენი მოდელის ექსპორტი XML– ში
თქვენი მოდელის ექსპორტი XML– ში

მას შემდეგ რაც თქვენ გაქვთ მოდელი, რომელიც გსურთ გამოიყენოთ ბლენდერში გახსენით რედაქტირების რეჟიმი და დააჭირეთ ღილაკს "a" ყველა წერტილის ასარჩევად. ქვედა პანელში აირჩიეთ ტექსტური რედაქტორი. გახსენით ახალი ფაილი ტექსტურ რედაქტორში. გახსენით გადმოწერილი blend2java.py ფაილი. გაუშვით. ახლა თქვენი ობიექტი უნდა იყოს. XML- ში, სადაც არ უნდა შეინახოთ (თუ გაქვთ და შეცდომის შეტყობინება გაგიკეთებთ, თქვენ გაქვთ მხოლოდ 1 მასალა ობიექტისთვის). გადაარქვით სახელი ობიექტს (მას უცნაური სახელი ექნება).

ნაბიჯი 3: ობიექტის იმპორტი Java- ში

ობიექტის ჯავაში იმპორტი
ობიექტის ჯავაში იმპორტი

Shape3D fred = null; სცადეთ {XMLDecoder e = new XMLDecoder (ახალი BufferedInputStream (ახალი FileInputStream ("c: /HandShape3D.xml"))); // თქვენი ფაილის სახელი აქ fred = (Shape3D) e.readObject (); ე. დახურვა (); } catch (გამონაკლისი 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.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; საჯარო კლასი MouseBehaviorApp აფართოებს აპლეტს {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 (); ე. დახურვა (); } catch (გამონაკლისი 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.setAppearance (ap); objTransform.addChild (ფრედ); 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 (new 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); }} გამოიყენეთ ეს სრული პროგრამისთვის! დაასრულე! და შემდეგ ამბობ "ახლა რა"? წარმოდგენა არ მაქვს! მე მხოლოდ ერთი თვის წინ ვისწავლე ჯავა: lol:

გირჩევთ: