使用 DevIL 在 DDS 文件中加载立方体贴图
我只得到立方体贴图中的第一张脸。我如何访问/加载其他的?
在 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
DevIL 没有针对 DDS 立方体贴图的规定。数量惊人的图像加载器也没有。
DevIL does not have provisions for DDS Cubemaps. Neither do a surprising number of image loaders.