three.js R71 - удалено окружение, как настроить, чтобы получить те же результаты рендеринга?
В Three.JS R71 ambient
имущество было удалено из THREE.Material
,
Ранее я использовал ambient
установить правильный эффект рендеринга (освещения) материалов, которые я использовал в своих сетках. Теперь внешний вид всех моих сеток резко изменился.
Как я могу получить мои материалы точно так же, как и до r71?
2 ответа
Вот почему...
По словам @WestLangley; Я цитирую его пост в обсуждении (ссылка с @pprchsvr):
material.ambient
была отражательная способность материала. Для объектов реального мира это должно обычно соответствоватьmaterial.color
диффузный коэффициент отражения материала. (В конце концов, объекты не знают, откуда пришли фотоны.)Мы решили упростить API и аппаратное обеспечение
material.ambient
соответствоватьmaterial.color
, Как следствие,material.ambient
был удален.
Это означает, что вы больше не сможете устанавливать цвет окружающей среды, который отличается от цвета материала, и, насколько я знаю, нет "быстрого исправления", чтобы получить те же результаты рендеринга для этих материалов, что и раньше.
Возможным решением будет попытаться сделать материал таким же, как и раньше, настроив / изменив цвет материала и окружающее освещение в вашей сцене.
См. Также документацию three.js для THREE.AmbientLight и THREE.MeshBasicMaterial (и других материалов) для справки.В качестве альтернативы вы можете создать свой собственный материал шейдера, используя THREE.ShaderMaterial, где вы (повторно) создаете шейдер, который позволяет вам явно установить окружающий цвет.
Эта проблема обсуждается здесь:
https://github.com/mrdoob/three.js/issues/6501
Или вы можете переопределить шейдер (ы) r71 с более ранними шейдерами (или просто использовать старую версию из трех).