Posição de objetos Java 3d

10 respostas
JJjava

ola pessoa,

como faço para posicionar os objetos em determinadas cooredenadas, por exemplo quando eu crio um cilindro ele é adicionado do centro da tela, mas se depois eu criar uma caixa a caixa fica dentro do cilindro nao sei como mudar as coordenadas de posição

grato

10 Respostas

Wolf_X

mano, vc vai ter q alterar via Transform3D usando um vector3f, coloquei um exemplo ai :

public void setPosicao(SceneGraphObject p, Vector3f v,BranchGroup bg){
        try{
            Transform3D t3d = new Transform3D();
            t3d.set(v); 
            TransformGroup tg = new TransformGroup(t3d);
            tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
            tg.setCapability(TransformGroup.ALLOW_CHILDREN_EXTEND);
            tg.setCapability(TransformGroup.ALLOW_BOUNDS_WRITE);
            tg.setCapability(TransformGroup.ALLOW_CHILDREN_READ);
            tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
            tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
            tg.addChild((Node) p);  
            bg.addChild(tg);        
        } catch(Exception e){
            e.printStackTrace();
        }
    }
JJjava

pow kara consegui fazer esse codigo funcionar mas agora estou tento probelma com textura gera o seguinte erro

Exception in thread "main" com.sun.j3d.utils.image.ImageException: javax.imageio.IIOException: Can't read input file!
        at com.sun.j3d.utils.image.TextureLoader$1.run(TextureLoader.java:344)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.j3d.utils.image.TextureLoader.<init>(TextureLoader.java:337)
        at com.sun.j3d.utils.image.TextureLoader.<init>(TextureLoader.java:291)
        at javaapplication11.Main.criaGrafoDeCena(Main.java:149)
        at javaapplication11.Main.<init>(Main.java:33)
        at javaapplication11.Main.main(Main.java:169)
Caused by: javax.imageio.IIOException: Can't read input file!
        at javax.imageio.ImageIO.read(ImageIO.java:1275)
        at com.sun.j3d.utils.image.TextureLoader$1.run(TextureLoader.java:342)
        ... 6 more
BUILD STOPPED (total time: 13 seconds)
o codigo e
public Box Caixa()
    {
        
        Appearance app = new Appearance();   
         TextureLoader tex= new TextureLoader("grass.jpeg",this);
        ImageComponent2D imagem =  tex.getImage();
        Texture2D textura= new Texture2D();
        textura.setImage(0, imagem);
        app.setTexture(textura);
         Box b=new Box(0.5f,0.5f,0.1f,app);
        
                return b;
    }
ja testei com outros tipos de imagem tb como .gif e .bmp grato...
JJjava
mudei o codigo para
public Box Caixa()
    {
        
        Appearance app = new Appearance();   
    //  ImageIcon mapImage= new ImageIcon("grass.png");
Box b;
         TextureLoader tex= new TextureLoader("c:\\grass.gif",this);
        ImageComponent2D imagem = tex.getImage();
        Texture2D textura= new Texture2D();
        textura.setImage(0, imagem);
        app.setTexture(textura);
          b=new Box(0.5f,0.5f,0.1f,app);
        
                return b;
    }

e o erro agora e

Exception in thread "main" java.lang.IllegalArgumentException: Texture:illegal image size
at javax.media.j3d.TextureRetained.checkImageSize(TextureRetained.java:400)
at javax.media.j3d.TextureRetained.initImage(TextureRetained.java:345)
at javax.media.j3d.Texture.setImage(Texture.java:940)
at javaapplication11.Main.Caixa(Main.java:85)
at javaapplication11.Main.criaGrafoDeCena(Main.java:166)
at javaapplication11.Main.(Main.java:40)
at javaapplication11.Main.main(Main.java:175)
obs tentei muitos tamanhos de iamgens desde 1x1 , 2x2 ,4x4, 8x8 ate 1024x1024 em varios formatos tb
grato...

Wolf_X

mano, toda vez q eu preciso carregar uma textura eu crio um bufferedImage e na textura eu faço assim :

BufferedImage bi = ImageIO.read(getClass().getResource("imagem.jpg"));
Texture t = new TextureLoader(bi).getTexture();
JJjava

Consegui carregar a textura agoraestou tendo dificukdade de colcar os objetos na posição certa o cilindro q faço esta ficando deitado quero q ele fique em pe como faço isso ?

JJjava

agora que ja fiz o cenario como faço um personagem nao tenho ideia de como começar
grato…

Wolf_X

i rapaz, agora o lance complica, eu tb to aprendendo, ateh hj apenas carreguei .obj e os movimentei em tempo de execução mas ainda nao consigo faze-los se mover de forma dinamica , tipo assim : eu carrego um homem mas nao consigo faze-lo andar perfeitamente, apenas altero a posição e a rotação dele, qdo vc conseguir , me avisa :smiley:

JJjava

eu queria modelar o bonequinho em algum progrma do tipo 3d max mas sera q dá pra importar depois pro java
?

JJjava

kara como posso fazer um bonequinho nao sei como juntar as partes dele sei tinha pensado em usar uma esfera pra cabeça o corpo um box as pernar e braços cilindros mas nao sei por onde começar por onde vc costuma começar?
grato Hudson

Wolf_X

mano, tu ta perguntando pro cara errado, eu nao to tao afrente de vc, estou mexendo com formas basicas, pois minha preocupação no momento eh controlar as ações , demorei qse um mes pra conseguir interagir com objetos :frowning: agora estou tentando mudar a iluminação do objeto qdo o mouse estiver sobre ele, qto a movimentação q vc procura eu te indico q acesse aqui :
fivedots.coe.psu.ac.th/~ad/jg/
o vinigodoy q me passo esse link , EH MTO SHOW!

Criado 12 de novembro de 2007
Ultima resposta 14 de nov. de 2007
Respostas 10
Participantes 2