查看: 818|回复: 2

【跪求赐教】请问视口转向的时候,如何调整一个矩形,使矩形始终面向视口

[复制链接]

该用户从未签到

发表于 2015-12-21 10:44:17 | 显示全部楼层 |阅读模式
需求:视口原地不动,只是方向改变的时候,场景中geometry画的矩形(以下简称方形)始终面向视口,并且方形到视口的距离不变,在视口显示屏幕中相对位置也不变,矩形改成其他的比如osg::box也行,只要能实现这个功能。
请问如何实时的调整方形的position,并且实时的调整方形的法向量。
1,方形法向量的改变:我想通过获取视口的矩阵变化来改变法向量的矩阵。
2,方形的position改变:有没有简便的方法可以通过获取视口的法向量变化,和视口到方形的距离(已知)来改变方形的当前位置。
上学的时候矩阵没学好,求大神们指点给些思路,跪谢

该用户从未签到

发表于 2015-12-22 08:28:34 | 显示全部楼层
osg有自带的节点billboard,构建一个朝向屏幕节点,例子:
    osg::Billboard* center = new osg::Billboard();
    center->setMode(osg::Billboard::  POINT_ROT_EYE);
    center->addDrawable(
     createSquare(osg::Vec3(-0.5f,0.0f,-0.5f),osg::Vec3(1.0f,0.0f,0.0f),osg::Vec3(0.0f,0.0f,1.0f),osgDB::readImageFile("Images/reflect.rgb")),
        osg::Vec3(0.0f,0.0f,0.0f));

这个节点下添加任意几何体,都可以自动实现朝向屏幕

该用户从未签到

 楼主| 发表于 2015-12-22 11:46:38 | 显示全部楼层
eerfcfc 发表于 2015-12-22 08:28
osg有自带的节点billboard,构建一个朝向屏幕节点,例子:
    osg::Billboard* center = new osg::Billbo ...

非常感谢ee大神不吝赐教,我是osg新手,查了下,billboard确实能帮上我,然后我还需要使节点平移和旋转,需要用到MatrixTransform。我把这MatrixTransform 和 billboard 结合使用应该可以吧?我的想法是 MatrixTransform 节点下addchild(billboard),然后billboard节点下 addchild(group),我去试一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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