将PhysX文档按自己的语言组织了一遍。 纯粹随笔性质。
创建粒子的描述符是NxFluidDesc,方法有三种:一是直接指定粒子的初始位置和速度,二是使用发射器创建,三是使用NxParticleData和NxFluidDesc::initialParticleData,传递初始的粒子状态来创建。
如果不希望在一开始就指定粒子的初始状态,简单的将NxFluidDesc的numParticlesPtr置为NULL即可。
为了渲染,需要指定数据输出的缓冲区,particleWriteData。要注意的是,如果你要在一开始时就指定粒子的状态,那么多个Fluid,不允许使用同一个NxParticleData数据结构。
创建时,NxParticleData的下面几个成员比较重要,PhysX SDK会读取这些数据:
bufferPos 保存粒子的位置
bufferVel 保存每个粒子的速度
bufferLife 保存每个粒子的生存时间
如果这些成员都是NULL,PhysX会使用默认值。NxParticleData的其它成员,只在渲染时被实时的更新,这里不用理会。
创建了之后,你可能还希望动态地向其中添加新的粒子,方法addParticles可以实现此功能。这个方法是有条件限制的,具体能添加多少的粒子,取决于创建时参数的设置以及当前Fluid中已存在的粒子数。PhysX默认的最大粒子数是4096。
Fluid的模拟可以有两种模式,软件和硬件模拟ÿ