PhysX学习笔记(2): 动力学(1)
来源:互联网 发布:医药进销存软件免费版 编辑:程序博客网 时间:2024/04/30 06:27
场景(Scene):
物理模拟发生的场所, 包含了actor, joint, effector. 跟图形引擎里的Scene差不多, 可以有多个实例存在, 互不干涉.
场景没有特别的大小限制. 功能有重力, 射线拣取, 开关硬拼检测等.
模拟时序(Timing):
物理模拟导致物体的一些属性随着时间进行变化, 如位置, 速度等.
模拟每经过一次时间步进进行一次, 通常要与渲染帧数进行同步.
前进(也可以说是更新):
void simulate(NxReal elapsedTime);
elapsedTime会被分成多个时间步进来决定物理模拟进行了多少
时序可以用setTiming设置, decriptor也可. 默认值就能够满足大多数程序的要求了.
固定的时间步进可以确保稳定且可以重现的物理模拟, 需指定NX_TIMESTEP_FIXED.
异步的步进:
PhysX是多线程的, 物理模拟发生在自己的线程里. 状态变化如下:
1) 开始模拟
2) 确保数据已被发送到模拟线程
3) 检测模拟是否完成, 如果是, 更新状态数据缓冲, 并且->
4) 交换状态数据缓冲, 这样结果可以被程序访问, 后台缓冲可以继续参数模拟(就像D3D的BackBuffer)
注意fetchResults(NX_RIGID_BODY_FINISHED, true)是一个阻塞调用, 可以用这两种方式代替:
注意: 一些函数对于异步的状态改变不可知, 如overlap和raycasting, 直到simulte()/fetchResult()执行后才可.
外壳宽度(Skin Width):
通俗点说, 就是能两个物体能相互插入多么深….. 因为模拟是以时间步进为单位的, 所以两次步进之间就会产生一个跳变, 这种互相越界的现象不可避免. 于是乎引入这么一个量, 用于保证稳定性.
- PhysX学习笔记(2): 动力学(1)
- PhysX学习笔记(3): 动力学(2) Actor
- PhysX学习笔记(4): 动力学(3) Joint
- PhysX学习笔记(1): 基础
- PhysX学习笔记
- PhysX学习笔记1 - win2000运行PhysX的demo时出错
- PhysX学习笔记2 -cloth系统3d模型的导入
- ios学习笔记—— UIDynamic-UIKit 动力学
- PhysX流体笔记
- physx学习手记
- PhysX学习记录 一
- PhysX学习记录 二
- PhysX学习记录 三
- PhysX学习记录 一
- PhysX学习记录 二
- PhysX学习记录 三
- 动力学模拟2
- PhysX流体笔记之发射器
- java抽象工厂模式
- 郁闷时看了也会笑的
- mysql快速上手之基本操作
- mysql 用户的权限 问题帖子
- MySql常用命令
- PhysX学习笔记(2): 动力学(1)
- 1秒钟看出你现在的感情状况,准得邪门!
- Flex ActionScrip 文件 改变mxml控件的值
- apache2+webbench
- JAVA自学笔记(一):基础
- gv,Repeater分页示例代码
- 编程能力的四种心理境界 你属于那一种? 的第一段的看法 后面的是对的
- 网址
- 经典座右铭:美国成功人士的人生座右铭