基 我有一个普通物体的场景。他们投射和接收阴影。地面是THREE.Plane的一个实例。
目标: 我希望通过将场景渲染到纹理(rtt)然后将信息读回到js来获取有关阴影的信息。
思想: 我将使用正交相机从场景顶部渲染我的场景。属性附近的相机将被设置为仅渲染对象的一部分,它接触地面(我确保每个对象都有双面材质)。地面将呈现白色材料颜色,所有其他物体呈现黑色。材料应该可以投射阴影,地面应该能够接收它们。
问题:
如何使用临时不同的物体材质渲染当前场景(我不想在每次需要获取阴影信息时复制它)?
renderer.render(scene, cameraRTT, rtTexture, true);
答案 0 :(得分:0)
您可以尝试使用scene的overrideMaterial属性在渲染步骤之间切换材质,例如:
// Note: r66 code
// use material A
scene.overrideMaterial = materialA;
renderer.render(scene, camera, rtTexture);
// use material B
scene.overrideMaterial = materialB;
renderer.render(scene, camera, rtTexture);
您可以在此处查看示例: http://threejs.org/examples/webgl_postprocessing_godrays.html