我刚刚第一次实现了延迟渲染/着色,我很惊讶地看到前向渲染和延迟渲染之间的巨大性能差距。
当我使用前向渲染运行我的应用程序时,我在发布模式下运行时获得了相当不错的帧速率
然而,当我使用延迟渲染运行它时,它给了我一个相当令人惊讶的输出
我很清楚延迟渲染并不是你为应用程序涂上一层以使其“更快”运行的东西。我认为它是一种性能优化技术,可以通过多种方式进行优化,并且我知道该技术比前向渲染具有更大的内存占用。
然而...
我目前在场景中有一个点光源和一百个通过硬件实例创建的立方体。光在 Z 轴上来回移动,将光投射到立方体上。
问题是移动时光线非常滞后。它是如此滞后,以至于应用程序没有注册键盘输入。老实说,我并没有为此做好准备,我认为我在实施过程中做了一些非常糟糕的事情。
到目前为止,我已经将 gbuffers 上的纹理格式从 jsut 更改为 jsutDXGI_FORMAT_R32G32B32A32_FLOAT
以DXGI_FORMAT_R16G16B16A16_FLOAT
查看它是否有任何视觉影响,但没有。
有什么建议么?谢谢!
旁注
我正在使用Visual Studio 图形诊断程序来调试我的 DirectX 应用程序