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.

Другие вопросы по тегам