Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

ОЧЕНЬ МНОГО ТЕКСТА. Сначала большая отсебятина о том как мы докатились до современной графики + в конце инструкция на Nvidia Profile Ispector

TAA

В современных играх и профессиональных программах используют крайне посредственное, но не требовательное сглаживание: TAA - Temporal Anti-Aliasing - Временное сглаживание

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Он делает картинку сильно мыльной и делает неиграбельным в низких разрешениях

Nvidia в 2018 на SIGGRAPH выпустила презентацию на тему проблем TAA

Оттуда возьму часть сравнений

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia
Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia
Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Но не это его главный минус, главный это Ghosting, от всех объектов появляется шлейф при движении

DLSS + FSR + XeSS имеют теже проблемы

Кувалда оставляет сильный шлейф при движении, заметном на заборе, у меня мало примеров, но тут показательный

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Ещё убивает частицы и мелкие объекты вроде проводов

Star Wars Battlefront - FXAA

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

TAA

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia
Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Почему раньше массового не использовали TAA + Про PS3/X360

В первый раз его заметил в Crysis 2 - 2011 год PS3/X360, разработчики использовали комбинацию алгоритма TAA с MSAA, картинка слегка размылена, Ghosting не замечал

Во времена PS3/X360 не требовалась особо TAA, у Xbox 360 часто применялось MSAA до 4x, благодаря дополнительному eDram в 10 МБ - 256GB/s от компании NEC, слева мини кристалл это он

NEC designed eDRAM die includes additional logic

105 million transistors (192 parallel pixel processors)

for color, alpha compositing, Z/stencil buffering, and anti-aliasing called “Intelligent Memory”, giving developers 4-sample anti-aliasing at very little performance cost.

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

У PS3 пропускная способность такая же как и у Xbox 360, но дополнительный кристалл дал возможность использовать MSAA до 4X, поэтому на PS3 чаще либо не было сглаживания, либо FXAA

Xbox 360 - 2005 год - есть одна проблема, это общая память и у процессора и у видеочипа, поэтому реальная пропускная способность будет делиться между процессором и видеочипом, можете просто напополам разделить,но NEC eDram 10 мб - 256GB/s доступен видеочипу полностью, он только для него, поэтому MSAA сглаживание часто есть

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

PS3 - 2006 год - тут видеочип 7900 GT с порезанной шиной до 128 Bit - 20.80 GB/s, скорее всего из за перемещения GDDR памяти на подложку, в оригинале 256 Bit - 42.24 GB/s, и ограниченно ROPs до 8, в оригинале 16

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia
Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Тем не менее, под конец жизни, обе консоли были только с FXAA сглаживанием, на Xbox 360 скорее всего сказалась общая память и чип NEC стали использовать для кэша, чтобы компенсировать низкую пропускную способность

Проблемы OpenGL

Ещё есть огромная разница между API, на Xbox 360 понятное дело либо тот же DirectX 9 + ещё есть частично DirectX 10, либо что то максимально похожее для совместимости с ПК

на PS3 - OpenGL ES 1.1, который называют PSGL, OpenGL очень плохой API, а тут ещё ES версия

Вы возможно не обращаете внимание какой API используют игровые движки в запущенной игре, в OpenGL часто есть чрезмерное потребление видеопамяти, в DOOM 2016 для этого есть ограничитель памяти, он блокирует настройки, которые будут требовать больше, если разблокировать, на недостаточном количестве памяти FPS упадет до 10-15 и появится адский инпут лаг (Input Lag), DirectX бы стал балансировать что приводило бы к статтерам скорее, а может и без проблем даже быть

Есть ещё Wolfenstein: The New Order и Old Blood, отличные игры, но там только OpenGL с которым у вас FPS будет летать с 60 до 30 и обратно постоянно, либо без V-Sync играйте и терпите разрывы по экрану, захотите исправить это с модулями вроде FreeSync Premium то не выйдет, игра работает только в 60 ГЦ, а модули ставят в мониторы с высоким ГЦ, и на низких не реагируют на V-Sync

Базовый FreeSync не берёт на себя роль V-Sync, он бесполезен, у меня был монитор с ним и я долго не мог понять почему он не устраняет разрывы при включённом V-Sync, оказалось он этого не умеет, а я думал сначала что он может неисправен и сдавал по гарантии

Сейчас у меня FreeSync Premium Pro с G-SYNC Compatible (это значит что драйвер Nvidia сам включит синхронизацию с модулем), это прекрасно, VRR (Variable refresh rate) является фичей этих модулей, во первых он берёт на себя нагрузку от включённого V-Sync + если FPS нестабилен то фича VRR понижает динамически ГЦ монитора от 48 ГЦ и выше, очень плавно игра идёт, данный модуль должен быть в каждом мониторе, а ведь есть ещё G-Sync и G-Sync Ultimate

Вернёмся к OpenGL, проблема с потреблением памяти и скачки FPS с 60 до 30 при V-Sync это основная проблема, DirectX игр больше, а такие проблемы там меньше встречаются

Если вы думаете, что не всё так плохо с OpenGL то смотрите цепь событий

Перед этим напомню что OpenGL есть везде, он кроссплатформенный, есть на Apple + Android (и других Linux) + PS2/PS3 + Windows

DirectX доступен только на платформах Microsoft

"PS4 - 2013 год, используются два графических API: низкоуровневый API Gnm и высокоуровневый API Gnmx.

Большинство разработчиков начинают с Gnmx, который опирается на Gnm и, в свою очередь, управляет более сложными деталями GPU. Это может быть привычным способом работы, если разработчики привыкли к таким платформам, как Direct3D 12."

Июнь 2014 года Apple представляет свой API Metal, на замену OpenGL

Вообще я далеко пошёл, OpenGL давно нужно было кардинально обновлять, у него нет альтернатив, он же кроссплатформенный и он нужен многим

AMD + Valve (тогда уже были Steam Machines на Linux) + Nvidia совместно с The Khronos Group (тот кому принадлежит OpenGL, на тот и данный момент) долго разрабатывал кардинально новый OpenGL

AMD воспользовалась совместными наработками и от себя представила в 2013 году API Mantle эксклюзивно для Windows и Radeon, в игре Battlefield 4 он есть, как вы понимаете мертворожденный API

В феврале 2016 разработка нового OpenGL завершилась, его показали и назвали API Vulkan, переименование избавило от плохой репутации, многие же не в курсе что это кардинально новый OpenGL

API Vulkan также кроссплатформенный, успешно развивается и является конкурентом именно для DirectX 12, они оба низкоуровневые

Закат ПК технологий

Вернём вас с консолям, во времена PS3/X360 технологии разработанные именно для ПК начали уменьшаться, последний это DirectX 11

В основном даже в играх, которые делают только для ПК используют код разработанный для консолей, Освещение + LOD + Shadow Box, даже если игра там никогда не выйдет и не сможет

Это не было большой проблемой во времена PS3/X360, кроме мизерного количества памяти относительно даже офисного ПК, остальное было почти топовыми, отсюда и прорывы в графике, особенно относительно прошлого поколения консолей

Всё это закончилось во времена PS4/XO - 2013 год

Убийца игровых технологий - APU

PS4/XO не имеют полноценных процессоров и видеокарт, там APU

На ПК:

Процессор - самостоятельный + свой канал памяти + подходящий тип памяти DDR

Между собой работают по PCI-E, не мешающим работе их каналам памяти

Видеокарта - самостоятельная + свой канал памяти + подходящий тип памяти GDDR

Если память не подходящая, то падение производительности будет очень сильное и более высокая частота не спасёт, в видео как раз пример

На APU процессорная часть и видеочасть объединена в одном кристалле

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

Там общая память как у Xbox Original и 360, только у первых не APU и общаются между собой они полноценно

Общая память означает что у вас пропускная способность делится напополам и различия DDR и GDDR снизят производительность одного из них

Но это всё равно не самое страшное, самое страшное это процессорный блок

У AMD были полноценные Phenom и FX, с низкой производительностью в однопотоке и хорошей производительностью в многопотоке + AMD первыми сделали L3 кэш во времена Core 2 Duo / Core 2 Quad

Параллельно были APU - AMD C-50/60 + E-250/E-350

Их ставили в нетбуки, у меня был C-60 11.6 1366x768, относительно конкурента Intel Atom с графикой GMA неспособной в разрешение выше 1024x768, это было очень круто, но процессорная часть была сильно медленнее и L3 кэша не было

И вот это взяли за основу для разработки чипов PS4/XO + выпустили серию A4/A6/A8/A9/A10/A12

Никакого L3 кэша так и не было + они не смогли улучшить процессорную производительность, там было плохо и в однопотоке и в многопотоке

Близость выхода PS4/XO

А всё это время разработчики на девкитах делали свои игры и сливали:

Процессор с L3 кэш в 8 Мб частоту не указывали (FX 8 ядер - 8 мб/ Phenom 6 ядер - 6 МБ)

8 Гб DDR3 (писали, чтобы игры ограничивали 4 Гб)

Видеокарта полноценная с 1280 ядрами и 2 Гб (это HD 7870 - 2.560 TFLOPS, выпущенная в марте 2012 года)

Sony сама говорила что в PS4 будет 8 ядерный процессор, MS говорила тоже самое

Но потом ближе к Е3 начали сливать что финальный вариант это APU с частотой ниже 2 Ггц без L3 кэша с очень медленной графикой

Никто не поверил, а потом случился Е3 2013

PS4 APU: Архитектура Jaguar

8 Гб GDDR5 - 256 Bit 176.0 GB/s

8 ядер - 1.6 Ггц - 102.4 GFLOPS

GCN второй версии - 1152 ядра (сам чип с 1280, но часть заблокирована) - 800 Мгц- 1.843 TFLOPS

Есть дополнительный процессор со своей памятью для системы и записи игр

Xbox One APU: Архитектура Jaguar (да тоже самое, но память другая и видеочасть очень порезана, самый медленный)

8 Гб DDR3 - 256 Bit 68.3 GB/s + 32 MB ESRAM - 204 GB/s

8 ядер - 1.75 GHz - не указана производительность, но этот тот же Jaguar что и у PS4

GCN первой версии - 768 ядра (сам чип с 896, но часть заблокирована) - 853 Мгц - 1.3 TFLOPS

Чтобы понять, что тут за мусор вместо процессорной части, сравнение с PS3/X360:

Процессорная часть 2013 год PS4 - 102.4 GFLOPS

Процессор 2006 года PS3 Cell: 179.2 GFLOPS

Процессор 2005 года Xbox 360 Xenon: 115.2 GFLOPS

Графическая часть конечно значительно выше, только без нормального процессора это не имеет большого значения, тем более когда всё это APU

PS3 RSX - 192 GFLOPS

Xbox 360 Xenos - 240.0 GFLOPS

Обычно когда показывают игры, можно сразу представить как испортят графику, Ubisoft так любит делать ещё до PS4/XO

После Е3 2013 мне стало понятно, что всё без исключения пойдёт под даунгрейд и перенос, так и пошло

Killzone Shadow Fall - стартовая игра, которая не была каким то прорывом в графике на момент показа, превратилась в мусор на релизе, я проходил и в мультиплеер играл, где дальность прорисовки очень низкая, игра в целом хорошая, но Killzone 2 и 3 намного лучше и красивее

Благодаря большому, относительно PS3/X360, объёму памяти, разработчики смогли показывать гораздо большего размера локации

Но APU + процессорный блок медленнее чем у PS3/X360 дали о себе знать

Освещение во всех современных играх ужасное, до сих пор он используется даже в играх для PS5/XSX/XSS, детализация бедная, физики минимум или вообще статично

Всё плохое что было придумано ещё во времена PS3/X360, но не пользовалась массового, пошло в PS4/XO

SSR - Screen Space Reflection - отражения от камеры, похожее появилось в Call of Duty: World at War 2008 год

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

TAA про который уже писал, поначалу использовали FXAA, но TAA его полностью заменил

Screen Space Shadows - тени от камеры, успели начать использовать под конец PS4/XO, в играх обратите внимание на них, опустите камеру и посмотрите исчезнут ли тени

И это всё наложилось, на то что разработчиков нанимают по квотам, т.е. не профессионалов

Времена PS4/XO

Epic Games стали одними из тех кто не смог эффективно оптимизировать свой движок и сделал Unreal Engine 4, ещё даже без квот

The Vanishing of Ethan Carter

PC - Unreal Engine 3

PS4 - Unreal Engine 4

В Unreal Engine 3 стандартная симуляция воды с отражениями, есть возможность сделать её динамической, чтобы реагировала, не просто разводы будут

Вода в Unreal Engine 4 это фиг знай что, она статична и вообще не умеет в динамику, она до сих пор по дефолту такая в редакторе Unreal Engine 5, хотя в Fortnite они обновили

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Тем не менее, поначалу на PS4/XO хорошие игры успели выйти

Batman: Arkham Knight, к счастью разработчики оставили и сильно модифицировали Unreal Engine 3, хорошо что успели закончить трилогию, сейчас такую игру не сделают, крайне рекомендую, там и сюжет отличный и все персонажи красивые

Обратите внимание это из игры моделька, они смогли хорошо задействовать видеочасть, сильно сэкономили на тенях, поиграете заметите и дальность прорисовки низкая, видно когда летаешь, ночь скрывает слегка

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Deus Ex: Mankind Divided, несмотря на то что игра не закончена, поиграйте, она отличная

Причём предыдущая Deus Ex Human Revolution графически очень отсталая, одна из самых уродливых игр PS3/X360, там у главного героя даже глаз нет, всегда очки плотно скрывают, почти все катсцены там записаны, но в Mankind Divided графика хорошая, я даже удивился что они смогли, либо программистов наняли, либо ПКшный X86 им понятнее

Кратко про PS5/XSX/XSS

Тут тоже APU, но 2 марта 2017 AMD сделала первый Ryzen 1800X - 8 ядер / 16 потоков, это не APU

Это был успех и подтолкнул Intel перестать перевыпускать 4 ядерные / 8 поточные процессоры, сначала выпустила сильно разогнанный 7700K 4 ядра / 8 потоков - 3 января 2017, как чувствовали угрозу

Потом 5 октября 2017 уже вышел на новом сокете 8700K 6 ядер / 12 потоков

Первым APU стал Ryzen 2400G 4 ядра / 8 потоков - 12 февраля 2018 года

Стало понятно что у AMD есть APU с нормальной процессорной частью, Sony и MS не будут отказываться от APU, скорее всего в будущем вообще ARM консоль сделают и не портативную, потому что консоль не в убыток продают, как было во времена PS3/X360

PS5 - Oberon

16 GB GDDR6 - 256-bit - 448 GB/s

Zen 2 - 8 ядер / 16 потоков - 3.5 Ггц, L3 кэш 8 Мб

RDNA 2 - 2233 MHz - 2304 ядра - 10.29 TFLOPS

SSD 5.5 Gb/s

Есть ещё 512 MB DDR4, скорее всего как и в PS4 есть дополнительный процессор для системы и записи игр

Xbox Series X - Scarlett

16 GB GDDR6 разделено, скорее всего изначально было 256 Bit как у PS5:

10240 MB для игр - 320 bit 560GB/s

3584 MB для системы - 192 bit 336GB/s

2560 MB зарезервировано - 192 bit 336GB/s

Zen 2 - 8 ядер / 16 потоков - 3.6 Ггц, L3 кэш 8 Мб

RDNA 2 - 1825 MHz - 3328 ядер (сам чип с 3584, но часть заблокирована) - 12.15 TFLOPS

SSD 2.4 Gb/s

Xbox Series S - Lockhart, всё тоже самое только в 1440P :)

10 GB GDDR6 разделено:

8192 MB для игр - 128 bit 224GB/s

2048 MB для системы - 32 bit 56GB/s

Zen 2 - 8 ядер / 16 потоков - 3.4 Ггц, L3 кэш 8 Мб

RDNA 2 - 1565 MHz - 1280 ядер (сам чип с 1536, но часть заблокирована) - 4 TFLOPS

SSD 2.4 Gb/s

Вообще тут Series S по памяти прям больно, но процессорная часть намного лучше того мусора что был у PS4/XO, поэтому улучшения должны быть в будущих играх

Но из-за квотных не профессионалов, скорее всего застрянем с мусорной графикой PS4/XO и требованиями RTX 4090 для 1080P с 30 фпс

Но у нас есть много уже вышедших игр, давайте улучшать их

Nvidia Profile Inspector

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Через него можно активировать скрытые возможности драйверов Nvidia

Например шейдерный SGSSAA - Sparse Grid Supersampling

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Crysis, слева выключено - справа 8 x SGSSAA, внимание на ландшафт

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia
Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Serious Sam Fusion - Serious Sam 3: Jewel of the Nile - Внимание на оружие

Выключено

8 x SGSSAA

Шейдерное сглаживание не убирает эффект лесенки, он увеличивает разрешение шейдеров, в Crysis на ландшафт наложен Parallax Mapping, поэтому Анизотропная фильтрация не помогает (у меня форсирована везде, как и высокое качество текстур, скрин Nvidia Profile Inspector), а в SGSSAA увеличивает разрешение

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Анизотропную фильтрацию советую всегда ставить на 16x для всех приложений

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

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

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

SGSSAA нельзя форсировать глобально, он конфликтует с приложениями, в Windows 10 с Параметрами, в Windows 11 с приложениями UWP

Только для конкретных игр, выбираем профиль игры, обязательно пишете по порядку название, поиск ищет по порядку

Зеленые параметры это те которые Nvidia прописывает их не нужно трогать, для включения SGSSAA, не нужно ничего кроме него

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Для форсирования обычного сглаживания нужно выбирать:

Override any application setting - Если игра OpenGL, пример первая Call Of Duty

Enhance the application setting - Если игра DirectX

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Для игр OpenGL недоступно чистое SSAA, которое является единственным нормальным сглаживание, MSAA упрощенная версия

D3D Only - только для DirectX

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Здесь у меня вариант 2x2 SSAA + 8x MSAA

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Первая Call Of Duty - Выключено, внимание на растяжки и деревья

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

2x2 SSAA + 8x MSAA, потребление и нагрузка также выросли сильно

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Для DirectX игр, где есть MSAA внутри

В самое игре нужно обязательно включить MSAA, далее заходите в профиль игры в Nvidia Profile Ispector, ставите Enhance the application setting и выбираете один из полноценных SSAA сглаживаний (Supersampling), не ставьте сразу на максимум, а то потом будете удивляться 5 FPS в игре

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Пример профиля Call Of Duty 2, игра DirectX 9

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Скриншоты не смог сделать, ибо на них не было видно разницы как в первом Call Of Duty, где есть объекты на которых сразу видно

В играх на DirectX 12 и Vulkan это работать не будет, в основном в старых где есть MSAA внутри, работать будет

SGSSAA работает везде, но вы сами смотрите, может быть он увеличит разрешение шейдеров так что вам не понравится, или понизит производительность, например если бросить дымовую гранату с включённым SGSSAA то FPS сильно упадёт, без него всё ок

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

Но есть проблема, эти коды удаляются при обновлении драйверов

Поэтому я сразу про это не писал, после обнов заново их прописывать лень

В драйверах ещё есть возможность включать глобальное затенение

Но тоже проблема, должен быть включён параметр Ambient Occlusion - Usage

Он тоже сбрасывается при обновлении

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

Производительность сильно упадёт, так что лучше ограничиться SGSSAA и если есть возможность SSAA

Про современную графику + SGSSAA скрытое шейдерное сглаживание в драйверах Nvidia

Ещё раз ссылки

4646
28 комментариев

Комментарий недоступен

3
Ответить

Комментарий недоступен

Ответить

Комментарий недоступен

2
Ответить

Так и есть. С точки зрения низкоуровневого программиста графики Vulkan совершенно непохож на OpenGL. Например, параметры команд пишутся не переменными в функцию, а упаковываются в структуры (дескрипторы). Поэтому одна строчка OpenGL (вызов функции с параметрами) превращается в 10 на Vulkan (сначала создаем структуру, присваиваем ей значения, а потом вызываем функцию, в которую кладем эту структуру). Также нарушен подход OpenGL к полной обратной совместимости. Можно как угодно смешивать вызовы функций новых версий OpenGL со старым (на мобилках в OpenGL ES так не работает, но на десктопах типа мака или линукса вполне). Vulkan же совершенно несовместим с OpenGL

1
Ответить

Если верить вики, то почти так и есть

1
Ответить

Лонг, я тебе дам.
Но совершенно из прошлого.
Раньше (лет 7 назад) пользовался этим тулом. С ним SLI Quad вполне имел мощности давать качество и фпс. Сейчас это всё умерло. На "оф. форуме" 3DC тоже нет движения, да и зачем?. DSR даёт такую же качественную картинку с огромным (в сравнении) фпс.

https://www.forum-3dcenter.org/vbulletin/showthread.php?t=482122&page=51

3
Ответить

Раз уж ответа так и не прозвучало, попробую сам предположить. В некоторых играх из 00-х попросту происходит вылет при попытке выставить высокое разрешение, поэтому DSR не всегда возможно применить.

Ответить