Ogre游戏引擎鼠标选取物体演示
韩举(喝水不上火)
声明:
该演示只是起到抛砖引玉的作用,转载请保持本文章完整性,请保持作者信息。
由于Ogre推出了最新的Release1版,为了适应该版本所以延迟了几天,不过还好问题解决了,主要是(GUI方面的)。
Ogre是开源的图形渲染引擎见http://www.ogre3d.org,该引擎很有名,在网上可以找到很多相关的信息。
言归正传,这个演示程序演示了在Ogre中进行鼠标选取物体,而且还能检测出鼠标具体击中了该物体的哪个面,用专业点的说法就是"射线与面(三角型)的碰撞检测"。
注意:
该程序采用Esc键退出。
该演示程序为VC7.1(2003)工程,需要最新的Ogre 1.0.0 Release的支持。
编译前的目录设置:(注意下面目录为我机器目录,请设为你自己的目录)
包含文件目录(include)
D:\OgreRc1\ogrenew\Dependencies\includeD:\OgreRc1\ogrenew\Dependencies\include\CEGUI
D:\OgreRc1\ogrenew\OgreMain\include
库文件设置(lib)
D:\OgreRc1\ogrenew\OgreMain\lib\debug
D:\OgreRc1\ogrenew\Dependencies\lib\Debug
重点函数
getClickAt函数:该函数主要是调用Ogre的Ray检测判断哪个物体被选中,该函数可以用于在多个物体中判断鼠标选中的物体。
PickTest函数:该函数用于判断"鼠标是否选中某个物体(调用getClickAt函数),以及选中该物体的哪个面"。
HJSDK命名空间:我自己仿照Ogreode写的碰撞检测引擎,用来检查碰撞面。
代码下载(编译后如果不能正常运行,请把可执行文件复制到 \ogrenew\Samples\Common\bin\Debug\下)
http://www.hjpdiy.com/docdoc/OgrePickTest.rar 注意该文件已经针对(OGRE 1.0.0 Final Feb 23, 2005 - 03:44 PM by sinbad)进行了修正。
可能的问题:
对于有骨骼动画的mesh可能不能正常识别。
其实一开始想写个简单的 "3d魔方程序"然后发布出来,结果现在突然想学学Cg动画(maya)所以先把这个东西发出来,见笑见笑