Directx 11: раніше ніж ви думаєте

В якійсь мірі майбутня графічна технологія буде не настільки радикальною, як DirectX 10, і, тим не менш, в неї будуть впроваджені деякі важливі можливості. Однак, робота над DirectX 11 все ще триває, і тому деякі описані ним же можливості можуть відрізнятися від тих, що ми побачимо в кінцевому релізі.

Незважаючи на те, що основна увага на виставці Nvision 2008 року було прикуто до професійних ігровим змагань, стендів і цікавим ігор і додатків, там також проходили і конференції професійних розробників. Тут увагу слухачів було в основному прикута до уніфікованої обчислювальної архітектурі пристроїв CUDA (compute unified device architecture), технології компанії Nvidia з використання графічних процесорів GPU в масивних паралельних програмах, втім, не залишився без уваги і одночасовой огляд майбутньої графічної технології DirectX 11 (зокрема Direct3D), який був даний представником від Microsoft Кевом Гії (Kev Gee). 

У відведений час Гії вдалося досить стисло розповісти багато про що в майбутньої DirectX 11, але і це дало нам краще розуміння того, чого ж від неї варто очікувати. В якійсь мірі майбутня графічна технологія буде не настільки радикальною, як DirectX 10, і, тим не менш, в неї будуть впроваджені деякі важливі можливості. Однак, зі слів того ж Гії, робота над DirectX 11 все ще триває, і тому деякі описані ним же можливості можуть відрізнятися від тих, що ми побачимо в кінцевому релізі.

Побудова на DirectX 10

Як, напевно, знають багато читачів, графічна технологія DirectX 10 працює тільки з Windows Vista, і не забезпечує зворотної сумісності з Windows XP (як причину цього Microsoft називає фундаментальні зміни в моделі драйвера дисплея, виконані в Vista). Однак майбутня DirectX 11 буде працювати як в Vista, так і в майбутній операційній системі Windows 7 (що, взагалі кажучи, є робочим її назвою і тому цілком ще може змінитися). Пов`язано це буде з тим, що модель драйвера дисплея, яка буде реалізована в Windows 7, фундаментально буде схожою з тією, що ми зараз бачимо в Windows Vista, якщо не зовсім тією ж.

Так, давайте поглянемо на конвеєр майбутньої DirectX 11.

DirectX 11

Відео: DIRECTX 12 VS DIRECTX 11 - ЯК ВИБРАТИ відеокарти




Як видно, в стандартний графічний конвеєр будуть додані три нові стадії - так званий Hull Shader, Tessellator і Domain Shader. Зміни торкнуться і пиксельного шейдера, що дозволить включити так звані обчислювальні шейдери (Compute Shader), які будуть працювати на загальні комп`ютерні програми. Ми опишемо все це докладніше трохи пізніше.

Крім нових стадій, DirectX 11 буде ldquo-настроенrdquo- і на повну підтримку багатопотоковості (мультітрідінга), тому DLL-бібліотеки майбутньої графічної технології будуть "породжувати потоки", подібно до того, як це вже робиться на багатоядерних і SMT-процесорах.

Також в DirectX 11 будуть додані деякі нові формати текстурного стиснення, які будуть забезпечувати кращу якість зображення і підтримувати великий динамічний діапазон (ми розглянемо їх докладніше трохи пізніше) і маса невеликих функцій, більшості з яких не буде потрібно нове обладнання. Серед таких функцій буде підтримка подвійної точності чисел з плаваючою комою (опціональна можливість, призначена для обчислювальних шейдеров), збільшення текстурних обмежень до 16K і збільшення верхнього ліміту ресурсу до 2 Гб.




Ось тепер, давайте поговоримо про все і детальніше ....

Відео: Порівняння FPS / FPS Comparison [OpenGL, DirectX 9, DirectX 11]

апаратна тесселяция

Однією з ключових завдань, що стоять перед розробниками сучасних ігор, є створення більш складних, деталізованих і реалістичних героїв з одночасним зменшенням часу на це створення. Раніше для збільшення деталізації використовувалися методи трикутної гратчастої тесселяции (тесселяция - процес розподілу зображення на більш дрібні форми, найчастіше на трикутники і чотирикутники - прим. Перекладача), які володіли одним, але втім, значним недоліком - повішеними вимогами до пам`яті і накопичувачів, що виливалося в різні проблеми пропускної здатності, і зокрема, в збільшення часу завантаження. Одночасним же рішенням всіх цих проблем є використання для отримання додаткової деталізації (складності) героїв спеціальних потужностей графічних процесорів, що також можна назвати використанням апаратної тесселяції. Тому підтримка останньої і буде реалізована в DirectX 11.

Відео: Can The Very First DirectX 11 GPU Still Play Games?

Треба сказати, що деякі експерти розраховували побачити підтримку апаратної тесселяції ще в DirectX 10, проте їх очікуванням тоді не судилося збутися. І, тим не менш, апаратна тесселяция в повній мірі буде впроваджена в DX11, але, для своєї роботи вона буде вимагати саме обладнання DX 11. Так, в даний час AMD впроваджує апаратний тесселятор в свою серію графічних процесорів AMD Radeon HD, однак, зі слів Гії, це обладнання, розроблене під DX 10.1 і DX 10, не буде підтримувати тесселяцию DX11.

Справа в тому, що запроваджена в DX11 тесселяция буде більш загальної, ніж те вбудоване рішення, яке в даний час застосовується в графічних процесорах AMD (по суті апаратура AMD використовує ту ж саму тесселяціонную одиницю, що і в Xbox 360). Однак в тесселяции DX11 буде використовуватися більш розширений підхід, а не той, який в даний час використовується компанією AMD.

Робота ж нових стадій DirectX 11 полягатиме в наступному. На вхід так званого поверхневого шейдера (hull shader) будуть надходити контрольні точки для патча (це перша поява патчевих, "заплаточних" даних в DirectX). Дані ж з виходу поверхневого шейдера "скажуть" тесселятор наскільки тесселіровать. Тесселятор ж, сам по собі є фіксованою функціональною одиницею, візьме дані з виходу поверхневого шейдера і згенерує додаткову геометрію. Далі зональний шейдер (Domain Shader) з даних тесселяции підрахує положення вершин і передасть їх в геометричний шейдер.

Таким чином, в майбутньому обладнання DirectX 11 зможе процедурно генерувати складну геометрію з відносно рідкісних наборів даних, знімаючи проблеми пропускної спроможності і зменшуючи вимоги до накопичувачів. Також апаратна тесселяция торкнеться і анімацію, так як зміни в контрольних точках патча можуть впливати на кінцевий вихід в кожній фреймі.

Відео: rFactor 2 Night-Day Transition and RAIN DirectX 9 vs Directx 11

Важливо розуміти, що ключовими примітивами, які буде використовуватися в тесселятор, в подальшому будуть не трикутники, а патчі (латки). Патчі будуть являти собою області, окремим випадком яких може бути і трикутник, але в більш загальному випадку патчі будуть чотирикутниками, що використовуються в багатьох тривимірних додатках.

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


Поділися в соц. мережах:

По темі: