0

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

生成法线贴图。我只想将 X 和 Y 分量保存为无符号字节。Z 被省略,因为它是在像素着色器中重建的。

法线贴图被保存到中间图像文件中,然后将其馈送到 nvtt 以将其压缩为 BC5。

要保存法线贴图,我需要使用 Windows 成像组件。我应该使用哪种格式来存储中间图像?

具有任何可用 16bpp 格式的 .png 都会失败(GUID_WICPixelFormat16bppBGR565、555、5551、Gray、GrayFixedPoint、GrayHalf)。

.bmp 成功,例如 GUID_WICPixelFormat16bppBGR565 但 nvtt 无法加载它。

到目前为止,我看到的法线贴图通常是带有红色阴影的蓝色。那些是 24bpp 图像还是 16bpp 图像?那么哪个组件被删除(G?)以及它们以什么格式传递给 nvtt?

因为以某种方式编写仅具有 2 个颜色通道的图像,就好像它具有 3 个颜色通道作为 BGR565(或仅灰色,如果使用 16bppGray)在某种程度上是没有意义的。BC5 是无损的,不应该把图像弄乱,但是中间文件对于以后的任何手动编辑都是无用的。

4

1 回答 1

0

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

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

像素着色器获取 Sample 调用结果的 [0] 中的 X 和 [1] 中的 z 分量。

于 2011-11-26T14:21:59.837 回答