查看: 835|回复: 0

osg拖拽的相对问题

[复制链接]

该用户从未签到

发表于 2015-9-20 12:45:21 | 显示全部楼层 |阅读模式
由于近期一个项目的需求,使用osg引擎完成3D图形渲染,遇到以下问题.

由于项目需求,渲染的场景必需要求,摄像机不动,场景旋转,平移.所以在所有场景节点以上加入了一个MatrixTransform节点用于处理.
但在场景中用到了TranslateAxisDragger(平移拖拽器)和TrackballDragger(旋转拖拽器),因此这两个拖拽器也是直接接受最上层的那
个MatrixTransform变换的,但明确在拖拽器与控制场景变换的节点之间再没有其它变换.

现在的问题是,使用上面所说的两个拖拽器时,如果上层MatrixTransform节点没有任何变换的情况下,拖拽是正常的.但如果上层MatrixTransform
产生的旋转操作后,拖拽器操作就会产生问题,比如场景MatrixTransform节点当前绕Y轴旋转90度的情况下,用拖拽器向面向摄像机的方向移动时,
物体会向左方向移动(相当于拖拽器产生的平移也旋转的90度,因此推断,拖拽器产生的变换是叠加了场景节点的变换的),现物体的变换矩阵是直接
放入拖拽器托管的
m_pTranslateDragger->addTransformUpdating(m_pUpdateMat.get());
m_pRotateDragger->addTransformUpdating(m_pUpdateMat.get());

由于本人对osg只是刚刚接触,所以不太明白,请问要怎么样才能产生不带场景的节点变换的矩阵(也就是拖拽器的相对变换)?谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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