物理引擎Havok教程(四)第一个Havok程序

本文详细解析了使用Havok引擎创建多线程物理模拟的过程,包括初始化Havok的基本库、创建线程池、创建物理世界以及设置物理场景。同时介绍了如何创建静态刚体作为地面,并展示了模拟更新的关键步骤。此外,还提到了与Ogre渲染引擎的结合,通过OgreHavokBody类实现刚体与场景节点的同步更新。
摘要由CSDN通过智能技术生成

 这一期详细分析我在前面发布的那个Havok实例的代码。运行效果和代码下载请参看我之前的一篇文章《物理引擎Havok的一个简单实例(使用Ogre渲染)》。最新的代码可以在这里下载:http://code.google.com/p/ogrehavok/downloads/list
 在例子中,我用了开源的Ogre作为渲染引擎。如果你想撇开图形渲染,只看Havok模拟的代码,可以参看Havok中自带的一个实例StandAloneDemos。

 

一、类HavokSystem
 例子中类HavokSystem封装了Havok初始化和运行代码。它初始化基本库和多线程模拟,并创建物理世界。声明如下:

 

class HavokSystem
{
public:
 HavokSystem(void);
 

 ~HavokSystem(void);
 //创建hkpWorld
 virtual bool createHavokWorld(hkReal worldsize);
 //初始化VDB
 virtual bool InitVDB();
 //创建物理场景
 virtual void createPhysicsScene();
 void   setGroundSize(hkReal x,hkReal y,hkReal z);
 void   setGroundPos(hkReal x,hkReal y,hkReal z);

 //step simulation
 virtual void simulate();

 void   setup();

 //Physics
 hkpWorld*     m_World;

protected:
 //成员变量
 hkPoolMemory*    m_MemoryManager;
 hkThreadMemory*    m_ThreadMemory;
 char*      m_StackBuffer;
 int       m_StackSize;
 //多线程相关
 hkJobThreadPool*   m_ThreadPool;
 int       m_TotalNumThreadUsed;
 hkJobQueue*     m_JobQueue;
 
 //VDB相关
 hkArray<hkProcessContext*> m_Con

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值