如何将一个向量投影到一个平面上_计算机图形学二:视图变换(坐标系转化,正交投影,透视投影,视口变换)...

本文详细介绍了计算机图形学中的视图变换,包括模型变换、摄像机变换、投影变换(正交投影和透视投影)以及视口变换。通过对每个步骤的解析,阐述了如何将三维物体转换到二维屏幕上的过程。
摘要由CSDN通过智能技术生成

视图变换(Viewing Transformation)

我们可以这样来描述视图变换的任务:将虚拟世界中以(x,y,z)为坐标的物体变换到 以一个个像素位置(x,y) 来表示的屏幕坐标系之中(2维),这确实是一个较为复杂的过程,但是整个过程可以被细分为如下几个步骤:

(1) 模型变换(modeling tranformation):这一步的目的是将虚拟世界中或者更具体点,游戏场景中的物体调整至他们应该在的位置

(2) 摄像机变换(camera tranformation):在游戏中我们真正在乎的是摄像机(或者说眼睛)所看到的东西,也就是需要得到物体与摄像机的相对位置

(3) 投影变换(projection tranformation):根据摄像机变换得到了所有可视范围内的物体对于摄像机的相对位置坐标(x,y,z)之后,便是根据是平行投影或是透视投影,将三维空间投影至标准二维平面([-1,1]^2)之上 (tips:这里的z并没有丢掉,为了之后的遮挡关系检测)

(4) 视口变换(viewport transformation):将处于标准平面映射到屏幕分辨率范围之内,即[-1,1]^2

[0,width]*[0,height], 其中width和height指屏幕分辨率大小

有了如上4个步骤之后,整个视图变换的过程就变的清晰了起来,如下给出一个具体例子帮助理解:

87ec33923fd1b8675f730bd40fb9b927.png

上图的4个箭头分别对应了上文所讲述的4个具体步骤,接下来我们就具体讲解这4个步骤到底做了什么。

1 模型变换(modeling transformation)

关于模型变换其实在开头部分便已经讲清楚了,就是利用基础的变换矩阵将世界当中的物体调整至我们想要的地方(旋转,平移,缩放)。

2 摄像机变换(camera tranformation)

Camera transformation属于比较复杂的一部分,但其实一但掌握了套路,也十分容易理解,希望我的解释能够帮助到你。

正如上文所说摄像机变换的目的是得到所有可视物体与摄像机的相对位置,怎么得到?非常直观的一步,我们把物体和摄像机一起做移动,如果能够把摄像机的坐标轴(假设为u,v,w 分别对应原世界空间中的x,y,z)移动到标准的x,y,z轴,那么此时物体的坐标不自然便是相对坐标了吗!

因此核心问题就变成了如何表示或者说如何将camera的坐标系与原世界坐标系重合呢?我们先定义3个东西

相机或眼睛位置 (eye postion) e

观察方向 (gaze postion) g

视点正上方向 (view-up vector ) t

有了这三者定义之后,我们便可以建立摄像机坐标系了,定义如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值