注册 登录
OSG中国官方论坛-有您OSG在中国才更好 返回首页

array的个人空间 http://bbs.osgchina.org/?5 [收藏] [复制] [分享] [RSS]

留言板

facelist

您需要登录后才可以留言 登录 | 注册


ning 2012-3-14 11:12
王老师您好,冒昧的打扰一下请教一个问题,目前我们公司需要用使用osg做三维仿真,qt实现界面,但由于内部原因,qt用3.3.8,想请教一下osg版本选哪个合适,前段时间一直用osg3.0.1学习,但现在项目开展时需要设计界面时发现osg3.0里面关于qt的源代码和例子好像都是与qt4以上搭配的,所以陷入了困境,想请教您给点建议,企盼回复,万分感谢!
jsj063 2012-2-28 15:38
array,你好!我想用osg来显示全景图,也就是将用一张纹理来实现天空球,应该如何来实现呢?谢谢!网上例子大多是用立方体来实现天空球的,需要六张图片,而我这是一张全景图来实现天空球
xujiayi 2012-1-14 15:55
array,你好。我们想使用osg载入bvh的动作捕捉数据,来实现人体动画的编辑和显示。看到您发帖说,写了osgdb_bvh,不知道哪里能下载,我们想参考一下,万分感谢。
yuansun 2011-12-30 22:04
array,你好!你用过maya2osg吗!现在正在学习这个插件,preview导出来的文件信息丢失严重!正常的插件导出的文件信息丢失更严重!!求解决的方法!
comicfans44 2011-11-24 13:37
您好,我最近正在看您编写的《最长的一帧》一文,对其中第八日的 x,y坐标转换处
  osg::Matrix matrix( osg::Matrix::inverse(localCameraVPW) * masterCameraVPW );

                            osg::Vec3d new_coord = osg::Vec3d(x,y,0.0) * matrix;
有一点个人的理解
窃以为文中提到的osgcamera -1获取到的鼠标移动事件坐标范围是[-1,1],应该恰好是经过了透视除法的归一化设备坐标。
当焦点摄像机存在viewport时,则localCameraVPW是完整的从世界坐标系到屏幕坐标系的变换矩阵,参考Vec3 * Matrix的实现可知,osg是在乘法时做了透视除法的(Matrixf::preMult,视Vec3为w分量为1的Vec4,相当于隐式经过了透视除法后再进行窗口映射,与硬件流程一致)。

经过osg调整过y的方向后,鼠标的点击事件 x,y 是屏幕空间坐标,首先将其反变换为对应的焦点摄像机观察的世界坐标,也就是
osg::Matrix::inverse(localCameraVPW)

接下来再使用世界坐标系坐标乘上主摄像机的完整变换矩阵
(焦点摄像机的反变换矩阵和此变换矩阵合并了到了matrix中)
即得到了主摄像机的“屏幕坐标”
若未指定主摄像机的viewport,世界坐标系的点坐标*masterCameraVPW的结果就不会进行窗口坐标系映射(但是隐式经过了透视除法),而是仅变换到了归一化设备空间,对某些场景中来说起来应该是一个方便的特性。
至于自定义的鼠标位置点击变换,应该是通过setInputRange来控制
如有错误,还请指正
1234
OSG中国官方论坛-有您OSG在中国才更好

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

联系我们

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