Купить компьютер с Windows в Украине

Новые возможности DirectX 11: тесселяция

Термин "тесселяция" стал широко обсуждаться, начиная с выпуска Microsoft Xbox 360 в конце 2005 года, – разработанный ATI видеочип Xenos включал в себя выделенный аппаратный модуль тесселяции.

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

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

Традиционно, создание персонажей до момента, как к ним будет применена полигональная сетка, продвигается от Sub-D модели к анимированной модели с картами смещения. Как только сетка будет применена и даже до того, как ее направят в GPU, она будет рассчитана в соответствии с различными уровнями детализации (LOD). Различные уровни LOD могут использоваться для различных классов аппаратных средств или они могут использоваться, когда персонажи или другие столь же значимые объекты находятся далеко от игрока – это добавляет сцене больше деталей с минимальными потерями в производительности.

tes1
tes2

Подобный выигрыш в производительности наиболее реален для консольной разработки, потому что там аппаратные средства зачастую очень ограничены. Для платформы ПК тесселяция приносит некоторую существенную выгоду. И это является одной из причин, почему AMD представило аппаратное обеспечение для тесселяции в Radeon HD 2900 XT, которое включено в состав всех последующих GPU компании. По сути оно пока что еще не использовалось, но подобный шаг AMD заставил индустрию больше узнать о потенциальной выгоде, предлагаемой аппаратной тесселяцией.

Поговорив с Кевином Гии (Kevin Gee) из Microsoft и Ричардом Хадди из AMD, мы смогли подтвердить информацию о том, что тесселятор Xbox 360 (и видеокарт серий Radeon HD 2000, 3000 и 4000) несовместим с DirectX 11, но тесселятор DX11 покрывает все продукты, которые уже находятся на рынке. Другой хорошей новостью является то, что в тесселятор чипов серии Radeon HD 4000 действительно было внесено несколько изменений, предоставивших разработчикам доступ к соответствующей функции в приложениях DirectX 10 – это было невозможно с модулем тесселяции, находящемся внутри чипов серий HD 2000 и 3000.

tes3
tes4
tes5
tes6

К тому же, хотя разработчики вряд ли будут использовать этого для сегодняшних приложений, тесселятор RV7xx является действительно полезным инструментом, поскольку он позволяет разработчикам и художникам уже сегодня экспериментировать с тесселяцией в программной среде, которая, как ожидается, будет очень похожа на DirectX 11. В конце концов, графический конвейер DirectX 11 – это расширение DirectX 10, главным дополнением которого является тесселятор.

Во время презентации на Nvision 2008 Гии говорил о том, что модуль тесселяции DirectX 11 является более устойчивым и более гибким, чем модули тесселяции сегодняшних GPU AMD (включая Xenos). Однако интересно то, что он до сих пор непрограммируемый – он полагается на Hull Shader, который должен предоставлять ему правильную информацию, и на Domain Shader, который берет данные тесселятора и преобразует их в вершину прежде, чем отправить их далее по конвейеру.

Процесс тесселяции объекта начинается в Hull Shader (иначе поверхностный шейдер) – он берет контрольные точки и затем вычисляет требуемый уровень тесселяции. После этого базисного преобразования контрольные точки отправляются в Domain Shader (иначе зональный или доменный, шейдер) – тесселятор ничего не знает о контрольных точках.

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

Тесселятор берет то, что было передано ему из Hull Shader и работает в патче над созданием требуемой дополнительной геометрии. Как только эта работа будет закончена, он выдаст доменные точки (domain points) и данные топологии.

tes7
tes8
tes9
tes10

Доменные точки передаются в Domain Shader, который создает на их основе вершины, которые доступны остальной части конвейера. Тем временем, данные топологии направляются прямиком на стадию сборки примитивов конвейера – это происходит потому, что эти данные не нужны шейдерам, они предназначены для растеризатора.

tes11
tes12

Здесь важно отметить, что на всех этапах стадии тесселяции работа производится не с треугольниками; вместо этого, обрабатываются патчи и точки. Патчи представляют собой кривые или области поверхности и обычно являются четырехугольниками (иначе квадами). Конечно, патчи могут быть представлены и треугольниками, но это менее распространено, потому что большинство 3D-приложений авторинга работают с квадами. Это первый случай, когда DirectX работает без треугольников, так что это весьма существенный шаг вперед.

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

Источник: http://thevista.ru/

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
1 Star2 Stars3 Stars4 Stars5 Stars (Нет оценок)
Загрузка ... Загрузка ...

Оставить комментарий

CAPTCHA image