Новый directx


DirectX 12: Новый этап в развитии игр - Блоги

29 июля состоится релиз Windows 10. И в составе новой ОС мы увидим пакет API DirectX 12, который является эксклюзивным для данной версии.

DirectX 12 обещает быть прорывом в игровой индустрии, так как позволяет поднять уровень графики и производительности на новый уровень, независимо от конфигурации устройства, на котором оно запущено.

Более детально обо всех изменениях и нововведениях мы расскажем вам в нашей статье, посвященной DirectX 12.

“Свершилась мечта всех любителей графония! Появилась поддержка нескольких видеокарт на уровне интерфейса! Причем совместно можно использовать не только видеоадаптеры, работающие в SLI или CrossFire, но и GPU встроенные в CPU, даже от разных производителей.”

С выходом Windows 10 всем станет доступна новая версия API DirectX, которая сильно изменит производительность в играх в лучшую сторону. В отличие от предыдущих версий, для работы вам не потребуется новая видеокарта, так как почти все выпущенные GPU за последние несколько лет будут иметь поддержку Dx12.

Новая версия интерфейса для игр и мультимедийных приложений, которая будет работать на всех устройствах Microsoft: смартфонах, планшетах, ноутбуках, персональных компьютерах и Xbox One. DX12, давая доступ разработчикам к низкоуровневому программированию и улучшенной многопоточности, позволит улучшить производительность уже имеющегося железа в играх. По данным AMD, использование нового API позволяет увеличить количество обрабатываемых объектов в 16.5 раз по сравнению с DX11 при той же частоте кадров. А встроенная поддержка DX12 в Windows 10 сулит ему невероятную популярность.(c) Windows 10 - Восемь самых важных нововведений для геймера

Про DirectX

Перед тем как детально рассказать про Dx12 и все нововведения, напомню, что же такое DirectX, из каких частей состоит весь пакет этого API.

DirectX (от англ. direct — прямой, непосредственный) — это набор API, разработанных для решения задач, связанных с программированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайте Microsoft. Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями.(c) Wikipedia

Основной библиотекой, в которой чаще всего происходят изменения и внедрение новых технологий, является Direct3D. С каждым важным апдейтом этой библиотеки весь пакет DirectX получает новый индекс. Самые важные нововведения в Dx12 сделаны именно в ней. Остальные библиотеки тоже обновлены, но никаких новых технологий в них почти нет, хотя Microsoft обещают что-то новое в будущих обновлениях DirectX.

В целом пакет DirectX подразделяется на такие библиотеки:

  • Direct2D - интерфейс вывода двухмерной графики.
  • Direct3D (D3D) - интерфейс вывода трёхмерных примитивов.
  • DirectInput - интерфейс, используемый для обработки данных, поступающих с клавиатуры, мыши, джойстика и пр. игровых контроллеров.
  • DirectPlay - интерфейс сетевой коммуникации игр.
  • DirectSound - интерфейс низкоуровневой работы со звуком (формата Wave)
  • DirectMusic - интерфейс воспроизведения музыки в форматах Microsoft.
  • DirectShow - интерфейс, используемый для ввода/вывода аудио- и/или видеоданных.

Каждая новая версия DirectX приурочена к определенному важному техническому прорыву. В основном это новые версии шейдерных моделей, которые поддерживаются только определенными поколениями GPU и версиями Windows.

Ключевые особенности версий:

  • DirectX 6.0 — Мультитекстурирование
  • DirectX 7.0 — Аппаратная поддержка преобразований, обрезания и освещения
  • DirectX 8.0 — Шейдерная модель 1.1
  • DirectX 8.1 — Пиксельные шейдеры 1.4 и вершинные шейдеры 1.1
  • DirectX 9.0 — Шейдерная модель 2.0
  • DirectX 9.0b — Пиксельные шейдеры 2.0b и вершинные шейдеры 2.0
  • DirectX 9.0c — Шейдерная модель 3.0
  • DirectX 10 — Шейдерная модель 4.0
  • DirectX 10.1 — Шейдерная модель 4.1
  • DirectX 11 — Шейдерная модель 5.0
  • DirectX 11.1 — Шейдерная модель 5.1
  • DirectX 12 — API низкоуровневого рендеринга, улучшенная многопоточность, поддержка нескольких GPU на уровне API

Особенности и новые технологии в DirectX 12

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

Многопоточная оптимизацияDirectX 12 – первая из всех версий, которая оптимизирована под многопоточность на низком уровне. Игры смогут более равномерно нагружать все доступные ядра CPU, в связи с чем повышается производительность игры в целом. Уменьшается время на обработку основного потока игры, и также позволяет вызывать больше Draw-call. В итоге – на том же железе можно отрисовывать в разы больше объектов без понижения частоты кадров. DX 12 выжмет из вашего ПК весь потенциал!

Оптимизация многопоточности CPU

Спойлер

Графики

Использование нескольких GPUСвершилась мечта всех любителей графония! Появилась поддержка нескольких видеокарт на уровне интерфейса! Причем совместно можно использовать не только видеоадаптеры, работающие в SLI или CrossFire, но и GPU встроенные в CPU, даже от разных производителей. Игры будут обращаться не к конкретному GPU за обработкой графики, а ко всему массиву видеокарт, доступных в системе, как к единому GPU.Подтверждения того, можно ли будет объединить две дискретные видеокарты от AMD или Nvidia, пока нет, но сами компании демонстрируют совместную работу APU+GPU от AMD, или встроенного видео ядра Intel + дискретной карты Nvidia GTX. Возможно, нас ждут кроссбрендовые связки или использование видеокарт разных поколений в одной системе, что положит конец многолетней войне фанбоев AMD и Nvidia.Главным достоинством объединения всех GPU в один кластер является возможность обработки каждого отдельного кадра всем массивом, что устраняет проблемы совместимости игр с Multi-GPU, а также позволяет не копировать видеопамять каждого устройства, а использовать ее совместно, то есть теперь объём памяти нескольких видеокарт суммируется!Использование всего потенциала eSRAM (только Xbox One)eSRAM – особая высокоскоростная память, используемая в GPU Xbox One. Если раньше было специальное API для работы с ней, то сейчас эти процедуры и функции встроены в Dx12, а доступ к ней оптимизирован, и более прост для конечных разработчиков. Поэтому нас ожидает увеличение производительности консоли, а также увеличения качества и быстродействия в будущих играх.Обратная совместимость с DirectX 11 видеокартамиБольшинство современных видеокарт, которые поддерживают DX 11.1, полностью совместимы с DX 12. Более ранние видеокарты будут поддерживать новое API только частично. Сейчас более 70% видеокарт, которые есть у геймеров, будут иметь полную или частичную поддержку всех нововведений. Полный список видеокарт, совместимых с DX 12, по заявлениям производителей, будет представлен в конце статьи.DirectX 12 + встроенные и low-end GPUВсе преимущества DirectX 12 будут доступны не только игровым ПК c видеокартами последнего поколения, но и устройствам с бюджетными видеокартами или даже встроенными в процессоры GPU, например, ноутбукам и планшетам. Тесты, произведенные на Surface Pro 3 с процессором Core i5 с встроенным Intel 4400 GPU, показывают прирост производительности свыше 50% в графических приложениях и играх на примере специального бенчмарка, в котором частота кадров увеличилась с 19 FPS до 33 FPS, при использовании нового API.4k + DirectX 12Также нас ждет оптимизация работы с высокими разрешениями, и при переходе на DX12 средний уровень повышения производительности в разрешениях 4k составит 30-40 процентов. Такие числа назвал главный разработчик Project CARS - Ian Bell.Похожие технологии

До выхода Dx12 некоторые компании представили свои API, схожие по функционалу, но ориентированные на конкретные GPU определенного производителя или на другие графические библиотеки, такие как OpenGL.

Mantle— спецификация низкоуровневого API, разработанная компанией AMD в качестве альтернативы DirectX и OpenGL. В настоящее время поддерживается лишь графическими процессорами AMD архитектуры GCN, хотя есть вероятность, что другие производители GPU могли бы реализовать её в будущем, но в связи с выходом Dx12, который поддерживается всеми производителями GPU на рынке, вероятность этого крайне мала. Ну а последним гвоздем в гроб может стать то, что, судя по тестам проведенным самой AMD, Dx12 работает быстрее их собственной технологии на их же видеокартах.

Vulkan API- изначально был известен как «новое поколение OpenGL» или просто «glNext», но после анонса компания Khronos Group отказалась от этих наименований в пользу названия Vulkan. Как и OpenGL, Vulkan позволяет с высокой производительностью отображать в реальном времени различные приложения с 3D графикой, такие как игры или интерактивные книги, на всех платформах, а также обеспечивает более высокую производительность и меньшую нагрузку на процессор, аналогично Direct3D 12 и Mantle. Vulkan основан на технологиях AMD в Mantle. Как и в прошлом OpenGL, в будущем Vulkan станет единственной достойной альтернативой DirectX и будет поддерживаться Open Source объединениями и такими гигантами игростроя, как Valve.

Список видеокарт с поддержкой DirectX 12 в настоящее время

  • AMD Radeon™ R9 Series graphics
  • AMD Radeon™ R7 Series graphics
  • AMD Radeon™ R5 240 graphics
  • AMD Radeon™ HD 8000 Series graphics for OEM systems (HD 8570 and up)
  • AMD Radeon™ HD 8000M Series graphics for notebooks
  • AMD Radeon™ HD 7000 Series graphics (HD 7730 and up)
  • AMD Radeon™ HD 7000M Series graphics for notebooks (HD 7730M and up)
  • AMD A4/A6/A8/A10-7000 Series APUs (codenamed “Kaveri”)
  • AMD A6/A8/A10 PRO-7000 Series APUs (codenamed “Kaveri”)
  • AMD E1/A4/A10 Micro-6000 Series APUs (codenamed “Mullins”)
  • AMD E1/E2/A4/A6/A8-6000 Series APUs (codenamed “Beema”)
  • Nvidia Fermi (GTX 400, GTX 500)
  • Nvidia Kepler (GTX 600, GTX 700)
  • Nvidia Maxwell (GTX 700, GTX 900)
  • Intel Haswell (HD 5000, 4600, 4400 and 4200; Iris 5200 and 5100)
  • Intel Broadwell (HD 6000, 5600, 5500 and 5300; Iris 6200 and 6100)
Вместо заключения. Выводы

Если Microsoft и производители GPU выполнят свои обещания и не будут блокировать кросс-вендорные связки, как сейчас происходит с PhysX и Mantle, нас ждет технический прорыв. Спустя столько лет и разочарований вроде ПК версии Batman Arkham Knight, разработчики API и игр взялись за оптимизацию кода под имеющееся железо. Что еще нужно геймеру? Конечно, больше FPS бесплатно! Следующие поколения видеокарт будут оптимизированы еще больше под DX12 и будут иметь больше мегагерц и гигабайт, поддержку новых технологий, но играть комфортно в новые игры можно будет уже совсем скоро. Многие скажут, что игр под новый DirectX еще нет и не будет, и они будут почти правы. Но множество хитовых тайтлов этого года получат обновления для поддержки нового API после выхода Windows 10. А 90% игр, релиз которых состоится в конце этого года, уже заявили о его поддержке. А что будет на самом деле, узнаем в ближайшие месяцы, оставайтесь на связи!

www.playground.ru

новые возможности и подводные камни

Многие слышали о том, что directx 12 для windows 10 привнесет в мировую IT-индустрию новый скачок производительности, который будет измеряться не в процентах по соотношению к 11 версии, а в более прогрессивных величинах.

Содержание:

Данный продукт – ключевой компонент интерфейса, с помощью которого программируются приложения. Он обеспечивает прямое взаимодействие ОС и программ с драйверами для видеокарт. Это если не вдаваться в подробности и дебри, которые многим непонятны.

Возможности API Directx 12 для Windows 10

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

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

Остальные, если они есть, либо не тронуты, либо загружаются на 10–15%.

Появятся такие режимы наложения, как blending modes и conservative rasterization. Последняя создана для улучшения отсечения объектов и разного рода столкновений.

Также заявлено снижение уровня абстрагирования различного оборудования и улучшение состояния таблиц дескрипторов.

Больше всего ждут, пожалуй, поддержку новых графических адаптеров, а также возможность объединения в SLI/Crossfire видеокарт от различных производителей. Хочется отметить, что ранее это было попросту невозможно.

Для корректной работы требовалось 2 одинаковых модели одной компании.

Важно! На данный момент Directx12 поддерживают карты nVidia серии GF 500 и выше. Что касается AMD, то по заявлению производителя работу с новым директом будет поддерживать поколение Radeon HD 7000 (от 7730) и более современные адаптеры.

вернуться к меню ↑

Принцип работы новой архитектуры

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

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

В противном случае получается, что из 2/4 ядер нагружается лишь одно, остальные простаивают.

Такая тенденция сохраняется и по сегодняшний день. Яркий тому пример – извечное противостояние Intel и AMD. В некоторых случаях даже 8-ядерный чип FX-8370 (к примеру) проигрывает рядовому 2-ядерному Core i3-4360.

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

Причина такого различия банальна – DirectX. Он разработан так, чтобы максимально задействовать исключительно видеокарту. Центральный процессор API использует поверхностно, поэтому страдает производительность в целом.

В народе этот эффект получил название «бутылочного горла».

Если установить directx 12 для windows 10, то ситуация, в теории, должна кардинально измениться.

Во-первых, процессор начнет работать полноценно. Во-вторых, практически все ПК получат бесплатный апгрейд производительности до 50% только за счет новой версии пакета от Microsoft.

вернуться к меню ↑

Тесты производительности

Не так давно Futuremark выпустили новый модуль для 3D Mark с целью показать все возможности нового API. Принцип действия прост: ЦП должен нарисовать определенную фигуру. Команда проходит через DirectX и отправляется от процессора к видеокарте.

Нагрузка увеличивается до тех пор, пока количество кадров в секунду не начинает проседать ниже 30 fps.

Результат ошеломил всех: Если сравнивать с 11 версией директа, показатели 12 измеряются уже не в процентном соотношении, а в десятках раз.

Ситуация с многоядерными процессорами также изменится. Теперь основное преимущество будет отдаваться не частоте, а количеству «котлов», что только на руку всем владельцам AMD.

Конечно, это только предварительный результат, который пока не отражает всей сути происходящего. С другой стороны, даже синтетические тесты дают понять, какой потенциал кроет в себе новое API от Microsoft.

вернуться к меню ↑

Подводные камни

Теперь очередь поговорить о недостатках продукта. Начнем с того, что скачать directx 12 и надеяться на его полноценную поддержку можно лишь на Windows 10. Разработчики заявили, что Windows 7 и 8 не получат поддержку обновленной версии ПО.

Эта новость огорчила всех поклонников устаревших версий ОС.

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

Хочется отметить, что все владельцы лицензионной версии Windows могут бесплатно обновить свою систему до актуальной «десятки» до конца текущего года. Новые игры обещают, поддерживающие полноценную работу с новым директом, обещают уже в следующем году.

Дополнительно стоит учитывать APU Mantle от AMD, которое дополнительно увеличивает производительность системы, работая в паре с новым API.

Вполне возможно, что скоро доминирование Intel и nVidia на рынке десктопной и мобильной электроники изрядно пошатнется, поскольку скрытый потенциал «красных», наконец, раскроется по-настоящему.

geek-nose.com

DirectX 12: Новый этап в развитии игр

DirectX 12: Новый этап в развитии игр

С выходом Windows 10 всем станет доступна новая версия API DirectX, которая сильно изменит производительность в играх в лучшую сторону. В отличие от предыдущих версий, для работы вам не потребуется новая видеокарта, так как почти все выпущенные GPU за последние несколько лет будут иметь поддержку Dx12.

Новая версия интерфейса для игр и мультимедийных приложений, которая будет работать на всех устройствах Microsoft: смартфонах, планшетах, ноутбуках, персональных компьютерах и Xbox One. DX12, давая доступ разработчикам к низкоуровневому программированию и улучшенной многопоточности, позволит улучшить производительность уже имеющегося железа в играх. По данным AMD, использование нового API позволяет увеличить количество обрабатываемых объектов в 16.5 раз по сравнению с DX11 при той же частоте кадров. А встроенная поддержка DX12 в Windows 10 сулит ему невероятную популярность. (c) Windows 10 - Восемь самых важных нововведений для геймера

Про DirectX

Перед тем как детально рассказать про Dx12 и все нововведения, напомню, что же такое DirectX, из каких частей состоит весь пакет этого API.

DirectX (от англ. direct — прямой, непосредственный) — это набор API, разработанных для решения задач, связанных с программированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайте Microsoft. Зачастую обновленные версии DirectX поставляются вместе с игровыми приложениями. (c) Wikipedia

Основной библиотекой, в которой чаще всего происходят изменения и внедрение новых технологий, является Direct3D. С каждым важным апдейтом этой библиотеки весь пакет DirectX получает новый индекс. Самые важные нововведения в Dx12 сделаны именно в ней. Остальные библиотеки тоже обновлены, но никаких новых технологий в них почти нет, хотя Microsoft обещают что-то новое в будущих обновлениях DirectX.

В целом пакет DirectX подразделяется на такие библиотеки:

  • Direct2D - интерфейс вывода двухмерной графики.
  • Direct3D (D3D) - интерфейс вывода трёхмерных примитивов.
  • DirectInput - интерфейс, используемый для обработки данных, поступающих с клавиатуры, мыши, джойстика и пр. игровых контроллеров.
  • DirectPlay - интерфейс сетевой коммуникации игр.
  • DirectSound - интерфейс низкоуровневой работы со звуком (формата Wave)
  • DirectMusic - интерфейс воспроизведения музыки в форматах Microsoft.
  • DirectShow - интерфейс, используемый для ввода/вывода аудио- и/или видеоданных.
Каждая новая версия DirectX приурочена к определенному важному техническому прорыву. В основном это новые версии шейдерных моделей, которые поддерживаются только определенными поколениями GPU и версиями Windows.

Ключевые особенности версий:

  • DirectX 6.0 — Мультитекстурирование
  • DirectX 7.0 — Аппаратная поддержка преобразований, обрезания и освещения
  • DirectX 8.0 — Шейдерная модель 1.1
  • DirectX 8.1 — Пиксельные шейдеры 1.4 и вершинные шейдеры 1.1
  • DirectX 9.0 — Шейдерная модель 2.0
  • DirectX 9.0b — Пиксельные шейдеры 2.0b и вершинные шейдеры 2.0
  • DirectX 9.0c — Шейдерная модель 3.0
  • DirectX 10 — Шейдерная модель 4.0
  • DirectX 10.1 — Шейдерная модель 4.1
  • DirectX 11 — Шейдерная модель 5.0
  • DirectX 11.1 — Шейдерная модель 5.1
  • DirectX 12 — API низкоуровневого рендеринга, улучшенная многопоточность, поддержка нескольких GPU на уровне API
Особенности и новые технологии в DirectX 12Низкоуровневый доступЕсли раньше интерфейс DirectX был нацелен на универсальность и не давало разработчикам прямого доступа к низкоуровневым функциям видеокарты, то теперь благодаря новым процедурам вызова, доступ к ним открыт, и даже больше – если разработчики не используют их, драйверы смогут автоматически оптимизировать их использование для решения стандартных задач. Благодаря такому подходу, использование специфичных технологий видеокарт позволит увеличить производительность даже в старых играх, портированных на DX12.

Многопоточная оптимизацияDirectX 12 – первая из всех версий, которая оптимизирована под многопоточность на низком уровне. Игры смогут более равномерно нагружать все доступные ядра CPU, в связи с чем повышается производительность игры в целом. Уменьшается время на обработку основного потока игры, и также позволяет вызывать больше Draw-call. В итоге – на том же железе можно отрисовывать в разы больше объектов без понижения частоты кадров. DX 12 выжмет из вашего ПК весь потенциал!

Использование нескольких GPUСвершилась мечта всех любителей графония! Появилась поддержка нескольких видеокарт на уровне интерфейса! Причем совместно можно использовать не только видеоадаптеры, работающие в SLI или CrossFire, но и GPU встроенные в CPU, даже от разных производителей. Игры будут обращаться не к конкретному GPU за обработкой графики, а ко всему массиву видеокарт, доступных в системе, как к единому GPU.

Подтверждения того, можно ли будет объединить две дискретные видеокарты от AMD или Nvidia, пока нет, но сами компании демонстрируют совместную работу APU+GPU от AMD, или встроенного видео ядра Intel + дискретной карты Nvidia GTX. Возможно, нас ждут кроссбрендовые связки или использование видеокарт разных поколений в одной системе, что положит конец многолетней войне фанбоев AMD и Nvidia.Главным достоинством объединения всех GPU в один кластер является возможность обработки каждого отдельного кадра всем массивом, что устраняет проблемы совместимости игр с Multi-GPU, а также позволяет не копировать видеопамять каждого устройства, а использовать ее совместно, то есть теперь объём памяти нескольких видеокарт суммируется!Использование всего потенциала eSRAM (только Xbox One)eSRAM – особая высокоскоростная память, используемая в GPU Xbox One. Если раньше было специальное API для работы с ней, то сейчас эти процедуры и функции встроены в Dx12, а доступ к ней оптимизирован, и более прост для конечных разработчиков. Поэтому нас ожидает увеличение производительности консоли, а также увеличения качества и быстродействия в будущих играх.Обратная совместимость с DirectX 11 видеокартамиБольшинство современных видеокарт, которые поддерживают DX 11.1, полностью совместимы с DX 12. Более ранние видеокарты будут поддерживать новое API только частично. Сейчас более 70% видеокарт, которые есть у геймеров, будут иметь полную или частичную поддержку всех нововведений. Полный список видеокарт, совместимых с DX 12, по заявлениям производителей, будет представлен в конце статьи.DirectX 12 + встроенные и low-end GPUВсе преимущества DirectX 12 будут доступны не только игровым ПК c видеокартами последнего поколения, но и устройствам с бюджетными видеокартами или даже встроенными в процессоры GPU, например, ноутбукам и планшетам. Тесты, произведенные на Surface Pro 3 с процессором Core i5 с встроенным Intel 4400 GPU, показывают прирост производительности свыше 50% в графических приложениях и играх на примере специального бенчмарка, в котором частота кадров увеличилась с 19 FPS до 33 FPS, при использовании нового API.4k + DirectX 12Также нас ждет оптимизация работы с высокими разрешениями, и при переходе на DX12 средний уровень повышения производительности в разрешениях 4k составит 30-40 процентов. Такие числа назвал главный разработчик Project CARS - Ian Bell.Похожие технологии

До выхода Dx12 некоторые компании представили свои API, схожие по функционалу, но ориентированные на конкретные GPU определенного производителя или на другие графические библиотеки, такие как OpenGL.

Mantle — спецификация низкоуровневого API, разработанная компанией AMD в качестве альтернативы DirectX и OpenGL. В настоящее время поддерживается лишь графическими процессорами AMD архитектуры GCN, хотя есть вероятность, что другие производители GPU могли бы реализовать её в будущем, но в связи с выходом Dx12, который поддерживается всеми производителями GPU на рынке, вероятность этого крайне мала. Ну а последним гвоздем в гроб может стать то, что, судя по тестам проведенным самой AMD, Dx12 работает быстрее их собственной технологии на их же видеокартах.

Vulkan API - изначально был известен как «новое поколение OpenGL» или просто «glNext», но после анонса компания Khronos Group отказалась от этих наименований в пользу названия Vulkan. Как и OpenGL, Vulkan позволяет с высокой производительностью отображать в реальном времени различные приложения с 3D графикой, такие как игры или интерактивные книги, на всех платформах, а также обеспечивает более высокую производительность и меньшую нагрузку на процессор, аналогично Direct3D 12 и Mantle. Vulkan основан на технологиях AMD в Mantle. Как и в прошлом OpenGL, в будущем Vulkan станет единственной достойной альтернативой DirectX и будет поддерживаться Open Source объединениями и такими гигантами игростроя, как Valve.

Список видеокарт с поддержкой DirectX 12 в настоящее время

  • AMD Radeon™ R9 Series graphics
  • AMD Radeon™ R7 Series graphics
  • AMD Radeon™ R5 240 graphics
  • AMD Radeon™ HD 8000 Series graphics for OEM systems (HD 8570 and up)
  • AMD Radeon™ HD 8000M Series graphics for notebooks
  • AMD Radeon™ HD 7000 Series graphics (HD 7730 and up)
  • AMD Radeon™ HD 7000M Series graphics for notebooks (HD 7730M and up)
  • AMD A4/A6/A8/A10-7000 Series APUs (codenamed “Kaveri”)
  • AMD A6/A8/A10 PRO-7000 Series APUs (codenamed “Kaveri”)
  • AMD E1/A4/A10 Micro-6000 Series APUs (codenamed “Mullins”)
  • AMD E1/E2/A4/A6/A8-6000 Series APUs (codenamed “Beema”)
  • Nvidia Fermi (GTX 400, GTX 500)
  • Nvidia Kepler (GTX 600, GTX 700)
  • Nvidia Maxwell (GTX 700, GTX 900)
  • Intel Haswell (HD 5000, 4600, 4400 and 4200; Iris 5200 and 5100)
  • Intel Broadwell (HD 6000, 5600, 5500 and 5300; Iris 6200 and 6100)
Вместо заключения. Выводы

Если Microsoft и производители GPU выполнят свои обещания и не будут блокировать кросс-вендорные связки, как сейчас происходит с PhysX и Mantle, нас ждет технический прорыв. Спустя столько лет и разочарований вроде ПК версии Batman Arkham Knight, разработчики API и игр взялись за оптимизацию кода под имеющееся железо. Что еще нужно геймеру? Конечно, больше FPS бесплатно! Следующие поколения видеокарт будут оптимизированы еще больше под DX12 и будут иметь больше мегагерц и гигабайт, поддержку новых технологий, но играть комфортно в новые игры можно будет уже совсем скоро. Многие скажут, что игр под новый DirectX еще нет и не будет, и они будут почти правы. Но множество хитовых тайтлов этого года получат обновления для поддержки нового API после выхода Windows 10. А 90% игр, релиз которых состоится в конце этого года, уже заявили о его поддержке. А что будет на самом деле, узнаем в ближайшие месяцы, оставайтесь на связи!

20 Июль 2015, Taran;   Все новости раздела

www.goha.ru

Что нового принесет DirectX 12

MobileDevice.ru, опубликовано 25 марта 2014 г.

20 марта Microsoft сообщила о выходе нового DirectX 12, порадовав как геймеров, так и API-разработчиков. Мы постараемся собрать воедино всю имеющуюся сейчас информацию и разобраться, что сулит пользователю данное обновление и что поменяется в графике, если установить на ПК или игровую консоль новый DirectX.

Прежде всего, изменения коснулись основной части DirectX — Direct3D, — возросла скорость и производительность ГП в играх и графических приложениях. То есть картинка стала еще более детализированной за счет того, что «12-ый» наконец-то научился выжимать максимум из современных GPU. Большим плюсам DirectX 12 является то, что он будет работать абсолютно на всех устройствах Microsoft, включая планшеты, десктопы, смартфоны, нетбуки и конечно Xbox One. Вопрос только в одном: будут ли «12-ый» DirectX полноценно работать на всех устройствах или же поддерживать их частично.

Итак, новый «Директ» обеспечивает более низкоуровневый доступ к аппаратному обеспечению, чем API предыдущего поколения. Это позволяет играм значительно усовершенствовать масштабируемость при применении многоядерных процессоров, а также снизит общую пиковую нагрузку на них. Помимо этого, DirectX 12  использует  дескрипторные таблицы и совершенно новый подход к рендерингу, что позволяет уменьшить общую нагрузку непосредственно на сам графический процессор. То есть перед нами высокоэффективная модель API с низкими показателями нагрузки на само «железо», что и гарантирует всеприменимость «12-го».

А теперь больше конкретики. Новый «Директ» заставит совершенно по другому посмотреть на глобальное освещение в играх. Но, согласно последним тестам, данный эффект будет требовать огромной вычислительной мощности от видеокарт, и поэтому пока он будет применяться выборочно на отдельных объектах. Это не означает какое-то ограничение в использовании эффекта, так как, собственно, сравнивать пока не с чем — девайсов с такой архитектурой еще и в помине нет, — поэтому выглядит эта возможность скорее заделом на будущее. Зато даже частичное глобальное освещение, выполненное с помощью технологий DirectX 12, поражает своей реалистичностью. При тесте трассировки лучей на видеокарте NVidia эффект практически не заметен, пока не сравнишь скриншот с картинкой предыдущего поколения API.

Помимо вышесказанного, нас ожидает более высокая динамика отображения, то есть то, что мы будем видеть на экране, стадийно изменяется в зависимости от накладываемых процедур. Приложение 3Ds Max уже достаточно давно использует подобную методику, но даже современные видеокарты с DX11 не могут себе подобное позволить, а вот DX12 это вполне по зубам. О чем это говорит? Конечно же, о новом скачке производительности в играх, то есть грядет новая эра реалистичности и наше представления о высококачественной графике может в корне поменяться. Если DirectX 11 ознаменовала себя появлением аппаратной тесселяции, то DirectX 12 обещает пойти намного дальше и усложнить геометрию в играх на порядок. Например, сферический объект будет выглядеть сплошным, без намека на какие-либо текстуры. Это, несомненно, радует.

А теперь, ответим на главный вопрос: будут ли «12-ый» полноценно работать на всех устройствах или же поддерживать их частично? Все очень просто. Во первых, обратная совместимость с DirectX 11 несомненно останется, так как разработчики не предполагают использовать прямой доступ к графическому процессору. Во вторых, как уже говорилось, DX12 — это скорее толчок к развитию GPU, но при этом с поддержкой низкоуровневого доступа. Поэтому даже минимальных возможностей нового API пока вполне хватит.

Помимо прочего, «12-ый» будет обладать целым рядом инновационных графических функций, которые все же потребуют графических ускорителей нового поколения. Не сложно догадаться, что DX12 повторит путь «11-ой версии», а значит, Xbox One не будет обладать полноценной поддержкой нового API. Но не стоит думать, что новое поколение игр, построенное на DirectX 12, не будет поддерживаться вашими видеокартами. Все же главный конек новинки — поддержка любых девайсов с возможностью максимально эффективно использовать их графические подсистемы. В NVidia уже заявили, что абсолютно все поколения вышедших за последнее время GPU будут совместимы с новым «Директом».

На данный момент Microsoft говорит только о двух возможностях DirectX 12, для которых понадобится апгрейд вашего оборудования: новый режим наложения и консервативная растеризация, которая должна улучшить процесс отсечения объектов и определения столкновений. Эти усовершенствования для нас пока малоприменимы и не столь критичны, но разработчики делают намек, что это только начало. Что же, вывод очевиден. Обновится до «12-го» конечно же, стоит, хуже от этого не будет, а вдобавок вы получите более высокое качество картинки по сравнению с предыдущим поколением. Многие геймеры привыкли к постоянному совершенствованию техники, так что испугать будущий апгрейд их не сможет. Что же касается обывателя, то всеядность DirectX 12 порадует и его.

mbdevice.ru

DirectX 10 - Информация - 29 Октября 2010 - DxOrg

В этой статье я хочу затронуть такую тему, как новый API, разработанный компанией Microsoft. Мы пройдемся по особенностям DirectX 10, новым функциям, железу для его поддержки и конечно его значимости.

Особенности DirectX 10По словам разработчиков, DirectX10 нельзя оценивать как всего лишь следующую версию DirectX. В отличие от версии DirectX 9, которая являет собой эволюционное развитие DirectX 8, DirectX 10 была полностью переработана, изменив процесс взаимодействия приложений и "железа", распределение нагрузки между центральным и графическим процессорами. На практике это означает, что графический процессор видеокарты с поддержкой DX10 становится мощнее не только в смысле способности более оперативного обсчёта ещё большего количества пикселей за то же время, но также позволяет работать с неведомыми ранее текстурами, объектами и явлениями. В то же время "избавленный" от необходимости обсчёта графических эффектов, центральный процессор может теперь посвятить свою мощь более быстрому обсчёту других задач, например физики.

Стоит сказать, что DirectX10 будет работать только на Windows Vista и Windows 7. Все причина в новой модели драйвера WDDM (Windows Display Driver Model). Подробнее читайте ниже.

Ключевые нововведения реализованные в DirectX10:
  • Более реалистичная анимация шерсти меха и растений
  • Более мягкие и более чёткие тени
  • Более насыщенные ландшафты с более сложной окружающей обстановкой
  • Значительно более тщательно прорисованный лес, более масштабные и детальные сцены баталий
  • Более динамичные и чаще меняющиеся по ходу событий сценарии игр
  • Больший реализм и уменьшение смазывания движущихся объектов
  • Объёмные эффекты
  • Уточнённый, более реалистичный дым и облака
  • Более реалистичные отражения и преломления на отражающих поверхностях – воде, автомобилях, стекле и др.
  • Снижение загрузки CPU, перераспределение обсчёта ряда процессов на GPU, снижение вероятности подтормаживания и зависания системы при сложном геймплее
DirectX 10 только в Windows Vista и Windows 7Действительно, Microsoft не хочет обеспечивать совместимость нового API с предыдущими версиями своей ОС. Причем в официальном заявлении компании отказ от поддержки DirectХ 10 в Windows XP звучит как невозможность обеспечения полноценной функциональности из-за устаревшего подхода к использованию драйверов и управлению аппаратными ресурсами графической подсистемы, что собственно является скорее отмазкой. Так как переделывать пришлось бы действительно много.

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

Необходимые нововведения

Графический чип с поддержкой нового API в обязательном порядке должен быть мультизадачным, а графическая память соответственно виртуализированной. Так, обращение любого приложения к аппаратным ресурсам графической карты теперь выполняется в четыре стадии – в отличие от трех в предыдущей версии ОС. Теперь любое обращение формируется через интерфейс Direct3D, затем на более низком уровне ядра проходит через виртуальный планировщик работы GPU и менеджер видеопамяти, а далее через низкоуровневый Kernel-Mode Driver (KMD) происходит общение уже с аппаратной частью.Разделения на Direct3D 9 и Direct3D 10Опять же в отличие от Windows XP в Vista будут применяться три графических конвейера. Старый DirectХ-конвейер, оставленный для сохранения совместимости с ПО, разработанным для предыдущей версии ОС, будет выполнять следующий набор действий: аппаратное ускорение видеоконтента вплоть до HDTV (разумеется, с поддержкой HDCP), обработку графики Direct3D 9 (через старую часть драйвера, написанную для XP) и трансформацию вызовов более старых версий Direct3D (5, 6, 7, 8) в код Direct3D 9 с соответствующей заменой стандартных (фиксированных) функций формирования и обработки 3D-объектов шейдером из набора SM 3.0.

Второй конвейер также стандартный – это ICD для обеспечения работоспособности OpenGL-приложений. И наконец, третий – тот самый Direct3D 10, который сможет работать только под Windows Vista и не имеет обратной совместимости с предыдущими API DirectX. На нем стоит остановиться подробнее.

Новый конвейер Direct3D 10Пожалуй, главное новшество, положенное в основу Direct3D 10, – максимальное недопущение «вольностей» со стороны производителей GPU из-за специфики структуры нового набора шейдеров SM 4.0. В результате многочисленные надстройки, придуманные производителями, теперь уйдут в прошлое. Вспомните чехарду с Direct3D 9, когда для соответствия спецификациям требовалась лишь поддержка SM 2.0, а уже сами разработчики за три года «додумали» столько, что версии 9.0с и 9.0а отличались такими «мелочами», как SM 3.0, HDR, новые типы фильтрации, использование геометрических шаблонов и т. д. И все это кардинальным образом смогло изменить реализм трехмерной графики. Однако отсутствие жесткой стандартизации на уровне API привело к тому, что многие возможности пришлось снова поддерживать на уровне приложений (читай – игр), а это вылилось в проблемы с совместимостью, потери производительности и др. Теперь только 100%-ное соответствие требованиям нового API позволит карте называться DirectX 10-совместимой, а выход за эти рамки станет бессмысленным. В результате получается, что по 3D-возможностям все видеокарты от ATI/AMD и NVIDIA, рассчитанные на Direct3D 10, архитектурно идентичные, разница лишь в быстродействии.Полное избавление от фиксированных 3D-функцийВсе принципы работы, заложенные в DirectX с версии 6 до 8,1, а именно: использование определенных (заранее обозначенных) функций формирования 3D-объектов, теперь уходят в прошлое. Так, начиная с DirectX 10 всем будут заведовать шейдеры.Унификация типов шейдеровПредусматривается использование полностью программируемых универсальных шейдеров при отсутствии разделения на вершинные и пиксельные, как это было раньше. Также добавлен новый тип шейдеров – геометрический, промежуточный между вершинным и пиксельным. Он дает возможность производить манипуляции над уже определившимся массивом треугольников после окончания работы вершинного шейдера и, самое главное, допускает произвольное изменение их геометрии.Потоковый выводСледом за геометрическим шейдером идет новая процедура конвейера Direct3D10, названная потоковым выводом. Пожалуй, именно это нововведение позволит сделать еще один существенный шаг в сторону полноценной виртуальной реальности. Теперь данные, прошедшие обработку в вершинных и геометрических шейдерах, записываются в выделенные буфера видеопамяти без обязательной отрисовки в пиксельной части конвейера. В результате несколькими возвратами к вершинной части конвейера и определенными алгоритмами в геометрической части можно, к примеру, создавать неоднотипные детализированные ландшафты без потери производительности.Унификация типов ресурсовПодобно шейдреам четкое разграничение по типам ресурсов, используемых для подготовки объектов к визуализации, – также уже пережиток прошлого. Так, текстуры в DirectX 10 перестали быть объектом, доступным исключительно на стадии пиксельного шейдера, то есть данными, необходимыми только для визуализации. Теперь равнозначный доступ к текстурам можно осуществлять на любой стадии конвейера – от вершинного до пиксельного. Плюс ко всему как текстуры могут быть трактованы массивы вершин или другие типы данных, хранящихся в буферах. Таким образом, подобная неразбериха привела к появлению нового типа данных – текстурному массиву с динамической индексацией в шейдере. Соответственно одни и те же данные, определенные шейдером как текстуры, нормали или набор вершин, дадут на выходе абсолютно разную картину.HLSL 10 (high level shader language)Бурное развитие языка программирования шейдеров высокого уровня за последние два с половиной года для Direct3D и OpenGL 2.0 привело к практически полному отказу от использования ассемблера в описании шейдера. Рассказывать о преимуществах языка высокого уровня я не стану. Самое главное, что HLSL не требует серьезных знаний в области машинного программирования, в то же время ПО, написанное на этом языке, гораздо легче поддается модернизации.FX 10Новая система создания 3D-эффектов, использующая синтаксис Direct3D 10. Основная задача, которую должен выполнять данный sub-API, – просчет сложных эффектов в реальном времени в 3D-сценах, для создания которых ранее применялась исключительно предварительная визуализация.SM 4.0 (Shader Model)С использованием унифицированной модели шейдеров вдвое возрастает эффективность имеющихся в распоряжении ресурсов, так как больше нет разделения на вершинные и пиксельные типы данных. Но не стоит сбрасывать со счетов и количественные показатели, рост которых не может не впечатлять. Вряд ли будет преувеличением сказать, что возможности, доступные четвертому поколению шейдеров, на порядок превосходят заявленные в SM 3.0.

Заключение

Вот мы и подошли к завершению. Из этой короткой статьи многим станет понятно, насколько значительно изменилось устройство нового API. Что это может дать в играх, вы думаю знаете. Тот же Крайзис и СТАЛКЕР показали новые эффекты во всей красе. Единственный минус это новые видеокарты, хотя сейчас бюджетный сегмент ими переполнен, поэтому вопрос покупки DirectX10 совместимой видеокарты не стоит.

Что же касательно DirectX для Windows XP, то скорее всего его никогда официально не будет, это маркетинго не выгодно. К тому же сейчас идет экспансия Windows 7, с ее DirectX11 и если подумать, то через год после выхода SP1 для 7ки, Windows XP будет многим уже не нужен...

Zlocorp

directx10.org

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 HD5870 (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 показан другой вариант применения новых возможностей – рендеринг объектов из полупрозрачных материалов без предварительной сортировки примитивов. Сами по себе полупрозрачные объекты не являются новшеством, но теперь в значительной мере можно упростить работу с ними и ускорить обработку, что позволяет создавать более сложные и красивые сцены и эффекты.

Multithreaded rendering (Многопоточная визуализация)

В DirectX 11 внесли изменения, которые позволят разработчикам усовершенствовать управление GPU со стороны многоядерного CPU. DirectX 11 увеличивает масштабирование ресурсов CPU через модификации в моделях API и драйвера. Асинхронный доступ к устройствам становится допустимым при помощи двух ключевых особенностей объекта Direct3D 11 Device.

Процесс последовательной визуализации

Процесс многопоточной визуализации

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

BC6 & BC7 (два новых формата сжатия текстур)

Самый большой объем памяти в играх чаще всего предоставляется текстурам, поэтому становится ясным стремление разработчиков усовершенствовать сжатие текстур, которое необходимо для минимизации объемов применяемой памяти и снижения требований к ее пропускной способности без влияния на необходимое для визуализации время. DirectX 11 дает разработчикам новоиспеченные форматы сжатия (BC6 для HDR-текстур и BC7 для LDR-изображений и карт нормалей), которые призваны помочь им добиться высококачественной визуализации, не жертвуя при этом производительностью.

Слева расположено оригинальное изображение HDR, готовое к обработке, а справа эквивалентное сжатое BC6 изображение, а по центру изображена абсолютная погрешность.

Результат применения компрессии BC7 в сравнении с BC3 – потери детализации при использовании нового алгоритма практически отсутствуют.

Conservative oDepth (Запись шейдера в буфер глубины)

Зачастую разработчикам приходится отключать Z-структуры и алгоритмы, когда происходит запись шейдера в буфер глубины сквозь регистр oDepth. Функция Conservative oDepth в DirectX 11 позволяет шейдерам совершать запись в буфер глубины в переделах определенной зарезервированной зоны. Это позволит аппаратным средствам избежать значительной потери в производительности, разрешая использование ускорения за пределами указанной зоны.

Также к числу нововведений DirectX 11, призванных упростить, улучшить и ускорить, относится целый ряд менее значимых возможностей (Addressable Stream Out, Draw Indirect, Pull-model attribute eval, Improved Gather4, Min-LOD texture clamps, Geometry shader instance programming model, Read-only depth or stencil views и др.), правда достаточного объема достоверной и понятной информации по ним пока нет.

DirectX 11 в играх

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

Но прежде чем рассматривать потрясающие эффекты, появившиеся благодаря тесселяции, давайте взглянем на эволюцию графических API на примере интересного нового демо-бенчмарка Heaven Benchmark от земляков Unigine Corp.

Unigine Heaven Benchmark DirectX 9.0c

Даже при использовании только возможностей DirectX 9 сцене из Heaven Benchmark смотрятся достаточно эффектно, хотя и не так реалистично, как того хотелось бы.

Unigine Heaven Benchmark OpenGL

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

Unigine Heaven Benchmark DirectX 10.0

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

Unigine Heaven Benchmark DirectX 11

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

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

Без тесселяции

Тесселяция включена

Без тесселяции

Тесселяция включена

Без тесселяции

Тесселяция включена

Без тесселяции

Тесселяция включена

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

Авторы: Роман Дода, Александр Черноиван

При подготовке материала использовалась информация из следующих источников:www.microsoft.comnews.softpedia.comwww.bit-tech.netru.wikipedia.orgwww.tomshardware.comen.hardspell.com

Статья перепубликована с www.EasyCOM.com.ua

Связанные записи
  • Нет связанных записей.
Современные видеокарты рекомендует
Другие новости из мира компьютеров

Запись опубликована 15.11.2009 в 17:41 и относится к разделу Справочная информация.Вы можете оставить комментарий, или отправить трекбек с Вашего сайта.Вы можете читать комментарии, используя RSS-ленту.

www.svideocards.ru

DirectX 12

20 марта в рамках конференции GDC 2014 состоялся анонс следующей версии DirectX 12. Основным ядром DirectX является Direct3D, именно на нем создаются наиболее критичные компоненты игровых приложений. Команда разработки внесла ряд изменений в Direct3D, в результате которых возросла скорость и эффективность многих графических операций. Эти изменения позволяют создавать более детальные сцены и достичь полного использования возможностей современных GPU. Но эти возможности появятся не только в «хай-энд» игровых компьютерах. Direct3D 12 будет работать на всех устройствах Microsoft. Телефоны, планшеты, ноутбуки, десктопы и, конечно, Xbox One, все они позволят использовать API Direct3D 12.

Что делает Direct3D 12 лучше, чем предыдущие версии? В первую, и самую главную очередь, это более низкий уровень абстрагирования оборудования. Это позволяет играм значительно улучшить поточную масштабируемость и уровень использования GPU. В дополнение игры получат выигрыш от таблиц дескрипторов и объектов состояния конвейера. Это, конечно, не все, Direct3D включает набор новых возможностей для конвейера рендера, которые могут в разы увеличить эффективность расчетов прозрачности, определения коллизий и геометрической выбраковки.

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

Да, чтобы не забыть – DirectX 12 будет работать на многих существующих видеокартах.

Это маркетинговая уловка?

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

Это именно наша работа — создавать API, и мы работали вместе с нашими партнерами производителями ПО и железа, для того чтобы доказать значительные улучшения производительности Direct3D 12. Те новинки, которые включены в Direct3D 12, не являются хаками каких-то микробенчмарков. Цифры, которые мы получили, базируются на коммерческих играх и признанных бенчмарках, протестированных на альфа-версии. Скриншоты, которые вы увидите, были сделаны на реальных Direct3D 12 приложениях с реальной реализацией рантайма и драйверов Direct3D 12.

3DMark – поточное масштабирование +50% к утилизации CPU

Если вы заядлый геймер, то наверняка знаете о 3DMark. Это отличный инструмент оценки производительности на большом спектре устройств и железе. 3DMark, работающий на Direct3D 11, позволяет использовать поточное масштабирование, но из-за некоторых накладок, связанных с рантаймом и драйверами, существует холостое время ожидания потоков и ядер. После переноса 3DMark на Direct3D 12 мы увидели два значительных улучшения – 50% прироста к утилизации CPU и улучшение распределения работы между потоками.

Forza Motorsport 5 Tech Demo – консольная эффективность на PC

Forza Motorsport 5 – это пример игры, которая выжимает максимум из Xbox One. Под капотом Forza находится низкоуровневый API взаимодействия с графической подсистемой консоли. Традиционно  такой уровень эффективности достижим только на унифицированном железе. Теперь такая возможность, даже в альфа-версии, есть и на компьютере, и даже на телефоне. При переносе кода графического ядра, базирующегося на Direct3D 11.1, команда Turn 10 добилась такого же уровня оптимизации на PC, и все благодаря возможностям Direct3D 12.

Откуда взялась такая производительность?

Direct3D 12 отходит от старой модели программирования Direct3D 11, позволяя приложению быть значительно ближе к железу как никогда ранее. Мы пересмотрели значительное количество областей API, ключевыми из которых являются механизмы представления состояний конвейера, методы отправки заданий и доступ к ресурсам.

Объекты состояний конвейера

Direct3D 11 позволяет манипулировать состояниями конвейера через большой набор перекрестных объектов. Например, состояние входного ассемблера, состояние пиксельного шейдера, состояние растеризатора и состояние выходного смесителя, все они могут быть изменены независимо. Этот механизм предоставляет удобный, относительно высокий уровень представления графического конвейера, но, к сожалению, он не очень хорошо ложится на современное железо. В первую очередь из-за того, что существуют взаимозависимости между многими состояниями. Например, многие GPU комбинируют состояние пиксельного шейдера и выходного смесителя в одно аппаратное представление. Direct3D 11 API позволяет менять их состояние независимо, но драйвер не может разрешить это, пока не будет знать, что состояние завершено, а это невозможно до начала отрисовки. Это приводит к задержкам при установке состояний железа, означает издержки и меньшее количество вызовов отрисовки на каждый кадр.

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

Пакеты и списки команд

В Direct3D 11 все задания отправляются с помощью непосредственного контекста, который представляет один ряд команд, отправляющихся в GPU. Для многопоточного масштабирования производительности игры используют отложенные контексты, но, как и в случае ОСК, отложенные контексты не соответствуют реальному положению вещей в железе.Direct3D 12 предоставляет новую модель для отправки заданий, базирующуюся на списках команд. Они содержат всю необходимую информацию для исполнения в GPU. В список команд входит ОСК, текстурные и буферные ресурсы, а также аргументы для команды отрисовки. В связи с тем, что список команд автономен и не содержит состояния, драйвер может заранее просчитать необходимые GPU команды в независимом потоке. Необходим лишь процесс сериализации при финальной отправке списка команд в GPU, который производится через очередь команд, и этот процесс очень эффективен.

В дополнение к спискам команд в Direct3D 12 включен механизм вторичного предварительного вычисления с помощью пакетов. В отличие от списков команд, которые полностью автономны и обычно создаются, отправляются для выполнения, а затем уничтожаются, пакеты предоставляют некую форму независимости от состояния и подразумевают повторное использование. Например, если игре необходимо отобразить две модели персонажей с разными текстурами, одним из подходов будет запись списка команд с двумя наборами идентичных вызовов отрисовки. Другим подходом является запись одного пакета, который отрисует одного персонажа, а затем «перемотки назад» пакета дважды в списке команд, используя разные ресурсы. В последнем случае драйверу необходимо вычислить инструкции только единожды, а создание списка команд по существу равно двум вызовам функций с низкой стоимостью.

Дескрипторы кучи и таблицы

Привязка ресурсов в Direct3D 11 хорошо абстрагирована и достаточно удобна, но при этом многие возможности современного железа остаются не у дел. В Direct3D 11 игра создает объекты «представления», затем привязывает эти представления к «слотам» на различных этапах шейдера в конвейере. Шейдеры в свою очередь читают данные из этих явно привязанных слотов, которые фиксированы в момент отрисовки. Такая модель означает, что в случае, если игре надо сделать отрисовку, используя другой набор ресурсов, необходимо сделать повторную привязку представлений к другим слотам и заново вызвать отрисовку. Это еще один пример накладных расходов, которые могут быть устранены, если полностью использовать современные возможности железа.

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

В дополнение к улучшениям, связанным с дескрипторной кучей и таблицами, Direct3D 12 позволяет динамически индексировать ресурсы в шейдерах. Это предоставляет беспрецедентную гибкость и открывает дорогу к новым техникам рендера. Например, современные движки рендера, основанные на отложенном подходе, часто кодируют материал или идентификатор объекта какого-то типа в предварительный g-буфер. В Direct3D 11 такие движки должны быть осторожны в использовании слишком большого количества материалов, так как включение множества g-буферов может значительно снизить скорость финального прохода отрисовки. Вместе с динамически индексируемыми ресурсами сцена с тысячей материалов может быть финализирована так же быстро, как и с десятью.

Хотите быть одним из первых?

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

 

Опубликовано в блоге Microsoft на Habrahabr.ru

news.microsoft.com


Смотрите также