计算机图形学笔记(观测变换、模型变换、视图变换、投影变换、视口变换)

本文详细介绍了计算机图形学中的观测变换过程,包括模型变换、视图变换、投影变换和视口变换。模型变换调整物体在世界空间的位置,视图变换使摄像机处于标准位置,投影变换根据正交或透视原则将观察空间转换为裁剪空间,最后视口变换将裁剪空间坐标映射到屏幕像素坐标。正交投影适用于等距显示,透视投影模拟真实视觉效果。通过这些变换,三维物体最终得以在屏幕上呈现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

计算机图形学笔记(观测变换、模型变换、视图变换、投影变换、视口变换)



一、简介

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

1.模型变换(Model transformation)

将模型空间转换到世界空间,这一步的目的是将游戏场景中的物体调整至他们应该在的位置。

2.视图/摄像机变换(View/Camera transformation)

将世界空间转换到观察空间,在游戏中我们真正在乎的是摄像机(或者说眼睛)所看到的东西,也就是需要得到物体与摄像机的相对位置。

3.投影变换(Projection transformation)

将观察空间转换到裁剪空间,根据视图变换得到了所有可视范围内的物体对于摄像机的相对位置坐标(x,y,z)之后,便是根据是正交投影(Orthographic)还是透视投影(Perspective),裁剪空间的目标是能够方便地对渲染图元进行裁剪:完全位于这块空间内部的图元将会被保留,完全位于这块空间外部的图元将会被剔除,而与这块空间边界相交的图元就会被裁剪。

4.视口变换(Viewport transformation)

将裁剪空间转换到屏幕空间, 接下来,需要把裁剪空间投影 (真正的投影其实发生在这里) 到屏幕空间 (screen space) 中。经过这一步变换,我们会得到真正的像素位置,而不是虚拟的三维坐标。即 [ − 1 , 1 ] 2 → [ 0 , w i d t h ] ∗ [ 0 , h e i g h t ] [-1,1]^2 \rightarrow [0,width]*[0,height] [1,1]2[0,width][0,height],其中width和height指屏幕分辨率大小。

二、模型变换

就像简介说的一样,就是利用基础的变换矩阵将世界当中的物体调整至我们想要的地方(旋转,平移,缩放)。

三、视图变换(或摄像机变换 camera transformation)

上文说,视图变换是为了得到了摄像机和物体的相对位置,那么怎么获得这个相对位置呢?

首先,我们需要先定义一个摄像机,通过下面三个信息我们可以定义一个摄像机:
摄像机的位置 e ⃗ \vec{e} e
摄像机观测方向 g ^ \hat{g} g^
摄像机的向上方向 t ^ \hat{t} t^
在这里插入图片描述

OK,现在我们在空间中定义了一个摄像机,我们知道,只要物体和相机的相对位置不发生变化,那它们在空间中如何移动,相机观测获得的结果是相同的,所以我们不妨把相机规定到原点、向上的方向就是y轴正方向、并且向z轴负方向观测(右手系),其他的物体也随着相机移动到对应的相对位置上、我们得到的结果肯定是一样的。
在这里插入图片描述
所以我们需要一个视图变换矩阵 M v i e w M_{view} Mview这个矩阵将实现以下功能:
在这里插入图片描述
所以 M v i e w = R v i e w T v i e w M_{view}=R_{view}T_{view} Mview=RviewTview
T v i e w = ( 1 0 0 − x e 0 1 0 − y e 0 0 1 − z e 0 0 0 1 ) T_{view}=\left(\begin{matrix}1&0&0&-x_e\\0&1&0&-y_e\\0&0&1&-z_e\\0&0&0&1\end{matrix}\right) Tview=100001000010xeyez

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值