javascript - Three.js中如何使用相机作为纹理图像

标签 javascript three.js

在 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 翻转纹理破坏了这里的聚会。

所以目前最好的解决方案是使用中间四边形来翻转纹理(也保存渲染):

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

关于javascript - Three.js中如何使用相机作为纹理图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11329180/

相关文章:

Java 相当于 javascript 中的返回函数

javascript - 从 JavaScript 代码中提取字符串

javascript - 更改 jQuery UI 小部件中的深层选项

javascript - 带阻尼的 OrbitControls

javascript - THREE.js 中自定义网格的变形目标动画

javascript - 在 three.js 中将面数组添加到 BufferGeometry

javascript - 如何使用 ajax 调用将已删除的行名称从 jQuery 中的网格传递到 Controller (服务器端)

javascript - 使用 Javascript 按名称将多个元素添加到 JSON 对象

javascript - MurmurHash3_32 Java 返回负数

javascript - Three.js - 一起使用视口(viewport)和 EffectComposer