gpt4 book ai didi

c++ - OGRE 异常(7:InternalErrorException):在 FreeImageCodec::decode 中解码图像时出错

转载 作者:行者123 更新时间:2023-11-30 05:44:10 24 4
gpt4 key购买 nike

我正在使用 Ogre 3D 1.9,我正在尝试加载包含在 resource.cfg 文件指向的文件夹中的网格。该文件夹包含子文件夹,它们将 .mesh 文件、.material 文件和纹理分开。以下是 resource.cfg 文件的内容:

# Resources required by the sample browser and most samples.
[Essential]


# Resource locations to be added to the default path
[General]
FileSystem=media
FileSystem=media/materials/scripts
FileSystem=media/materials/textures
FileSystem=media/models

在此之后,我使用以下内容声明并初始化网格、 Material 和纹理:

Ogre::ResourceGroupManager::getSingleton().declareResource("ram.mesh", "Mesh", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::NameValuePairList());
Ogre::ResourceGroupManager::getSingleton().declareResource("char_ram_col.png", "Font", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::NameValuePairList());
Ogre::ResourceGroupManager::getSingleton().declareResource("char_ram_nor.png", "Font", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::NameValuePairList());
Ogre::ResourceGroupManager::getSingleton().declareResource("ram_skin.material", "Material", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::NameValuePairList());
Ogre::ResourceGroupManager::getSingleton().declareResource("ram_skin_eyelids.material", "Material", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::NameValuePairList());
Ogre::ResourceGroupManager::getSingleton().declareResource("ram_skin_eyes.material", "Material", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::NameValuePairList());
Ogre::ResourceGroupManager::getSingleton().declareResource("ram_skin_horns.material", "Material", Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, Ogre::NameValuePairList());

Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();

然后我将网格附加到一个节点:

Ogre::Entity *entity = scene->createEntity("LocalMesh_Ent", "ram.mesh");
Ogre::SceneNode *cube = node->createChildSceneNode("ram.mesh", Ogre::Vector3(x, y, z));
cube->attachObject(entity);

其中 cube 是之前创建的 SceneNode。

我在加载纹理时遇到问题。代码构建没有任何问题,但是当我运行它时出现以下错误(在日志文件中):

OGRE EXCEPTION(7:InternalErrorException): Error decoding image in FreeImageCodec::decode at ..\..\..\..\OgreMain\src\OgreFreeImageCodec.cpp (line 419)

网格和 Material 创建正确,例如,如果我评论有关纹理的部分。

有人知道问题出在哪里吗?

第二个问题:我读到 .png 文件必须声明为 Font,但还有 Texture 选项(效果不佳)。对吗?

最佳答案

其实我发现了问题。包含纹理的 .png 文件实际上并不是真正的 .png 文件。打开它并用 Gimp 重新保存它解决了我的问题。

我花了一些时间来解决这个问题,因为文件没有损坏,考虑到我可以使用图像查看器毫无问题地打开它。

考虑到我刚刚从互联网上下载了一个 Blender 模型,并保存为网格文件,我不知道是什么导致了这种问题。

关于c++ - OGRE 异常(7:InternalErrorException):在 FreeImageCodec::decode 中解码图像时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29917809/

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