Динамическое включение / выключение сглаживания и теней в 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 с антиалиасом логическим. Это пока не работает, но я работаю, чтобы это работало как можно скорее.

Другие вопросы по тегам