NVIDIA PhysX SDK 3.0官方文档:Bullet物理引擎详解

5星 · 超过95%的资源 需积分: 15 15 下载量 10 浏览量 更新于2024-07-18 收藏 687KB PDF 举报
"PhysXGuide.pdf 是NVIDIA PhysX SDK的官方文档,针对SDK版本3,以英文PDF形式提供。文档涵盖了物理引擎的核心概念和技术,特别是NVIDIA的PhysX技术,它是一个广泛应用于游戏开发和其他实时模拟场景的物理系统。PhysX SDK支持创建逼真的物理效果,如碰撞检测、刚体动力学和软体模拟。" 在NVIDIA的PhysX SDK中,Bullet物理库是一个重要的组成部分,它是一个开源的物理引擎,适用于多种平台,包括PS3、XBOX360、Wii、PC、LINUX、MacOSX和iPhone。Bullet的特点包括: 1. **开源与兼容性**:Bullet基于ZLib license,允许免费商业使用,并可在多个平台上运行。 2. **碰撞检测**:提供了离散和连续的碰撞检测,支持射线检测和凸多边形扫描测试,支持各种形状的碰撞体。 3. **刚体动态**:包含快速且稳定的刚体动态计算,如车辆动力学、角色控制器、各种类型的约束(如滚轴、铰链和6DOF)以及 ragdoll 模拟。 4. **软体模拟**:支持动态软体模拟,如布料、绳索和与刚体交互的体积变形,还支持约束模拟。 5. **集成工具**:与其他软件如Maya和Blender有插件支持,以及对COLLADA物理格式的导入和导出。 开始使用Bullet时,开发者可以从官方网站下载库,然后在应用程序中引入相应的头文件和库。例如,若要实现完整的物理模拟,需要包含`btBulletDynamicsCommon.h`,而仅使用碰撞检测则只需包含`btBulletCollisionCommon.h`。Bullet设计灵活,允许开发者根据需求选择使用部分功能或进行自定义扩展。 在软件设计上,Bullet物理引擎强调模块化和可定制性。开发者可以选择仅使用碰撞检测组件,或者结合刚体动态,甚至可以不使用软体动态部分。此外,库提供了单精度和双精度版本,以适应性能和精度的不同需求。通过模块化的架构,开发者可以方便地扩展和集成Bullet到自己的项目中,例如,直接使用`btGjkPairDetector`来实现GJK最近点计算。 物理引擎的主要工作是处理碰撞检测、冲突解决、约束求解以及更新所有物体的世界变换。在Bullet中,刚体动态管线展示了这些组件如何协同工作,提供了一个通用的框架,用于构建复杂而真实的物理模拟场景。这种设计使得开发者能够根据项目的特定需求调整和优化物理系统的性能和行为。
2017-10-08 上传
NVIDIA PhysX 显卡物理加速驱动官方版可在N卡上实现物理加速运算的效果,所有游戏人物的动作和渲染特效都将显现动感十足的特效。NVIDIA PhysX 显卡物理加速驱动官方版是目前官方最稳定的N卡物理加速引擎,很多游戏大作都已经启动该驱动。 NVIDIA英伟达PhysX物理加速驱动9.12.0613版For WinXP-32/WinXP-64/Vista-32/Vista-64/Win7-32/Win7-64(2012年7月3日发布)   包含了NVIDIA英伟达PhysX最新运行时版本,支持所有英伟达 PhysX 内容。   该版本中的变化以及修正的问题:   Performance updates for various applications including Batman Arkham City, Alice 2 and other 2.8.4 applications。   在所有显存容量不低于 256MB 的NVIDIA英伟达GeForce精视8系列、9系列、100系列、200系列、300系列、400系列、500系列以及600系列GPU上均支持英伟达PhysX加速。   注: 一些应用程序的最低要求可能会更高。   大家可以在诸多游戏和演示程序中体验 GPU PhysX 加速,PowerPack 下载区重点展示了其中的一些游戏和演示程序,点此下载。   使用下列版本的软件开发包时,该软件在英伟达精视上支持英伟达 PhysX 加速: 2.7.1、2.7.3、2.7.4、2.7.5、2.7.6、2.8.0、2.8.1、2.8.3 以及 2.8.4 (需要 v196.21 或更新版本的图形驱动程序)。   支持从“英伟达显示器驱动程序控制面板”中控制 GPU PhysX 配置。 (需要 v196.21 或更新版本的图形驱动程序)。   AGEIA PhysX 处理器用户应该使用和安装较旧的英伟达 PhysX 系统软件,例如 8.09.04 版本。 注 – AGEIA PPU 加速仅支持 2.8.1 或更早期版本的软件开发包、Windows Vista 以及 Windows XP。 AGEIA时代的PhysX:   PhysX物理运算引擎由五名年轻的技术人员开发,他们成立了AGEIA公司。由于PhysX物理引擎在设计上就并不适合用CPU去计算,因此AGEIA公司还为PhysX引擎设计了专门的运算硬件,PhysX物理加速卡。PhysX物理加速卡的核心被称为PPU,即物理处理器(Physics processing Unit)。PPU在AGEIA公司被nVIDIA公司收购后已停止生产。   nVIDIA时代的PhysX:   2008年,Nvidia收购了AGEIA。正式将PhysX技术划入旗下。nVIDIA PhysX承袭自AGEIA PhysX,但Nvidia在此基础上推出了nVIDIA PhysX物理加速,并将PhysX物理加速功能移植到nVIDIA GPU中,用户不必额外购买PhysX物理加速卡就能享受到PhysX物理加速功能。借助CUDA架构,nVIDIA重新编写了PhysX物理加速程序,将PhysX物理加速引擎从AGEIA PPU移植到了nVIDIA GPU上。   所谓PhysX物理加速,是指相对于CPU来讲,GPU加快了PhysX物理引擎的计算速度。并不是说PhysX引擎只能由nVIDIA GPU处理。   nVIDIA劣化CPU执行PhysX效率:   如果使用CPU处理PhysX时,PhysX引擎只会调用CPU单线程计算。RealWorld Technologies网站的作者David Kanter使用Intel的VTune进程查看工具分析了多款支持PhysX特效的游戏,发现当这些游戏使用CPU处理物理特效时,大部分的代码使用的仍然是老旧的x87浮点算数指令,而不是效率高得多的SSE指令(SSE指令的完成同样任务的速度能达到x87指令的1.5-2倍)。   支持PhysX的游戏:   目前为止,在全平台上(PC,Xbox,Playstation)共有约260种游戏采用了PhysX引擎。其中在PC平台上,共有226种游戏采用PhysX引擎(截止2011.7.26)。   游戏物理效果   物理效果是未来游戏中最重要的一个方面。它涉及游戏中物体移动、互动以及对周围环境作出反应的方式。在当今许多游戏中如果没有物理效果,物体将无法按照玩家想象中的方式或像现实生活的方式运动。当前,大多数动作还仅限于预先定义好的、或“千篇一律”的动画,并且由游戏中的特定事件触发,例如枪炮射击在墙上等等。即使最强大的武器也只能在最薄的墙上留下一个斑点而已,每一个被你干掉的敌人都以预先定义好的相同模式倒下。玩家看到的只是精美的