用 Triton 模拟对水的影响
你也可以使用Triton::Impact类来模拟撞击或爆炸对水体的影响。
撞击产生的波浪和水花的大小是撞击能量的函数,它是撞击物质量的一半乘以速度的平方。
例如,你可以用以下代码模拟一颗20克的子弹以500米/秒的速度撞击水面:
Triton::Impact *impact = new Triton::Impact(ocean, 0.01, 20.0, true);
DWORD millis = timeGetTime();
impact->Trigger(Triton::Vector3(0, 100, 0), Triton::Vector3(0, -1, 0), 500.0, (double)millis * 0.001);
这将产生一个小的飞溅,并有小的波纹从撞击处辐射出来。冲击构造函数中的0.01值指定了物体直径为1厘米,这将限制飞溅效果的半径。
或者说,一枚鱼雷击中水面的质量约为260千克,速度为100米/秒:
Triton::Impact *impact = new Triton::Impact(ocean, 2.0, 260000.0, true);
DWORD millis = timeGetTime();
impact->Trigger(Triton::Vector3(0, 100, 0), Triton::Vector3(0, -1, 0), 100.0, (double)millis * 0.001);
这将产生一个更大的效果。更多细节请参见Triton::Impact::Impact()和Triton::Impact::Trigger()的文档。
渝公网安备50010702505508