Скидки до 60% и 3 курса в подарок 0 дней 00 :00 :00 Выбрать курс
Геймдев
#статьи

Тесселяция: что это такое и как она работает в играх

Рассказываем, за что отвечает тесселяция, как она улучшает детализацию ландшафта и объектов и влияет на частоту кадров.

Иллюстрация: Оля Ежак для Skillbox Media

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

В этом материале мы объясняем, что такое тесселяция, какова её роль в 3D-графике, какие бывают виды тесселяции и как она применяется в известных играх.

Содержание


Что такое тесселяция

Тесселяция — одна из ключевых технологий в современной компьютерной графике. Именно тесселяция делает плоские поверхности объёмными и добавляет множество деталей, не задействуя миллионы полигонов.

Тесселяция позволяет разбить четырёхугольник на два треугольника, а затем из этих двух сегментов получить четыре, восемь, 16 треугольников — и так до бесконечности. Таким образом, существующие полигоны разбиваются на дополнительные треугольники (но не полигоны), и тогда низкополигональный объект становится более проработанным и детализированным.

Пример тесселяции треугольника
Изображение: Skillbox Media

Впрочем, независимо от того, как представлен полигон объекта — в формате всего лишь двух или двух сотен треугольников, — сама по себе тесселяция не добавляет новых деталей объекту. Выпуклости и вмятины на поверхностях появятся только в случае наличия данных, отображающих положение вершин мелкой сетки. Под ними, как правило, подразумевается рельефное текстурирование с помощью карты параллакса или смещения (Displacement map). Последнее сейчас наиболее актуально, так как карты смещения в сочетании с тесселяцией создают иллюзию видимого объёма даже на плоских участках.

В качестве примера можно привести демонстрацию бенчмарка Heaven от Unigine. И хотя он вышел достаточно давно, в нём наглядно представлена разница итогового изображения с применением данного метода и без него.

Слева — тесселяция включена, справа — отключена
Кадр: Nathaniel Joseph Claw / YouTube

Впервые поддержка тесселяции появилась в графической карте ATI Radeon 8500 в 2001 году и была известна как TruForm. Её специфика тогда заключалась в обработке треугольников с регулируемым параметром уровня детализации. Для вершин и нормалей были доступны несколько видов интерполяции: линейная и квадратичная для нормалей и кубическая для вершин.

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

Тесселяция стала востребованной с появлением интерфейса DirectX 11 в конце 2000-х годов. О нём — чуть ниже.

Для чего используется тесселяция в компьютерной графике

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

  • Поверхности со сложной структурой (ландшафт, вода, ткани) становятся более реалистичными и объёмными за счёт мелких деталей.
  • При применении тесселяции отсутствуют ступенчатые переходы в структурах с изгибами, что порой важно для корректного отображения следов на снегу или песке.
  • При применении тесселяции происходит динамическое изменение уровня детализации объектов в зависимости от расстояния внутриигровой камеры.

Виды тесселяции

Методы тесселяции во многом зависят от сферы применения и возможностей разработчика.

Статическая тесселяция

Под ней подразумевается подразделение поверхности на сегменты — после такого подразделения структура модели остаётся неизменной при любых условиях. Под эту категорию подходят модели с применённой функцией Подразделение поверхности (Subdivision Surface), после которой количество полигонов в сетке увеличивается в разы.

Пример статической тесселяции встречается в основном в программах для 3D-моделирования (Blender, Maya, Cinema 4D и так далее), где рендеринг изображений и анимаций, как правило, происходит в офлайн-режиме, а не в реальном времени.

Адаптивная (динамическая) тесселяция

Широко распространена в современных играх. Её суть в том, что количество полигонов у объекта изменяется в реальном времени и в основном зависит от угла обзора или расстояния объекта до внутриигровой камеры. Графический процессор или шейдер анализирует геометрию в кадре и вычисляет, сколько в настоящий момент нужно сгенерировать дополнительных треугольников.

Стоит отметить, что плотность геометрии в этом случае изменяется автоматически — в зависимости от расстояния. При этом подготовка моделей с разным уровнем детализации (LOD) необязательна, если речь не идёт о моделях персонажей, производстве мобильной игры или окружения, требовательного к оптимизации. Динамическая тесселяция поддерживается в движках Unity, Unreal Engine 4 и Unreal Engine 5 (в пятой версии для этого используется технология Nanite), CryEngine, Unigine и других игровых движках, ориентированных на реалистичную 3D-графику.

Аппаратная тесселяция (Hardware Tessellation)

В отличие от динамической, аппаратная тесселяция реализована не через игровой движок, а интегрирована в видеокарты через встроенные графические API — DirectX 11 и DirectX 12, OpenGL 4 и Vulkan. В процессе задействованы специальные программируемые шейдеры. Их названия могут различаться в зависимости от типа API. Например, тесселяция в DirectX 11/12 реализована в три этапа — этап шейдера корпуса (Hull Shader), этап Tessellator и этап шейдера домена Domain Shader. В целом стадии во всех API одинаковы и различаются лишь названиями и синтаксисом кода.

Поддержка аппаратной тесселяции встречается как в играх, созданных на популярных игровых движках, так и в тайтлах, созданных с использованием собственных технологий разработчика — например, The Witcher 3: Wild Hunt, Metro Exodus, Far Cry 4 и так далее. Благодаря программируемым шейдерам подход считается более гибким и универсальным, так как его можно интегрировать в любой движок. Учитывая, что при таком методе задействован только графический процессор, есть риск снижения производительности на менее мощных видеокартах.

Примечание. С 2024 года Epic Games объявила о прекращении поддержки аппаратной тесселяции на Unreal Engine 5 в перспективе. Вместо этого компания решила сосредоточиться на кросс-платформенной поддержке Nanite. Тем не менее, если разработчики захотят внедрить эту технологию самостоятельно, компания готова оказать ограниченную поддержку.

Примеры игр с реалистичной тесселяцией


The Witcher 3: Wild Hunt

Тесселяция в The Witcher 3: Wild Hunt придаёт объектам окружения (дорогам, ландшафту, стенам и так далее) чуть более осязаемый объём на близком расстоянии. Её настройку можно отрегулировать в пункте Качество рельефа. Впрочем, на практике эффект незначительный и более наглядно представлен в модификациях.

Также игра поддерживает специальную технологию NVIDIA Hairworks для тесселяции причёсок, шерсти и меха, отображая их буквально по волоску. Правда, пользователи нередко отмечали баги с некорректным отображением шевелюр персонажей.

Скриншот: игра The Witcher 3: Wild Hunt / CD Projekt RED

Metro Exodus

В сочетании с трассировкой лучей тесселяция в Metro Exodus заметно преображает локации, добавляя стенам, объектам и ландшафту больше рельефа. Благодаря этому усиливается ощущение реалистичного окружения, особенно если учесть, что это шутер от первого лица и игрок постоянно рассматривает объекты с близкого расстояния.

Журналисты Digital Foundry отмечали, что в этом плане ПК-версия игры смотрелась гораздо выигрышнее, чем, к примеру, на Xbox One X, где эффект объёмных поверхностей отсутствовал.

Кадр: видео Digital Foundry / YouTube

Battlefield 5

Тесселяция в Battlefield 5 помогает визуализировать не только правдоподобный рельеф статичных поверхностей, но и следы персонажей, а также отпечатки шин и гусениц на ландшафте, которые изменяются в динамике. Также технология задействована при отображении воронок от взрывов. Как и в The Witcher, эффект объёмного ландшафта настраивается в пункте Качество рельефа.

Скриншот: игра Battlefield 5 / DICE

Crysis 3

Помимо тесселяции растительности, в игре активно использовались специальные карты смещения на уровне пикселей (Per-Pixel Displacement Mapping). За счёт этого стволы деревьев приобретали визуальный объём даже без применения метода тесселяции. В видео ниже наглядно представлено, как этот подход выглядит в игре.

Far Cry 4

Действие игры происходит в Гималаях, с очень живописными видами, поэтому тесселяция в Far Cry 4 направлена на улучшение окружающей природы — ландшафта, гор, стволов деревьев и даже меха животных (на основе ранее упомянутой NVIDIA Hairworks).

Скриншот: игра Far Cry 4 / Ubisoft

Стоит ли использовать тесселяцию: плюсы и минусы

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

Преимущества тесселяции

Заметное улучшение качества изображения в играх. За счёт увеличения количества треугольников в сочетании с картой смещения игровое окружение становится более реалистичным. И, несмотря на то, что это всего лишь имитация, на таких поверхностях лучше отображаются падающие тени, в отличие от обычных объектов с картой рельефа или картой нормалей (Bump map / Normal Map), где поверхность фактически остаётся плоской.

Реалистичные тени на тесселированном стволе дерева
Скриншот: игра Far Cry 4 / Ubisoft

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

Недостатки тесселяции

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

Скриншот: игра The Witcher 3: Wild Hunt / CD Projekt RED

Снижение производительности. Чем выше детализация, тем сильнее нагрузка на графический процессор. Следовательно, на слабых видеокартах может отмечаться падение частоты кадров в секунду. Впрочем, многое зависит и от того, насколько оптимизирована игра под ту или иную линейку видеокарт. Например, Shadow of the Tomb Raider адаптирована под карты NVIDIA, поэтому подключение тесселяции влияет на производительность совсем незначительно.

Счётчик частоты кадров в Shadow of the Tomb Raider с тесселяцией и без
Изображение: NVIDIA

Итог

Тесселяция — это мощный инструмент в 3D-графике, который делает плоские модели визуально объёмнее благодаря использованию специальных карт смещения. Она активно используется в крупнобюджетных играх для улучшения детализации окружения, ландшафта и персонажей.

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

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



Курс с трудоустройством: «Профессия 3D-дженералист» Узнать о курсе
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована