物理引擎Havok教程(一)
搭建开发环境

网上关于Havok的教程实在不多,并且Havok学习起来还是有一定难度的,所以这里写了一个系列教程,希望可以帮到读者。这是第一期。

一、Havok物理引擎简单介绍
      Havok引擎,全称为Havok游戏动力开发工具包(Havok Game Dynamics SDK),一般称为Havok,是一个用于物理系统方面的游戏引擎,为电子游戏所设计,注重在游戏中对于真实世界的模拟。使用碰撞功能的Havok引擎能够让很多其它真实世界的情况以最大的拟真度反映在游戏中。
 开发商Havok成立于1998年,眼下Havok物理引擎被超过200款游戏使用,很多电影也应用了这家公司的软件技术。
      2007年9月Havok被Intel收购,为了和NVIDIA的PhysX竞争,Intel在去年的(08年)免费开放了Havok的Physics和Animation组件,内容包含Havok SDK库、例子、技术文档以及支持Maya、3ds Max和Avid XSI等3D建模软件的格式转换工具。
      依照Havok的授权文档,即使使用它开发商业游戏也是不须要付费的,这对国内的爱好者应该是一个好消息。
     同PhysX相比,个人认为,Havok不管在稳定性还是功能上,都要略胜一筹。NVIDIA的PhysX在硬件加速上,临时率先,但随着AMD增加到Havok硬件加速的开发,未来Havok的功能肯定会更加的强大。

二、Havok开发环境的搭建
 1.安装SDK
      首先,到Havok的官网下载SDK,http://software.intel.com/sites/havok/,填写自己的姓名和邮箱,注冊后就可以下载。

Content Tools是内容工具,包括一些3D建模软件的导出工具。Behavior Tool是给游戏美工或设计师用的角色编辑工具,具有所见即所得的功能。对程序猿来讲最重要的就是SDK了,我下载的是6.0.0这个版本号。由于Intel仅仅开放了物理和动画两个组件,所下面载的SDK是仅仅包括这两个组件,其它的如布料(Cloth)和破坏(Destruction)还是须要付费才干使用。
 Havok SDK使用的是C++语言,开发环境是Visual Studio,我用的版本号是2005。

Demo文件夹以下是SDK的例子程序和源码,Docs是文档,包含chm和pdf两种格式。Lib是链接库,库分为Debug和release及动态链接和静态链接。Source以下是SDK的包含文件。Tools以下是工具,包含了Visual Debugger这个可视化调试器。

2.设置Visual Studio

这里以我使用的Visual Studio 2005为例。
      头文件包括文件夹的设置。打开Visual Studio 2005,依次选择工具-》选项-》项目与解决方式-》VC++文件夹

选择包括文件,加入新的一行,路径指向Havok SDK安装文件夹的Source文件夹。建议建立一个叫HAVOK_HOME的环境变量,这样能够避免使用绝对路径。
       库文件夹不能在这里设置,而应该为debug和release版本号设置不同的库包括文件夹。由于不论是debug还是release,它们的库名都是同样的。你能够打开Demo/Demos以下的project,看看它是怎样设置为不同版本号设置链接包括文件夹的。

三、第一个Havok程序

这里以SDK自带的一个控制台演示程序为例,使用Visual Debugger来观察Havok的详细效果。首先执行Tools/VisualDebugger文件夹下的Visual Debugger程序,使用它我们能够观察到Havok实际执行的效果,而省去渲染步骤,并且能够把场景记录下来,供以后观看。演示程序在Demo/StandAloneDemos/ConsoleExampleMt文件夹下,这个程序模拟一个高速运动的刚体,撞击墙壁的效果。执行它,然后就能够在VisualDebugger中看到实际的效果了。

好了,第一期教程就是这样。下期会接触到详细的编码问题。假设你有不论什么问题,欢迎和我交流,我的邮箱songnianhu@163.com,博客blog.csdn.net/shangguanwaner,下期再见。

物理引擎Havok教程(一)搭建开发环境的更多相关文章

  1. ExtJS4 MVC开发教程:搭建开发环境

    原文地址:http://www.lihuai.net/qianduan/extjs/864.html 博主系列教程:http://www.lihuai.net/qianduan/extjs 在所有的J ...

  2. Hadoop基础教程之搭建开发环境及编写Hello World

    整个Hadoop是基于Java开发的,所以要开发Hadoop相应的程序就得用JAVA.在linux下开发JAVA还数eclipse方便. 1.下载 进入官网:http://eclipse.org/do ...

  3. 混合式app ionic2.x 手动搭建开发环境教程分享(nodejs,jdk,ant,androidsdk)

    1.ionic简介 为什么选用ionic: 彻底开源且免费 性能优异 基于红的发紫的AngularJs 漂亮的UI 强大的命令行(基于更热门的nodejs) 开发团队非常活跃 ngCordova,将主 ...

  4. qt学习教程1.qt开发环境搭建

    qt学习教程1.qt开发环境搭建 首先下载qt 下载地址:http://download.qt.io/archive/qt/ 此教程使用的版本为5.1.1 下载好后,打开安装包,然后点下一步 选择一个 ...

  5. Android基础新手教程——1.2 开发环境搭建

    Android基础新手教程--1.2 开发环境搭建 标签: Android基础新手教程 如今主流的Android开发环境有: ①Eclipse + ADT + SDK ②Android Studio ...

  6. 从0开发3D引擎(三):搭建开发环境

    本系列使用Reason语言,因此需要搭建它的开发环境. 上一篇博文 从0开发3D引擎(二):准备预备知识 搭建开发环境 建议使用VSCode编辑器来开发Reason,因为它的插件支持得最好. 具体搭建 ...

  7. python Day 1 - 搭建开发环境

    搭建开发环境 首先,确认系统安装的Python版本是2.7.x: $ python --version Python 2.7.5 然后,安装开发Web App需要的第三方库: 前端模板引擎jinja2 ...

  8. 3、Cocos2dx 3.0游戏开发找小三之搭建开发环境

    尊重开发人员的劳动成果.转载的时候请务必注明出处:http://blog.csdn.net/haomengzhu/article/details/27107295 搭建开发环境 使用 Cocos2d- ...

  9. React Native从零到一搭建开发环境

    React Native从零到一搭建开发环境 ReactNative环境搭建 安装Homebrew 安装rvm 安装nvm 安装node 安装react-native-cli 安装watchman i ...

随机推荐

  1. [LeetCode258] Add Digits 非负整数各位相加

    题目: Given a non-negative integer num, repeatedly add all its digits until the result has only one di ...

  2. C#中禁止程序多开

    原文:C#中禁止程序多开 方法一.使用Mutex bool createdNew; //返回是否赋予了使用线程的互斥体初始所属权            System.Threading.Mutex i ...

  3. html学习笔记二

    html图片标记 <html> <head> <title>图片演示</title> </head> ----------------图片演 ...

  4. MonkenRunner通过HierarchyViewer定位控制的方法和建议(Appium/UIAutomator/Robotium侣)

    1. 背景 正在使用MonkeyRunner当我们经常使用Chimchat下面HierarchyViewer模块获得目标控制的一些信息,以协助我们测试.但在MonkeyRunner官方的说法是没有看到 ...

  5. linux 下一个 osw先从操作系统和标准脚本主动发起

    linux 下一个 osw与操作系统的引导和启动标准的脚本.osw它指的是--os watcher,这是一个显示器os这些指标shell脚本.osw监测数据一般使用oracle技能评估os资源的使用, ...

  6. Java误区: 静态代码块,当把类将被载入到自己主动运行?

    JAVA静态代码块会在类被载入时自己主动运行? 非常多Java开发人员的思想,被这个思想深深的轮奸了n遍,传播这个错误思想的博客,在网上一堆,越来越多的人被轮奸. 如:http://blog.csdn ...

  7. Project_2007关键

    本人今天成功用这个密钥,安装project2007. 分享给着急的小伙伴们. W2JJW-4KYDP-2YMKW-FX36H-QYVD8 版权声明:本文博客原创文章.博客,未经同意,不得转载.

  8. TCP与UDP的侵略性

    HTTP必须执行在TCP上吗?SSL必须执行在TCP上吗?...实际上HTTP并没有规定一定要执行在TCP上,甚至FTP也不一定要执行在TCP上!HTTP或者FTP仅仅是说底层信道要保证数据的按序传输 ...

  9. Mysql 5.6 新特性

    随笔,真的随笔,以后理解得更深了再修改.   Index Condition Pushdown 更多的让存储引擎去处理Where语句中的条款,避免返回无关字段数据等:   Multi-Range Re ...

  10. SQLServer RESOURCE_SEMAPHORE 等待状态

    原文:SQLServer RESOURCE_SEMAPHORE 等待状态 概述: 当一个SQLServer实例运行得很慢的时候,应该做一些检查,如检查等待状态.最好的方法是一开始就建立一个性能基线,以 ...