gpt4 book ai didi

opengl - 本地 Imagemagick 未正确转换为 DDS (DXT5)

转载 作者:行者123 更新时间:2023-12-05 05:20:23 26 4
gpt4 key购买 nike

我在使用 ImageMagick 命令行实用程序使用 DXT5 压缩算法将 png 文件正确转换为 DDS 文件时遇到了一些困难。

convert -format dds -define dds:compression=dxt5 leia.png leia.dds

这是使用 版本:ImageMagick 6.8.9-10 Q16 x86_64 2016-09-14 完成的。我可以在本地查看文件,所以它看起来是正确的。然而,当我将它加载到 OpenGL 中时,我只看到到处都是伪影(随机颜色像素)。确认生成的文件是 DDS 文件:

od -bc leia.dds | head

生成:

$ od -bc leia.dds | head
0000000 104 104 123 040 174 000 000 000 007 020 010 000 356 002 000 000
D D S | \0 \0 \0 \a 020 \b \0 356 002 \0 \0
0000020 024 003 000 000 120 014 000 000 000 000 000 000 001 000 000 000
024 003 \0 \0 P \f \0 \0 \0 \0 \0 \0 001 \0 \0 \0
0000040 111 115 101 107 105 115 101 107 111 103 113 000 000 000 000 000
I M A G E M A G I C K \0 \0 \0 \0 \0
0000060 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000100 000 000 000 000 000 000 000 000 000 000 000 000 040 000 000 000
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0

您可以看到包含 DDS header 的 header 的第一部分。

所以为了咯咯笑,我决定,嘿,也许我应该尝试使用 a separate utility 转换此图像, 只是为了确保文件没有任何问题。当我将此文件加载到 OpenGL 时,它工作正常。

下载文件时,我也再次检查了文件头,看到:

od -bc leia-online.dds | head
0000000 104 104 123 040 174 000 000 000 007 020 010 000 356 002 000 000
D D S | \0 \0 \0 \a 020 \b \0 356 002 \0 \0
0000020 024 003 000 000 300 012 011 000 000 000 000 000 001 000 000 000
024 003 \0 \0 300 \n \t \0 \0 \0 \0 \0 001 \0 \0 \0
0000040 111 115 101 107 105 115 101 107 111 103 113 000 000 000 000 000
I M A G E M A G I C K \0 \0 \0 \0 \0
0000060 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000 000
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
0000100 000 000 000 000 000 000 000 000 000 000 000 000 040 000 000 000
\0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 \0
  1. 看来在线工具使用的是ImageMagick,和我一样。
  2. 如果您查看第一个结果,八进制 20-23 是:120 014 000 000 对比在线结果:300 012 011 000。根据this索引 20-23 指向“字节数”

基本上,我的基本问题是:如何使用 ImageMagick 将 png 文件正确转换为 dds 纹理?

更新:

在线 imagemagick 生成图像标题:

width: 788 height: 750 linearSize: 592576 mipmap_count: 1

我的本​​地版本的 imagemagick 生成了图像标题:

width: 788 height: 750 linearSize: 3152 mipmap_count: 1

所以我想知道我是否在某处遗漏了一个标志来让它正确写入在线版本可能使用的 header ?

最佳答案

事实证明,这只是我的 ImageMagick 版本的问题。升级自

ImageMagick 6.8.9-10 Q16 x86_64 2016-09-14 http://www.imagemagick.org

ImageMagick 7.0.6-0 Q16 x86_64 2017-06-12 http://www.imagemagick.org

修好了。感谢大家的帮助!

关于opengl - 本地 Imagemagick 未正确转换为 DDS (DXT5),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44686874/

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