查看: 875|回复: 1

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

[复制链接]

该用户从未签到

发表于 2016-12-15 11:29:24 | 显示全部楼层 |阅读模式
rt
在earth上加了一个模型节点。在模型节点上加了一个粒子。
现在重力式默认的osg::Vec3(0,0,-9.8),这个重力在平面上是没有问题的。
但是现在在earth 上面 就出现奇怪的朝向。

我现在有两个想法
1. 粒子的重力是基于他的上层Matrixtransform,粒子附加的模型matrix产生变化,粒子的重力方向也会产生变化, 粒子的重力方面始终是基于附加模型的局部坐标,在earth上 只要其附加的模型摆放正确,粒子的重力方向也就会正确。
2. 粒子的重力式基于世界坐标的,如果在earth上面,需要随时设置新的重力方面,目前是用 粒子的世界坐标 减去 earth中心osg::Vec3(0,0,0),然后 normalize(), 在乘以重力大小

  1. osg::Vec3d acc = modelPos - osg::Vec3d(0.0,0.0,0.0);
  2. acc.normalize();
  3. acc = acc * level;
  4. ao->setAcceleration(acc);
复制代码


然而。。。。现在两种放法  粒子的重力方向都不正确,目前陷入瓶颈,这个问题好恶心

还有就是用osg有没有比较好的粒子碰撞算法,我目前要实现的功能就是模拟喷水撞到墙以后的水花溅射及滴落效果
求教!!

该用户从未签到

 楼主| 发表于 2016-12-16 15:35:17 | 显示全部楼层
问题解决
经过旋转以后粒子的重力还是朝向原来的方向,所以在earth上旋转后方向就不对了,需要对粒子节点进行旋转
您需要登录后才可以回帖 登录 | 注册

本版积分规则

OSG中国官方论坛-有您OSG在中国才更好

网站简介:osgChina是国内首个三维相关技术开源社区,旨在为国内更多的技术开发人员提供最前沿的技术资讯,为更多的三维从业者提供一个学习、交流的技术平台。

联系我们

  • 工作时间:09:00--18:00
  • 反馈邮箱:1315785073@qq.com
快速回复 返回顶部 返回列表