dingshuaiyu 发表于 2016-12-15 14:06:29

earth上 粒子系统的重力方向问题

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有没有比较好的粒子碰撞算法,我目前要实现的功能就是模拟喷水撞到墙以后的水花溅射及滴落效果
求教!!

dingshuaiyu 发表于 2016-12-16 15:34:51

问题解决
经过旋转以后粒子的重力还是朝向原来的方向,所以在earth上旋转后方向就不对了,需要对粒子节点进行旋转

panpan000 发表于 2017-1-24 16:47:52

dingshuaiyu 发表于 2016-12-16 15:34
问题解决
经过旋转以后粒子的重力还是朝向原来的方向,所以在earth上旋转后方向就不对了,需要对粒子节点 ...

楼主能把解决的代码贴出来吗?我在使用osgParticle::PrecipitationEffect制作雨雪特效是也出现了粒子的偏移问题,雨雪粒子不是直线下落的,而是以一个角度斜着落下,这个问题也困扰了我好久。
页: [1]
查看完整版本: earth上 粒子系统的重力方向问题