Годная статья с разбором рендеринга #eldenring.
Несколько моментов:
- Можно было и D3D11 использовать, т. к. разработчики не используют D3D12 на полную. Не используется VRS, Mesh Shaders, Raytracing, Sampler Feedback, Direct Storage.
- Одна и та же трава может отрисовываться то картами, то полноценно, и это не зависит от расстояния. С другой стороны, листва использует общие атласы.
- 25к вызовов CopyDescriptorsSimple и CreateConstantBufferView в начале фрейма. Если сравнить с другими играми, то видно, что реальная работа происходит в последней четверти кадра. Это странно.
- Для следов крови используется одна и та же маска, но за счёт деформации придаётся уникальность.
- Мы можем видеть в фрейме всего несколько следов, но по факту отрисовывается несколько десятков декалей, которые мы даже не видим.
- Работа со звуком в игре в отдельном потоке. Но по ходу проигрывания нет синхронизации. В итоге, скажем, если у вас подвисают фреймы, то на экране вы ничего не видите, а звук при этом будет слышен.
Несколько моментов:
- Можно было и D3D11 использовать, т. к. разработчики не используют D3D12 на полную. Не используется VRS, Mesh Shaders, Raytracing, Sampler Feedback, Direct Storage.
- Одна и та же трава может отрисовываться то картами, то полноценно, и это не зависит от расстояния. С другой стороны, листва использует общие атласы.
- 25к вызовов CopyDescriptorsSimple и CreateConstantBufferView в начале фрейма. Если сравнить с другими играми, то видно, что реальная работа происходит в последней четверти кадра. Это странно.
- Для следов крови используется одна и та же маска, но за счёт деформации придаётся уникальность.
- Мы можем видеть в фрейме всего несколько следов, но по факту отрисовывается несколько десятков декалей, которые мы даже не видим.
- Работа со звуком в игре в отдельном потоке. Но по ходу проигрывания нет синхронизации. В итоге, скажем, если у вас подвисают фреймы, то на экране вы ничего не видите, а звук при этом будет слышен.