查看: 3203|回复: 3

OSG中如何完成投影操作?

[复制链接]

该用户从未签到

发表于 2009-3-9 22:20:26 | 显示全部楼层 |阅读模式
OSG最终会将三维模型投影到二维平面上,我想知道的是 osg默认采用什么方式来投影?
如果我要根据屏幕上的坐标(x,y)来计算其在模型中的坐标(x,y,z)是否需要结合投影方式和视点变换来计算呢?
希望高人详细解释啊。
最近学OSG 云里雾里地.照着例子实现了场景漫游 可是不明白其中的参数设置的含义.

该用户从未签到

发表于 2009-3-9 22:30:58 | 显示全部楼层
默认投影方式为Perspective,可以参看osg::View的构造函数代码。

二维坐标和三维坐标的转换使用MVPW矩阵(这也是gluProject函数的原理),这一点可以参看《最长的一帧》。
MVPW矩阵即:
模型视点矩阵(ModelView)* 投影矩阵(Projection)* 窗口矩阵(Window)
而屏幕位置v'与世界坐标v的变换关系为
v' = v * MVPW

十分建议您先阅读一下OpenGL相关的一些书籍。osg与OpenGL密切相关,并不能脱离它存在;在不熟悉OpenGL的情形下直接上手osg的话会遇到很多困难,难免举步维艰。

该用户从未签到

 楼主| 发表于 2009-3-9 22:44:44 | 显示全部楼层
正在看OpenGL 这几个矩阵也都了解了一下  但是我不知道在OSG里面这几个矩阵都是通过什么接口或者函数体现出来的.
我现在想要修改OSG投影的方式 或者修改他的投影的参数 该从哪里下手呢

该用户从未签到

发表于 2009-3-9 22:56:55 | 显示全部楼层
在osg::Camera类中都有很直接的函数,setViewMatrixAsLookAt,setProjectionMatrixAsPerspective等,从字面就可以理解这些函数的作用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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