九、完整打印立方体贴图的一个面

从上一节可以看出,打印出来的图片是有背景色的,也就是摄像机位置不对。那应该放在哪里呢?
答案是:给定投影矩阵的 fov 为 90 度以捕捉整个面,且摄像机距离该面的距离是立方体边长的一半。
即、
这里我用的立方体是长度为1,中心在原点,所以,从中心到立方体的一个面长度是0.5,摄像机距离这个面应该也是0.5,那么就把漫游器放在(1,0,0)这个位置,即
osg::Vec3d newEye(1, 0, 0);
osg::Vec3 newCenter(0, 0, 0);
osg::Vec3 newUp(0, 1, 0);
manipulator->setHomePosition(newEye, newCenter, newUp);

osg::ref_ptr<osg::Camera> camera = viewer.getCamera();
viewer.getCamera()->setProjectionMatrixAsPerspective(90.0f, 1.0, 1, 1000.0);
打印出来如下:

在这里插入图片描述
发现高度是正确的,但是宽度还是太宽,有背景色。这时候就要考虑用其他摄像机了,比如从摄像机。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值