Відображення лише частини екрана з високою деталізацією


11

Якщо графіка відображається за великим кутом огляду (наприклад, дуже великий телевізор або гарнітура VR), глядач насправді не може зосередитись на всьому зображенні, а лише на частині його. (Насправді це стосується і екранів звичайного розміру.)

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

Чи існують якісь методи для цього, які існують чи розробляються сьогодні?


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

1
Перегляньте цей папір Siggraph 2014: graphics.cs.cmu.edu/projects/multirate . Я не встиг її прочитати, але він описує спосіб затінити зображення при виконанні "1х штрих фрагмента на піксель" і все одно отримати розумне зображення. Можливо, будь-який алгоритм чи ідеї, які вони окреслюють, можна використовувати для зменшення частоти вибірки на краях екрана та підвищення продуктивності.
TravisG

Інший документ, який може бути цікавим: software.intel.com/en-us/articles/coarse-pixel-shading
TravisG

Ця річ зараз називається Foveated Rendering. roadtovr.com/…
Барт ван Хекелом

Відповіді:


7

Є приклади таких ефектів, про які ви говорите в багатьох іграх. По-перше, є « Глибина поля» , яка робить об’єкт на відстані виглядом розмитим, так, як ніби камера фокусується на речах, близьких лише до нього, як у цьому прикладі. Ви можете дослідити більше зразків, пов’язаних з цим, у пакеті DirectX SDK - вони також мають зразок коду. Для OpenGL ви отримаєте їх у мережі, якщо будете шукати.

введіть тут опис зображення

Друге, що ви можете побачити, це те, що, можливо, відоме як Геометрія MipMaping або Прогресивні сітки, які, як випливає з назви, схожі на текстурову карту, але для геометрії. Кількість полігонів у сітці зменшується, оскільки об’єкт віддаляється від камери. Це допомагає збільшити продуктивність. У D3D існує функція, яка допоможе автоматично генерувати прогресивні сітки. Ось:

HRESULT WINAPI D3DXGeneratePMesh(
                                  LPD3DXMESH pMesh,
                                  const DWORD *pAdjacency,
                                 const D3DXATTRIBUTEWEIGHTS *pVertexAttributeWeights,             
                                  const FLOAT *pVertexWeights,
                                  DWORD MinValue,
                                  DWORD Options,
                                  LPD3DXPMESH *ppPMesh
                                 );

Ось приклад цього:

введіть тут опис зображення

EDIT: Розгляньте наступне зображення- введіть тут опис зображення

Це зрив камери. Лінія, що йде прямо через середину, - вектор LookAt. Тепер, припускаючи, що гравець завжди захоче сфокусуватися в центрі екрану, ви визначаєте кут x. Будь-який об'єкт, який буде розташований під кутом більше, ніж вирішений x, матиме низьку роздільну здатність, а ті, які знаходяться під кутом, будуть надані з деталізацією. Так, об’єкти в центрі екрана будуть більш детальними, ніж ті, що розташовані з боків. Бо якщо гравець не дивиться на центр, то просто налаштуйте цю центральну лінію в напрямку, в якому гравець дивиться. (або, можливо, повернути всю камеру в той бік).


Хоча я сумніваюся, ви могли б отримати продуктивність, застосувавши dof.
badweasel

@badweasel Ну, це правда. DOF не покращує продуктивність, але це ефект, про який варто згадати. Це дозволяє вам приховати низьку детальну, прикольну геометрію, яка іноді може вискочити на відстані.
Світла іскра

Я підкреслив вашу відповідь. Це гарна відповідь. Я просто хотів це зазначити, оскільки це було частиною його питання.
badweasel

Ці методи використовують відстань z від відстані від камери, але я маю на увазі відстань x / y від точки на екрані, яку дивиться користувач. Я припускаю, що вони можуть бути адаптовані як такі.
Барт ван Хекелом

1
@BartvanHeukelom Чому, якщо гравець не фокусується на центрі, ти змушуєш камеру розвернутися, щоб зробити те, що він в центрі уваги. Звучить весело.
Світла іскра

2

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

введіть тут опис зображення

Хоча це досить очевидно, дивлячись на такий знімок екрана, він, як повідомляється, невидимий для користувача в VR.

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

Крім того, це не обмежується навіть гарнітурами VR. Його можна використовувати і на настільних моніторах (з додаванням відстеження очей та з більш обмеженим ефектом).


1

Розширюючи відповідь Byte56, так, подібні речі розвиваються в галузі. Fixed Foveated Rendering - це техніка, яку Valve використовує у демонстрації ремонту роботів ( https://youtu.be/DdL3WC_oBO4?t=769 ) та в кількох комерційних іграх (на розум приходить Resident Evil VII для PSVR). Фіксована фокусирована рендерінг не використовує відстеження очей, але це означає, що вона добре працює з поточними версіями гарнітур VR, які в даний час не мають ніяких можливостей відстеження очей. Хоча зараз Vive повинен отримати комплект оновлення для відстеження очей, тож ви можете побачити, що деякі титри VR AA AA використовують це.

Ви не знайдете багато доступних зразків коду, пов’язаних з подібними речами, але у Nvidia є деякі апаратні розширення, які є пристойними документами. Мульти-роздільна здатність досить добре пояснена, але це особливість, пов'язана з їх обладнанням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.