Карты нормалей. Часть II

Карты нормалей – не волшебное средство, они не могут сделать чудо.

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

Попробуем сгенерировать карты с объектов разной высоты.

Участники эксперимента.

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

Название файла:	01_start_pictures.png
Просмотров:	258
Размер:	66.0 КБ
ID:	3636

На скриншоте видно, что цилиндры не «вшиты», а максимально близко приближены к поверхности.

Обратите внимание на положение кэйджа.

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

Название файла:	02_cage_position.png
Просмотров:	269
Размер:	11.8 КБ
ID:	3637

Генерируем карту. Как это делается, можно прочитать в предыдущей статье.

Результат.

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

Название файла:	03_normal_vs_1cm.png
Просмотров:	230
Размер:	100.6 КБ
ID:	3638

Увеличиваем высоту цилиндров до 5 см.

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

Название файла:	04_cyl5cm.png
Просмотров:	212
Размер:	46.9 КБ
ID:	3639

Генерим.

На выходе получаем.

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

Название файла:	05_bug5cm.png
Просмотров:	282
Размер:	8.8 КБ
ID:	3640

Это ошибка. Почему?

Кэйдж находится ниже, пересекает геометрию объектов.

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

Название файла:	06_cage_intersection.png
Просмотров:	238
Размер:	9.7 КБ
ID:	3641

Поднимаем его выше, увеличивая Amount и генерируем опять.

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

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

Название файла:	07_normal_vs_1cm_and_5cm.png
Просмотров:	232
Размер:	110.8 КБ
ID:	3642

Попробуем 10см.

На скриншоте собраны все сгенерированные карты и часть геометрии.

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

Название файла:	08_normal_vs_1cm_5cm_10cm.png
Просмотров:	219
Размер:	140.2 КБ
ID:	3643

Как видно эффективность карт-нормалей для передачи большой выпуклости ограничена.

Каким способом можно передать большую выпуклость?

Есть такая технология параллакс мапинг. Она комбинирует возможности карты высот и карты нормалей и позволяет добиться более реалистичного отображения больших неровностей (выпуклостей). Параллакс – ресурсоемкая технология и визуально результат ее применения выглядит не всегда адекватно. Используется в небольших количествах в играх последних лет — «S.T.A.L.K.E.R.», «Crysis» (и наверное еще в каких то).

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

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

Название файла:	09_normal_usage01.jpg
Просмотров:	282
Размер:	29.2 КБ
ID:	3644

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

Название файла:	10_normal_usage02.jpg
Просмотров:	285
Размер:	40.5 КБ
ID:	3645

Это были эксперименты с отдельными объектами, а что будет, если цилиндры «вшить»?

Еще попробуем сделать эффект вдавленности.

Исходная геометрия.

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

Название файла:	11_updown_stich.png
Просмотров:	199
Размер:	24.7 КБ
ID:	3646

Обратите внимание где находится кэйдж, когда мы снимаем карту нормалей с вдавленной геометрии.

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

Название файла:	12_down_cage.png
Просмотров:	248
Размер:	54.8 КБ
ID:	3647

Результат.

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

Название файла:	13_updown_result.jpg
Просмотров:	211
Размер:	59.8 КБ
ID:	3648

Не очень красиво, и выпуклость/ вдавленность слабо заметна.

А все из-за одной группы сглаживания и перпендикулярных основной плоскости стенок цилиндра.

Немного модифицируем геометрию и добавим еще одну группу сглаживания.

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

Название файла:	14_modification.png
Просмотров:	211
Размер:	69.8 КБ
ID:	3649

В итоге более интересный результат.

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

Название файла:	15_goodresult.png
Просмотров:	229
Размер:	73.8 КБ
ID:	3650

Что еще можно улучшить?

Увеличим полученную карту в области окружности.

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

Название файла:	16_nosmooth.png
Просмотров:	257
Размер:	13.7 КБ
ID:	3651

Видны несглаженные края. Это не очень красиво, т.к. сказывается на качестве финальной картинки.

Правда, это можно заметить только с близкого расстояния.

Если вашу модель никто не будет рассматривать вблизи, то, возможно, сглаживание вам не понадобится.

Результат во вьюпорте 3ds max 9

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

Название файла:	17_smooth_nosmooth_result.png
Просмотров:	207
Размер:	47.6 КБ
ID:	3652

Карта нормалей.

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

Название файла:	18_smooth_nosmooth_map.png
Просмотров:	260
Размер:	16.5 КБ
ID:	3653

Что делать, если вам все же необходимо сглаживание?

Для этого в свойствах «Рендереринг на текстуру» надо включить суперсэмплинг.

Вот последовательность.

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

Название файла:	19_supersampling.png
Просмотров:	760
Размер:	52.8 КБ
ID:	3654

Что еще дает включение суперсэмплинга, кроме сглаженных краев?

Увеличение времени рендеринга в 2-3 раза (при значениях, указанных на скриншоте выше).

Возможно, поэкспериментировав, можно найти более оптимальные цифры.

Еще попробуйте использовать другой рендер, например Mental Ray. Будет быстрее.

И напоследок, ответ на часто задаваемый вопрос: «Как включить отображение карт нормалей во вьюпорте 3ds max?»

Во-первых, убедитесь, что у вас выбран Direct3D драйвер.

Затем наложите на объект текстуру Bump->Normal Bump->Normal (Ваша текстура). В прошлый раз я показывал, как это делается. Все очень просто.

Значение Bump – 100.

Затем включите галочку DX Display of Standard Material и нажмите на розовый кубик.

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

Название файла:	20_DX_display.png
Просмотров:	343
Размер:	107.0 КБ
ID:	3655

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

На 2-х ядерном процессоре и видеокарте класса 8500GT частота кадров во вьюпорте падает как минимум в 2 раза (на объект назначено от 4-х до 6-и текстур размером 1024х1024). Задержки между нажатиями Ctrl+Z (отмена) могут составлять от 5 до 10 секунд.

При большом количестве текстур большого разрешения 3ds max начинает чаще «падать».

Бывает, другие материалы, на которых не стоит галочка DX Display of Standard Material, не отображаются.

В общем, не удивляйтесь сюрпризам.

Я включаю эти опции периодически, для оценки изменений на текстуре, например.

Включил — посмотрел — выключил.

В следующий раз я хочу рассказать про модификатор MeshSmooth (TurboSmooth). Его использование – неотъемлемая часть технологического процесса создания карты нормалей.

Comments

Leave a Reply

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