Russian Qt Forum
Октябрь 02, 2024, 15:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Ogre3D не запускается. падает на выборе рендеров  (Прочитано 5273 раз)
ieroglif
Гость
« : Сентябрь 07, 2011, 00:27 »

собираю вместе Ogre3D и Qt.
и то и другое последнее скачано и обновлено =) + MinGW последний
воспользовался этой и этой статьями, дополнительно перенастроил внутри проекта компилятор на новый mingw.
кусок инициализации на котором падает:
Код
C++ (Qt)
   // create the main ogre object
   mOgreRoot = new Ogre::Root( plugins_file, ogre_cfg_file, ogre_log );
 
   // setup a renderer
   Ogre::RenderSystemList::const_iterator renderers = mOgreRoot->getAvailableRenderers().begin();
   Ogre::LogManager::getSingleton().logMessage("!!Get Renders");
 
   while(renderers != mOgreRoot->getAvailableRenderers().end())
   {
       Ogre::LogManager::getSingleton().logMessage("ku");
       Ogre::String rName = (*renderers)->getName();
       Ogre::LogManager::getSingleton().logMessage(rName);
       if (rName == "OpenGL Rendering Subsystem")
           break;
       renderers++;
   }
   Ogre::LogManager::getSingleton().logMessage("Render ok!");
 
   Ogre::RenderSystem *renderSystem = *renderers;
вывод в лог:
Код:
Запускается C:\Qt\OgreSDK\bin\Release\OgreTest.exe...
Creating resource group General
Creating resource group Internal
Creating resource group Autodetect
SceneManagerFactory for type 'DefaultSceneManager' registered.
Registering ResourceManager for type Material
Registering ResourceManager for type Mesh
Registering ResourceManager for type Skeleton
MovableObjectFactory for type 'ParticleSystem' registered.
OverlayElementFactory for type Panel registered.
OverlayElementFactory for type BorderPanel registered.
OverlayElementFactory for type TextArea registered.
Registering ResourceManager for type Font
ArchiveFactory for archive type FileSystem registered.
ArchiveFactory for archive type Zip registered.
DDS codec registering
FreeImage version: 3.13.1
This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi,exr,j2k,j2c,jp2,pfm,pct,pict,pic,bay,bmq,cr2,crw,cs1,dc2,dcr,dng,erf,fff,hdr,k25,kdc,mdc,mos,mrw,nef,orf,pef,pxn,raf,raw,rdc,sr2,srf,arw,3fr,cine,ia,kc2,mef,nrw,qtk,rw2,sti,drf,dsc,ptx,cap,iiq,rwz
Registering ResourceManager for type HighLevelGpuProgram
Registering ResourceManager for type Compositor
MovableObjectFactory for type 'Entity' registered.
MovableObjectFactory for type 'Light' registered.
MovableObjectFactory for type 'BillboardSet' registered.
MovableObjectFactory for type 'ManualObject' registered.
MovableObjectFactory for type 'BillboardChain' registered.
MovableObjectFactory for type 'RibbonTrail' registered.
../plugins.cfg not found, automatic plugin loading disabled.
*-*-* OGRE Initialising
*-*-* Version 1.7.2 (Cthugha)
!!Get Renders
Программа неожиданно завершилась.
C:\Qt\OgreSDK\bin\Release\OgreTest.exe завершился с кодом -1073741819
вопрос обычен: в чём косяк?
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Сентябрь 07, 2011, 06:45 »

а gdb что по этому поводу говорит?
Записан

Юра.
Disa
Гость
« Ответ #2 : Февраль 08, 2012, 12:17 »

Получилось ли как-то решить эту проблему?
Записан
Hronom
Гость
« Ответ #3 : Март 10, 2012, 19:29 »

Моя инициализация:
Код:
bool GraphicSystem::init()
{
//-----------------------------------------------------
// 1 Создание рута
//-----------------------------------------------------
mRoot = new Ogre::Root(mPluginsCfg, mOgreCfg, mOgreLogFile);

//-----------------------------------------------------
// 2 Настройка приложение и создание окна
//-----------------------------------------------------
if(!(mRoot->restoreConfig() || mRoot->showConfigDialog()))
{
delete mRoot;
return false;
}

mRenderWindow = mRoot->initialise(true, "JustGame");

// Set default mipmap level (note: some APIs ignore this)
Ogre::TextureManager::getSingleton().setDefaultNumMipmaps(5);

//-----------------------------------------------------
// 3 Загрузка ресурсов из конфига
//-----------------------------------------------------
Ogre::ConfigFile xConfigFile;
xConfigFile.load(mResourcesCfg);

// Проходим по всем секция в файле
Ogre::ConfigFile::SectionIterator xSection = xConfigFile.getSectionIterator();

Ogre::String xSecName, xTypeName, xArchName;
while (xSection.hasMoreElements())
{
xSecName = xSection.peekNextKey();
Ogre::ConfigFile::SettingsMultiMap *settings = xSection.getNext();
Ogre::ConfigFile::SettingsMultiMap::iterator i;
for (i = settings->begin(); i != settings->end();   i++)
{
xTypeName = i->first;
xArchName = i->second;
Ogre::ResourceGroupManager::getSingleton().addResourceLocation(
xArchName, xTypeName, xSecName);
}
}

// Грузим все ресурсы
Ogre::ResourceGroupManager::getSingleton().initialiseAllResourceGroups();

//-----------------------------------------------------
// 4 Создание менеджера сцен
//
// ST_GENERIC = octree
// ST_EXTERIOR_CLOSE = simple terrain
// ST_EXTERIOR_FAR = nature terrain (depreciated)
// ST_EXTERIOR_REAL_FAR = paging landscape
// ST_INTERIOR = Quake3 BSP
//-----------------------------------------------------
mSceneManager = mRoot->createSceneManager(Ogre::ST_GENERIC);

//-----------------------------------------------------
// 5 Создание камеры
//-----------------------------------------------------
mCamera = mSceneManager->createCamera("MainCamera");
mCamera->setPosition(Ogre::Vector3(0,0,100));
mCamera->lookAt(Ogre::Vector3(0,0,0));
mCamera->setNearClipDistance(5);

//-----------------------------------------------------
// 6 Создание вьюпорта
//-----------------------------------------------------
Ogre::Viewport* xViewport = mRenderWindow->addViewport(mCamera);
xViewport->setBackgroundColour(Ogre::ColourValue(0,0,0));

mCamera->setAspectRatio(Ogre::Real(xViewport->getActualWidth()) / Ogre::Real(xViewport->getActualHeight()));

// Set ambient light
mSceneManager->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));

//-----------------------------------------------------
// 7 Инициализация MyGUI
//-----------------------------------------------------
mOgrePlatform = new MyGUI::OgrePlatform();
mOgrePlatform->initialise(mRenderWindow, mSceneManager, Ogre::ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, mMyGUILogFile); // mWindow is Ogre::RenderWindow*, mSceneManager is Ogre::SceneManager*
mMyGUI = new MyGUI::Gui();
mMyGUI->initialise();

//-----------------------------------------------------
// 8 Добавление слушателя событий
//-----------------------------------------------------
Ogre::WindowEventUtilities::addWindowEventListener(mRenderWindow, this);
mRoot->addFrameListener(this);

return true;
}
В своей гейме использую кют, но не использую мета систему.
Вот я на днях ещё написал парочку статей. Посмотрите может у вас что-то отличается...
В перовой всё, что я делал, для сборки из исходников Ogre3D, MyGUI, Bullet Physics с использованием MinGW, CMake и среды разработки QtCreator под Windows.
Во второй мини статье находятся мэйк файлы проекта который объединяет в себе Ogre3D, MyGUI, Bullet Physics, OpenAL, FreeALUT, Qt.
Вот всё это дело:
Проект игры на гитхабе:
Основная логика игры https://github.com/Hronom/JustGame
Инициализация различных компонентов https://github.com/Hronom/JustGameCore
« Последнее редактирование: Март 10, 2012, 19:38 от Hronom » Записан
Disa
Гость
« Ответ #4 : Март 11, 2012, 10:34 »

Офигительно! Огромное спасибо!
Я правда уже переметниулся на время в сторону разработчиков под Unity3D, надолго или нет пока не знаю, тк нужно делать большой кусок научной визуализации и быстро. Хотя насколько Unity под это подходит пока толком не пойму, там документации на 600 стр Веселый

Но форум, сообщество и материалов несравнимо больше чем по Ogre или OSG... На последем только 3и дня ждал модерацию моего сообщения на форуме, чтоб другие пользователи смогли бы увидеть сообщение Веселый

PS: Меня сейчас немного расстраивает финансовое положение Нокии на рынке и я не знаю как будет в дальнейшем жить Qt. Хотя, конечно, хотелось бы долгих лет Улыбающийся
Записан
Hronom
Гость
« Ответ #5 : Март 11, 2012, 17:25 »

Офигительно! Огромное спасибо!
Я правда уже переметниулся на время в сторону разработчиков под Unity3D, надолго или нет пока не знаю, тк нужно делать большой кусок научной визуализации и быстро. Хотя насколько Unity под это подходит пока толком не пойму, там документации на 600 стр Веселый

Но форум, сообщество и материалов несравнимо больше чем по Ogre или OSG... На последем только 3и дня ждал модерацию моего сообщения на форуме, чтоб другие пользователи смогли бы увидеть сообщение Веселый

PS: Меня сейчас немного расстраивает финансовое положение Нокии на рынке и я не знаю как будет в дальнейшем жить Qt. Хотя, конечно, хотелось бы долгих лет Улыбающийся

Unity3D отличная штука. Это фактически целый фреймворк для игр и графических программ, там не только графика но и физика, звук и так далее. Мне в юнити не нравится моно и отсутствие поддержки линукса, но это по религиозным соображениям. Если у вас вся суть в написании научной работы и надо сделать быстро, думаю вам скорее всего лучше использовать именно Юнити.

PS: Да меня тоже печалит, что нокиа не спонсирует кют, надеюсь находясь на поддержке опенсорс сообщества он не утратит темпы развития. Вообще очень жаль, что кют не вошёл очень плотно в приложения, очень удобный фреймворк с отличной документацией и талантливыми разработчиками, аналогов ему толком просто нету.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.13 секунд. Запросов: 23.