Создание тесселяции в Crysis 2

Материал из CryWiki Russia

Перейти к: навигация, поиск
О статье
АвторыSARGIY576
РедакторDCamer
СложностьЛегко
СовместимостьCryEngine 3
Дата добавления15/10/2011


В этой статье вы научитесь создавать тесселяцию в CryEngine 3.

Содержание

Начало

Тесселяция в реальном времени увеличивает количество полигонов, разделяя каждый полигон на заданное количество связанных полигонов, для правильного выстраивания связанных полигонов используются карты нормалей (или карты бампа) и альфа-канал со смещением, сами связанные полигоны выстраиваются в соответствие с направлением поверхности модели, которое собственно и определяется в картах нормалей и картах смещения. Однако, такая система стала доступна относительно недавно, а именно с появлением видеокарт поддерживающих DirectX 11.

Для начала смоделируем простой куб.

CryEngine 3 creation tesselation simple cube.png

На всякий случай я установил количество сегментов 5x5x5.

CryEngine 3 creation tesselation segments setting.jpg

Далее создаём материал.

CryEngine 3 creation tesselation creating material.jpg

Создаём копию куба (Ctrl+V) и в название модели добавляем префикс _ptm.

Добавляем 2 одинаковых куба в список моделей для экспорта. Обязательно ставим галочку Export File per Node.

CryEngine 3 creation tesselation export list.jpg

Итак, модели готовы.

Приступим к созданию текстур

Для примера я взял текстуры кирпичей из S.T.A.L.K.E.R..

CryEngine 3 creation tesselation bricks texture.jpgCryEngine 3 creation tesselation bricks texture normal.jpgCryEngine 3 creation tesselation bricks texture alpha.jpg

Все текстуры обязательно нужно сохранять через плагин CryTIFF.

CryEngine 3 creation tesselation saving textures.jpg

Открываем карту смещения (Displacement), копируем (Ctrl+C) и вставляем (Ctrl+V) в альфа-канал карты бампа. Каналы должны выглядеть вот так:

CryEngine 3 creation tesselation channel panel.jpg

Текстура карты бампа готова. Осталось сохранить её в нужный формат. Выбираем формат CryTIFF, и настраиваем все параметры в точности как на картинке ниже.

CryEngine 3 creation tesselation crytiff settings.jpg

Текстуры готовы.

Приступим к созданию материала

Не забываем включить DirectX 11 и конфигурацию графики Ultra.

CryEngine 3 creation tesselation dx11 veryhigh.jpg

Перетащим куб на уровень.

CryEngine 3 creation tesselation drop cube.jpg

Вызываем редактор материалов (кнопка M). Нажимаем кнопку New Material, сохраняем созданный материал рядом с нашей моделью. Указываем все необходимые текстуры в материале и присваиваем его на нашу модель.

CryEngine 3 creation tesselation assign material.jpg

Приступим к настройке тесселяции

Открываем свиток Shader Generation Params и ставим галочки Displacement Mapping и Tesselation.

CryEngine 3 creation tesselation shader generation params.jpg

Что получилось:

CryEngine 3 creation tesselation bad tesselation.jpg

Такая тесселяция нам явно не подойдёт. Настроим параметры тесселяции в свитке Shader Params.

CryEngine 3 creation tesselation shader params.jpg

Результат

С помощью «метода тыка» у меня вот что получилось:

CryEngine 3 creation tesselation good tesselation.jpg

Ну вот и всё, тесселяция готова.

Примечание:
Если на углах модели появляются дыры, в 3ds Max установите первую группу сглаживания:
CryEngine 3 creation tesselation smoothing groups.jpg

См. также