使用 DevIL 在 DDS 文件中加载立方体贴图

发布于 2024-12-06 10:27:02 字数 677 浏览 0 评论 0原文

我只得到立方体贴图中的第一张脸。我如何访问/加载其他的?

在 Ubuntu Natty 上使用 DevIL 1.7.8: 我使用 ilLoad 或 ilLoadImage 加载具有 6 个纹理的 dds 文件,但仅加载第一个面。 ilGetInteger() 给出结果:

IL_IMAGE_DEPTH: 1

IL_IMAGE_BYTES_PER_PIXEL:4

IL_NUM_LAYERS: 0

IL_NUM_IMAGES: 0

IL_IMAGE_TYPE: 5121 (= 0x1401,甚至不是 il.h 中的图像类型!)

IL_IMAGE_CUBEFLAGS: 1024

IL_ACTIVE_IMAGE: 0

IL_IMAGE_SIZE_OF_DATA: 65536(即 128x128x4 并匹配“图像大小(以像素为单位)”乘以“每像素字节数”。)

如果我尝试使用 ilActiveImage 的值不为 0,则会返回 false。

我已经尝试了 RenderMonkey 示例纹理中的 Earth.dds 和 LightCube.dds,并使用 GIMP 保存了我自己的 dds 文件,但只有第一个面被加载。

有人有什么建议吗? (我已经用 ilu 和 ilut-support 编译了 DevIL,如果这会有所不同的话。)

I only get the first face in a cubemap. How do I access/load the other ones?

With DevIL 1.7.8 on Ubuntu Natty:
I use ilLoad or ilLoadImage to load a dds-file with 6 textures, but only the first face gets loaded.
ilGetInteger() give the results:

IL_IMAGE_DEPTH: 1

IL_IMAGE_BYTES_PER_PIXEL:4

IL_NUM_LAYERS: 0

IL_NUM_IMAGES: 0

IL_IMAGE_TYPE: 5121 (= 0x1401, not even an image type according to il.h! )

IL_IMAGE_CUBEFLAGS: 1024

IL_ACTIVE_IMAGE: 0

IL_IMAGE_SIZE_OF_DATA: 65536 (which is 128x128x4 and match the "image size in pixels" times "bytes per pixel".)

If I try to use ilActiveImage with a value other than 0, it returns false.

I have tried Earth.dds and LightCube.dds from the RenderMonkey example textures, as well as saved my own dds-file with GIMP, but only the first face gets loaded for all of them.

Does anyone have any suggestion?
(I have compiled DevIL with ilu and ilut-support, if that would make any difference.)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

护你周全 2024-12-13 10:27:02

DevIL 没有针对 DDS 立方体贴图的规定。数量惊人的图像加载器也没有。

DevIL does not have provisions for DDS Cubemaps. Neither do a surprising number of image loaders.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文