Объекты для игр и кино. Часть 6. Normal & Specular

Здравствуйте.

Это последняя статья из серии «Объекты для кино и игр».

Уже почти все сделано с художественной точки зрения, остались последние технологические штрихи.

Мы добавим Normal map и Specular map.

Сейчас без этих двух карт не обходится ни одна модель.

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

Сейчас это практически бесплатные технологии для «движков».

По поводу рендеров. Насколько я знаю, последние версии Vray поддерживают рендер Normal map. Другие рендеры, видимо, тоже.

Чем отличается Normal map от Bump?

Если совсем просто, то Bump — это как карта высот, а в Normal для каждой точки текстуры «запекается» нормаль луча света.

На скриншоте виден результат.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_normal_vs_bump.jpg
Просмотров:	253
Размер:	14.3 КБ
ID:	2406

Вот используемые текстуры.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_normal.jpg
Просмотров:	487
Размер:	6.3 КБ
ID:	2407

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_bump.jpg
Просмотров:	479
Размер:	4.1 КБ
ID:	2408

Вообще Normal — это наследник Bump, только лучше.

Чтобы увидеть Normal в 3ds max, нам придется работать с драйвером DirectX 9 и использовать MetalBump9 материал.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_DXdriver.jpg
Просмотров:	387
Размер:	54.7 КБ
ID:	2409

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_DXmaterial.jpg
Просмотров:	373
Размер:	41.7 КБ
ID:	2410

Чтобы создать Normal map, нам также понадобится plug-in компании nVidia.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_nvidiaPlugin.jpg
Просмотров:	392
Размер:	53.5 КБ
ID:	2411

Найти его можно на официальном сайте www.nvidia.com

Кроме возможности генерировать Normal map этот plug-in позволяет сохранять ваши текстуры в DDS формат. В общем, полезная штука!

Итак, у вас есть модель, вы установили plug-in. Теперь надо создать новую текстуру такого же размера, как и диффузная, и назвать ее, к примеру, refrigerator_normal_512.tga

В эту новую текстуру лучше скопировать готовую диффузню текстуру. По ней, как по шаблону, мы будем рисовать Normal. Можно сразу сделать Desaturation для всей текстуры. Нас не интересует информация о цветах.

В принципе, уже по этой текстуре можно сгенерировать Normal.

Скажу лишь про одно важное значение, необходимое при генерации. Величина этого значения влияет на глубину normal’a.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_NormalDepth.jpg
Просмотров:	485
Размер:	3.7 КБ
ID:	2412

Чем больше значение — тем «сильнее» Normal.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_NormalStrenght.jpg
Просмотров:	497
Размер:	119.9 КБ
ID:	2413

Чем «сильнее» Normal, тем он заметнее, тем контрастнее углубления и выпуклости.

Вот наш холодильник без Normal и с ним.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_nonormal_normal.jpg
Просмотров:	276
Размер:	70.9 КБ
ID:	2414

Сразу видно, как много деталей добавилось и там где надо, и там где не надо.

Именно по этому чаще приходится рисовать Normal по шаблону диффузной текстуры, чем сразу использовать диффузную текстуру в качестве заготовки для Normal.

Нам надо добиться детализации (объема) только в нужных местах.

У нас 1 выразительный инструмент — градации серого.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_3stages.jpg
Просмотров:	258
Размер:	13.7 КБ
ID:	2415

100% белый — максимальная выпуклость.
100% черный — максимальная «вдавленность».

Чем больше контраста — тем больше перепад высот.

За основу для рисования я беру 50% серый.

Вот, например, что получилось у меня.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_fridgenormal_01.jpg
Просмотров:	257
Размер:	24.0 КБ
ID:	2416

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_normal_vs_normal.jpg
Просмотров:	274
Размер:	74.8 КБ
ID:	2417

Визуально модель с Normal map сгенерированным с диффузной текстуры выглядит, как пористая губка. Иногда это надо, например, когда вы делаете губку, камни или кору дерева, но окрашенная металлическая поверхность вряд ли будет такой.

Внимание! Не запекайте резкие тени, если знаете, что на текстуре будет использован Normal map.

Normal сделает тень там, где надо. В зависимости от положения источника света.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_noshadow.jpg
Просмотров:	270
Размер:	43.8 КБ
ID:	2418

Вот модель с исправленной текстурой.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_normal_example.jpg
Просмотров:	267
Размер:	41.5 КБ
ID:	2419

Такая «проштамповка» на стенке холодильника будет корректно реагировать на падающий на нее свет.

Внимание! Много Normal’a — это не хорошо! Кто играл в Doom 3 — меня поймет. Doom — хорошая игра, но там слишком много Normal, и это бросается в глаза. Все красивое, но пластиковое и одинаковое. При использовании Normal map появляется пластиковый блеск. Старайтесь создавать контрастные сочетания поверхностей.

«Normal хорошо смотрится, когда рядом нет другого Normal’a».

Контраст можно попробовать сделать с помощью Specular map.

Это «карта блеска», если можно ее так назвать.

Выразительные средства те же: градации серого.

100% белый — максимальный блеск.
100% черный — матовая поверхность.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_spec_eexample.jpg
Просмотров:	257
Размер:	16.8 КБ
ID:	2420

Диффузная текстура абсолютно черная. После включения Specular мы видим «блестящие» надписи, одна 100% белого цвета, другая — 50% серый.

Вот для Specular можно попробовать использовать диффузную карту. С доработкой, конечно.

Убираем цвет. Он нам не нужен.

Называем текстуру, например, так: refrigerator_specular_512.tga

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_specular.jpg
Просмотров:	273
Размер:	80.7 КБ
ID:	2421

Я сделал текстуру контрастней. Притемнил светлую часть сверху и сделал рекламу в верхней части 100% блестящую.

Нажмите на изображении, чтобы увидеть его в полный размер.

Название файла:	obj6_specular_test.jpg
Просмотров:	293
Размер:	39.6 КБ
ID:	2422

При использовании Specular действует то же «правило контраста».

«Specular хорошо смотрится, когда рядом нет другого Specular’a».

Чтобы сделать хороший и интересный Specular и Normal, нужна тренировка и эксперименты.

Как я уже сказал вначале, это последняя статья в серии статей «Объекты для кино и игр».

В этих 6 статьях я рассмотрел начальные сведения о моделировании, текстурировании и некоторых технологиях производства. Без подробностей.

Я всегда за то, чтобы найти свой путь «создания» объекта, а подробное описание, оно, конечно, хорошо, но зачастую «программирует» мозг и не дает развернуться фантазии.

Найти свой «путь» довольно просто, нужно только время и желание.

Процесс познания интересный + всегда надо изучать что-то новое в своей области. Например, варианты создания Chamfer или рисования грязи.

Спасибо за внимание.
Иванов Дмитрий (id)

P.S. Присылайте свои холодильники. Если кто делал. Я выберу самые завершенные модели и могу сделать небольшой «разбор» в отдельной статье с указанием найденных достоинств и недостатков (с моей точки зрения).

Абсолютно бесплатно, анонимно и от души. Пишите: id@cgtalk.by

Comments

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.