Gameru Android app
26726    12

Майкрософт представила DirectX 12 Ultimate

Майкрософт представила DirectX 12 Ultimate

Сегодня компания Microsoft презентовала следующую ступень эволюции DirectX 12 - Direct X 12 Ultimate.И, если отбросить маркетинговую шелуху, что мы получаем и зачем это было сделано?

Сначала что мы получаем:

DirectX Raytracing 1.1 - доработанный API для трассировки лучей, позволяющее теперь инициировать трассировку из любой шейдерной стадии, без необходимости просить об этом планировщик потоков через CPU часть API, а так же возможность "догружать" (стримить) шейдеры трассировки в SBT таблицу (раньше она была статична).

Variable Rate Shading - уже знакомый нам VRS, который был доступен как расширение для Vulkan, теперь доступен и для DirectX 12. Для тех кто не в курсе что это - грубо говоря экран разбивается на блоки, для каждого проводится анализ насколько в нем много деталей, и для малодетализированных блоков понижается эффективное разрешение.

Mesh Shaders - еще одно нововведение пришедшее в DirectX 12 с Vulkan и Turing видеокарт Nvidia. Очень крупное нововведение, сильно меняющее vertex pipeline. Однако, при умелом использовании, открывает широчайшие возможности по оптимизации рендеринга/кулинга.

Sampler Feedback - позволяет получить информацию от GPU какую текстуру и в каком мип-уровне он пытался прочитать, и реактивно реагировать подстраивая стриминг. Должно сильно ускорить стриминг текстур.

Texture-space shading - нововведение (для DirectX) позволяющее производить шейдинг в "UV space" - таким образом можно как-бы закешировать освещение, и затем пере-использовать его на другом объекте.  Должно стать основной оптимизацией для VR (на ряду с VRS).

А теперь отвечу на вопрос - а зачем это все было заворачивать в "новую упаковку", а не просто сделать DirectX 12.2 ?Все очень просто - все вышеописанное - это новые фичи консолей следующего поколения. Все то что принесли нам инженеры из Nvidia,  AMD добавила и в свои GPU  RDNA 2.А "новая упаковка" нужна для "печати качества". Теперь если на вашей видеокарте есть стикер "DirectX 12 Ultimate" - значит вы можете быть уверенным что все новые плюшки у вас поддерживаются (владельцы RTX карт уже полтора года как DirectX 12 Ultimate ready wink.gif )

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

Всем добра.



20 марта 2020 на форуме
20 марта 2020 на форуме
Вот посмотрел я видео, и задался вопросом: а на кой хрен нужно тесселировать все эти куски камня? Игра от третьего лица, объект появляется в кадре на пару секунд, тесселяция ни разу не меняет его внешний вид... зочем???
20 марта 2020 на форуме
Цитата(iOrange @ 19.03.2020, 22:09)
Mesh Shaders
Чем это отличается от геометрических шейдеров? (Мне лень читать и смотреть презентации, расскажи лучше ты)
20 марта 2020 на форуме
Ну с учётом того, что майки стремятся создать правильные Стим машины )
20 марта 2020 на форуме
От теперь заживем (нет).
Ruw
20 марта 2020 на форуме
Один только raytracing требует видеокарты выше 2080

а так ясно понятно

физики как всегда ждать не стоит?


20 марта 2020 на форуме
Цитата(Trollz0r @ 21.03.2020, 01:04)
Цитата(KoNoRIMCI @ 20.03.2020, 09:23) *
Вот посмотрел я видео, и задался вопросом: а на кой хрен нужно тесселировать все эти куски камня? Игра от третьего лица, объект появляется в кадре на пару секунд, тесселяция ни разу не меняет его внешний вид... зочем???

А что бы ты не забывал регулярно обновлять железо)))
20 марта 2020 на форуме
2гига@2ядра должно быть достаточно для каждого.

Вот сейчас у меня стим сожрал 5 гигабайт оперативной памяти. Зачем???
20 марта 2020 на форуме
В данных обстоятельствах, когда 8 ядер и 16 гигов памяти почти стандарт, об оптимизации по моему вообще ни кто не задумывается.
20 марта 2020 на форуме
Trollz0r,
Цитата
Вот посмотрел я видео, и задался вопросом: а на кой хрен нужно тесселировать все эти куски камня? Игра от третьего лица, объект появляется в кадре на пару секунд, тесселяция ни разу не меняет его внешний вид... зочем???

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

Сразу вспоминаю Star Citizen.
21 марта 2020 на форуме
Цитата(iOrange @ 20.03.2020, 00:09)
Сегодня компания Microsoft презентовала следующую ступень эволюции DirectX 12 - Direct X 12 Ultimate

Какая-то просто беда с неймингом всего в последнее время. Хорошо хоть не "PRO".
21 марта 2020 на форуме
Цитата(Trollz0r @ 20.03.2020, 11:08)
Чем это отличается от геометрических шейдеров? (Мне лень читать и смотреть презентации, расскажи лучше ты)

Уже половина второго ночи, но я попробую вкратце smile.gif

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

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

Но чем жирнее становятся современные шейдеры, тем понятнее стало что нужно больше давать грабли в руки программистам, пусть сами свое говно добро разгребают.
И дали - программируемый вершинный пайплайн. Теперь давай все сам, ручками.
Просто льешь свою геометрию в память GPU, а дальше - считай что у тебя некое подобие compute shaders, в которых ты сам выгребаешь данные, распаковуешь, рассовываешь по потокам, вызываешь/пропускаешь нужные тебе стадии и так далее. Индексный буффер тоже сам вычитывай, заодно тебя никто не ограничивает в его формате smile.gif
А, ну и оперируешь потом "мешлетами" - небольшими групками полигонов (256 максимум, ибо ограничено 1 байтом), и тут начинается магия - в процессе туда-сюда бегает еще один "индексный буфер" - но каждый индекс отвечает за свой мешлет. И вот у тебя есть, к примеру, стадия куллинга - та запускаешь N потоков, в каждом трансформируешь/куллишь мешлеты, что прошли куллинг - шлешь по пайплайну далее, там уже шейдишь и прочее, что хочешь.
За счет этого можно некисло разгрузить vertex processing и проталкивать просто сумасшедшие горы геометрии (резать прям по фрустуму, ну прям конфетка).

Сорри если сумбурно, хз как расписать нормально, хоть бери видос снимай у доски biggrin.gif

Также читайте

ПРО ИНСАЙДЫ #2: Про AMD Smart Access Memory и RTX IO, рейтрейсинг для всех и скорость новых консолей
21 ноября 2020
40160

ПРО ИНСАЙДЫ #2: Про AMD Smart Access Memory и RTX IO, рейтрейсинг для всех и скорость новых консолей

Во втором выпуске подкаста про инсайды мы пообщались с программистом графики Сергеем "iOrange" из компании Digital Extremes (игры Warframe, The Darkness II). На этот раз мы "расставили точки" н ...
Гонки, NVIDIA RTX 3000 и приход EA в Steam / КВП-дайджест №7
9 июня 2020
9110

Гонки, NVIDIA RTX 3000 и приход EA в Steam / КВП-дайджест №7

В прошлом выпуске мы обещали рассказать о свежих игровых анонсах… Но их не будет. Хотя один очень любопытный анонс у нас всё же есть - но о нём ниже. Так вот: новых игр пока не будет, поскольку все пр ...