博客又好久不更新了,今天上课拿手机正好查Havok的内容,突然发现Havok自从08年5月后对商业用和非商业用的
游戏开发者是免费的,(以前我一直以为是收费的,甚至不开放给非商业开发者-。-!!被Physx迷惑了,5555)如果是商业用途,价格低于10美金(也就是国内单机游戏的价格),你甚至不用和Intel打招呼就能直接用。高于10美刀的话,也只需要问Intel要个免费授权即可~0~
----------------------------分割线----------------------------
恩恩恩,我知道,我的题目是比较;鉴于我是个物理引擎小白(只“看”过physx),所以不一定能保证准确性,但我尽力保证比较客观的去比较两者。
安装:havok提供两个压缩包,一个是SDK库,还有一个是提供给美工的Behaivor Tool。Physx是一个SDK包,不过之前必须装一个SystemSoftware(我记得Physx的GPU加速只支持英伟达自家的显卡)
Samples:Havok的实例写的还是挺工整的,附带了基本的注释,基本能保证你明白哪块代码干嘛用的.
// The cache size in bytes is equal to m_buckets * m_slots * m_chunkSize
hkaDefaultChunkCacheCinfo cacheCinfo;
cacheCinfo.m_numberOfCachePools = 2;
cacheCinfo.m_cachePools.setSize( 2 );
cacheCinfo.m_cachePools[0] = cpCinfo[0];
cacheCinfo.m_cachePools[1] = cpCinfo[1];
// Create a cache only if the number of buckets is nonzero
// Some variants of this demo do not use a cache.
// N.B. This is the default chunk cache which is not threadsafe (but invokes no critical sections
// so is fastest when used in a single threaded environment). For sharing a cache across
// multiple threads, the Animation/Animation/Playback/Cache/Multithreaded/hkaMultithreadedChunkCache
// class is provided - see also the Demo\StandAloneDemos\ConsoleExampleAnimationMT for an example use.
m_cache = ( cpCinfo[0].m_buckets ) ? new hkaDefaultChunkCache( cacheCinfo ) : HK_NULL;
}
相比Physx的代码就差一些,解释性的注释很少。
1 _computeMostTouchedActor();
2 NxVec3 relativeVelocity;
3 if (_mostTouchedActor == NULL || !_mostTouchedActor->isDynamic())
4 {
5 relativeVelocity = _bodyActor->getLinearVelocity();
6 } else {
7 relativeVelocity = _bodyActor->getLinearVelocity() - _mostTouchedActor->getLinearVelocity();
8 }
9 NxQuat rotation = _bodyActor->getGlobalOrientationQuat();
10 NxQuat global2Local;
11 _localVelocity = relativeVelocity;
12 rotation.inverseRotate(_localVelocity);
13 //printf("Velocity: %2.3f %2.3f %2.3f\n", _localVelocity.x, _localVelocity.y, _localVelocity.z);
文档和教程:API详细程度上粗看差不多,不过貌似Physx没有提供索引功能,而只有搜索;
教程上看,我个人更偏好Havok的教程,上面譬如车辆那部分,havok专门划了块Vehicle Kit来讲,里面把物理大概原理什么都讲了,而且带了很多解释图,我觉得这对初学者会很不错。
Physx的教程更多带的是实例的代码,里面的lesson就对应了一个小程序,不过觉得里面的解释相对havok较少,而且毕竟是word文档,看着比chm的累。。。
我现在有这感觉,在国内而言Physx的名声比Havok要大。但似乎Havok更强大且更易用些。
累了。。睡个午觉去