查看: 3521|回复: 5

setProjectionMatrixAsPerspective

[复制链接]

该用户从未签到

发表于 2009-3-18 16:39:32 | 显示全部楼层 |阅读模式
setProjectionMatrixAsPerspective()与setProjectionMatrixAsFrustum()两个同时使用只有最后使用的函数起作用,怎么让它们俩同时作用? 比如把相机移到画面的左上角(长、宽1/2处),并且长宽比是自定义的,怎么实现?

该用户从未签到

发表于 2009-3-18 17:15:54 | 显示全部楼层
是不是可以考虑用一个slave camera呢?

该用户从未签到

 楼主| 发表于 2009-3-18 17:34:39 | 显示全部楼层
原帖由 wojiushiwo 于 2009-3-18 17:15 发表
是不是可以考虑用一个slave camera呢?

本来用的就是slave camera
我是要实现高精度抓图,只用setProjectionMatrixAsPerspective(),抓到的图平铺了四次,只用setProjectionMatrixAsFrustum(),抓到的图长宽比例失真

该用户从未签到

发表于 2009-3-18 21:38:38 | 显示全部楼层
setProjectionMatrixAsPerspective()与setProjectionMatrixAsFrustum()不可能同时起作用的。您所说的“把相机移到画面的左上角并且长宽比是自定义”用setProjectionMatrixAsPerspective()就可以。我不清楚您说的“抓到的图平铺了四次”是什么意思,我自己的程序都使用setProjectionMatrixAsPerspective()的

该用户从未签到

 楼主| 发表于 2009-3-19 09:33:08 | 显示全部楼层
原帖由 array 于 2009-3-18 21:38 发表
setProjectionMatrixAsPerspective()与setProjectionMatrixAsFrustum()不可能同时起作用的。您所说的“把相机移到画面的左上角并且长宽比是自定义”用setProjectionMatrixAsPerspective()就可以。我不清楚您说的“抓 ...

平铺了四次就是每次抓到的图都是整幅画面,而不是画面的一部分,最后拼成的大图就是由四张(想放大两倍)一样的小图拼成的,而不是一张放大了两倍的图。
就那放大两倍来讲,怎么用setProjectionMatrixAsPerspective()把相机移到左上角呢(或其他角)呢?它的参数不是fovy,aspectRatio,zNear,zFar吗?

该用户从未签到

发表于 2009-3-19 12:41:11 | 显示全部楼层
把相机移动到合适的观察位置,用的是setViewMatrix,而非setProjectionMatrix
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

联系我们

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