DirectX12 Ultimate

DirectX12 Ultimate дает геймерам уверенность в том, что их оборудование соответствует высшей планке в играх следующего поколения.

  1. Стоит упомянуть что на нашем блоге есть статья в которой рассказывается какие игры могут поддерживать 12 DX в системе Windows 7. Думаю это не мало важно знать, так как для Windows 7 уже прекращена поддержка полностью, а dx12 поддерживается играми только в Windows 10. Если интересно читайте статью на нашем блоге " → Blizzard добавила поддержку DirectX 12 для 7 версии Windows". Перейдем к этой статье на этой странице и что говорят разработчики dx:
  2. От команды, которая принесла геймерам для ПК и консолей последние 25 лет новейшие графические инновации, мы очень рады представить геймерам DirectX 12 Ultimate, кульминацию лучшей графической технологии, которую мы когда-либо представляли, в беспрецедентном соотношении между ПК и Xbox Series X.
  3. Когда геймеры приобретают графическое оборудование для ПК с логотипом DX12 Ultimate или Xbox Series X, они могут делать это с уверенностью, что их оборудование гарантированно поддержит ВСЕ функции графического оборудования ВСЕГО поколения, включая DirectX Raytracing, затенение с переменной скоростью, Mesh Shaders и Sampler.
  4. Графические инновации

  5. Game Stack от Microsoft существует, чтобы предоставить разработчикам инструменты, необходимые для создания ярких, захватывающих игровых процессов, а DX12 Ultimate является идеальным инструментом для усиления игровой графики. DX12 Ultimate является результатом постоянных инвестиций в платформу DirectX 12, сделанных в течение последних пяти лет для обеспечения того, чтобы Xbox и Windows 10 оставались на вершине графической технологии. Чтобы еще больше расширить возможности разработчиков игр для создания игр с потрясающей графикой, мы усовершенствовали функции, которые уже начинают преобразовывать игры, такие как DirectX Raytracing и шейдинг с переменной скоростью, и добавили новые основные функции, такие как Mesh Shaders и Sampler Feedback.
  6. Вместе эти функции представляют собой многолетние инновации от Microsoft и наших партнеров в области аппаратного обеспечения. DX12 Ultimate объединяет их в один общий пакет, предоставляя разработчикам единый ключ для разблокировки графики следующего поколения на ПК и Xbox Series X.
  7. Конечно, даже самые мощные функции имеют ограниченное использование без инструментов, необходимых для их полного использования, поэтому мы рады сообщить, что наш ведущий в отрасли инструмент оптимизации графики PIX и наш HLSL-компилятор с открытым исходным кодом предоставят разработчикам игр возможность выжать все до последней капли производительности из всей экосистемы аппаратного обеспечения DX12 Ultimate.
  8. Дополнительное преимущество

  9. Очень важно отметить, что DX12 Ultimate не повлияет на совместимость игры с существующим оборудованием, которое не поддерживает все функции DX12 Ultimate. Фактически, игры следующего поколения, которые используют функции DX12 Ultimate, будут продолжать работать на оборудовании, отличном от DX12 Ultimate. Хотя такое аппаратное обеспечение не обеспечивает визуальных преимуществ новых функций, оно все же может обеспечить очень привлекательный игровой процесс в играх следующего поколения, в зависимости от особенностей оборудования.
  10. Экосистема ПК включает в себя широкий спектр аппаратного обеспечения, а DX12 Ultimate делает эту экосистему строго лучше, не оказывая негативного влияния на аппаратное обеспечение, которое не поддерживает DX12 Ultimate!
  11. Усиление добродетельного цикла

  12. Как мог бы подтвердить любой геймер, есть несколько более высоких достоинств, чем оценка хорошо продуманной и красивой игры. DX12 Ultimate создает беспрецедентные возможности для всей игровой экосистемы, создавая самоусиливающийся действенный цикл, который приводит к лучшему игровому опыту!
  13. Цикл ниже описывает общий процесс улучшения графики в играх, который происходил в течение многих лет. Поскольку новое оборудование (или новое поколение консолей) медленно достигает насыщения рынка, количество адресуемых сокетов с поддержкой графических функций следующего поколения увеличивается. По мере того, как количество сокетов с этими функциями увеличивается, количество игровых студий, желающих принять новые функции, также увеличивается, пока, наконец, не наступит насыщение рынка аппаратными средствами, и большинство игровых студий не примут эти функции.
  14. До DX12 Ultimate перекрытие между этими двумя циклами было ограниченным. Даже когда аппаратное обеспечение было схожим, программные интерфейсы были совершенно разными, что препятствовало согласованному принятию решения разработчиками.
  15. Объединив графическую платформу для ПК и Xbox Series X, DX12 Ultimate служит множителем силы для всей игровой экосистемы. Больше не работают циклы независимо! Вместо этого они теперь объединяются синергетически: когда выйдет Xbox Series X, в мире уже будет много миллионов видеокарт DX12 Ultimate для ПК с таким же набором функций, что будет катализатором быстрого принятия новых функций, а когда Xbox Series X принесет волну из новых консольных геймеров ПК также получит выгоду от этого огромного всплеска нового оборудования, способного работать с DX12 Ultimate!
  16. Полный набор функций DirectX 12 Ultimate будет доступен в версии Windows 10 20H1.
  17. Посмотреть с технической стороны

    DirectX Raytracing 1.1

  18. DirectX Raytracing (DXR) обеспечивает новый уровень графического реализма в видеоиграх, ранее достижимый только в киноиндустрии. Эффекты, достижимые с помощью DXR, кажутся более реальными. DXR отслеживает пути света с помощью реальных физических вычислений, что является гораздо более точным моделированием, чем вычисления на основе эвристики, использовавшиеся ранее.
  19. DXR 1.1 - это добавочное дополнение к DXR 1.0, добавляющее три основных новых возможности:
  20. GPU Work Creation теперь позволяет Raytracing. Это позволяет шейдерам в графическом процессоре вызывать трассировку лучей без вмешательства туда и обратно обратно в процессор. Эта способность полезна для сценариев адаптивной трассировки лучей, таких как отбраковка / сортировка / классификация / уточнение на основе шейдеров. По сути, сценарии, которые готовят трассировку лучей, работают на графическом процессоре, а затем сразу же порождают его.
  21. Потоковые движки могут более эффективно загружать новые шейдеры трассировки лучей по мере необходимости, когда игрок перемещается по миру и новые объекты становятся видимыми.
  22. Встроенная трассировка лучей является альтернативной формой трассировки лучей, которая дает разработчикам возможность управлять большей частью процесса трассировки, в отличие от полной обработки планирования работы системы (динамическое затенение). Он доступен на любом этапе шейдера, включая вычислительные шейдеры, пиксельные шейдеры и т. Д. Как в динамическом шейдинге, так и в линейных трассировках лучей используются одни и те же непрозрачные структуры ускорения.
  23. Когда использовать встроенную трассировку лучей

  24. Встроенная трассировка лучей может быть полезна по многим причинам:
  25. Например, хорошо ограниченный способ расчета теней.
  26. Может быть удобно / эффективно запрашивать структуру ускорения у шейдера, который не поддерживает лучи на основе динамического шейдера. Как вычислительный шейдер или пиксельный шейдер.
  27. Может быть полезно объединить трассировку лучей на основе динамического шейдера с встроенной формой. Некоторые этапы шейдера трассировки лучей, такие как пересечения шейдеров и любые хит-шейдеры, даже не поддерживают трассировку лучей посредством трассировки на основе динамических шейдеров.
  28. Другая комбинация состоит в том, чтобы перейти к встроенной форме для простых рекурсивных лучей. Это позволяет приложению объявить, что для лежащего в основе конвейера трассировки лучей нет рекурсии, поскольку встроенная трассировка лучей обрабатывает рекурсивные лучи. Более простая нагрузка динамического планирования в системе может повысить эффективность.
  29. Сценарии со многими сложными шейдерами будут лучше работать с трассировкой лучей на основе динамических шейдеров, а не с использованием массивных встроенных убер-шейдеров трассировки лучей. Между тем, сценарии с минимальной сложностью затенения и или с очень небольшим количеством шейдеров будут лучше работать при встроенной трассировке лучей.
  30. Если все вышесказанное кажется довольно сложным! Вывод высокого уровня заключается в том, что как новая встроенная трассировка лучей, так и оригинальная трассировка лучей на основе динамических шейдеров полезны для различных целей. Начиная с DXR 1.1, разработчики не только могут выбрать один из подходов, но даже могут объединить их в одном рендере. Гибридные подходы поддерживаются тем фактом, что оба варианта трассировки лучей DXR используют один и тот же формат структуры ускорения и управляются одним и тем же базовым автоматом обхода.
  31. Затенение с переменной скоростью

  32. Переменная скорость затенения (VRS) позволяет разработчикам выборочно изменять скорость затенения в игре. Это позволяет им «набирать» мощность графического процессора в более важных частях игры для лучшей визуализации и «набирать» мощность графического процессора в менее важных областях игры для лучшей скорости. Преимущество затенения с переменной скоростью также заключается в том, что для разработчиков он является относительно недорогим.
  33. Mesh Shaders

  34. Mesh Shaders дают разработчикам больше возможностей программирования, чем когда-либо прежде. Используя все возможности обобщенных вычислений на GPU для геометрического конвейера, сетевые шейдеры позволяют разработчикам создавать более детальные и динамичные миры, чем когда-либо прежде.
  35. До создания сетчатого шейдера геометрический конвейер графического процессора скрывал параллельный характер аппаратного исполнения графического процессора за упрощенной программной абстракцией, которая давала разработчикам доступ только к, казалось бы, линейным функциям шейдера. Например, разработчик пишет функцию вершинного шейдера, которая вызывается один раз для каждой вершины в модели, что подразумевает последовательное выполнение. Однако за кулисами аппаратное обеспечение упаковывает смежные вершины для заполнения SIMD-волны, а затем выполняет 32 или 64 функции вершинных шейдеров параллельно на одном ядре шейдера. Эта модель работала очень хорошо в течение многих лет, но она оставляет производительность и гибкость, скрывая детали того, что аппаратное обеспечение действительно делает от разработчиков.
  36. Сетка шейдеров меняет это, заставляя обработку геометрии вести себя как вычислительные шейдеры. Вместо одной функции, которая затеняет одну вершину или один примитив, сетевые шейдеры работают во всей группе вычислительных потоков с доступом к разделяемой памяти группы и расширенными функциями вычислений, такими как межполосные волновые свойства, которые обеспечивают еще более точный контроль над фактическим оборудованием. выполнение. Все эти потоки работают вместе, чтобы заштриховать небольшой индексированный список треугольников, называемый «мешочек». Обычно это фаза шейдера сетки, где каждый поток работает с отдельной вершиной, затем другая фаза, где каждый поток работает с отдельным примитивом, но эта модель является полностью гибкой, позволяя обмениваться данными между потоками, новыми вершинами или примитивами. создаются по мере необходимости, существующие примитивы обрезаются или отбраковываются и т. д.
  37. Наряду с этой новой гибкостью распределения потоков появляется гибкость форматов входных данных. Mesh shader больше не использует блок Input Assembler, который ранее отвечал за выборку данных индекса и вершин из памяти. Вместо этого, шейдерный код может свободно читать любые данные из любого формата, который ему нравится. Это позволяет использовать новые новые методы, такие как сжатие индексного буфера или использование нескольких разных индексных буферов для разных каналов данных вершин. Такие подходы могут уменьшить использование памяти, а также уменьшить пропускную способность памяти, используемую во время рендеринга, тем самым повышая производительность.
  38. Хотя модель шейдера более гибкая, чем предыдущий геометрический конвейер, она также намного проще:
  39. Сетка шейдера изображения
  40. Наряду с сетевым шейдером поставляется дополнительный новый этап шейдера, называемый Amplification Shader. Он запускается перед сетевым шейдером, выполняет некоторые вычисления, определяет, сколько групп потоков шейдерных сетей необходимо, а затем запускает столько сеточных шейдеров:
  41. Адаптивные шейдеры особенно полезны для отбраковки, так как они могут определить, какие сетки видны, проверяя каждый набор из 32-256 треугольников на геометрическом ограничивающем томе, нормальном конусе или более продвинутых методах, таких как плоскости видимости портала, прежде чем принять решение о запуске группа нитей шейдера для этого меша. Ранее отбраковка обычно выполнялась на более грубом уровне для каждой сетки, чтобы решить, следует ли вообще рисовать объект, а также на более тонком уровне для каждого треугольника в конце геометрического конвейера. Этот новый промежуточный уровень отбраковки повышает производительность при рисовании моделей, которые закрыты лишь частично. Например, если часть символа находится на экране, а не одна рука, шейдер усиления может отбросить всю руку после гораздо меньшего количества вычислений, чем потребовалось бы, чтобы затенить все треугольники внутри него.
  42. Обратная связь сэмплера

  43. Sampler Feedback обеспечивает лучшее визуальное качество, более короткое время загрузки и меньшее заикание, предоставляя подробную информацию, позволяющую разработчикам загружать текстуры только при необходимости.
  44. Предположим, вы разработчик игр, закрашивающий сложную 3D-сцену. Камера быстро перемещается по всей сцене, в результате чего некоторые объекты перемещаются на разные уровни детализации. Поскольку вам необходимо активно оптимизировать память, вы привязываете ресурсы, чтобы справиться со спросом на разные LOD. Возможно, вы используете систему потоковой передачи текстур; возможно, используете плиточные ресурсы, чтобы сохранить эти гигантские 4K mip 0s нерезидентами, если они вам не нужны. В любом случае, у вас есть шейдер, который сэмплирует сложенную текстуру, используя очень сложный образец сэмплирования, скажем анизотропный.
  45. Выборка в этом шейдере заставляет вас задавать вопросы.

  46. Какой уровень MIP пробовали? Похоже очень простой вопрос. До Sampler Feedback не было простого способа узнать. Вы могли бы собрать воедино эвристику. Вы можете подумать о структуре выборки и сделать некоторые обоснованные предположения. Но 1.) у вас нет времени на это, и 2.) нет способа на все 100%.
  47. Где именно в ресурсе? Более конкретно, что вам действительно нужно знать - какие плитки? Может быть в верхнем левом углу или справа в середине текстуры. Ваша потоковая система действительно выиграет от этого, если вы будете знать, какие mips загружать дальше.
  48. Обратная связь сэмплера решает эту проблему, позволяя шейдеру эффективно запрашивать, какая часть текстуры была бы необходима для удовлетворения запроса на выборку, без фактического выполнения операции сэмплирования. Затем эта информация может быть передана обратно в систему потоковой передачи игровых ресурсов, что позволяет ей принимать более разумные и точные решения о том, какие данные будут передаваться дальше. В сочетании с функцией плиточных ресурсов D3D12 это позволяет играм воспроизводить более крупные и подробные текстуры, используя меньше видеопамяти.
  49. Обратная связь сэмплера также позволяет использовать затенение в текстурном пространстве (TSS) - метод рендеринга, который отделяет затенение объекта в мировом пространстве от растеризации формы этого объекта до конечной цели.
  50. TSS - это метод, который позволяет разработчикам игр выполнять дорогостоящие вычисления освещения в пространстве объектов и записывать их в текстуру, например, в нечто, похожее на развертывание объекта UVW. Поскольку ничего не растеризовано, затенение может быть выполнено с использованием вычислений, вообще без графического конвейера. Затем, в отдельном шаге, привяжите текстуру и растеризуйте к экранному пространству, выполняя простой пример. Этот подход уменьшает наложение и позволяет вычислять освещение реже, чем растеризация. Разделение этих двух показателей позволяет использовать более сложные методы освещения при более высокой частоте кадров.
  51. Настройка сцены с использованием затенения пространства текстуры
  52. Одним из препятствий для правильной работы TSS является выяснение того, что в объектном пространстве должно быть затенено для каждого объекта. Все? Это вряд ли будет эффективным. Что если видна только левая сторона объекта? Благодаря возможности обратной связи сэмплера, шаг растеризации может просто записывать, какие тексели запрашиваются, и выполнять только дорогостоящие вычисления освещения для них.
  53. Если вы прочитали все выше изложенное и задаетесь вопросом, когда будут технические материалы, более подробней можно узнать в блоге для разработчиков о DirectX Raytracing 1.1, шейдинге с переменной скоростью, шейдерах сетки и обратной связи сэмплера, четыре функции внутри DX12 Ultimate, все ссылки чуть ниже.
  54. Для разработчиков игр есть подробное руководство "Приступая к работе с DirectX 12 Ultimate", которое содержит все подробности, необходимые для начала работы с поддержкой DX12 Ultimate, включая информацию о том, как присоединиться к программе Insiders, правильной сборке, SDK, драйверам. и т. д.
  55. Как выше уже говорилось, полный набор функций DirectX 12 Ultimate будет доступен в версии Windows 10 20H1. Узнать о самых последних версиях Windows 10 можно на нашем блоге в статье " → Накопительные обновления до марта 2020 года". Также в статье есть ссылка как скачать самую последнюю версию 19H2.

  56. Ссылки на материалы упоминающиеся в статье:

    Перейти официальная страница DirectX Raytracing (DXR) Tier 1.1
    Перейти официальная страница Variable Rate Shading
    Перейти официальная страница Mesh Shaders
    Перейти официальная страница Sampler Feedback
    Перейти официальная страница DirectX 12 Ultimate Getting Started Guide
    Перейти официальная страница AMD RDNA 2 and DirectX 12 Ultimate
    Перейти официальная страница NVIDIA GeForce RTX Is Game Ready For DirectX 12 Ultimate
    Перейти официальная главная страница блога DirectX Microsoft
    Перейти официальная страница DirectX Microsoft скачать