2012-07-04 73 views
5

在three.js中,我试图创建一个纹理,其图像是从相机查看的当前场景。使用CubeCamera创建类似的效果已有详细记录;与CubeCamera我创建了一个场景的例子来说明我的目标是:如何在Three.js中使用相机作为纹理图像

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

不过,我想用一个普通相机(而不是CubeCamera)的质感。我怎么能这样做?

+2

你看过Three.js渲染到纹理的例子吗? http://mrdoob.github.com/three.js/examples/webgl_rtt.html – WestLangley

回答

5

理想情况下,这将工作。

初始化:

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); 

渲染:

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

它几乎不会,但我们有与此遗址党Y型翻转纹理一些未竟的事业。

所以目前最好的解决办法是使用intermediry四快进快出的纹理(也节省了渲染):

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

3

基于mrdoob的榜样和建议,我已经创建了一个工作示例有非常详细的注释,网址为:我的系列教程式three.js所一系列例子的

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

部分在

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

+0

当“TrackballControls”到位时,它会更好,你可以更多地欣赏递归:) – mrdoob

+0

Safari 5.1中发生了一些不好的事情.7和Firefox 13.0.1 - 至少在我的机器上。 (在Chrome 20.0.1132.47中可以正常工作)Mac OS X Lion 10.7.4,AMD Radeon HD 6750M 512 MB 屏幕截图:http://imgur.com/nfPEi – WestLangley

+0

这很奇怪......我不知道为什么可能正在发生......在http://stemkoski.github.com/Three.js/上执行我的其他Three.js教程会产生类似的效果吗? –

相关问题