在 three.js 中,我试图创建一个纹理,其图像是从相机看到的当前场景。使用 CubeCamera 来创建类似的效果是有据可查的;我用 CubeCamera 创建了一个场景示例来说明我的目标:
http://stemkoski.github.com/Three.js/Camera-Texture-Almost.html
但是,我想使用普通相机(而不是立方体相机)作为纹理。我怎么能这样做?
最佳答案
理想情况下这会起作用。
初始化:
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 翻转纹理破坏了这里的聚会。
所以目前最好的解决方案是使用中间四边形来翻转纹理(也保存渲染):
关于javascript - Three.js中如何使用相机作为纹理图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11329180/