目前正在实施D3D11渲染器,我的大多数法线贴图都采用3通道RGB 8位/通道格式。
仔细阅读DXGI_FORMAT msdn page我注意到没有选择。这背后的原因是什么?那我怎么用这种纹理格式呢?
答案 0 :(得分:1)
现在没有硬件可以支持24位格式纹理。
您现在有不同的选择:
GPU在阅读大量未压缩纹理方面并不是最好的。当然,如果你只渲染几个模型,那就无所谓了,但是如果你开始推送大量数据,你就必须走上压缩之路。
如果您支持非常旧的硬件,则可以使用压缩选项:
你应该考虑这些:
sqrt(1 - dot(n.xy,n.yx))
或同等技巧重建Z. 另一方面,不要忘记生成最大尺寸为1x1的mip链,它既有性能又有视觉质量。不要像你应该对你的反照率那样应用SRGB转换(0.5实际上是0.5),并且你有一些格式的选项可以使用SNORM类型来跳过典型的2*n-1
公式,但是对于0情况要好看。