Nyashka | Дата: Вторник, 21 Апреля 2015, 15:30 | Сообщение # 1 | Тема: Движок threejs |
уже был
Сейчас нет на сайте
| Цитата al_mt ( ) Кто-нибудь пользуется? Пишу сейчас на нем игру. А также создал 3D сайт. Самое замечательное в это движке - то, что он не требует установки у пользователя.
Добавлено (21 апреля 2015, 15:30) --------------------------------------------- Возник такой вопрос.
Как правильно сделать панорамные "задники" в игре? Создаю 4 плоскости с 4 сторон с геометрией PlaneGeometry с 4 текстурами. Материалы:THREE.MeshLambertMaterial({map: skyTexture1, color:0xffffff, ambient:0xffffff, specular:0xffffff, transparent: false}), затем skyTexture2, 3 и 4.
Проблема в том, что на стыках плоскостей видно, что на каждой плоскости цвет неба разный, хотя в графическом редакторе был задан одинаковый. Отключение освещения (Directional Light) не помогло, все равно заметна граница. Видел пример "three.js skybox", но там используется куб с пестрой текстурой, на которой, как я понял, просто не видны эти переходы.
Можно сделать задники сферой, но в игре используется квадратная карта, поэтому сферу придется делать слишком большой и текстура для нее будет тоже огромная.
Есть ли способ заставить эти плоскости отображаться на сцене одинаково, то есть, в их оригинальных цветах и яркости?
Проблема временно решена за счет использования общего фонового цвета сцены и прозрачности "задников" (png) в области неба. Для того, чтобы из-за особенностей webGL blending "задники" не выскакивали вперед других объектов, им присвоено более "глубокое" значение рендеринга: plane.renderDepth=1. Но это работает на билде three.js r69. На последующих - другая система задания порядка рендеринга. Цитата For r70 is renderDept function removed. На последнем, r71, еще не экспериментировал.
Однако, решение в виде независимости "задников" от общего освещения сцены по-прежнему было бы интереснее.
Скрины до и после:
Сообщение отредактировал Nyashka - Вторник, 21 Апреля 2015, 15:34 |
|
| |