![]() |
1
2
据我所知,没有办法从头条看出。有一个ddpf_Alphapixels标志,但我不认为它会基于像素数据中的内容进行设置。您需要解析dxt1块,并查找其中包含0 alpha的颜色(我想,一定要检查颜色是否也在块中使用)。 |
![]() |
2
0
我同意接受的回答。通过使用“sqush”库为您解压块,您的工作可能会更容易一些。 |
![]() |
3
0
对于DXT(或BTC)数据,DDS是一个非常差的包装器。标题对您没有帮助。 普通的原始dxt1没有任何alpha。我相信现在的d3d确实用alpha解码dxt1。每个dxt1块都是这样的:color1(16位)color2(16位)indexs(32位)。如果16位的color1值小于color2(只是一个uint16比较,没有什么特别的!)该块没有alpha。否则就是这样。因此,要回答您的问题:跳过标题,读取16位a,读取16位b,如果a>b存在alpha。否则跳过32位并重复直到EOF。其他的dxt5格式都有alpha格式。人们很少依赖dxt1 alpha技巧,因为一些硬件(intel..)不能可靠地支持它。 |
![]() |
4
0
不,DDS头只对未压缩的图像使用alpha标志。我有一个类似的需求来确定一个dxt1图像是否使用了1位alpha,经过长时间的搜索,我在这里找到了这个参考: https://msdn.microsoft.com/en-us/library/windows/desktop/bb147243(v=vs.85).aspx 基本上,如果color_0<=color_1,则纹理可能具有1位alpha。为了进一步验证它,如果下一个32位是11,则需要检查2位对中的下一个32位。如果找不到,则对每个块继续执行此操作。 |
![]() |
user1424739 · 如何获得子地块的绘图区域大小? 3 年前 |
![]() |
Nor-s · 如何使用ASIMP正确加载模型? 3 年前 |
![]() |
Makogan · 3D纹理大小影响程序输出,不会引发错误 6 年前 |
![]() |
Karsten W. · 底部R中的旋转箭头 6 年前 |
|
168grani · Matplotlib图形的线条平滑 7 年前 |