GeForce

DirectX 11 тесселяция

 
 

DirectX 11 тесселяция—что это такое и почему это так важно

Сейчас все говорят о DirectX 11, и вы уже, наверное, много слышали об одной из самых важных новых возможностей – тесселяции. Концептуальная идея тесселяции довольно проста: вы берете полигон и режете его на небольшие части. Но почему эта возможность так важна? И чем она полезна для игр? В данной статье мы расскажем, почему тесселяция способна внести значительные изменения в работу с 3D графикой на ПК и как графические процессоры NVIDIA® серии GeForce® GTX 400 обеспечивают революционную производительность во время тесселяции.

На базовом уровне тесселяция – это метод разбиения полигонов на более мелкие части. К примеру, если вы возьмете квадрат и разрежете по диагонали, вы «тесселируете» этот квадрат в два треугольника. Сама по себе тесселяция не сильно улучшает реализм. К примеру, ничего не меняется, если в компьютерной игре квадрат визуализируется как два треугольника или как две тысячи треугольников. Тесселяция повышает реализм в том случае, если новые треугольники используются для описания новой информации.

Triangle Mapping Displacement Mapping
При применении карты смещения (слева) к плоской поверхности получившаяся поверхность (справа) демонстрирует использование информации о высотах, закодированной в карте смещения.

Самый простой и популярный способ использования новых треугольников – это применение карты смещения. Карта смещения – это текстура, хранящая информацию о высотах. Примененная к поверхности карта позволяет «сместить» вершины поверхности вверх или вниз на основе данных о высотах. К примеру, художник может использовать мраморную плитку и сместить вершины, создавая рельеф. Другой популярный способ применения карт смещения – это создание рельефных ландшафтов с кратерами, каньонами и пиками.

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

Благодаря DirectX 11 тесселяция и карты смещения, наконец, образовали успешный союз, и разработчики уже этим пользуются. В популярных играх, таких как Alien vs. Predator и Metro 2033, тесселяция используется для создания ровных и плавных линий моделей, разработчики в компаниях Valve и id Software проделали большую работу по применению этих технологий к уже существующим игровым персонажам и получили многообещающие результаты.

Coarse Model
Применение тесселяции к грубой модели (слева) позволяет создавать более гладкую модель (посередине). Использование карт смещения (справа) обеспечивает персонажам реалистичность кинематографического уровня. © Kenneth Scott, id Software 2008

Благодаря поддержке программирования конвейер тесселяции DirectX 11 позволяет разрешить большое количество задач компьютерной графики. Давайте рассмотрим четыре примера.

Совершенный Bump Mapping

Model Comparision

По своей сути, карты смещения могут быть использованы в качестве заменителей для существующих техник bump mapping. Сегодняшние техники, например, метод создания рельефа при помощи нормалей, создают иллюзию неровной поверхности благодаря более точной закраске пикселей. Все эти техники работают лишь в определенных случаях и выглядят лишь частично убедительными. К примеру, метод создания рельефа при помощи параллаксного смещения (parallax occlusion mapping) – самый продвинутый метод создания неровности. Несмотря на то, что создается иллюзия собственного затенения геометрии, метод применим только к плоским поверхностям и создает эффект только на внутренней части объекта (см. изображение выше). Настоящее создание рельефа при помощи карт смещения не имеет таких проблем и обеспечивает точные результаты с любого угла зрения.

Более гладкие персонажи

Smoothing Character
Алготирм PN-Triangles позволяет автоматически сглаживать модели персонажей без вмешательства художника. Благодаря этому улучшается геометрия и освещение поверхности.

Еще один близкий партнер тесселяции – это алгоритмы усовершенствования моделей. Алгоритм усовершенствования берет грубую модель и использует тесселяцию для создания более плавной и точной модели. Примером популярного алгоритма является PN-Triangles (также известный как N-patches). Алгоритм PN-Triangles конвертирует модели низкого разрешения в изогнутые поверхности, которые затем перерисовываются в сетку мелко тесселированных треугольников. Эти алгоритмы позволяют избавиться от многих визуальных артефактов современных игр, с которыми мы привыкли мириться, например, грубые ступенчатые стыки конечностей персонажей, колеса машин с полигональным внешним видом, грубые черты лиц. К примеру, PN-Triangles используется в игре Stalker: Call of Pripyat, обеспечивая более плавный и правдоподобный внешний вид персонажей.

Плавное изменение уровня детализации.

Наверное, вы уже заметили, что в играх с большими открытыми ландшафтами удаленные объекты то исчезают, то появляются в сцене. Это происходит вследствие того, что игровой движок переключается между уровнями детализации (LOD), оптимизируя нагрузку при обработке геометрии. Прежде не было простого и удобного метода плавного изменения уровня детализации, так как для этого потребовалось бы держать в сцене множество версий одной модели или окружения. Динамическая тесселяция позволяет избавиться от этой проблемы благодаря изменению уровня детализации в реальном времени. К примеру, при первом появлении удаленное здание рендерится с использованием лишь десяти треугольников. При приближении проявляются более детальные черты, и дополнительные треугольники используются для уточнения деталей, таких как окна и крыша. Когда вы, наконец, достигаете двери, тысячи треугольников используются для визуализации одной только латунной ручки, и каждый изгиб тщательно вырезан при помощи карт смещения. Благодаря динамической тесселяции объекты больше не исчезают и не появляются в кадре, а игровые окружения могут бесконечно детализироваться.

Масштабируемое изображение

Тесселяция имеет большое значение и для разработчиков, предлагая значительное улучшение конвейера для создания контента. Отдавая свое предпочтение тесселяции, Джейсон Митчелл (Jason Mitchell) из Valve объясняет: «Нам важна возможность создания материалов, поддерживающих как уменьшение, так и увеличение масштаба… Мы, наоборот, хотим правдоподобно уменьшать масштаб материала, обеспечивая рендеринг в реальном времени в заданной системе.» Данная возможность создания модели и использования ее с различными платформами позволит сократить время разработки, а для геймеров будет означать самое высокое возможное качество изображения на их GPU.

Как графические процессоры GeForce GTX 400 поддерживают тесселяцию

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

Графические процессоры GeForce GTX 400 содержат до 15 блоков тесселяции, каждый из которых представлен специальным аппаратным обеспечением для выбора вершины, проведения тесселяции и трансформаций координат. Они работают вместе с четырьмя параллельными растровыми движками, превращающими вновь тесселированные треугольники в точный поток пикселей для закраски. Результатом такого подхода становится революционный прорыв в производительности при проведении тесселяции – более 1.6 миллиарда треугольников в секунду при постоянной производительности. По результатам тестирования независимого веб-сайта Bjorn3D, GeForce GTX 480 почти в 7.8 раз опережает своих самых быстрых конкурентов.

Заключение

После многих лет проб и ошибок тесселяция, наконец, стала приносить свои плоды на ПК. Уже сегодня вы можете оценить потенциал тесселяции благодаря таким сногсшибательным играм, как Metro 2033. Со временем, тесселяция времени займет позицию такого же важного и незаменимого инструмента, как закраска пикселей. Осознавая важность тесселяции, компания NVIDIA начала создание архитектуры параллельной тесселяции с самого начала. Результатом стало семейство графических процессоров GeForce GTX 400, обеспечивающих настоящую революцию в геометрическом реализме и производительности при проведении тесселяции.



 
 
 
 
VKontakteMail.ruOdnoklassniki.ruGoogle+Facebook