Havok Physics 翻译资料(1)

Chapter 1.介绍

1. Introduction

1. Introduction

2. What is Havok?

3. 它是如何工作的

3.1. 设置模拟的islands

3.2. 使用动作

3.3. 设置系统

3.4. Solve

3.5. 整合

3.6. 碰撞检测

3.7. 连续模拟

4. 关于这个文档

5. 关于Demos

5.1. 示例框架

5.2. 示例类型

5.3. 使用示例框架时运行visual debugger

 

3.5.    整合

整合器根据解决器提供的信息来计算在模拟中的每一个物体的新运动状态(初始和最终的位置、方向、速度、加速度等等)。新的位置和旋转(状态)就可以传递到你的渲染系统中,让你来更新游戏中的角色。一个物体的运动状态存储着两个和它在模拟中的始末位置、方向有关的变换。这样一来,计算两个模拟帧中物体的位置。当运行慢动作的显像和在许多显像帧中用一个模拟步(simulation step)时,这非常有利。

注意这一系列的操作“使用动作、设置系统规定参数、处理、整合”有时候可以简单的归结为“融合”,比方说:hkpWorld::integrate()这个函数进行的就事这一系列的操作。

3.6.    碰撞检测

模拟器需要确定在你场景中的任何物体是否正在发生碰撞或者重叠。在Havok Physics中,碰撞检测被分成3个阶段——广碰撞检测阶段(是说快速的粗略计算出可能发生碰撞的几对物体),中碰撞检测阶段(计算出可能发生的碰撞的更加详细估算值),最后呢,是窄碰撞检测阶段(确定这个碰撞哪些会真的发生)。如果一些物体正在发生碰撞,那么从窄检测中得到的交叉信息就用来创建碰撞代理和碰撞接触点。这些碰撞代理和碰撞接触点在下一个模拟帧就被模拟处理器使用了。

在模拟中每一个自然界的物体都有一个hkpCollidable,都有一个hkpShape来定义物体的形状,以方便碰撞检测。这些shape可以是简单的圆,方盒子,也可以是更加复杂的形状和网格(meshes)。hkpCollidable 也有转移信息,并且在动力学子系统中都有一个相应的实体转移信息与之相对应。你可以在“碰撞检测”一章找到个多关于使用Havok碰撞检测的信息,包括创建形状,碰撞过滤。

3.7.    连续模拟

这部分解决了所有的在碰撞检测部分产生的碰撞瞬间事件。每一个碰撞瞬间事件又会产生新的碰撞瞬间事件,因此这是一个重复的部分,不可计算。模拟的这部分在世界模拟类型是分离的时候是并不被调用的。你可以在“连续Physics”这一章找到更多关于连续模拟的信息。

4.关于这个文档

这个手册的每一部分都提供给你关于如何使用前面描述的SDK组件的详细信息。我们解释了有用的概念,代码例子(通常是从Havok Demo里找的)很多地方都已经给出来了,包含有帮助的提示等。

这个帮助文件同样包括Havok Physics SDK的参考手册。这个手册提供给你了完整的SDK API文档。包括类和包的描述,详细的类成员描述,和继承类图。他在类图和描述中有完整的超链接,索引,搜索工具,是你查找信息更加简单。在使用手册与例子以及在你的游戏中使用SDK的时候,你可以用这个手册作为一个指南。

5.关于Demos

你的安装目录里的demos文件夹,包括了很多有用的例子,你可以用来学习Havok。这些例子是以一定的逻辑方法设计的,主要是考虑到这个文档的设计。每一个例子的源代码都已经给了出来,你可以快速找到如何执行重要的工作,提供的代码你也可以剪切粘贴到你自己的应用程序中。在每个例子和任务中都有对你有帮助的注释。和这个文档一起,我们希望例子能帮助你是你自己熟悉SDK,并且在你的游戏中使用Havok Physics

5.1.示例框架

我们所有的例子都使用同样的框架,抽象了Havok支持的不同硬件平台的区别,也将显示(图形方面)和模拟方面区分开来。这种抽象将物理学部分的代码放在一个地方使得代码很容易阅读和理解,而不会对控制句柄(controller handler)和具体的显示信息感到迷惑。框架包括了一个基本的示例类——hkDefaultDemo——和一个GUI应用程序,你可以在例子之间来回浏览和使用例子。

你可以在相关平台的文档中弄清如何建立以及如何在你选择的平台下与例子发生交互。

5.2.例子类型

例子被分成两个广义的种类——apiexamples。每个api的例子都说明了一个在使用Havok物理引擎时非常明确的方面,例如在两个刚体之间设定单一约束。这些例子会帮助你增加对SDK一系列特征,与这些特征相关的概念以及与单独的特征有关的关键类的熟悉程度。相比之下,examples的示例将两个或者更多的特征整合在了一起来说明它们是用在一起的,比如在角色扮演和驾驶游戏中。我们已经使这些例子尽可能的简单了,以至于孤立了关键概念,说明了如何和另外的概念相关。

5.3.使用示例框架时运行Visual  debugger.

使用Visual Debugger运行一个示例框架时要用一个“-d”的命令行参数。

更多关于使用Visual Debugger的信息(以及在不同的控制台使用时的信息)可以在Visual Debugger部分可以找到。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值