VS2008编译NxOgre全攻略

来源:互联网 发布:php socket服务器框架 编辑:程序博客网 时间:2024/04/29 06:47

http://blog.chinaunix.net/uid-29141629-id-4484721.html


NxOgre是一款优秀的物理引擎,因其小巧、编程简单而深受大家的喜爱。Ogre是一款开源的图形渲染引擎,可惜仅仅是渲染引擎,因此就得需要其他的物理引擎来实现。不知什么原因,NxOgre的官网已经挂掉。因此,也只能通过github的教程来一窥。官网教程地址:https://github.com/betajaen/nxogre/wiki
ogre的编译
我下的是ogre的sdk版,这种版本不需要对一些插件dll进行重新编译,只需编译一些demo和samplebrowser就行了,载入工程以后,直接生成解决方案,即可完成编译。注意不要忘记创建“OGRE_HOME”的环境变量。

NxOgre的编译
从本质上来说,NxOgre是对physx的封装。因此,编译NxOgre必然要用到physx。Physx是国际显卡制造巨头英伟达(NVIDA)公司开发物理引擎。可以很方便的模拟重力、速度等等物理学的环境。Physx的搭建需要Nvida的Physx驱动和Physx的SDK。这两者直接从网上下载就可以了。下载安装之后,需要做的第一步就是将nvida physx的路径从path变量中删除,否则nxogre会编译失败。记得原来搞nxogre,就是因为这一步导致nxogre的编译功败垂成。。。
第二步,安装physx sdk,安装很简单,直接next就可以。安装之后,需要创建名为“PHYSX_DIR”的环境变量,路径指向physx sdk(注意,这个路径不包括sdks,即c:\physx_SDK而不是c:\physx_SDK\sdks
现在,我们就可以开始nxogre的编译了,从https://github.com/betajaen/nxogre/下载nxogre的源代码,用vs2008打开nxogre工程,点击生成解决方案,开始编译。如果前几步没有错误的话,就可以编译成功。

Critter的编译
虽然有了nxogre,但是显然nxogre封装了physx,却没有与ogre进行整合。因此,我们得需要一个组件,名叫critter将nxogre与ogre连接起来,cri网上流行的教程里所指向的critter其实是一个旧的版本,经笔者测试,根本无法正常完成编译。怎么解决呢?就是换用critter的最新版即可。
地址:http://www.ogre3d.org/addonforums/viewtopic.php?f=6&t=13691
下载之后最好与nxogre处于一个目录下,这样也为后来的demo的编译提供方便。
从这个地方下载的critter,正常编译之后,物理引擎的搭建就完成了。

NxOgre demo的编译
编译完成critter之后,物理引擎的搭建就完成了。但是最好编译几个demo,一是用来学习完整的NxOgre程序是怎么编写的,二是为了测试搭建的环境是否能够正常运行。
直接打开解决方案文件,生成解决方案就可以了。我这里失败了几个,把错误贴出来,大家一起学习

不过还是编译成功了14个,贴几张图庆祝一下




存在的问题:
实际运行demo才发现,不能点击nxogredemo里的那些控件,比如下拉列表框、进度条等,一点击就会出现如下的问题

还有几个demo也无法运行,经过调试是因为nxogre的缘故,难道是dll有问题?按理说是已经编译好的,我不解。希望知道原因的朋友与我交流。

出错原因及分析:
1.载入samplebroswer时出现“these required sample plugins were missing occpted or invaild”
原因:demo的那些dll缺少运行需要的physx dll
对策:将physx bin目录下win32(根据你的机器选择)下的所有dll复制到samplebroswer的目录下

2.运行demo提示debug error
原因:缺少nvida physx驱动的dll
对策:将nvida目录下physx子目录下的common下的所有dll复制到samplebroswer目录,比方说“C:\Program Files\NVIDIA Corporation\PhysX\Common”
阅读(333) | 评论(0) | 转发(0) |

0 0
原创粉丝点击