延迟着色、存储位置或从深度构造它

Deferred shading, store position or construct it from depth


我正在一个引擎中实现延迟着色,现在我必须决定是使用完整的 RGB32F 纹理来存储位置,还是从深度缓冲区,所以它基本上是一个 RGB32F 纹理元素获取与片段着色器中的矩阵向​​量乘法,也是内存和额外 ALU 操作之间的权衡,
请将我重定向到有用的资源,并告诉我你自己对这个主题的体验。

我认为最好从深度重新计算位置。这就是我在延迟引擎中所做的。重新计算的速度足够快,甚至在我分析渲染循环时都不会出现。与大约 24MB 的额外视频内存使用量(对于 1920x1080 纹理)相比(几乎没有性能影响)对我来说是一个简单的选择。