Автор: Buck
Вступление.

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

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

***

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

Вот наша сцена.
Источник: 3dcenter.ru
Делаем её супермегареалистичной :)))
Я использовал для этого 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.
Счётчики
  Словарь Яндекс.Лингво
Сайт посвящён компьютерной графике и оверклокингу
На главную
Галерея
Уроки
Статьи
Видео уроки
Download
Оверклокинг
Гостевая
Чат
Форум
Рекламодателям
Работодателям
Ссылки
О нас
Карта сайта
Render To Texture

При перепечатке материалов обязательно указание авторства и незакрытая тегом noindex активная прямая нередиректная ссылка на сайт lux3d.narod.ru, на котором Вы этот материал нашли. Спасибо за посещение!
Обсудить на форуме
Если вы хотите разместить свои работы в галерее, если Вы написали или перевели иностранный урок или статью, Вы можете разместить у нас на сайте свои труды, для этого нужно написать в гостевую книгу, или в службу поддержки.
На главную  Галерея  Уроки  Статьи  Видео уроки  Download  Чертежи  Оверклокинг  Рекламодателям  Работодателям  Ссылки  О нас  Гостевая  Форум  Чат  Карта сайта
Сайт оптимизирован под Opera и Firefox                      © 2008 Lux3D                     Служба поддержки
Книги
document.write('
  
'); document.write('
 
');
Яндекс цитирования
be number one
Rambler's Top100
Рейтинг@Mail.ru
Mail.Ru
Яндекс цитирования
Hosted by uCoz