Table des matières:

Utiliser Blender pour créer des modèles Java3D : 3 étapes
Utiliser Blender pour créer des modèles Java3D : 3 étapes

Vidéo: Utiliser Blender pour créer des modèles Java3D : 3 étapes

Vidéo: Utiliser Blender pour créer des modèles Java3D : 3 étapes
Vidéo: J'essaye de Créer un Jeu 3D en 1 Semaine 2024, Novembre
Anonim
Utiliser Blender pour créer des modèles Java3D
Utiliser Blender pour créer des modèles Java3D

Si vous êtes un programmeur Java, vous avez probablement déjà voulu programmer en 3D. Mais comment? Eh bien, vous pouvez utiliser Java3D et taper lentement chaque point dans un polygone 3D (essayé, croyez-moi, c'est une mauvaise idée), ou vous pouvez utiliser Blender (https://blender.org) un programme de modélisation 3D gratuit et open source avec un script appelé Blend2Java (https://sourceforge.net/projects/blend2java/). Cependant, la documentation sur Blend2Java est presque inexistante, c'est pourquoi je suis assis ici à écrire ceci.

Étape 1: Téléchargez les programmes

Vous aurez besoin de Blender (https://blender.org) et de Blend2Java (https://sourceforge.net/projects/blend2java/). Ok, une fois que vous les avez tous les deux, commencez par créer un modèle simple (ou simplement en utilisant le cube standard) dans Blender.

Étape 2: Exportez votre modèle vers XML

Exportez votre modèle vers XML
Exportez votre modèle vers XML

Une fois que vous avez un modèle que vous souhaitez utiliser dans Blender, ouvrez le mode Édition et appuyez sur la touche "a" pour sélectionner tous les points. Dans le panneau inférieur, sélectionnez l'éditeur de texte. Ouvrez un nouveau fichier dans l'éditeur de texte. Ouvrez le fichier blend2java.py que vous avez téléchargé. Run. Ok, votre objet devrait maintenant être au format. XML où vous l'avez enregistré (si vous avez un message d'erreur, assurez-vous que vous n'avez qu'un seul matériau pour l'objet). Renommez l'objet (il aura un nom bizarre).

Étape 3: importer l'objet vers Java

Importer l'objet vers Java
Importer l'objet vers Java

Shape3D fred = nul; try { XMLDecoder e = new XMLDecoder(new BufferedInputStream(new FileInputStream("c:/HandShape3D.xml"))); //votre nom de fichier ici fred = (Shape3D) e.readObject(); e.close(); } catch(Exception e) { e.printStackTrace(); } ColouringAttributes at=new ColouringAttributes(); Apparence ap = new Apparence(); Color3f col = nouveau Color3f(1.0f, 0.0f, 1.0f); AttributsColoration ca = new AttributsColoration(col, AttributsColoration. NICEST); ap.setColoringAttributes(ca); fred.setAppearance(ap); obj.addChild(fred); insérez-le dans n'importe quel code 3D ou utilisez le code entier ici import java.io.*;import java.beans. XMLDecoder;import java.applet. Applet;import java.awt.*;import java. awt.event.*;importer com.sun.j3d.utils.applet. MainFrame;importer com.sun.j3d.utils.universe.*;importer javax.media.j3d.*;importer javax.vecmath.*;importer java.applet. Applet;import java.awt. BorderLayout;import java.awt. Frame;import com.sun.j3d.utils.applet. MainFrame;import com.sun.j3d.utils.geometry. ColorCube;import com.sun. j3d.utils.universe.*;import com.sun.j3d.utils.behaviors.mouse.*;import javax.media.j3d.*;import javax.vecmath.*;import java.awt.event.*;import java.util. Enumeration;classe publique MouseBehaviorApp étend Applet { public BranchGroup createSceneGraph() { BranchGroup objRoot = new BranchGroup(); TransformGroup objTransform = new TransformGroup(); objTransform.setCapability(TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability(TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild(objTransform); Shape3D fred = nul; try { XMLDecoder e = new XMLDecoder(new BufferedInputStream(new FileInputStream("c:/HandShape3D.xml"))); fred = (Shape3D) e.readObject(); e.close(); } catch(Exception e) { e.printStackTrace(); } ColouringAttributes at=new ColouringAttributes(); Apparence ap = new Apparence(); Color3f col = nouveau Color3f(1.0f, 0.0f, 1.0f); AttributsColoration ca = new AttributsColoration(col, AttributsColoration. NICEST); ap.setColoringAttributes(ca); fred.setAppearance(ap); objTransform.addChild(fred); MouseRotate myMouseRotate = new MouseRotate(); myMouseRotate.setTransformGroup(objTransform); myMouseRotate.setSchedulingBounds(new BoundingSphere()); objRoot.addChild(myMouseRotate); MouseTranslate myMouseTranslate = new MouseTranslate(); myMouseTranslate.setTransformGroup(objTransform); myMouseTranslate.setSchedulingBounds(new BoundingSphere()); objRoot.addChild(myMouseTranslate); MouseZoom myMouseZoom = new MouseZoom(); myMouseZoom.setTransformGroup(objTransform); myMouseZoom.setSchedulingBounds(new BoundingSphere()); objRoot.addChild(myMouseZoom); objRoot.compile(); renvoie objRoot; } public MouseBehaviorApp() { setLayout(new BorderLayout()); Canvas3D canvas3D = nouveau Canvas3D(SimpleUniverse.getPreferredConfiguration()); add("Centre", canvas3D); Scène BranchGroup = createSceneGraph(); SimpleUniverse simpleU = new SimpleUniverse(canvas3D); simpleU.getViewingPlatform().setNominalViewingTransform(); simpleU.addBranchGraph(scène); } public static void main(String args) { Frame frame = new MainFrame(new MouseBehaviorApp(), 256, 256); }} utilisez ceci pour une programmation complète ! vous avez terminé ! Et puis vous dites «. Je viens d'apprendre Java il y a un mois lol !

Conseillé: