Πίνακας περιεχομένων:

Χρήση μπλέντερ για δημιουργία μοντέλων Java3D: 3 βήματα
Χρήση μπλέντερ για δημιουργία μοντέλων Java3D: 3 βήματα

Βίντεο: Χρήση μπλέντερ για δημιουργία μοντέλων Java3D: 3 βήματα

Βίντεο: Χρήση μπλέντερ για δημιουργία μοντέλων Java3D: 3 βήματα
Βίντεο: Δημιουργία τρισδιάστατων μοντέλων με το Blender 2024, Ιούνιος
Anonim
Χρήση μπλέντερ για δημιουργία μοντέλων Java3D
Χρήση μπλέντερ για δημιουργία μοντέλων Java3D

Εάν είστε προγραμματιστής Java, πιθανότατα θέλετε να προγραμματίσετε σε 3D κάποια στιγμή. Αλλά πως? Λοιπόν, μπορείτε να χρησιμοποιήσετε το Java3D και να πληκτρολογήσετε αργά σε κάθε σημείο σε ένα τρισδιάστατο πολύγωνο (δοκιμάστε το πιστέψτε με είναι κακή ιδέα) ή μπορείτε να χρησιμοποιήσετε το 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 όπου και αν το αποθηκεύσατε (εάν έχετε και το μήνυμα σφάλματος make shure έχετε μόνο 1 υλικό για το αντικείμενο). Μετονομάστε το αντικείμενο (θα έχει περίεργο όνομα).

Βήμα 3: Εισαγάγετε το αντικείμενο στη Java

Εισαγάγετε το αντικείμενο στη Java
Εισαγάγετε το αντικείμενο στη Java

Shape3D fred = null; δοκιμάστε {XMLDecoder e = νέο XMLDecoder (νέο BufferedInputStream (νέο FileInputStream ("c: /HandShape3D.xml"))); // το όνομα του αρχείου σας εδώ fred = (Shape3D) e.readObject (); e.close (); } catch (εξαίρεση ε) {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.setAparance (ap); obj.addChild (fred). εισαγάγετε αυτό σε οποιονδήποτε τρισδιάστατο κώδικα ή χρησιμοποιήστε ολόκληρο τον κωδικό εδώ εισαγωγή 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.close (); } catch (εξαίρεση ε) {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 (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 ()); προσθήκη ("Κέντρο", καμβάς3Δ); Σκηνή 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!

Συνιστάται: