3D坐标转换

本文介绍了OpenGL中的3D坐标转换过程,包括模型视图变换、归一化设备坐标系和屏幕坐标系的转换。通过gluLookAt()设定观察位置,投影矩阵、视图矩阵和模型矩阵的乘法实现坐标变换,接着是透视除法形成归一化设备坐标,最后通过glViewport()进行视口变换得到屏幕坐标。整个过程解释了为何及如何将3D场景从不同坐标系转换到适合显示的坐标系。
摘要由CSDN通过智能技术生成

坐标的变换过程

而在OpenGL中,通常将模型变换,视图变换合称为ModelView变换。也就是在OpenGL中,这是一部操作,只用调用一个函数即可。下图是OpenGL中的变换过程:

 

为啥要转换到视图坐标系呢?
可以这样理解,通过前面的MODEVIEW变换,这个世界坐标系中的场景已经绘制好了。这时候我们还不能看到场景哦,因为我们的观察位置还没定呢,而且如果我们眼睛(照相机)的位置不同,那么观察物体的角度则不同,那看到的场景的样子肯定也不同,所以要有这一步,把场景与我们的观察位置对应起来。

默认情况下,眼坐标系与世界坐标系也是重合的。使用函数 gluLookAt()则可以指定眼睛(相机)的位置和眼睛看向的方向。



 

 

(从右向左乘)

变换后的坐标 (屏幕坐标)= 视口矩阵 x 投影矩阵 x 视图矩阵 x 模型矩阵 x 模型点坐标(你设置的点坐标)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值