Создание тесселяции в Crysis 2
Материал из CryWiki Russia
|
В этой статье вы научитесь создавать тесселяцию в CryEngine 3.
Содержание |
Начало
Тесселяция в реальном времени увеличивает количество полигонов, разделяя каждый полигон на заданное количество связанных полигонов, для правильного выстраивания связанных полигонов используются карты нормалей (или карты бампа) и альфа-канал со смещением, сами связанные полигоны выстраиваются в соответствие с направлением поверхности модели, которое собственно и определяется в картах нормалей и картах смещения. Однако, такая система стала доступна относительно недавно, а именно с появлением видеокарт поддерживающих DirectX 11.
Для начала смоделируем простой куб.
На всякий случай я установил количество сегментов 5x5x5.
Далее создаём материал.
Создаём копию куба (Ctrl+V) и в название модели добавляем префикс _ptm.
Добавляем 2 одинаковых куба в список моделей для экспорта. Обязательно ставим галочку Export File per Node.
Итак, модели готовы.
Приступим к созданию текстур
Для примера я взял текстуры кирпичей из S.T.A.L.K.E.R..
Все текстуры обязательно нужно сохранять через плагин CryTIFF.
Открываем карту смещения (Displacement), копируем (Ctrl+C) и вставляем (Ctrl+V) в альфа-канал карты бампа. Каналы должны выглядеть вот так:
Текстура карты бампа готова. Осталось сохранить её в нужный формат. Выбираем формат CryTIFF, и настраиваем все параметры в точности как на картинке ниже.
Текстуры готовы.
Приступим к созданию материала
Не забываем включить DirectX 11 и конфигурацию графики Ultra.
Перетащим куб на уровень.
Вызываем редактор материалов (кнопка M). Нажимаем кнопку New Material, сохраняем созданный материал рядом с нашей моделью. Указываем все необходимые текстуры в материале и присваиваем его на нашу модель.
Приступим к настройке тесселяции
Открываем свиток Shader Generation Params и ставим галочки Displacement Mapping и Tesselation.
Что получилось:
Такая тесселяция нам явно не подойдёт. Настроим параметры тесселяции в свитке Shader Params.
Результат
С помощью «метода тыка» у меня вот что получилось:
Ну вот и всё, тесселяция готова.