2016-04-16 4 views
0

comment puis-je projeter une caméra sur un cube en tant que texture dans JMonkeyEngine3? cela vous dérangerait-il de m'aider?Comment puis-je projeter une caméra sur un cube en tant que texture dans jMonkeyEngine 3?

J'essaie de le faire par ce morceau de code mais le travail dosent:

private void addCamera() { 
    Camera c = new Camera(100, 100); 
    c.setViewPort(0, 1, 0, 1); 
    c.setLocation(Vector3f.ZERO); 

    ViewPort v = new ViewPort("c", c); 
    v.attachScene(rootNode); 
    FrameBuffer fb = v.getOutputFrameBuffer(); 
    fb.setDepthBuffer(Format.Depth); 
    Texture2D niftytex = new Texture2D(1024, 768, Format.RGB8); 
    fb.setColorTexture(niftytex); 

    Box b = new Box(Vector3f.ZERO, 1, 1, 1); 
    Geometry geom = new Geometry("Box", b); 
    Material mat = new Material(assetManager,  "Common/MatDefs/Misc/Unshaded.j3md"); 
    mat.setTexture("m_ColorMap", niftytex); 
    /** 
    * Here comes the texture! 
    */ 
    geom.setMaterial(mat); 
    localRootNode.attachChild(geom); 

} 
+0

Qu'est-ce qui ne fonctionne pas exactement? Je pourrais repérer un certain nombre de problèmes ici: 1) 'fb' est NULL. 2) Vous devez définir 'v.setOutputFrameBuffer()' 3) Le paramètre matériel est 'ColorMap' sans le' m_'. – 1000ml

Répondre

1

Si vous utilisez l'exemple TestRenderToTexture dans le projet jme3-examples, vous obtiendrez ce que vous voulez. Vous pouvez mettre le tout dans une classe util et juste l'appeler à partir de votre projet (je l'ai fait moi-même).