2012-07-04 22 views
5

En three.js, intento crear una textura cuya imagen es la escena actual vista desde una cámara. Usar una CubeCamera para crear un efecto similar está bien documentado; y con CubeCamera He creado un ejemplo de una escena para ilustrar mi objetivo en:Cómo utilizar la cámara como imagen de textura en Three.js

http://stemkoski.github.com/Three.js/Camera-Texture-Almost.html

Sin embargo, me gustaría usar una cámara normal (más que un CubeCamera) como la textura. ¿Cómo podría hacer esto?

+2

¿Has visto el ejemplo de renderizar a textura Three.js? http://mrdoob.github.com/three.js/examples/webgl_rtt.html – WestLangley

Respuesta

5

Idealmente, esto funcionaría.

Init:

renderTarget = new THREE.WebGLRenderTarget(512, 512, { format: THREE.RGBFormat }); 

var planelikeGeometry = new THREE.CubeGeometry(400, 200, 200); 
var plane = new THREE.Mesh(planelikeGeometry, new THREE.MeshBasicMaterial({ map: renderTarget })); 
plane.position.set(0,100,-500); 
scene.add(plane); 

Render:

renderer.render(scene, topCamera, renderTarget, true); 
renderer.render(scene, topCamera); 

Y casi lo hace, pero tenemos algunos asuntos pendientes con texturas-y volteado que arruina la fiesta aquí.

Así que la mejor solución en este momento es utilizar el quad intermediry para voltear la textura (también guarda un render):

http://mrdoob.github.com/three.js/examples/webgl_rtt.html

3

Sobre la base de ejemplos y sugerencias de mrdoob, he creado un ejemplo de trabajo con comentarios muy detallados, disponible en:

http://stemkoski.github.com/Three.js/Camera-Texture.html

parte de mi serie de estilo tutorial serie de ejemplos en Three.js

http://stemkoski.github.com/Three.js/

+0

Fue mejor cuando 'TrackballControls' estaba en su lugar, se puede apreciar la recursión un poco más :) – mrdoob

+0

Algo malo está sucediendo en Safari 5.1 .7 y Firefox 13.0.1 - en mi máquina, al menos. (Funciona bien en Chrome 20.0.1132.47) Mac OS X Lion 10.7.4, AMD Radeon HD 6750M 512 MB Captura de pantalla: http://imgur.com/nfPEi – WestLangley

+0

Eso es bastante extraño ... No tengo idea de por qué eso podría estar pasando ... ¿alguno de mis otros tutoriales de Three.js en http://stemkoski.github.com/Three.js/ produce efectos similares? –

Cuestiones relacionadas