查看: 1270|回复: 8

坐标转换问题

[复制链接]

该用户从未签到

发表于 2011-6-7 16:17:20 | 显示全部楼层 |阅读模式
想在场景中添加生成的ive地形文件,然后在地形上添加粒子系统节点,现在粒子的坐标是(经度、纬度、深度),如何将粒子节点在读入的ive地形 节点中显示呢。我现在的代码是:
root->addchild(terrain.ive);
root->accept(nodevisitor);    //nodevisitor用来得到世界矩阵
root->addchild(particleNode(nodevisitor->getMatrix()));   //particleNode是粒子节点

particleNode(Matrix)
{
      vec3 v(lat,lon,height);
      v = v * matrix;
      varray->push_back(v);
      geom->addVertex(varray);
}

不知哪里出问题,哪位大侠能回答下,急用!谢谢!

该用户从未签到

发表于 2011-6-8 08:23:59 | 显示全部楼层
仅凭您目前给出的信息,我也判断不了什么

该用户从未签到

发表于 2011-6-8 08:45:31 | 显示全部楼层
粒子节点上套一个变换节点

该用户从未签到

 楼主| 发表于 2011-6-8 08:46:26 | 显示全部楼层
我想表达的意思是生成的地形ive节点读入到场景中,然后想在地形节点上放一些实时更新顶点组成的模型,这样的话就会有两个节点,需要进行坐标转换,我用上面的代码实现的时候发现矩阵是(1,0,0,0)、(0,1,0,0)、(0,0,1,0)、(0,0,0,1)。这样的话这些顶点的坐标并没有变化。不知何故?请教中!谢谢!

该用户从未签到

 楼主| 发表于 2011-6-8 08:48:44 | 显示全部楼层
回复 3# oman

粒子节点加一个变换节点,那这个矩阵如何设置呢?

该用户从未签到

 楼主| 发表于 2011-6-10 11:07:52 | 显示全部楼层
哪位能回答下,在线等待,急用,谢谢!

该用户从未签到

发表于 2011-6-10 13:13:53 | 显示全部楼层
我依然不知道您要问什么?您遇到了什么样的问题?把所有的ParticleSystem,Emitter和Program都放在同一个变换节点之下,然后调整这个节点的变换矩阵不就可以直接移动所有粒子相关的对象了

该用户从未签到

发表于 2011-6-10 13:24:15 | 显示全部楼层
两者挂同一个节点下,变换矩阵直接用与ive地形的相对值即可

该用户从未签到

发表于 2011-6-10 14:22:34 | 显示全部楼层
我记得好像回过这个帖子,怎么没有了?
vec3 v(lat,lon,height);
      v = v * matrix;
      varray->push_back(v);
      geom->addVertex(varray);
matrix存储的是坐标,如果 lat,lon,height如果是经纬度的话,要注意坐标系的一致性
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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