我有一个艺术管道,其中包括以下步骤:
生成法线贴图。我想只将X和Y组件保存为无符号字节。 Z被省略,因为它是在像素着色器中重建的。
法线贴图保存到中间图像文件,然后送入nvtt将其压缩到BC5。
要保存法线贴图,我需要使用Windows Imaging Component。我应该使用哪种格式来存储中间图像?
任何可用的16bpp格式的.png失败(GUID_WICPixelFormat16bppBGR565,555,5551,Gray,GrayFixedPoint,GrayHalf)。
.bmp成功,例如GUID_WICPixelFormat16bppBGR565但是后来nvtt无法加载它。
到目前为止,我见过的法线贴图通常是蓝色,带有红色阴影。那些24bpp图像还是16bpp图像?然后删除哪个组件(G?)以及它们以什么格式传递给nvtt?
因为以某种方式编写只有2个颜色通道的图像,就好像它有3个颜色通道作为BGR565(或者仅使用灰色,如果使用16bppGray)那样是没有意义的。 BC5是无损的,不应该弄乱图像,但中间文件对以后的任何手动编辑都没用。
答案 0 :(得分:0)
好的,朋友提出了解决方案。 BC5预计BGRA格式,每种颜色8位。
B和A应该设置为0.法线的X分量进入R,Z进入G,Y(高度)被省略。
像素着色器在[0]中得到X,在样本调用结果的[1]成分中得到z。