up
ru ua
menu


ASUS_Quiz1.gif

logo minifile

::>Видеокарты > 2009 > 11 > ...

Версия для печати
Переопубликовать обзор

10-11-2009


rss

Microsoft DirectX 11 – новый виток эволюции игровой компьютерной графики

Впервые о DirectX 11 мир услышал в ноябре 2008 года, тогда компания Microsoft представила свои начальные разработки API (Application Programming Interface) и новые возможности обработки графики. Официально же DirectX 11 стал доступен 22 октября 2009 года, вместе с выходом новой операционной системы Windows 7 (хотя доступен в виде обновления и для Windows Vista). Причем первые графические адаптеры для аппаратной поддержки DirectX 11 представила компания AMD еще до официального появления финальной версии API. Графический процессор под кодовым названием RV870 официально является первым в мире решением с полной поддержкой новых технологий, включенных в состав Microsoft DirectX 11. Выпуск Radeon HD 5870 (RV870) от AMD состоялся 23 сентября 2009 года, а первой игрой, в которой можно будет насладиться всей красотой новых технологий, является Colin McRae: DiRT 2 от компании Codemaster, именно они первые заявили об использовании DirectX 11. В недалеком будущем стоит ожидать ответа и от NVIDIA для визуализации новых игр с поддержкой DirectX 11, которых со временем будет все больше и больше.

Фактически новая версия DirectX 11 является расширенной и улучшенной версией своего предшественника DirectX 10. Наиболее серьезным различием между предыдущей и новой версиями API является модуль тесселяции, который присутствует в DirectX 11. Однако есть и другие совершенно новые технологии, которые становятся доступны в новом Direct3D11.

Сравнение возможностей визуализации DirectX 10 и DirectX 11

Сравнение детализации изображения в DirectX 10 и DirectX 11: СТАЛКЕР - Зов припяти

Главные особенности и новшества DirectX 11

  • Tessellator (модуль тесселяции)
  • Shader Model 5.0 (Шейдерная Модель версии 5.0)
  • Compute Shader (Вычеслительные шейдеры)
  • Multithreaded rendering (Многопоточная визуализация)
  • BC6 & BC7 (два новых формата сжатия текстур)
  • Conservative oDepth (Запись шейдера в буфер глубины)

Tessellator (модуль тесселяции)

Тесселяция не является совершенно новой технологией, впервые её стали использовать видеопроцессоры Xenos, которые были разработаны компанией AMD для игровых консолей Xbox 360 в 2005 году. Однако модуль тесселяции использованный в DirectX 11 является более устойчивым и гибким, нежели модуль, использованный в графических процессорах Xenos.

Тесселяция - увеличения количества полигонов

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

Все стадии обрабатываются в графическом процессоре

Процесс тесселяции предмета начинается в Hull Shader (поверхностный шейдер) - он берет контрольные точки и вычисляет нужный уровень тесселяции. После этой базисной реорганизации контрольные точки отправляются в Domain Shader (доменный шейдер) - тесселятор абсолютно ничего не знает о контрольных точках. Вместо этого тесселятору предоставляют некоторое количество параметров тесселяции, которые задают ему требуемый уровень тесселяции на определенном патче (особые минимальные кусочки объекта). Hull Shader сообщает тесселятору, в каком порядке он должен работать - разработчик сможет определить, каким методом произойдет процесс тесселяции, поскольку модуль тесселяции располагает фиксированным комплектом функций, у него есть несколько операционных режимов. Тесселятор берет то, что было подано ему из Hull Shader и действует в патче над формированием требуемой добавочной геометрии. Как только эта стадия будет завершена, он выдаст доменные точки (domain points) и данные топологии. Доменные точки подаются в Domain Shader, который создает на их основе вершины, доступные прочей части конвейера. Одновременно данные топологии адресуются прямо на этап сборки примитивов конвейера - это совершается потому, что данные шейдерам не нужны, они подготовлены для растеризатора. Здесь нужно отметить то, что на всех этапах стадии тесселяции работа ведется не с треугольниками – вместо этого обрабатываются патчи и точки. Патчи представляют собой кривые или области поверхности и практически всегда являются четырехугольниками. Это первый случай, когда DirectX использует в качестве примитивов не треугольники, и это является существенным шагом вперед.

Минимальный уровень тесселяции

Максимальный уровень тесселяции

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

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

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

Геометрические шейдеры – создание и уничтожение вершин на аппаратном уровне, использование в качестве примитивов не треугольников, новый уровень масштабирования производительности.

Shader Model 5.0 (Шейдерная Модель версии 5.0)

Набор библиотек Microsoft DirectX 11 принес с собой расширение языка низкоуровневого программирования - Shader Model 5.0, который использует объектно-ориентированные концепции, с тем, чтобы облегчить разработку шейдеров и внести некоторые вспомогательные возможности.

Детальное рассмотрение новой шейдерной модели

Это обновление для HLSL (High Level Shading Language) дает программисту полный контроль над компилятором HLSL для решения проблемы специализации шейдеров путем использования интерфейсов, объектов и полиморфизма. Благодаря динамическому контролю за шейдерами, разработчики смогут без проблем создавать большие гибкие шейдеры вместо специализированных оптимизированных версий для применения во время определенных моментов визуализации.

Новый подход к написанию многофункциональных шейдеров

Новый механизм Dynamic Shader Linking позволит вместо написания кучи разнородных шейдеров описания материала и источников света, а также их взаимодействия, создавать один универсальный шейдер с достаточно просто читаемым кодом, что  облегчит и ускорит программирование и отладку.

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

Compute Shader (Вычеслительные шейдеры)

DirectCompute - главным образом это коммуникация данных между потоками и огромный выбор примитивов для случайного доступа и потоковых операций ввода/вывода. Эти функции санкционируют более простые и более быстрые реализации уже применяемых методик, таких как создание изображений и постобработка, а также раскрывают новейшие методы, которые могут действовать на аппаратных средствах Direct3D11.

Процесс работы Compute Shader

Фактически и на графических процессорах предыдущих поколений производители видеокарт реализовывали подобные функции, которые получали фирменное наименование и применение – технологии ATI Stream и NVIDIA CUDA. Компания же Microsoft в DirectX 11 решила унифицировать расширенные вычислительные возможности видеокарт, позволяя создавать программный код, выполняемый на всех новых видеоускорителях, не зависимо от производителя графического процессора. В качестве применения DirectCompute открываются новые горизонты: постобработка кадров и видеопотока, улучшенный искусственный интеллект, более реалистичная физика и т.д.

В качестве демонстрации возможностей применения Compute Shader компания AMD представила две «демки»: AMD Ladybug DirectX 11 Demo и AMD Mecha DirectX 11 Demo.

Демонстрация эффектов постобработки с помощью DirectCompute

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

Ускорение обработки полупрозрачных материалов с помощью DirectCompute

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


Социальные комментарии Cackle
Поиск по сайту
Почтовая рассылка
top10

vote

Голосование