Перейти к публикации
Melentiev A

Normal Mapping в 3dsmax

Рекомендованные сообщения

Если Вы обращали внимание на технологию видеоигр, Вы слышали о термине "Карты нормалей". Игры подобные Doom 3, Half-Life 2, и F.E.A.R. все используют эту технику, чтобы показать так много деталей, как только возможно без причинения вреда компьютеру от перегрузки. В это < уроке > Вы узнаете все об основах карт нормалей и их применении в движке Torque Shader Engine. Прежде чем мы начнем, важно узнать и понять Что есть карты нормалей?

 

Normal Mapping в Nut Shell

 

Предположим, что Вы испльзуете 3DS Max достаточно давно, чтобы заинтересоваться техникой карт нормалей, следовательно достаточно уверенно чувствуете себя в 3D пространстве. Вершины в этом пространстве описываются координатами вдоль осей X,Y и Z. Когда Вы применяете 2D текстуры к Вашим 3D моделям, Вы приписывате им UVW координаты. UVW координаты основываются на полигонах, где U и V наиболее важные, т.к. они представляют X и Y, в то время как W представляет как текстура будет обертываться вокруг нескольких полигонов на модели в 3D пространстве.

 

В карте нормалей, RGB картинка кодирует и XYZ и UVW координаты. Она содержит размещение текстуры, куда Вы ее развернули в UVW, но каждый пиксель представляет XYZ координаты своим цветом. Любой красный пиксель будет транслироваться в X координату, зеленый в Y, а синий в Z. Результат сводится к смеси этих трех цветов, так что пристально рассмотрим пример карты нормалей, чтобы почувствовать как она будет транслироваться.

 

NormalMap.jpg

 

С ней Вы можете взять очень высокополигональную модель и применить ее XYZ координаты к лоуполи модели. И освещение и глубина хайполи модели останутся нетронутыми, так что, чтобы достичь конца этого урока создавайте простое освещение.

 

Давайте начнем.

 

Т.к. это урок не по моделированию, я предполагаю, что Вы уже имеете и высокополигональную и лоуполи сетку и готовы сделать карту нормалей. Еще раз мы будем работать в 3ds max, но все сказанное может быть легко приспособленно для других программ трехмерного моделирования. Для этого урока я построил очень простую стенную панель, приспособленную для мозаичного повторения, и импортировал ее в TSE. Вам нужно проверить, что Ваша модель центрирована для уменьшения трудов при создании карты нормалей. Также всегда помните одну вещь: НАЗЫВАЙТЕ ВАШИ ОБЪЕКТЫ! Я не могу достаточно объяснить насколько легче все будет, если Вы все соответственно назовете. Здесь я имею основной план высокополигональной модели справа и рядом лоуполи (Это просто чтобы их показать они обе здесь, по настоящему они наложены друг на друга, что Вы далее увидите).

 

NM1.jpg

 

Ваша первая задача сделать развертку (unwrap) вашей лоуполи модели. Есть другие уроки, которые описывают этот процесс, так что я пропущу эту часть. Ok, Вы имеете обе модели и развертку низкополигональной модели. Что дальше? Выберите лоуполи модель, нажмите "0" или выберите Rendering-> Render to Texture. Следующие несколько скриншотов показывают что описывается, так что попытайтесь следовать им так аккуратно, как возможно или Ваш результат может оказаться не таким как надо.

 

NM2.jpg

 

Нажмите 'Setup (Установка)' в 'Render Settings (Установки визуализации)'.

 

NM3.jpg

 

На закладке 'Renderer' включите 'Enable Global Supersampler'.

 

NM4.jpg

 

Закройте установки визуализатора и перейдите ниже к свитку 'Projection Mapping'. Включите разрешение (enable) Projection Mapping (Картирование проекций) и нажмите 'Pick (Взять)' для указания высокополигональной модели.

 

NM5.jpg

 

Укажите хайполи модель и нажмите 'Add (Добавить)'.

 

NM6.jpg

 

Пройдите дальше вниз в окне 'Render to Texture' и нажмите 'Add' в свитке 'Output (Выход)'. Затем нажмите 'NormalsMap' и 'Add Elements'.

 

NM7.jpg

 

Пройдите еще ниже и Вы увидите, что Вы можете назвать и выбрать Ваши выходные установки карты нормалей. Также выберите размер Вашей карты нормалей (помните, что большие размеры создают большую нагрузку на производительность, и никогда не делайте больше 1024).

 

NM8.jpg

 

Прейдите в панель 'Modify' и разверните 'Projection' для выбора клетки. Далее Вам нужно сделать - используя выделение вершин неатроить клетку так, чтобы она охватывала Ваш низкополигональный объект и масштабировать ее так, чтобы она охватывала и высокополигональную модель.

 

NM9.jpg

 

Здесь как клетка должна выглядеть когда Вы закончите; полностью охватывает обе сетки.

 

NM10.jpg

 

Окончательно вернитесь в окно 'Render to Texture' и перейдите в самый низ. Проверьте что Вы в правильном окне для визуализации переда сетки. Нажмите 'Render' для визуализации Вашей карты нормалей.

 

NM11.jpg

 

Появится подобный диалог. Нажмите Continue (Продолжить).

 

NM12.jpg

 

Вы наверное рассердитесь. "Это только визуализация Вашей глупой сетки! Она не выглядит как карта нормалей, которую Вы показывали ранее!" Ну это потому что это не карта нормалей. Перейдите в Вашу папку, куда установлен '3dsmax' и посмотрите в папке 'Images'. И - ага, там есть прекрасная карта нормалей.

 

NM13.jpg

 

Скройте Вашу хайполи сетку. В редакторе материалов создайте новый стандартный материал и примените его к лоуполи сетке. Нажмите на карте Bump и выберите Normal Bump. В поле Normal выберите Bitmap и найдите Вашу только что созданную текстуру.

 

Поместите светильник Omni в сцену и Вы увидите результат что-то вроде этого

 

NM14.jpg

 

Перевод Беляев Валерий ака seaman.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Извините, а почему в подписи сайт софтхэлп? Урок переведен мной. Оригинал перевода тут:

http://www.3dmir.ru/index.php?id=3dsmax&tutor=441

 

Интересны еще переводы?

Например вот этого урока:

http://www.paultosca.com/makingofvarga.html

(Внимание! Страница очень большая!)

 

Если ткнете какой урок нужно перевести - могу...

 

Хотя А. Мелентьев сам крутые уроки пишет :)

 

-------------------

Исправил

RIDDICK

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за урок. Очень помог.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

seaman

О! ну откуда же я знал, что это твой перевод. :oops: Конечно переводы нужны. 8-)

 

Caldor

Да не за что, но если бы не seaman этго урока в сети не было бы. За что ему спасибо.:)))

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

спасибо).

 

а вопрос, таким методом только плоскости такие создовать ("...нужное окно проекции..."), или он и для объёмных фигур подходит?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

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

 

вот что у меня получилось, касяки из-за чего могли получится? лево это группы с глаживания с нормал мап, право это группы сглаживания

copy.thumb.jpg.47f7668d168eb8222dd06c3056b5170a.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

×
×
  • Создать...

Важная информация

Чтобы сделать этот веб-сайт лучше, мы разместили cookies на вашем устройстве. Вы можете изменить свои настройки cookies, в противном случае мы будем считать, что вы согласны с этим. Условия использования