..
WOW是一个纯数据结构的物理引擎,用于模拟实现世界的真实运动(重力、弹力、摩擦力等)。由于它是纯数据结构的(非可视对象),所以它可以使用在任何3D引擎中,通过这个数据化的虚拟系统来计算各种物体的位置和旋转值,然后将几何变换值赋予3D引擎中的显示对象,从而实现了物理学运动模拟。
WOW能与绝大部分3D引擎配合使用,如AWAY3D等。本文主要说明在Alternativa3D中的使用方法。
WOW需要两个类库:“de”和“fr”。de提供了必须的数据结构,fr包含WOW的主类。
基本用法
要想在3D场景中实现物理学运动,首先必须创建一个虚拟的WOW系统(所谓虚拟,是指WOW及其子对象都是非可视的)。如:
varmywow:WOWEngine;
mywow = newWOWEngine(0.3);//创建引擎;
mywow.collisionResponseMode= mywow.SELECTIVE;//碰撞模式;
mywow.addMasslessForce(newWVector(0, 0, -50));//设置一个无质量的力;用它可模拟重力。
注意:WOW的坐标系统与Alternativa3D相同。上面那个new WVector(0, 0, -50)表示重力方向为指向Z轴负向。
然后,再创建一个WOW地平面(是一个虚拟的无限大平面)——用于模拟实现环境中的地面,如:
var ground:WOWPlane = newWOWPlane(0,0,0,-90,0,0); //右手系确定旋转
ground.elasticity =0.6;//弹力系数
ground.friction =0.3;//摩擦力系数;
