Тесселяция и Battlefield 3
- 16 июля 2011, 11:01
- Просмотров: 10947
- Категория: Новости
Тесселяция на сегодня уже не является новой технологией, поскольку впервые её стали применять в 2005 году с видеопроцессорами Xenos, разработаными компанией AMD для игровых консолей Xbox 360. Однако следует отметить, что модуль тесселяции, который был использован в DirectX 11 является более продвинутым, нежели модуль, который использовался в графических процессорах Xenos.
Тесселяция – наглядный пример увеличения количества полигонов
Тесселяция упрощает процесс создания авторского контента, а так же позволяет разработчикам и дизайнерам создавать более реалистичных и сложных персонажей, при этом тесселяция позволяет избежать огромных расходов производительности системы. За основу тесселяции взята идея о том, что детализация объекта уменьшается по мере отдаления от точки обозрения, однако визуально это не заметно. По мере приближения к объекту, количество треугольников в изображении объекта экспоненциально увеличивается с целью улучшения его детализации для того, чтобы он выглядел более реалистично.
Несомненным плюсом такого подхода является то, что, при рассмотрении просчитанной картинки, среднее число обработанных треугольников остается близко к устойчивому значению, что ведет к большой экономии ресурсов системы.
Данная технология как нельзя лучше подходит как для разработки консольных игр, поскольку там аппаратные средства зачастую крайне ограничены, так и для платформы ПК.
Все стадии тесселяции обрабатываются в графическом процессоре
Процесс тесселяции объекта начинается с Hull Shader (поверхностный шейдер) – он берет контрольные точки, после чего вычисляет нужный уровень тесселяции. После чего, контрольные точки отправляются в Domain Shader (доменный шейдер) – тесселятор не имеет никакого представления о контрольных точках. Поэтому вместо этого, тесселятору предоставляют некоторое количество параметров тесселяции, с помощью которых и задается требуемый уровень тесселяции на определенной области объекта.
Hull Shader сообщает тесселятору, как именно он должен работать – разработчик ранее может задать методом произведения тесселяции, поскольку модуль тесселяции располагает заранее фиксированным комплектом функций, и соответственно у него есть несколько режимов работы. Тесселятор берет то, что было передано ему из Hull Shader и действует в патче над формированием требуемой добавочной геометрии. После того, как эта стадия будет завершена, он выдает доменные точки (domain points) и данные топологии объекта тесселяции.
Затем доменные точки передаются в Domain Shader, который создаст на их основе вершины, которые станут доступны следующей части конвейера. Вместе с этим, данные топологии одновременно адресуются прямо на этап сборки примитивов конвейера – это делается потому, что данные шейдерам не нужны, поскольку они подготовлены для растеризатора. Следует отметить, что на всех этапах стадии тесселяции работа ведется не с треугольниками , а с патчами и точками. Патчи представляют из себя кривые или же области поверхности и практически всегда являются четырехугольниками.
Минимальный уровень тесселяции
Максимальный уровень тесселяции
Все описаные выше шаги осуществляеются за один проход через конвейер DirectX 11. Исходя из этого, можно сделать вывод, что у данной технологии имеется огромный потенциал для эффективного улучшения детализации в будущих играх.
Преимущества тесселяции
Поскольку тесселяцией можно не только улучшать форму объектов, но так же сильно изменять их геометрию, то иногда управляемый процесс тесселяции называют геометрическими шейдерами.
Наиболее значимый вклад в новый уровень детализации в компьютерных играх обеспечивает тесселяция, которую можно будет включить или полностью при необходимости отключить. Поэтому это нововведение мы рассмотрим повнимательнее. На представленных ниже скриншотах, вы сможете увидеть, какие именно изменения вступают в силу при включении и отключении режима тесселяции.
Без тесселяции
Тесселяция включена
Без тесселяции
Тесселяция включена
Технология тесселяции позволяет порядок повысить количество полигонов в каждой сцене. Несомненно, подобные эффекты можно реализовать с помощью других методов, но следует знать, что применение тесселяции позволяет более эффективно использовать ресурсы системы для получения конечного результата в виде изумительной по качеству визуализации картинки.
Теги: Тесселяция, Shader, полигоны, DirectX 11
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.