Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   three.js: Отдаленные пейзажи (https://javascript.ru/forum/library-toolkit-framework/55237-three-js-otdalennye-pejjzazhi.html)

Nyashka 19.04.2015 12:33

three.js: Отдаленные пейзажи
 
Как правильно сделать панорамный "задник" в игре? Создаю 4 плоскости с геометрией PlaneGeometry с 4 разными текстурами, материалы:THREE.MeshLambertMaterial({map: skyTexture1, color:0xffffff, ambient:0xffffff, specular:0xffffff, transparent: false}), затем skyTexture2, 3 и 4.

Проблема в том, что на стыках плоскостей видно, что на каждой плоскости цвет неба разный, хотя в графическом редакторе был задан одинаковый. Отключение освещения (Directional Light) не помогло, все равно заметна граница.

Видел пример "three.js skybox", но там используется куб с пестрой текстурой, на которой, как я понял, просто не видны эти переходы.

Можно попробовать сделать задники сферой, но в игре используется квадратная карта, поэтому сферу придется сделать слишком большой и текстура для нее получится тоже огромная.

Есть ли способ заставить эти плоскости отображаться на сцене одинаково, то есть, в их оригинальных цветах и яркости?




Nyashka 20.04.2015 12:55

Проблема временно решена за счет использования общего фонового цвета сцены и прозрачности "задников" (png) в области неба. Для того, чтобы из-за особенностей webGL blending "задники" не выскакивали вперед других объектов, им присвоено более "глубокое" значение рендеринга: plane.renderDepth=1. Но это работает на билде three.js r69. На последующих - другая система задания порядка рендеринга.
Цитата:

For r70 is renderDept function removed.
На последнем, r71, еще не экспериментировал.





Однако, решение в виде независимости "задников" от общего освещения сцены по-прежнему было бы интереснее.


Часовой пояс GMT +3, время: 20:28.