OGRE EXCEPTION(7:InternalErrorException): ошибка декодирования изображения в FreeImageCodec::decode at
Я использую 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
После этого я объявляю и инициализирую сетку, материалы и текстуры следующим образом:
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);
где куб - это ранее созданный SceneNode.
У меня проблема с загрузкой текстуры. Код создается без каких-либо проблем, но когда я его запускаю, у меня появляется следующая ошибка (в файле журнала):
OGRE EXCEPTION(7:InternalErrorException): Error decoding image in FreeImageCodec::decode at ..\..\..\..\OgreMain\src\OgreFreeImageCodec.cpp (line 419)
Сетка и материалы созданы правильно, если, например, я прокомментирую часть относительно текстуры.
Кто-нибудь знает, в чем может быть проблема?
Второй вопрос: я прочитал, что файл.png должен быть объявлен как Font, но есть также опция Texture (которая также не работает). Это верно?
1 ответ
На самом деле я обнаружил проблему. Файл.png, содержащий текстуру, на самом деле не был настоящим файлом.png. Открытие и повторное сохранение в Gimp решило мою проблему.
Мне потребовалось некоторое время, чтобы решить эту проблему, поскольку файл не был поврежден, учитывая, что я могу открыть его без каких-либо проблем с помощью средства просмотра изображений.
Я не знаю, что вызывает такую проблему, учитывая, что я только что загрузил модель Blender из Интернета и сохранил ее в виде файла Mesh.