读书人

在QCreator IDE中 运用 Orge3D

发布时间: 2012-08-30 09:55:54 作者: rapoo

在QCreator IDE中 使用 Orge3D

首先我们下载安装MS windows SDK 取得 MSVC9编译器。

去Orge3D.org下载

OGRE 1.7.4 SDK for Visual C++ .Net 2008 (32-bit)

这个版本

解压到任意目录中比如 E:\\Ogre

然后在QCreator中新建空项目

在QCreator IDE中 运用 Orge3D

之后下载Orge 基本教程 例子代码 在QCreator IDE中 运用 Orge3D?TutorialFramework.zip

解压到你新建的项目目录中,添加已存在文件到工程,或者直接在.pro文件加入如下内容.

HEADERS += \    TutorialApplication.h \    BaseApplication.h SOURCES += \    TutorialApplication.cpp \    BaseApplication.cpp

?继续修改项目文件.pro ,最终如下

TEMPLATE = appTARGET = Ogre3D_testunix {    # 这里修改成你的Ogre的解压路径    INCLUDEPATH += /usr/include/OGRE    CONFIG += link_pkgconfig    PKGCONFIG += OGRE}win32 {    # 这里修改成你的Ogre的解压路径    OGREHOME = E:\\OGRE3D\\OgreSDK_vc9_v1-7-4    LIBS += -L$$OGREHOME\\boost_1_48\\lib  #进目录检查看你的OgreSDK自带Boost版本的    Release:LIBS += -L$$OGREHOME\\lib\\release    Debug:LIBS += -L$$OGREHOME\\lib\\debug    INCLUDEPATH += $$OGREHOME\\include    INCLUDEPATH += $$OGREHOME\\include\\OIS    INCLUDEPATH += $$OGREHOME\\include\\OGRE    INCLUDEPATH += $$OGREHOME\\boost_1_48 #同上    LIBS += -l"E:/Program Files/Microsoft SDKs/Windows/v7.0/Lib/User32" #他例子代码用了 MessageBox函数}CONFIG(debug, debug|release) {    TARGET = $$join(TARGET,,,d)    LIBS *= -lOgreMain_d -lOIS_d}CONFIG(release, debug|release):LIBS *= -lOgreMain -lOISHEADERS += \    TutorialApplication.h \    BaseApplication.h SOURCES += \    TutorialApplication.cpp \    BaseApplication.cpp
?

然后我们在项目选项卡中确认选择的Qt版本是 Qt for Desktop MSVC 2008 这个版本。

!有可能需要修改 TutorialApplication.cpp ,这里可能出现参数类型转换错误 我就直接强制转换成 LPCWSTR

#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32            MessageBox( NULL, (LPCWSTR)e.getFullDescription().c_str(), (LPCWSTR)"An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);

?之后就可以编译例子了,编译好后是不能运行的,我们需要拷贝编译后的exe文件到OGREHOME\bin目录里面才可以运行,之后出来一个选择界面

在QCreator IDE中 运用 Orge3D

可以配置渲染的东西,点击Ok即可运行。

然后出来的只有一个FPS的记分牌,和一大块黑屏,这是因为我们没有在里面渲染任何东西。

现在加入一个Orge的Logo进去。

修改TutorialApplication.cpp

void TutorialApplication::createScene(void){    Ogre::Entity* ogreHead = mSceneMgr->createEntity("Head", "ogrehead.mesh"); //初始化一个Entity(实体?)         //本身就有一个RootSceneNode 用来创建子节点        Ogre::SceneNode* headNode = mSceneMgr->getRootSceneNode()->createChildSceneNode();                 //将兽人头关联到节点对象       ?headNode->attachObject(ogreHead);       ?//ambient 灯光        mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5, 0.5, 0.5));        //创建灯光然后设置灯光位置        Ogre::Light* l = mSceneMgr->createLight("MainLight");        l->setPosition(20,80,50);}

?其中ogrehead.mesh就在OGREHOME\media\models里面

再次编译运行 兽人头就出现了

QCreator 编辑C++代码相当方便吧,嘿嘿

?

关于这个例子代码,官方有一套使用这个例子代码的教程 Basic Tutorials

?

读书人网 >编程

热点推荐