gpt4 book ai didi

graphics - DXT2/3 和 DXT4/5 纹理格式有什么区别?

转载 作者:行者123 更新时间:2023-12-01 12:34:57 29 4
gpt4 key购买 nike

我阅读了一些关于 DXTn 和 BCn 纹理压缩的文章,并且我学会了如何对这些格式进行编码。但是我还是想不通DXT2和DXT3格式或者DXT4和DXT5格式有什么区别,我猜这些格式的区别是一样的。

在 D3D SDK 的文档中,它说:

The difference between DXT2 and DXT3 are that, in the DXT2 format, it is assumed that the color data has been premultiplied by alpha. In the DXT3 format, it is assumed that the color is not premultiplied by alpha. These two formats are needed because, in most cases, by the time a texture is used, just examining the data is not sufficient to determine if the color values have been multiplied by alpha. Because this information is needed at run time, the two FOURCC codes are used to differentiate these cases. However, the data and interpolation method used for these two formats is identical.



这是否意味着:如果我们有一个颜色为 RGB 127,127,127 且 alpha 0 的像素,那么在 DXT2 中,它实际上会存储 RGB 0,0,0,因为 127 乘以 alpha 0?

如果是对的,我们可以从实际的游戏开发中得到什么好处?在我看来,这是完全没有必要的。

此外,BC2 和 BC3 格式发生了什么变化?据我所知,DXT2/3 映射到 BC2,DXT4/5 映射到 BC3,因此不再存在区别。它被抛弃了吗?为什么?

任何帮助将不胜感激,谢谢!

最佳答案

据我所知,DXT2 & 3 和 DXT4 & 5 之间确实没有物理差异 - GPU 以相同的方式解码它们。根据文档中的引用,我怀疑唯一的原因是向开发人员提示是否已预乘纹理,从而知道要使用哪种帧缓冲区混合模式,即。 (1, 1-SrcAlpha) 与 (SrcAlpha, 1-SrcAlpha)。

关于graphics - DXT2/3 和 DXT4/5 纹理格式有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13374549/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com