PhysX物理引擎(编程入门)

来源:互联网 发布:k means聚类算法电商 编辑:程序博客网 时间:2024/05/19 22:45

来源:http://blog.csdn.net/huawenguang/archive/2007/02/09/932105.aspx

 

Author: 华文广   E-MAIL: huawenguang@sina.com  DATE:06/7/20

 

      Hi,大家好,好久没有写过东西了.最近在研究物理引擎,在网上搜索了一下,发现相关的技术文章特别少,于是我心血来潮,决定给有兴趣向这方面发展的朋友写一篇入门教程,希望有所帮助。更多相关学习,请到http://www.physdev.com 物理开发网。

      如果你是一名超级游戏爱好者,那想必你会听说过PPU。要是你不知道什么是PPU,那也不要紧,但至少你要知道什么是“物理加速卡”。

      Ageia是PhysX物理芯片的开发商,一家名不见经传的公司,成为敢吃螃蟹的第一人。说不定不久的将来,我们的计算机里会出现CPU,GPU,PPU三足鼎立的局面,而物理编程,也将成为游戏程序员的必修课程。本文是PhysX编和的入门教程。

 

 

 

一、安装

      在国际上,出名的物理引擎有Havok,Vortex,ODE,Novodex,Takamak等等,其中ode是一个免费开源的物理引擎,而Novodex就是PhysX的前身,被Ageia收购之后,改名为PhysX,是一个可以免费用于非商品用途的引擎。在这里选用PhysX来作为入门教程,主要是因为,它的帮助比较丰富,而且开发包可以免费获得。

      关于PhysX sdk的安装.首先要进入http://support.ageia.com下载SDK,注意的是Ageia的SDK只对注册用户开放下载。注册是免费的,但好像要经过审核才会开通,不过一般都会通过的。我注册的时候好像是第二天才收到开通邮件。有两个安装文件是必须下载的System Software.exe和PhysX 2.3.3 SDK Core.exe前一个是底层驱动,后一个是程序内核,最新的SDK是2.4.1,但是只针对商业客户开放。对于初学者来说,最好把PhysX 2.3.3 SDK Training Pragrams.exe也一起下载,里面包含了从初级到高级的一系列教程,对学习这个引擎很有帮助。把所有东西下载下来之后,接着是安装了,安装很简单,一路next下去就可以了,但是为了让VC中设置方便一点,建设把PhysX 2.3.3 SDK Core.exe的安装路径改短一点,例如我的就是安装在D:\PhysX中。

安装好了之后,后开始对VC编译环境进行设置。

首先,在Tools→Options→Directories→Inclund Fik中加入以下目录.

  D:\PhysX\SDKS\Physics\include

  D:\PhysX\SDKS\Founddation\include

  D:\PhysX\SDKS\PhysXLoader\include

然后在…àLibrary Fiks中加入以下目录:

  D:\PhysX\sdks\LIB\Win32

以上用到的“D:\PhysX”指的是sdk安装目录,以你机器中的安装路径为准,本教程的示例程序用到了opengl和glut作为渲染引擎,你的计算机如何没有安装glut库,那也请先到www.opengl.org上下载一个安装上去。在这里就不打算深入讨论glut了,没有基础的朋友可以先自学一下。

 

 

 

二、PhysX概述

       首先来介绍一下PhysX编程的几个术语以及它们之间的相互联系。

1.     Scene场景:就像演员表演都需要一个舞台一样, PhysX的所有物理运动都在这个scene中进行。

2.     Actor角色:在场景中,所有参与运算的实体都是一个角色或许我这样表达不是很正确,大家慢慢体会吧!

3.     bosy刚体:用来记录物体之间世界交互的各种系数,如速度,阻尼等.

4.     shape形状:描述和表达某一角色的外形,PhysX中提供4种基本形状,盒子,球,胶囊以及平面。

 

      从上面图可以看到,PhysX编程其实很简单,首先,定义各种不同的角色(actor),然后指定每个角色的形状(shape)属性和刚体(body)属性,最后是把这些角色都加入到场景(scene)空间中去,这样就可以构造出一个完整的物理世界。下面我将详细描述编程的步骤.

 

 

 

三.编程实现

1.创建scene,