|
rt
在earth上加了一个模型节点。在模型节点上加了一个粒子。
现在重力式默认的osg::Vec3(0,0,-9.8),这个重力在平面上是没有问题的。
但是现在在earth 上面 就出现奇怪的朝向。
我现在有两个想法
1. 粒子的重力是基于他的上层Matrixtransform,粒子附加的模型matrix产生变化,粒子的重力方向也会产生变化, 粒子的重力方面始终是基于附加模型的局部坐标,在earth上 只要其附加的模型摆放正确,粒子的重力方向也就会正确。
2. 粒子的重力式基于世界坐标的,如果在earth上面,需要随时设置新的重力方面,目前是用 粒子的世界坐标 减去 earth中心osg::Vec3(0,0,0),然后 normalize(), 在乘以重力大小
- osg::Vec3d acc = modelPos - osg::Vec3d(0.0,0.0,0.0);
- acc.normalize();
- acc = acc * level;
- ao->setAcceleration(acc);
复制代码
然而。。。。现在两种放法 粒子的重力方向都不正确,目前陷入瓶颈,这个问题好恶心
还有就是用osg有没有比较好的粒子碰撞算法,我目前要实现的功能就是模拟喷水撞到墙以后的水花溅射及滴落效果
求教!! |
|