anyway, 写3d实时程序从头造轮子虽然high,但是巨麻烦,ogre和physx这两年相当成熟了,快速开发再好不过.但是整合起来稍微有点麻烦,这里记录一下以备后查
ogre sdk vc8版本, (我曾经试过用vc7的sdk硬转换成vc8的项目,结果编译能过去,执行却把机器整崩溃了,汗)
PhysX SDK v2.4.1再往上就干硬件了...
试验修改项目: sample project Demo_camera_track
项目属性添加
c/c++(默认装到这个目录):
C:/Program Files/AGEIA Technologies/AGEIA PhysX SDK/v2.4.1/SDKs/Foundation/include
C:/Program Files/AGEIA Technologies/AGEIA PhysX SDK/v2.4.1/SDKs/Physics/include
C:/Program Files/AGEIA Technologies/AGEIA PhysX SDK/v2.4.1/SDKs/PhysXLoader/include
链接器:
附加库目录添加:C:/Program Files/AGEIA Technologies/AGEIA PhysX SDK/v2.4.1/SDKs/lib/Win32
附加依赖项添加:PhysXLoader.lib
CameraTrack.cpp中添加头文件:
#include "NxPhysics.h" (必须放在开头否则 几百个error!!)
然后添加初始,退出physx函数,和在桢回调中调用physx that's it
这里简单的用了一个 box 我接纳闷SceneNode* 为什么不能一个44矩阵做object to world转换
两个函数,这.....:
//float glMat[16];
//actor->getGlobalPose().getColumnMajor44(glMat);
NxVec3 cubePos = actor->getGlobalPosition();
cubeNode->setPosition(cubePos.x,cubePos.y,cubePos.z);
NxQuat cubeQuat = actor->getGlobalOrientationQuat();
cubeNode->setOrientation(cubeQuat.w,cubeQuat.x,cubeQuat.y,cubeQuat.z);