OSG学习笔记21——有关getProjectionMatrixAs...的trick

本文探讨了在OpenSceneGraph (OSG) 中,getProjectionMatrixAsPerspective函数背后的trick。通常,OSG会在裁剪遍历阶段自动计算视景体的近、远裁剪面,但此函数提供了一种手动设置焦距和镜头的方法。通过投影变换,三维物体被投影到二维屏幕,并进行裁剪,确保只有视景体内的部分显示。书中的内容和论坛讨论揭示了OSG如何自动处理视景体参数,以及为何我们通常不需要手动设置。
摘要由CSDN通过智能技术生成

这是一个关于投影变换的问题,

经过model-view变换后,场景中的物体放置了希望的位置上,就需要投影变换来将三维物体投影到二维屏幕上。

投影变换的目的就是定义一个视景体,使视景体之外的部分被裁剪掉,最终进入图像的只是视景体内的有关部分。关于投影变换的其他内容就不介绍了。

这里来讲讲为什么getProjectionMatrixAsPerspective(fovy,aspectRatio,zNear,zFar);是一个trick。

有个事实,通常我都没有去设置过视景体的参数,也没有思考过为什么,我只是把相机和模型放到正确的位置,执行了基本的model-view变换。实际上,这一操作由OSG代我们完成了。

以下内容来源osg forum,但我在看了三维渲染引擎设计与实践书上的第七章后觉得论坛上的一些内容是有一定问题的。(当然也可能是我没有翻译好哈哈,,不管)但也具有一定的参考价值(请继续往下阅读)。先看看论坛上的歪果仁他们怎么说。

OSG在Cull traversal(裁剪遍历?)过程中会自动计算near/far的值,大概是根据物体的位置、包围球、以及相机的位置up方向之类的来计算。从而得到一个正确的视景体,得到正确的结果。所以通常我们不用手动设置。那我想通过

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值