Mündəricat:
- Addım 1: Proqramları yükləyin
- Addım 2: Modelinizi XML -ə ixrac edin
- Addım 3: Obyekti Java -ya idxal edin
Video: Java3D Modelləri Yaratmaq üçün Blenderdən istifadə: 3 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:49
Java proqramçısı olsanız, ehtimal ki, bir anda 3D -də proqramlaşdırmaq istəyərdiniz. Amma necə? Java3D -dən istifadə edə və hər nöqtəni yavaş -yavaş 3D çoxbucaqlı olaraq yaza bilərsiniz (mənə pis bir fikir olduğuna inandırmağa çalışdım) və ya Blender -dən (https://blender.org) pulsuz və açıq mənbə 3D modelləşdirmə proqramından istifadə edə bilərsiniz. Blend2Java adlı bir skript (https://sourceforge.net/projects/blend2java/). Ancaq Blend2Java'dakı sənədlər demək olar ki, yoxdur, buna görə də burada yazıb burada yazıram.
Addım 1: Proqramları yükləyin
Blenderə (https://blender.org) və Blend2Javaya (https://sourceforge.net/projects/blend2java/) ehtiyacınız olacaq. Yaxşı, hər ikisi də Blender -də sadə bir model (və ya sadəcə standart kubdan istifadə edərək) işə saldıqdan sonra.
Addım 2: Modelinizi XML -ə ixrac edin
Bir model əldə etdikdən sonra Blender -dən istifadə edərək Redaktə Edin və bütün nöqtələri seçmək üçün "a" düyməsini basın. Alt paneldə mətn redaktoru seçin. Mətn redaktorunda yeni bir fayl açın. Yüklədiyiniz blend2java.py faylını açın. Run. Ok obyektiniz indi onu saxladığınız yerdə. XML -də olmalıdır (əgər sizdə və səhv mesajı varsa, obyekt üçün yalnız 1 materialınız olduğuna əmin olun). Obyektin adını dəyişdirin (qəribə bir ad alacaq).
Addım 3: Obyekti Java -ya idxal edin
Shape3D fred = null; cəhd edin {XMLDecoder e = yeni XMLDecoder (yeni BufferedInputStream (yeni FileInputStream ("c: /HandShape3D.xml")))); // burada fayl adınız fred = (Shape3D) e.readObject (); e.close (); } tutmaq (İstisna e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Görünüş ap = yeni Görünüş (); Color3f col = 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 hər hansı bir 3d koduna daxil edin və ya bütün kodu buradan istifadə edin java.io idxal edin.*; idxal java.beans. XMLDecoder; idxal java.applet. Applet; idxal java.awt.*; awt.event.*; idxal com.sun.j3d.utils.applet. MainFrame; idxal com.sun.j3d.utils.universe.*; idxal javax.media.j3d.*; idxal javax.vecmath.*; idxal java.applet. Applet; idxal java.awt. BorderLayout; idxal java.awt. Frame; idxal com.sun.j3d.utils.applet. MainFrame; idxal com.sun.j3d.utils.geometry. ColorCube; idxal com.sun. j3d.utils.universe.*; idxal com.sun.j3d.utils.behaviors.mouse.*; idxal javax.media.j3d.*; idxal javax.vecmath.*; idxal java.awt.event.*; idxal java.util. Enumeration; ictimai sinif MouseBehaviorApp Applet {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = yeni TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Shape3D fred = null; cəhd edin {XMLDecoder e = yeni XMLDecoder (yeni BufferedInputStream (yeni FileInputStream ("c: /HandShape3D.xml")))); fred = (Shape3D) e.readObject (); e.close (); } tutmaq (İstisna e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Görünüş ap = yeni Görünüş (); Color3f col = 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 = yeni MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (yeni BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = yeni 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 (); qaytar objRoot; } ümumi MouseBehaviorApp () {setLayout (yeni BorderLayout ()); Canvas3D canvas3D = yeni Canvas3D (SimpleUniverse.getPreferredConfiguration ()); əlavə et ("Mərkəz", canvas3D); BranchGroup səhnəsi = createSceneGraph (); SimpleUniverse simpleU = yeni SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (səhnə); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} tam bir proqram üçün istifadə edin! bitirdin! sonra da "indi nə" deyirsən? Heç bir fikrim yoxdur! Bir ay əvvəl Java öyrəndim, lol!
Tövsiyə:
Transistorlu bir soyuducu yaratmaq üçün kompüter soyuducusundan yenidən istifadə: 7 addım
Bir Transistor Soğutucu Yaratmaq üçün Kompüter Soyuducusundan Yenidən İstifadə: Bir müddət əvvəl ətrafında oynamaq üçün bir az Raspberry Pi 3 almışdım. Soğutucu olmadan gəldikləri üçün bəziləri üçün bazarda idim. Sürətli bir Google axtarışı etdim və bu Təlimatlandırıcıya (Raspberry Pi Heat Sink) rast gəldim - bu fikri rədd etdikdən sonra
Robotdan qaçınmaq üçün əngəl yaratmaq üçün necə: 6 addım
Robotdan Engel Oynayan Necə Yapılır: Maneədən Kaçan Robot, bir arduino tərəfindən idarə olunan sadə bir robotdur və nə edirsə, ətrafda dolaşır və maneələrin qarşısını alır. HC-SR04 ultrasəs sensoru ilə maneələri aşkar edir, başqa sözlə robot yaxınlıqdakı obyekti hiss edərsə
Lityum İon Batareya Paketi Yaratmaq Üçün Avtomobil Batareyasından İstifadə Edən Sadə Qaynaqçı: 6 Addım
Lityum İon Batareya Paketi Yaratmaq Üçün Avtomobil Batareyasından İstifadə Edən Sadə Noktalı Qaynaqçı: Lityum İon (Li-ion) Batareya Paketləri qurmaq üçün faydalı olan avtomobil akkumulyatorlu bir Noktalı qaynaqçı hazırladım. Mən bu qaynaq qaynağı ilə 3S10P Paketi və bir çox qaynaq qurmağı bacardım
Arduino istifadə edərək robotdan qaçınmaq üçün əngəl yaratmaq üçün necə: 5 addım
Arduino istifadə edərək robotdan qaçınmaq üçün əngəl yaratma: Bu təlimatda sizə Arduino ilə işləyən robotdan qaçaraq maneə yaratmağı öyrədəcəyəm. Arduino ilə tanış olmalısınız. Arduino, atmega mikro nəzarətçisini istifadə edən bir idarəetmə lövhəsidir. Arduinonun hər hansı bir versiyasından istifadə edə bilərsiniz, amma
Google Earth üçün Modelləri və Binaları NECƏ TASARLAYACAQ: 7 addım
Google Earth üçün Modelləri və Binaları NECƏ TASARLAYACAQ: Google Earth -ə gedib o sərin binalara baxmısınızmı? heç dizayn etmək istəmişəm. Yaxşı, şansınız budur