Четверг, 16.05.2024, 09:09
Вы вошли как Гость | Группа "Гости" | RSS
 
РегистрацияВыходВход
1  2  3  4  5  6  7  8  9  10  11  12  13

.

как делать реальные статические тени в играх.


Render To Texture

Очень многие стали задавать вопрос, как делать реальные статические тени в играх. Ответ прост - LightMap (Карта света). Я решил написать урок по созданию Light Map(ЛМ), потому что на мой взгляд это легко и красиво. :) Для этого нам понадобится 3D Studio MAX 5(или больше) и игровой движок.
Вступление.

Очень многие стали задавать вопрос, как делать реальные статические тени в играх. Ответ прост - LightMap (Карта света).
Я решил написать урок по созданию Light Map(ЛМ), потому что на мой взгляд это легко и красиво. :)

Для этого нам понадобится 3D Studio MAX 5(или больше) и игровой движок.

***

Часть 1
-----------------------------

Вот наша сцена.

 

Делаем её супермегареалистичной :)))
Я использовал для этого Mental Ray рендер.
Наворотил её немного. Добавил текстур, источников света разноцветных и т.д...
Также добавил камеру. 
Отрендерил то, что получилось.

 

А вот, как выглядит в Максе.

 

В этом уроке мы создадим 2 ЛМ. Одна для стен и пола(потолка), другая для объектов. Итак приступим.

***
Часть 2
-----------------------------

Атачим все объекты сцены в один. (Editable Poly->Attach) Применим к этим объектам модификатор Unvrap UVW и присмотримся к его панели.

 

Там мы найдем пункт Map Channel(Канал текстуры). По умолчанию он первый. Если нажать кнопку Edit, то мы увидим координаты нашей наложеной текстуры. Она у нас наложена по первому каналу. Закроем окно Edit. Пока оно нам не нужно.
Нажимаем 0(ноль). Или в меню вверху вибираем Rendering->Render to texture. Появляется вот эта панель.

 

Жмём кнопку Add и в списке выбираем Lightning Map. Теперь называем нашу текстуру и указываем путь. 
(1) Устанавливаем нужный размер текстуры (обязательно кратный степени двойки). Лучше выбрать из уже предоставленых. Он появится в поле Size.
(2) И ставим галочку Render to files only.
(3) Это делается для того, чтобы текстура не накладывалась сразу на объект.

 

Вернемся к панели Unwrap UVW. Сменим Map Channel на 2. Выскочит табличка - жмём да. Потом жмём Edit. Теперь (ВАЖНО!!!) проследите, чтобы ни один вертекс не был выделен. Для этого нужно отъехать подальше и кликнуть на свободном месте. В верхнем меню выбираем Mapping, Flattern Mapping (если нету маленьких полигонов, можно параметр Spacing уменьшить до 0,01) и жмём ОК.

 

Потом в окне Render to texture. Выбираем Map Channel 2. Объект должен быть всегда выделен(!!!).

 

Всё готово, можно рендерить в текстуру! :)

 

И вот, что у нас вышло.

 

Теперь повторяем то же, но для стен и пола. Вот, как выглядит этот ЛМ.

 

***
Часть 3
-------------------------------

Теперь нужно как-то отобразить ЛМ в игре.
Для этого нам понадобится какойнибудь экспортер в ваш движок. Я использовал экспортер для Blitz3D. У вас - свой.
Примечание: если у вас нет экспортера, то переходим к Послесловию.
Итак. Сохраняем сцену под другим именем. Выделяем объект. Выбираем из списка материалов движковый материал.

 

И на первый слой наносим текстуру, которая должна быть на объекте.

 

Тип нанесения - Multiply.
Я включил mipmap,color... это особенности движка. Но самое главное - Map Channel. Он должден быть установлен в "1".

 

Теперь на второй слой наносим наш сохраненный ЛМ. Но! Map Channel уже нужно выставить "2".

 

Нужно убедится, что у объекта есть второй Map Channel. Для этого применим к нему Unwrap UVW(если он уже не применен) и переключившись на Map Channel 2, нажмем кнопку Edit. Если текстурные координаты выглядят так же, как мы их создавали, то всё в порядке. Если появляются сомнения насчет этого, то снова идем в меню Mapping->Flattern Mapping и жмем ОК, как и в прошлый раз(!) Нужно повторить всё, что мы делали в прошлый раз!
Если всё в порядке, то повторяем всё теперь с остальными материалами и смотрим, что вышло. :)
Вот, что вышло у меня.
Это движковый рендер.

 

А вот как выглядит в максе сцена, если показывать второй канал на всех материалах.

 

***
Послесловие.

Если у вас нет экспортера, то наложение текстур придется делать вручную в движке. Или писать свой экспортер, который поддерживает несколько слоев.
Если есть какие-нибудь вопросы, присылайте мне на мыло.
Всем желаю удачи!
Buck.







Поиск
Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024
    Создать бесплатный сайт с uCoz