DirectX 11: Раньше чем вы думаете

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

19.09.2008 13:15
Страницы: 1 2 След.

Несмотря на то, что основное внимание на выставке Nvision 2008 было приковано к профессиональным игровым соревнованиям, стендам и интересным играм и приложениям, там также проходили и конференции профессиональных разработчиков. Здесь внимание слушателей было в основном приковано к унифицированной вычислительной архитектуре устройств CUDA (compute unified device architecture), технологии компании Nvidia по использованию графических процессоров GPU в массивных параллельных приложениях, впрочем, не остался без внимания и одночасовой обзор предстоящей графической технологии DirectX 11 (в частности Direct3D), который был дан представителем от Microsoft  Кевом Гии (Kev Gee). 

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

Построение на DirectX 10

Как, наверное, знают многие читатели, графическая технология DirectX 10 работает только с Windows Vista, и не обеспечивает обратной совместимости с Windows XP (в качестве причины этого Microsoft называет фундаментальные изменения в модели драйвера дисплея, выполненные в Vista). Однако будущая DirectX 11 будет работать как в Vista, так и в будущей операционной системе Windows 7 (что, вообще говоря, является рабочим ее названием и поэтому вполне еще может измениться). Связано это будет с тем, что модель драйвера дисплея, которая будет реализована в Windows 7, фундаментально будет схожей с той, что мы сейчас видим в Windows Vista, если не совершенно той же.

Так, давайте же взглянем на конвейер будущей DirectX 11.

DirectX 11

Как видно, в стандартный графический конвейер будут добавлены три новые стадии – так называемый Hull Shader, Tessellator и Domain Shader. Изменения коснутся и пиксельного шэйдера, что позволит включить так называемые вычислительные шэйдеры (Compute Shader), которые будут работать на общие компьютерные приложения. Мы опишем все это подробнее чуть позже.

Помимо новых стадий, DirectX 11 будет “настроен” и на полную поддержку многопотоковости (мультитридинга), поэтому DLL-библиотеки будущей графической технологии будут “порождать потоки”, подобно тому, как это уже делается на многоядерных и SMT-процессорах.

Также в DirectX 11 будут добавлены некоторые новые форматы текстурного сжатия, которые будут обеспечивать лучшее качество изображения и поддерживать большой динамический диапазон (мы рассмотрим их подробнее чуть позже) и масса небольших функций, большинству из которых не потребуется новое оборудование. Среди таких функций будет поддержка двойной точности чисел с плавающей запятой (опциональная возможность, предназначенная для вычислительных шэйдеров), увеличение текстурных ограничений до 16K и увеличение верхнего лимита ресурса до 2ГБ.

Вот теперь, давайте поговорим обо всем и поподробнее….

Аппаратная тесселяция

Одной из ключевых задач, стоящих перед разработчиками современных игр, является создание более сложных, детализованных и реалистичных героев с одновременным уменьшением времени на это создание. Ранее для увеличения детализации использовались методы треугольной сеточной тесселяции (тесселяция - процесс деления изображения на более мелкие формы, чаще всего на треугольники и четырёхугольники – прим. переводчика), которые обладали одним, но впрочем, значительным недостатком – повешенными требованиями к памяти и накопителям, что выливалось в различные проблемы пропускной способности, и в частности, в увеличение времени загрузки. Одновременным же решением всех этих проблем является использование для получения дополнительной детализации (сложности) героев специальных мощностей графических процессоров, что также можно назвать использованием аппаратной тесселяции. Поэтому поддержка последней и будет реализована в DirectX 11.

Надо сказать, что некоторые эксперты рассчитывали увидеть поддержку аппаратной тесселяции еще в DirectX 10, однако их ожиданиям тогда не суждено было сбыться. И, тем не менее,  аппаратная тесселяция в полной мере будет внедрена в DX11, но, для своей работы она будет требовать именно оборудование DX 11. Так, в настоящее время AMD внедряет аппаратный тесселятор в свою серию графических процессоров AMD Radeon HD, однако, со слов Гии, это оборудование, разработанное под DX 10.1 и DX 10, не будет поддерживать тесселяцию DX11.

Дело в том, что внедренная в DX11 тесселяция будет более общей, нежели то встроенное решение, которое в настоящее время применяется в графических процессорах AMD (по существу аппаратура AMD использует туже тесселяционную единицу, что и в Xbox 360). Однако в тесселяции DX11 будет использоваться более расширенный подход, а не тот, который в настоящее время используется компанией AMD.

Работа же новых стадий DirectX 11 будет заключаться в следующем. На вход так называемого поверхностного шэйдера (hull shader)  будут поступать контрольные точки для патча (это первое появление патчевых, “заплаточных” данных в DirectX). Данные же с выхода поверхностного шэйдера “скажут” тесселятору  насколько тесселировать. Тесселятор же, сам по себе являющийся фиксированной функциональной единицей, возьмет данные с выхода поверхностного шэйдера и сгенерирует добавочную геометрию. Далее зональный шэйдер (Domain Shader) из данных тесселяции подсчитает положения вершин и передаст их в геометрический шэйдер.

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

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

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

Страницы: 1 2 След.
Теги:  DirectX 11   DirectX 10   DirectX 10.1
Оцените материал:  
(Голосов: 59, Рейтинг: 4.47)

Каждый вечер мы будем присылать вам одно письмо со всеми опубликованными за день материалами. Нет материалов - нет писем, просто и удобно (другие варианты).

Материалы по теме


Комментарии (0)