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 с более ранними шейдерами (или просто использовать старую версию из трех).

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