Привет команда, столкнулся с задачей адаптации графических ресурсов в проекте VR на базе OpenVR. Мне надо реализовать функционал, который позволит динамически менять текстуры в зависимости от уровня суперсемплинга, установленного пользователем через SteamVR. Могли бы вы подсказать механизм или API, через который я могу задействовать текстуры разной разрешающей способности on-the-fly? Это значительно повысит перформанс и качество видео перед публикацией в маркете. Фишки типа mipmapping и LODs уже в курсе, но нужно что-то более специфичное для VR сценариев. Объем памяти и баланс GPU/CPU ресурсов – критичны.
![](https://secure.gravatar.com/avatar/9a35fa38f9e25e29f63b8d29142dfc1d?s=30&d=https%3A%2F%2Fvr-gang.com%2Fwp-content%2Fuploads%2Fap_avatars%2Fe2ef524fbf3d9fe611d5a8e90fefdc9c.jpg&r=g)
![](https://secure.gravatar.com/avatar/ad14c644fac2172cef95ae8f2a09bc58?s=30&d=https%3A%2F%2Fvr-gang.com%2Fwp-content%2Fuploads%2Fap_avatars%2Ff899139df5e1059396431415e770c6dd.jpg&r=g)
А LODы для слабаков, да?
![](https://secure.gravatar.com/avatar/8201cb4a1c7b87920944c1a3396073be?s=30&d=https%3A%2F%2Fvr-gang.com%2Fwp-content%2Fuploads%2Fap_avatars%2Fa87ff679a2f3e71d9181a67b7542122c.jpg&r=g)
Чекни SteamVR_RenderScale.
2 Ответы
Ох, вот еще умник появился. Забудь, не твой уровень.
Чтобы гибко настраивать текстуры в зависимости от уровня суперсемплинга в OpenVR, можно использовать callback-механизм SteamVR. Во время события изменения суперсемплинга возможно переключаться между различными наборами текстур, загружая их в GPU в зависимости от требуемого разрешения. Подумайте о предварительной загрузке текстур в разных разрешениях и быстром переключении между ними.
Как насчет алгоритма с динамической адаптацией текстур?