OGRE demo分析

    技术2022-05-20  33

    开发环境:

                 winxp,mingw,codeblock,OgreSDK_mingw_v1-7-2,字符编码为utf8

     

          ogre官方的例子非常绚丽,非常实用,但不适合初学者,为了让广大和我一样的菜鸟少走弯路和以后方便重用其中的代码,这学期开始分析ogre官方demo,将复杂的demo细分为重用性更高的例子,并提供能独立编译运行的工程文件,例子程序坚决摒弃继承和设计模式,直接读源程序就能摸清例子的工作流程和算法细节,其中部分代码加入中文注释

     

    其他的ogre学习资源推荐:so3Dtools,《OGRE 3D 1.7 Beginner's Guide》,谷歌一下就行

     

          本人QQ:343763274,欢迎交流,欢迎合作,欢迎拍砖,如有错误,纯属巧合

     

     

    demo1-草地的制作:

    http://www.pudn.com/downloads328/sourcecode/windows/system/detail1443176.html

    demo2-灯光轨迹动画:

               注意:

                      mSceneMgr->setAmbientLight(ColourValue::Black);//关闭环境光,才能显示模型材质的效果

          http://www.pudn.com/downloads328/sourcecode/game/detail1443147.html

    demo3:

             简单第一人称射击,Ogre::Ray的使用

            注意:

              传给getCameraToViewportRay()的必须是0~1的两个浮点型数值,由于ScreenX/screenWidth为int/int,

              结果也为int,获得的射线将不准确,int/float为float,所以必须强制类型转换

              Ogre::Ray ray=mCamera->getCameraToViewportRay(mX/(float)arg.state.width,mY/(float)arg.state.height); 

              

              显示系统光标

              pl.insert(std::make_pair(std::string("w32_mouse"), std::string("DISCL_FOREGROUND")));

              pl.insert(std::make_pair(std::string("w32_mouse"), std::string("DISCL_NONEXCLUSIVE")));

    http://www.pudn.com/downloads328/sourcecode/windows/network/detail1445768.html

    demo4:简单的aabb盒碰撞:

    http://www.pudn.com/downloads332/sourcecode/game/detail1460588.html

     

    demo5:ManualObject的绘制

    可用于导入自定义格式的模型文件,bullet中的debugdraw

    http://www.pudn.com/downloads338/sourcecode/game/detail1479266.html

    demo6

    比较复杂的例子,ogrebullet的一次封装。可以通过鼠标单击选择物体,然后移除物体,需要先编译bullet,注意:

    库的链接顺序

    phyObject->setSleepingThresholds(0,0);//禁止物体休眠,不然移除物体的时候不能唤醒新的模拟,需要外力驱动


    最新回复(0)