查看: 3050|回复: 4

请问OSG怎么设置透视投影,谢谢

[复制链接]

该用户从未签到

发表于 2008-9-10 13:55:17 | 显示全部楼层 |阅读模式
我用的 论坛上那个 MFC 的例子 中间加入透视投影设置,
  1. camera->setProjectionMatrixAsPerspective( 30.0f,(double)traits->width/(double)traits->height, 1.0f, 10000.0f );
复制代码
但是无效,请问该如何设置,谢谢

该用户从未签到

发表于 2008-9-10 14:28:54 | 显示全部楼层
从动摄像机(addSlave)的投影矩阵/观察矩阵是依赖于主摄像机的,所以这里可以直接设置主摄像机的投影矩阵,例如:
mViewer->getCamera()->setProjectionMatrixAsPerspective( 10.0f,(double)traits->width/(double)traits->height, 1.0f, 10000.0f );

从摄像机本身的投影矩阵/观察矩阵设置都会被自动覆盖,可以参考View::updateSlave函数,或者《最长的一帧》第十日的内容。

[ 本帖最后由 array 于 2008-9-10 14:30 编辑 ]

该用户从未签到

 楼主| 发表于 2008-9-10 14:55:08 | 显示全部楼层
谢谢,为什么用 mViewer->getCamera() 可以

但是直接用 camera-> 就不行,甚至我的相机还没有绑定之前 mViewer->getCamera() 也可以

该用户从未签到

发表于 2008-9-10 15:57:13 | 显示全部楼层
原帖由 teli 于 2008-9-10 14:55 发表
谢谢,为什么用 mViewer->getCamera() 可以

但是直接用 camera-> 就不行,甚至我的相机还没有绑定之前 mViewer->getCamera() 也可以


不是解释了吗?您用的MFC程序中,addSlave一行是添加了一个从动摄像机,而getCamera取得的是场景主摄像机

该用户从未签到

 楼主| 发表于 2008-9-10 16:00:19 | 显示全部楼层
呵呵,不好意思,谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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