考虑到阴影投射的成本,我想知道对于动态定位的静态对象(例如:程序城市),是否有一个功能或可能/实验性的方法可以在 Three.js 中仅渲染一次阴影贴图(甚至在 webgl 中)。因此,结果可以在静态对象的下一帧中免费使用。仅当物体移动时才会进行阴影渲染。
EDIT
mrdoobs 批准:
renderer.shadowMap.autoUpdate = false;
renderer.shadowMap.needsUpdate = true; // when scene changes
原答案:
我找到了我的路:我复制了路verticesNeedUpdate
作品。我添加了一个shadowMapNeedsUpdate = true
WebGLRenderer 的参数。在 ShadowMapPlugin 的渲染函数中,我检查此参数是否为 true 并在之后将其设置为 false:
if( _renderer.shadowMapEnabled===false || _renderer.shadowMapNeedsUpdate===false ) return;
_renderer.shadowMapNeedsUpdate = false
这样,阴影贴图在第一次渲染时渲染一次,如果场景需要实时阴影贴图,则必须在渲染循环中对其进行精确处理。否则计算能力被释放
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)