PJ06: 高级三维游戏/智能化运动仿真核心算法和实例源码解析版

 
功 能 特 点
 
C++库算法 提供了多种详细实用智能化仿真运动算法,算法封装于C++类库内,十分便于调用,提供全部源码
详细实例 提供了对应算法详细实例包括全部程序源码
详细注解 程序代码提供详细注解,非常容易理解编程
三维显示 OpenGL三维实时绘制和显示
应用扩展 专集代码可扩展于各种系统,应用于三维游戏、模拟仿真等领域

 

 

主 要 内 容
海底世界鱼群自由游动模拟
小人走路运动控制系统模拟A Hierarchical Motion Control System
基于物理运动控制系统模拟 (A Physics-based Motion Control System)
行为运动控制系统模拟——鸟群自由飞翔模拟(A Behavioral Motion Control System: A Flocking System)
基于关键帧运动控制系统模拟(A Key-framing Motion Control System )
海底世界鱼群自由游动模拟
 

该系统实时模拟了多个不同种类的鱼群在海底穿插自由游动的情景。本系统提供鱼群智能化运动自动控制算法,如鱼群中心定位、碰撞避免、速度匹配、方向控制、速度限定、边界反弹、排列对齐、邻居寻找等。本实例还提供了一个通用的基于行为运动仿真的框架,非常容易加入其他复杂的行为运动。另外,本实例还提供了一些纹理影射编程技巧用于真实感三维海底世界模拟。

 
程序输入:鱼群几何和属性参数
程序输出:海底世界鱼群自由游动实时模拟
小人走路运动控制系统模拟 (A Hierarchical Motion Control System
 

该系统自动生成一个基于关节的人体结构模型,同时实时模拟了简单的人物沿着由控制点自动生成的曲线走动的过程。本实例程序采用的腿部运动是基于正向动力学(Forward Kinematics)线性内插方式。正向动力学对于处理诸如行走时手臂的摆动或人转身时脊柱的旋转之类的自由运动是非常有效的。

程序输入:人物几何模型,轨迹控制点集
程序输出:小人走路运动控制实时模拟
基于物理运动控制系统模拟 (A Physics-based Motion Control System)
 

该系统实时模拟了刚体物体基于物理运动控制。模拟包括刚体重力效果和刚体间碰撞效果,而且碰撞反映了速度。本系统针对不同的碰撞采用了不同的算法来模拟碰撞检测和碰撞后新速度的计算。一种是采用衰减因子(attenuation factor)或损耗因子(damping factor)来计算物体与地面碰撞后的新速度;另一种是采用更复杂的基于物理的刚体碰撞原理来计算新速度。为了提高检测效率,程序中还采用了边界球首先来进行粗略的检测碰撞。此外,用户还可以交互式地控制速度仿真。

程序输入:多个物体几何模型,各个物体物理属性参数(如质量、位置、速度向量、材质等等),初始条件(如重力、损耗因子等),速度控制
程序输出:多个刚体间碰撞以及与地面碰撞运动的实时模拟
行为运动控制系统模拟——鸟群自由飞翔模拟(A Behavioral Motion Control System: A Flocking System)
 

该系统实时模拟了多个鸟群类系统自由飞翔的行为运动。本系统提供鸟群类智能化运动自动控制算法,如群体中心定位、碰撞避免、速度匹配、方向控制、速度限定、边界处理等。本实例还提供了一个通用的基于行为运动仿真的框架,非常容易加入其他复杂的行为运动。

 
程序输入:鸟群等几何和属性参数
程序输出:鸟群等自由运动的实时模拟
 
基于关键帧运动控制系统模拟(A Key-framing Motion Control System )
 

该系统实时模拟了一个基本的关键帧运动控制。本系统能根据输入的控制点位置和方向参数,自动生成内插的物体运动。本系统能接受欧拉角度(Euler angles)或四元向量角度(Quanternions)。内插采用两种算法:Catmull-Rom内插和B样条内插(B-splines)。四元向量角度内插采用SLERP内插算法。实例中可以通过菜单选择不同的内插效果进行比较。

程序输入:物体几何模型,轨迹控制点集,轨迹内插类型(Catmull-Rom 或 B-splines),间距等
程序输出:基于关键帧运动控制实时模拟