Хардуер и гейминг

Редакция Overclock.bg ·

DirectX реже паметта за ray tracing с до 90%

DirectX реже паметта за ray tracing с до 90%

Microsoft обяви на 28 октомври preview на три нови възможности в DirectX Raytracing — Clustered Geometry, Partitioned TLAS и индиректно изграждане на acceleration structures. В тестово демо на Radeon RX 9070 паметта за тези структури пада от 7 519 MiB до 774 MiB, или с 89,7%, а кадрите в секунда скачат от 1,2 на 79. Самата компания нарича пакета най-голямата промяна в DXR от появата на API-то през март 2018 г., пише TechSpot.

Къде отива паметта при ray tracing днес

За да проследи лъчите в сцена, GPU-то не работи директно с триъгълниците, а с acceleration structures — пространствени дървета, които казват къде какво се намира. Долното ниво (BLAS) описва отделните модели, горното (TLAS) — цялата сцена.

Проблемът е, че всичко това се преизгражда. Щом едно дърво се разклати от вятъра или персонаж тръгне, BLAS-ът му става невалиден и трябва да се направи отново — кадър след кадър. В голям отворен свят с анимирана растителност това изяжда и време, и гигабайти VRAM.

Clustered Geometry: моделът на малки парчета

Clustered Geometry (CLAS) разбива геометрията на малки клъстери от най-много 256 триъгълника и 256 върха. Клъстерът се изгражда веднъж и после се преизползва: когато обектът се промени, разработчикът сглобява наново структурата от вече готовите клъстери или преизгражда само няколкото, които реално са се променили.

Същата идея, приложена към цялата сцена, дава Partitioned TLAS (PTLAS) — светът се дели на региони и всеки кадър се обновяват само тези, в които нещо се е случило. В демото с доминото на Microsoft пълното преизграждане на TLAS отнема 2,88 ms, докато PTLAS се оправя за 0,79 ms с 4 702 локални записа.

Схема как Clustered Geometry разбива модела на клъстери Снимка: Microsoft

Третото парче е индиректното изграждане: с ExecuteIndirectRTASOperations() compute shader може да генерира аргументите за изграждане директно в паметта на GPU-то, без CPU-то да участва в решението какво да се обнови.

Числата от демото

Ето какво показва примерът D3D12 Clustered Geometry на Radeon RX 9070, според блога за разработчици на Microsoft:

ПоказателКласически BLASClustered Geometry
Кадри в секунда1,279
Изграждане на AS за кадър788 ms3,11 ms
Ray tracing за кадър72,6 ms9,27 ms
Памет за анимирани AS6 794 MiB244 MiB
Обща памет за AS7 519 MiB774 MiB

Статичната геометрия също печели, но скромно — от 723 на 527 MiB, около 27%. Истинската разлика е в анимираната част: 96,4% по-малко памет.

Има и обратна страна. Клъстерният подход иска значително повече временна scratch памет: при статичната геометрия от 1,83 MiB се стига до 526 MiB, а при анимираната — от 8,25 MiB до 179 MiB. Тоест спестеното в постоянната памет се връща частично като изискване за буфери по време на изграждането и студиата ще трябва да го планират.

Microsoft сама охлажда ентусиазма

В текста си инженерът Амар Пател е сложил предупреждение с главни букви: не приемайте, че игрите ще видят печалби от този порядък — това е просто тестова площадка. Демото е направено така, че да натовари точно слабото място на старата схема, и сравнението 1,2 срещу 79 кадъра е по-скоро илюстрация на механизма, отколкото обещание за FPS.

Реалистичното очакване е друго: по-малко VRAM за сцени с много анимирана геометрия и по-стабилни кадри там, където досега изграждането на структурите е било тясното място.

Сцена с домино, обновявана през Partitioned TLAS Снимка: Microsoft

Кой хардуер го поддържа

Не се иска нов специализиран хардуер — нужен е само подходящ драйвер. Поддръжката вече е налична за всички RTX видеокарти на NVIDIA, за Radeon RX 9000 на AMD, за Intel Arc B-Series и процесорите Core Ultra (200V и Series 3). Qualcomm се цели в първото или второто тримесечие на 2027 г. за платформите Snapdragon X2. Има и preview на софтуерния рендерер WARP.

От страната на инструментите: Agility SDK 1.722.0-preview, Shader Model 6.10 в preview и включен Windows Developer Mode. Примерният код е в хранилището DirectX-Graphics-Samples на GitHub, а NVIDIA е обновила демото RTXMG до версия 2.2.0.

Защо това има значение точно сега

Контекстът е цените. Докато цените на паметта връщат производството в Китай и дефицитът на чипове за AI се очаква да се задълбочи, всеки гигабайт VRAM в една видеокарта става по-скъп. Software оптимизация, която изважда няколко гигабайта от бюджета за ray tracing, е евтиният начин картите с 8 и 12 GB да останат използваеми още едно поколение.

Важното уточнение е, че това е preview, а не функция, която ще се появи в игрите след Windows Update. Студиата трябва да пренапишат как подават геометрия към DXR, а дотогава ще минат месеци. Първите реални резултати най-вероятно ще дойдат от нови версии на големите engine-и, не от пачове за вече излезли игри.

Харесва ви? Отбележете ни и ще ни виждате по-нагоре в Google.

Предпочитан източник в Google

Прочетете още