Динамическое включение / выключение сглаживания и теней в WebGLRenderer
Как я могу динамически включать и выключать сглаживание и тени в 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 );
1 ответ
Решение
Вы не можете включить / отключить сглаживание из контекста WebGL после создания. Единственный способ - создать новый контекст и снова отправить все буферы и текстуры.
Итак, в идеале вам нужно всего лишь создать новый WebGLRenderer
с антиалиасом логическим. Это пока не работает, но я работаю, чтобы это работало как можно скорее.