четверг, 14 октября 2010 г.

Создание Normal mapping в GIMP и использования его с UV в Blender'е для дальнейшего экспортирования в Unty 3D.






Всем привет. Сегодня речь пойдет про Normal mapping в Блендере.
Normal mapping - это технология рельефного текстурирования. Для хранения информации о рельефе используются текстуры, в которых кодируются данные об отклонении нормалей поверхности. Для создания таких текстур обычно используются многополигональная и низкополигональная модели, на основе которых и генерируется текстура нормалей.
Ну так приступим:


В начале нам понадобится GIMP 2.0. Так же, для него понадобится плагин для создания Normal маппинг изображений, найти его можно тут. Распаковываем скачаный архив и далее действуем по инструкции файла readme.txt.
Далее заходим сюда и находим нужную нам текстуру. Для примера я выбрал эту.  Открываем ее в GIMP  и сохраняем как texture.jpg. Дублируем нижний слой и сохраняем теперь как texture_n.jpg.Для нового слоя применяем фильтр "Фильтры"->"Карта"->"Normal  mapping ...". Сохраняем изображение. В итоге у нас есть два файла, один содержит текстуру, а второй данные об отклонении нормалей поверхности. 
Открываем Блендер. Я буду применять Нормал маппинг для куба, так что в сцене ничего не надо менять. Делим экран на две части и в правой выбераем "UV/Image editor". Выбираем куб и переходим в режим редактирования клавишей [TAB], нажимаем [А] чтобы выбрать все вершины, далее жмем клавишу [U] и выбыраем в появившемся меню "Unwrap", во втором окне должна появится UV-карта. Выбираем в этом окне меню "Image"->"Open" и выбираем файл с названием texture.jpg. Для просмотра результата можно нажать "Alt"+"Z". Выходим из режима редактирования, и выбираем на панели свойств - "Shading" [F5], если нет материала то создайте его с именем Mat_cube, нажмите на "Texture buttons", там уже должна быть текстура, если ее нет то создайте ее, тип текстуры должен быть "Image", название "Text_color", возле кнопки "Load" есть меленькая кнопка, нажмите ее и в списке загруженных текстур выберите "texture.jpg". Опять заходим в "Shading"[F5], на панели "Map Input" выбираем UV. Теперь нам осталось добавить карту нормалей для нашей текстуры. Для этого заходим в "Editting" [F9], и в панели "Mesh" выбираем "New UV Texture". Снова выбираем наш куб, переходим в режим редактирования [TAB]. Выбераем все вершины клавишей [A], жмем [U] и выбираем "Unwarp". Во втором окне теперь выбираем текстуру texture_n.jpg. Теперь опять переходим в "Shading" [F9]. Жмем "Texture buttons" и добавляем в стек текстур новую текстуру типа "Image", только выбираем уже текстуру texture_n.jpg и щелкаем в панели "Map Image" по кнопке "Normal map".Переходим опять в "Shading" [F5],  и в панели "Map Input" выбираем в "UV", а в панели "Map To" снимаем выделение с "Col" и ставим выделение на "Nor".
Теперь откроем Unity3D. Создадим проект. Во вкладке "Project" создадим папку "blender". Перетяним из проводника в этут папку наш blend файл. Создадим в этой папке папку "Textures" и пепенесем туда две наших текстуры. В папке "Blender" должна ныходится папка "Materials" c нашим материалом. Измените у этого материала тип шейдера на "Bumped Diffuse", и выберите соответствующие текстуры. Вот и все.