使用WIC将法线贴图保存为16位纹理

时间:2011-11-26 10:26:43

标签: png textures bmp wic

我有一个艺术管道,其中包括以下步骤:

生成法线贴图。我想只将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是无损的,不应该弄乱图像,但中间文件对以后的任何手动编辑都没用。

1 个答案:

答案 0 :(得分:0)

好的,朋友提出了解决方案。 BC5预计BGRA格式,每种颜色8位。

B和A应该设置为0.法线的X分量进入R,Z进入G,Y(高度)被省略。

像素着色器在[0]中得到X,在样本调用结果的[1]成分中得到z。