[英]ThreeJS: How to render scene to texture and temporarily override materials?
基:我有一個帶有普通物體的場景。 他們投下陰影。 地面是THREE.Plane的一個實例。
目標:我想通過將場景渲染為紋理(rtt),然后將信息讀回js來獲取有關陰影的信息。
想法:我將使用正交攝像機從頂部俯視場景來渲染場景。 相機附近屬性將設置為僅渲染對象接觸地面的部分(我已確保每個對象都具有雙面材質)。 地面將使用白色的材質顏色渲染,而所有其他對象將使用黑色的顏色渲染。 材料應該可以投射陰影,地面應該可以接收陰影。
問題:
如何使用暫時不同的對象材質渲染當前場景(我不想每次都需要獲取陰影信息時都復制它)?
renderer.render(scene, cameraRTT, rtTexture, true);
您可以嘗試使用場景的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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.