Создание эффекта гало (halo) в BGE

В уроке будет рассмотрен вопрос создания эффекта гало в БГЕ, а также использования текстур с альфа-каналом с помощью нодов.

Урок является вольным пересказом видеоурока от John Hamilton:
Using the halo feature in the Blender Game Engine

Итак, включаем Блендер, удаляем дефолтный куб (у кого он есть), включаем режим затенения GLSL, добавляем в сцену плейн, который и будет имитировать эффект гало. Делаем ему развертку и переименовываем.

Все как обычно. Открываем GIMP или другой графический редактор и создаем новое изображение размером 512х512 пикселей. У вас может быть и другое разрешение. Выбираем кисть с мягкой границей, подбираем ее размер до желаемого и рисуем нужное изображение (кто сказал, что гало это обязательно круг?)

Затем сохраняем и экспортируем полученное изображение текстуры гало, для нашего плейна. Теперь начинается самое интересное, накладывать эту текстуру мы будем с помощью нодов. Поэтому переключаемся на разметку экранов Compositing, выбираем наш плейн — «гало», если еще не выбрали, добавляем ему новый материал, ставим галочку в чекбоксе «Use Nodes». Удаляем ноду Material (сам в шоке). Переходим в окно Properties, вкладку Texture и добавляем новую текстуру, тип — Image or Movie, загружаем то изображение, которое готовили и переименовываем текстуру. Не забываем поставить галочку в чекбоксе «Use Alpha».
В окне и добавляем ноду Input -> Geometry и ноду Input -> Texture, которой сразу присваиваем нашу текстуру. Соединяем ноды как на картинке:

В принципе, с нодами закончили. При желании можно вернуться к дефолтной разметке экрана. Теперь нужно настроить наш материал, в окне Properties, вкладкe Material открываем свиток Render Pipeline Options, ставим галочку в чекбоксе Transparency и нажимаем кнопку Z Transparecy. Должно получиться как на картинке.

Дальше необходимо перейти в настройках материала в свиток Game Settings, выбрать режим ориентации граней Halo, как здесь:

С настройками материала все. Но если сейчас запустить игру, то ничего мы не увидим, потому что плейн автоматически развернется локальной осью (ВНЕЗАПНО) X в сторону камеры — а это грань. Нужно развернуть полигон перпендикулярно локальной оси X. Переходим в режим редактирования (Tab), выделяем все вершины (А), затем поворачиваем по оси Y на 90 градусов (R -> Y -> 90). Запускаем игру (Р) из разных положений, убеждаемся, что плейн всегда перпендикулярен виду из камеры.
Если добавить объект, который должен испускать получившееся «свечение», то мы увидим несколько безобразную картинку, объект виден наполовину и совсем непохоже, что светится.

Снова переходим в режим редактирования и сдвигаем полигон по оси X (G -> X), так , чтобы он слегка вышел за край «светящегося» объекта. Запускаем игру, любуемся.

Добавлю, что ничто не мешает наложить текстуру на материал как обычно, но сам способ интересен. Кроме того, вполне можно наложить не просто текстуру в виде одинокого светового пятна, а в виде последовательности, чтобы свечение «мерцало», как например, пламя свечи.

 

Автор вольного пересказа: denis8424

 

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.