PhysX学习记录 三

64 篇文章 0 订阅
16 篇文章 2 订阅

写完第一个Demo,心里有了一个直观的感受。现在需要通过阅读来深入了解一些内部细节了。


1.对于NxCreatePhysicsSDK函数

a.PhysX支持玩家自定义的内存分配方式。

只要在NxCreatePhysicsSDK函数的第二个参数里面传入内存分配类指针即可。
    class MyAllocator : public NxUserAllocator    
	{   
	public:
		void * malloc(NxU32 size)        
		{           
			return ::malloc(size);
		}        
		void * mallocDEBUG(NxU32 size,const char *fileName, int line)        
		{            
			return ::_malloc_dbg(size,_NORMAL_BLOCK, fileName, line);        
		}        
		void * realloc(void * memory, NxU32 size)        
		{ 
			return ::realloc(memory,size);       
		}
		void free(void * memory)      
		{
			::free(memory);      
		} 
	}
	myAllocator;    gPhysicsSDK = NxCreatePhysicsSDK(NX_PHYSICS_SDK_VERSION, &myAllocator, 0);

b.创建和释放必须配对

NxCreatePhysicsSDK函数返回的是一个单键对象指针。所以一个进程,多次调用NxCreatePhysicsSDK返回的是同一个对象。一个进程只能由一个SDK实例对象。该实例是包含引用计算的单键。所以要求每次NxCreatePhysicsSDK调用,都要有配对的gPhysicsSDK->release();

2.实例化对象

很多SDK对象接口都包含了Create方法。可以返回实例化对象指针。很多对象对不能直接new出来。因为本身是虚函数。然后对应的释放都调用对应的release函数。
对象包含userData成员。可以用来记录对象相应数据内存指针。

3.有关时间间隔

这里主要是两个时间。一个是模拟时间,一个是模拟步长。
在NxScene->simulate函数传入参数elapsedTime是模拟时间。每一次simulate模拟的时间。
NxScene->setTiming(maxTimestep, maxIter, method)。
maxTimeStep该参数在传入的method是NX_TIMESTEP_FIXED的时候表示每次simulate模拟的最大时间步长。如果elapsedTime > maxTimeStep,则simulate会把时间分成多个maxTimeStep来执行。最多执行maxIter次。如果maxIter次还没有达到elapsedTime 时间。则剩余的时间累计到下一次simulate调用时计算。maxTimeStep一般是1/100到1/50s比较好。
如果method是NX_TIMESTEP_VARIABLE则simulate把elapsedTime作为单步时间来模拟。

4.有关VRD的坐标颜色

VRD显示的坐标系只有红色、绿色、蓝色三种不同颜色坐标轴。没有坐标轴的X,Y,Z标志的。
据观察测试 红色:X 绿色:Y 蓝色:Z
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当然,下面是PhysX 5的安装教程: 1. 首先,你需要从NVIDIA官方网站上下载PhysX SDK 5。你可以在官方网站的开发者页面找到下载链接。 2. 下载完成后,解压缩下载的文件。你会得到一个名为"physx-sdk-5.x.x"的文件夹。 3. 打开你的开发环境(如Visual Studio)并创建一个新项目。确保你的项目是一个C++项目。 4. 将解压缩得到的"physx-sdk-5.x.x"文件夹复制到你的项目目录下。 5. 在你的项目中,右键点击解决方案资源管理器中的项目名称,并选择属性。 6. 在属性窗口中,选择"C/C++"选项卡,并找到"附加包含目录"一栏。点击右侧的编辑按钮,并添加PhysX SDK的头文件路径。路径应该是类似于"your_project_path/physx-sdk-5.x.x/include"。 7. 在属性窗口中,选择"链接器"选项卡,并找到"附加库目录"一栏。点击右侧的编辑按钮,并添加PhysX SDK的库文件路径。路径应该是类似于"your_project_path/physx-sdk-5.x.x/lib"。 8. 在属性窗口中,选择"链接器"选项卡的"输入"子选项卡,并找到"附加依赖项"一栏。点击右侧的编辑按钮,并添加以下库文件: - PhysX_*.lib(注:*代表具体的版本号,例如PhysX_5.0.lib) - PhysXCharacterKinematic_*.lib - PhysXCommon_*.lib - PhysXCooking_*.lib - PhysXFoundation_*.lib - PhysXPvdSDK_static_*.lib 9. 确保你的项目设置正确后,重新编译并运行你的项目。如果一切顺利,你应该能够成功使用PhysX 5了。 请注意,以上步骤仅适用于Windows平台上的Visual Studio开发环境。如果你在其他平台上或使用其他开发工具,请参考官方文档或相关教程进行安装和配置。 希望对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值