0

如何在 WebGLRenderer 中动态打开和关闭抗锯齿和阴影?

简单地改变抗锯齿和 shadowMapEnable 的属性是行不通的。我查看了源代码并找到了一个方法 updateShadowMap () 但它在版本 69 中被删除了。

更新:好的,我在这里找到的问题后半部分的答案 https://github.com/mrdoob/three.js/issues/2466

因此,以下代码可以正常工作:

renderer.shadowMapEnabled = false;

for(var i in tiles.children)
tiles.children[i].material.needsUpdate=true;

renderer.clearTarget( sun.shadowMap );
4

1 回答 1

5

创建后,您无法从 WebGL 上下文启用/禁用抗锯齿。唯一的方法是创建一个新的上下文并再次提交所有的缓冲区和纹理。

因此,理想情况下,您只需要WebGLRenderer使用 antialias 布尔值创建一个新的。这还行不通,但我正在努力让它尽快工作。

于 2014-12-18T20:59:32.613 回答