2012-06-24 26 views
5

En ThreeJS (JavaScript/WebGL) ¿cómo puedo crear una imagen de fondo estática que sea parte de la escena pero que cambie el tamaño para que se ajuste a la ventana interna completa del navegador exactamente? Funciona cuando uso CSS pero luego la imagen de fondo no se muestra al hacer una "captura de pantalla" a través de renderer.domElement.toDataURL ('image/png'), que quiero. ¡Gracias!ThreeJS: ¿Crear una imagen de fondo que se ajuste exactamente a la ventana?

+0

va a la cámara ser estática en la escena, o va a ser capaz de moverse ? ¿Has pensado en intentar hacer un palco? –

+0

¿Qué tipo de renderizador usas? –

+0

Cory, actualmente tengo una cámara estática. Estoy colocando una caja texturizada en la parte posterior de la escena, pero no sé qué dimensiones darle a la caja para que llene exactamente la pantalla con su textura. Danny, estoy usando WebGLRenderer. ¡Gracias! –

Respuesta

13

Puede usar una escena de fondo separada para representar la imagen de fondo.

var bg = new THREE.Mesh(
    new THREE.PlaneGeometry(2, 2, 0), 
    new THREE.MeshBasicMaterial({map: backgroundTexture}) 
); 

// The bg plane shouldn't care about the z-buffer. 
bg.material.depthTest = false; 
bg.material.depthWrite = false; 

var bgScene = new THREE.Scene(); 
var bgCam = new THREE.Camera(); 
bgScene.add(bgCam); 
bgScene.add(bg); 

Luego, en su ciclo de renderizado, dibuje bgScene antes de su escena real.

renderer.autoClear = false; 
renderer.clear(); 
renderer.render(bgScene, bgCam); 
renderer.render(scene, cam); 
+0

¡Muchas gracias intentaré esto! –

+0

no funciona para mí, estoy usando 'OBJMTLLode'r, sin que esto funcione bien, ¿qué se supone que debe hacer para' OBJMTLLoder' y 'OBJLoder' ??? –

+0

sí, finalmente funcionó .... –

0

No estaba claro para mí si usted está tratando de hacer un visor panorámico o algo por el estilo ...

Si ese era su objetivo, he aquí una respuesta que he dado para resolver el problema de la insertar una imagen equirectangular a la esfera prestados (que puede ser controlado por el ratón y/o deviceOrientation [acelerómetro en los teléfonos inteligentes]):

https://stackoverflow.com/a/37129356/1920145

Cuestiones relacionadas