C++ gui QT4 OPENGL 开发5

下面我们学习OpenGL的视野与投影

视野(可视空间)就是视点能够看见的想象的空间的范围,我们创建的物体对象就在想象的空间之中,如果对象在视野之外,那就不能投影(映射)在屏幕上,也就看不见了。

视点的设置函数:gluLookAt。它的参数比较多,前三个参数表示了观察点的位置,中间三个参数表示了观察目标的位置,最后三个参数代表从(0,0,0)到 (x,y,z)的直线,它表示了观察者认为的“上”方向。从观察点的位置到观察目标的位置构成的方向就是视点所对的方向。


设置视野的函数有glFrustum、glOrtho和gluPerspective,glFrustum函数以透视投影的方式设置视野,glOrtho以正投影方式设置视野,gluPerspective和glFrustum效果相同,但函数参数不同。

透视投影有近大远小的效果,物体对象投影在屏幕上就如我们肉眼所见的那样,而正投影则没有这样的效果,无论对象离视点有多远,投影在屏幕上都是一样的大小。

视野由2个想象的矩形和它们的4个顶点的连线封闭而成,离视点近的是近矩形,离视点远的是远矩形,
glFrustum和glOrtho的参数相同,前面4个参数分别是近矩形中心与4条边的距离的矢量表示,后面2个参数是2个矩形与视点的距离,如果是负数,则表示在视点的后面,不可见。gluPerspective第一个参数表示近矩形上下2条边的中心与视点形成的角度,第二个参数表示近矩形的宽高比(width/height),后面2个参数和glFrustum的相同。

如果要创建在3D空间中漫游的效果,必须使用gluPerspective或glFrustum设置透视投影方式的视野。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值