Índice:

Usando o Blender para criar modelos Java3D: 3 etapas
Usando o Blender para criar modelos Java3D: 3 etapas

Vídeo: Usando o Blender para criar modelos Java3D: 3 etapas

Vídeo: Usando o Blender para criar modelos Java3D: 3 etapas
Vídeo: Blender para iniciantes, Modelagem de asset - Parte 1 l Mini - Curso Bau #001 2024, Junho
Anonim
Usando o Blender para criar modelos Java3D
Usando o Blender para criar modelos Java3D

Se você é um programador Java, provavelmente já desejou programar em 3D em algum momento. Mas como? Bem, você pode usar Java3D e digitar lentamente cada ponto em um polígono 3D (tente, acredite, é uma má ideia), ou você pode usar o Blender (https://blender.org) um programa de modelagem 3D gratuito e de código aberto junto com um script chamado Blend2Java (https://sourceforge.net/projects/blend2java/). No entanto, a documentação do Blend2Java é quase inexistente, então é por isso que estou aqui escrevendo isso.

Etapa 1: Baixe os programas

Você precisará do Blender (https://blender.org) e do Blend2Java (https://sourceforge.net/projects/blend2java/). Ok, então quando você tiver os dois, comece fazendo um modelo simples (ou apenas usando o cubo padrão) no Blender.

Etapa 2: Exporte seu modelo para XML

Exporte seu modelo para XML
Exporte seu modelo para XML

Assim que tiver um modelo que gostaria de usar no Blender, abra o Modo de Edição e pressione a tecla "a" para selecionar todos os pontos. No painel inferior, selecione o editor de texto. Abra um novo arquivo no editor de texto. Abra o arquivo blend2java.py que você baixou. Run. Ok seu objeto agora deve estar em. XML onde quer que você o tenha salvo (se você tiver uma mensagem de erro, certifique-se de que você tem apenas 1 material para o objeto). Renomeie o objeto (terá um nome estranho).

Etapa 3: importar o objeto para Java

Importe o objeto para Java
Importe o objeto para Java

Shape3D fred = null; tente {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); // o nome do seu arquivo aqui fred = (Shape3D) e.readObject (); e.close (); } catch (Exception e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Aparência ap = nova Aparência (); Color3f col = novo Color3f (1.0f, 0.0f, 1.0f); ColoringAttributes ca = new ColoringAttributes (col, ColoringAttributes. NICEST); ap.setColoringAttributes (ca); fred.setAppearance (ap); obj.addChild (fred); insira isso em qualquer código 3D ou use o código inteiro aqui import java.io. *; import java.beans. XMLDecoder; import java.applet. Applet; import java.awt. *; import java. awt.event. *; import com.sun.j3d.utils.applet. MainFrame; import com.sun.j3d.utils.universe. *; import javax.media.j3d. *; import javax.vecmath. *; import java.applet. Applet; importar java.awt. BorderLayout; importar java.awt. Frame; importar com.sun.j3d.utils.applet. MainFrame; importar com.sun.j3d.utils.geometry. ColorCube; importar 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; public class MouseBehaviorApp estende Applet {public BranchGroup createSceneGraph () {BranchGroup objRoot = new BranchGroup (); TransformGroup objTransform = novo TransformGroup (); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_WRITE); objTransform.setCapability (TransformGroup. ALLOW_TRANSFORM_READ); objRoot.addChild (objTransform); Shape3D fred = null; tente {XMLDecoder e = new XMLDecoder (new BufferedInputStream (new FileInputStream ("c: /HandShape3D.xml"))); fred = (Shape3D) e.readObject (); e.close (); } catch (Exception e) {e.printStackTrace (); } ColoringAttributes at = new ColoringAttributes (); Aparência ap = nova Aparência (); Color3f col = novo 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 = new MouseRotate (); myMouseRotate.setTransformGroup (objTransform); myMouseRotate.setSchedulingBounds (novo BoundingSphere ()); objRoot.addChild (myMouseRotate); MouseTranslate myMouseTranslate = new MouseTranslate (); myMouseTranslate.setTransformGroup (objTransform); myMouseTranslate.setSchedulingBounds (novo BoundingSphere ()); objRoot.addChild (myMouseTranslate); MouseZoom myMouseZoom = novo MouseZoom (); myMouseZoom.setTransformGroup (objTransform); myMouseZoom.setSchedulingBounds (novo BoundingSphere ()); objRoot.addChild (myMouseZoom); objRoot.compile (); return objRoot; } public MouseBehaviorApp () {setLayout (new BorderLayout ()); Canvas3D canvas3D = novo Canvas3D (SimpleUniverse.getPreferredConfiguration ()); add ("Centro", canvas3D); BranchGroup scene = createSceneGraph (); SimpleUniverse simpleU = novo SimpleUniverse (canvas3D); simpleU.getViewingPlatform (). setNominalViewingTransform (); simpleU.addBranchGraph (cena); } public static void main (String args) {Frame frame = new MainFrame (new MouseBehaviorApp (), 256, 256); }} use isso para uma programtada completa! você terminou! e então você diz "e agora"? Eu não tenho ideia! Acabei de aprender Java há um mês lol!

Recomendado: