Java 3D

8 respostas
SanjuanRJ

Estou tentando usar java3d pela primeira vez e está acontecendo o seguinte erro:
Já instalei o java3d-1_5_1 no meu windows e já importei os .jars necessários...

alguém tem alguma sugestão??? :D

package cap1;

/********************* BIBLIOTECAS UTILIZADAS **********************/
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import javax.media.j3d.*;
import com.sun.j3d.utils.geometry.ColorCube;
import com.sun.j3d.utils.universe.*;
import javax.vecmath.*;

public class Lesson1 extends JFrame implements KeyListener
{
	/*---------------------------- ATRIBUTOS -------------------------*/
	/*Universo Virtual*/
	private VirtualUniverse	universe;
	
	/*Ponto de referência no mundo virtual - localização dos objetos)*/
	private Locale locale;
	
	/*Objeto que faz a ligação entre o universo virtual e a janela*/
	private Canvas3D canvas3D;
	
	/*Objetos que fazem parte do subgrafo de contexto*/
	private BranchGroup objRoot;
	private ColorCube colorCube;

	/*Variável que controla o estilo da tela: true (modo FullScreen), false (modo janela)*/
	boolean screenMode=true;

	/*-----------------------------------------------------------------*/
 
	/*--------------------------- CONSTRUTOR --------------------------*/
	public Lesson1()
	{
		/************************ PROGRAMAÇÃO JAVA **********************/

		/*Utilização de um objeto Dimension para obter as configurações da tela*/
		Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();

		/*Ajusta o tamanho da janela*/
		this.setSize(dimension.width,dimension.height);

		/*Retira as bordas da janela, criando o modo FullScreen*/
		if (screenMode)
		{
			this.setUndecorated(true);
		}
		else
		{
			this.setTitle("Curso de Desenvolvimento de Jogos com Java + Java3D ? Primeiro Programa");
		}

		/*Trata os eventos do teclado*/
		addKeyListener(this);
	
		/************************* PROGRAMAÇÃO EM JAVA3D ****************/
		
		/*Cria o universo virtual*/
		universe = new VirtualUniverse();

		/*Cria o Locale e anexa-o ao mundo virtual*/
		locale = new Locale(universe); 

		/*Cria o objeto canvas3D*/
		canvas3D = new Canvas3D(null);
		/*Ajusta a cor do canvas3D*/
		canvas3D.setBackground(Color.black);
		/*Ajusta a dimensao do canvas 3D (mesmo tamanho da janela)*/
		canvas3D.setSize(dimension.width, dimension.height);

		/*Adicionando o subgrafo de visualização*/
		locale.addBranchGraph(createViewGraph());

		/*adicionando o subrafo de contexto*/
		locale.addBranchGraph(createContextGraph());

		/************************** PROGRAMAÇÃO JAVA ********************/
	
		/*Adiciona o canvas3D ao tratador de eventos do teclado*/
		canvas3D.addKeyListener(this);
		
		/*Adiciona o canvas3D a janela e o exibe*/
		this.getContentPane().add(canvas3D);
		this.show();
	}

	/*-----------------------------------------------------------------*/
	
	/*--------------------------- METODOS -----------------------------*/

	/*Método que cria o subgrafo de visualização*/
	BranchGroup createViewGraph()
	{
		/*Cria um objeto BranchGroup*/
		BranchGroup viewPlatformBG = new BranchGroup();
  
		/*Cria um objeto View*/
		View view = new View();	 
 		 
		/*Cria um objeto ViewPlataform*/
		ViewPlatform viewPlatform = new ViewPlatform();	 
 		 
		/*Cria um objeto PhysicalBody*/
		PhysicalBody physicalBody = new PhysicalBody(new Point3d(0, 0, 0),new Point3d(0, 0, 0)); 
  
		/*Cria um objeto PhysicalEnvironment*/
		PhysicalEnvironment physicalEnvironment = new PhysicalEnvironment();
 		
		/*Adiciona vewPlatform ao view*/
		view.attachViewPlatform(viewPlatform);
		/*Adiciona physicalBody ao view*/
		view.setPhysicalBody(physicalBody);
		/*Adiciona physicalEnvironment ao view*/
		view.setPhysicalEnvironment(physicalEnvironment);
		/*Adiciona canvas ao view*/
		view.addCanvas3D(canvas3D);
 
		/*Cria um objeto Transform3D */
		Transform3D transform3D = new Transform3D();
		/*Configura o Transform3D com o Vector3f*/
		transform3D.set(new Vector3f(0.0f, 0.0f, 10.0f));
		/*Cria um objeto TransformGroup*/
		TransformGroup viewPlatformTG = new TransformGroup(transform3D);
		/*Adiciona o ViewPlatform ao TransformGroup*/
		viewPlatformTG.addChild(viewPlatform);
			
		/*Adiciona o TransformGroup ao BranchGroup*/
		viewPlatformBG.addChild(viewPlatformTG);

		/*Retorna o BranchGroup contendo o subgrafo de visualização*/
		return viewPlatformBG;
	}

	/*Metodo que cria o subgrafo de contexto*/
	BranchGroup createContextGraph()
	{
		/*Cria o branchgroup do subgrafo de contexto*/
		BranchGroup contextGraph = new BranchGroup();

		/*Cria um cubo colorido e o adiciona ao branchgroup do subgrafo de contexto*/
		colorCube = new ColorCube();
		contextGraph.addChild(colorCube);

		/*Retorna o BranchGroup contendo o subgrafo de contexto*/
		return contextGraph;
	}

	/*Metodo que trata os eventos de tecla pressionada*/
	public void keyPressed(KeyEvent e)
	{
		if (e.getKeyCode()==KeyEvent.VK_ESCAPE)
		{
			System.exit(1);
		}
	}

	/*Metodo que trata os eventos de tecla pressionada e liberada*/
	public void keyReleased(KeyEvent e)
	{

	}

	/*Metodo que trata dos eventos de teclas que não são de ação (CAPS, HOME, END)*/
	public void keyTyped(KeyEvent e)
	{
	
	}

	/*Método principal*/
	public static void main(String[] args) 
	{
		new Lesson1();
	}
	/*-----------------------------------------------------------------*/
}

07/10/2007 14:01:36 javax.media.j3d.NativePipeline getSupportedOglVendor
SEVERE: java.lang.UnsatisfiedLinkError: no j3dcore-ogl-chk in java.library.path
Exception in thread "main" java.lang.UnsatisfiedLinkError: no j3dcore-d3d in java.library.path
at java.lang.ClassLoader.loadLibrary(Unknown Source)
at java.lang.Runtime.loadLibrary0(Unknown Source)
at java.lang.System.loadLibrary(Unknown Source)
at javax.media.j3d.NativePipeline$1.run(NativePipeline.java:189)
at java.security.AccessController.doPrivileged(Native Method)
at javax.media.j3d.NativePipeline.loadLibrary(NativePipeline.java:180)
at javax.media.j3d.NativePipeline.loadLibraries(NativePipeline.java:137)
at javax.media.j3d.MasterControl.loadLibraries(MasterControl.java:948)
at javax.media.j3d.VirtualUniverse.(VirtualUniverse.java:280)
at cap1.Lesson1.(Lesson1.java:60)
at cap1.Lesson1.main(Lesson1.java:173)

8 Respostas

SanjuanRJ

Ninguém??? :cry:

T

mude na linha 66
botar uma configuracao ao inves de null

J

a classe SimpleUniverse possui um metodo mais ou menos assim: getConfiguracaoPadrao()
dá uma olhada
flws!

M

A resposta esta ai…
http://forums.java.net/jive/message.jspa?messageID=266294

Marky.Vasconcelos

Tem esse livro http://fivedots.coe.psu.ac.th/~ad/jg/ (Pode ser visto no site)

Que é excelente pra aprender a trabalhar com o Java 3D puro.

S

Bom ressucitando o topico, alguem sabe como arrumar esse erro?

07/10/2007 14:01:36 javax.media.j3d.NativePipeline getSupportedOglVendor
SEVERE: java.lang.UnsatisfiedLinkError: no j3dcore-ogl-chk in java.library.path
Exception in thread “main” java.lang.UnsatisfiedLinkError: no j3dcore-d3d in java.library.path

Seguinte eu pesquisei bastante antes de chegar aqui, o que acontece é que me parece que a versão java3d para 64bits vem sem umas .dll, inclusive essa do erro(j3dcore-ogl-chk),
mas não consegui resolver, gostaria de saber se alguem pode me ajudar ou/e se alguem roda o java3d normalmente com 64bits? meu pc é um windows 7 64bits.
Grato.

E

Olha, até onde eu bem sei usar programas 32 bits em máquinas 64 não dão problema nenhum, tanto é que eu uso no meu. É até melhor, pois ainda hoje a grande maioria das pessoa usa 64 bits. Então recomendo trocar de biblioteca por enquanto.

Quando tu conhecer mais, aí sim tu usa 64 bits.

ViniGodoy

Eu não apostaria em Java3D hoje em dia. Melhor usar o JMonkey: http://www.jmonkeyengine.com/

Criado 7 de outubro de 2007
Ultima resposta 11 de fev. de 2011
Respostas 8
Participantes 8