计算机图形学(三维观察投影线、视图变换、投影变换)

一、三维观察流水线
概念:将建立的三维场景显示在二维视口的过程称为三维观察流水线。
在三维观察流水线中,也就是在将三维场景显示在二维视口的过程中,需要在不同坐标系下进行不同的操作,这些坐标系包括:
在这里插入图片描述
建模坐标系需要建立几何模型,通常将坐标系原点与几何模型的特殊点相对应,如球体的球心等,然后将在建模坐标系中建立的多个模型变换位置统一显示到世界坐标系中(该过程称为模型变换)。
观察坐标系是确定的是观察者的位置和方向,可以观察场景的不同视角:
在这里插入图片描述
场景从世界坐标系到观察坐标系的变换称为视图变换。
裁剪坐标系确定了视见体,三维裁剪窗体称为视见体,确定观察坐标系的可见范围。由观察坐标系到裁剪坐标系的变换称为投影变换。投影变换还包括三维图像到二维图像的变换,可以采用不同的投影模式,包括正交投影和透视投影两种。采用正交投影时,视见体通常被定义为平行六面体,采用透视投影时,视见体被定义为棱台,透视投影的观察结果与人眼观察结果更相符。视见体的大小由用户完成,用户可以根据投影模式的不同将视见体定义为任意大小的长方体或棱台:
在这里插入图片描述
用户定义的视见体的随机性不利于计算机进行统一的处理,更不利于设备无关性的实现,因此,图形学中通常将用户定义的视见体进行规范化,即将视见体统一规范化为[-1,1]的立方体,这种规范化的变换过程称为裁剪与规范化变换,实现的是裁剪坐标系到规范化设备坐标系之间的变换。场景被规范化到立方体内的视见体后,就可以通过视口变换在显示屏幕中某个窗体的视口区域显示出来。需要注意的是,若视见体的纵横比与视口的纵横比不同,也会影响到场景的最终显示比例:
在这里插入图片描述
坐标变化与坐标系之间的关系:
在这里插入图片描述

二、视图变换(又称观察变换、视点变换、照相机变换)
视图变换实现的是世界坐标系到观察坐标系的变换。
世界坐标系通常是由x,y,z确定的笛卡尔坐标系,观察坐标系可有用户自己定义,例如将观察坐标系定义为用uvn表示的笛卡尔直角坐标系
在这里插入图片描述
在这里插入图片描述
两个三维坐标系间的复合变换过程难以避免使用旋转变换,为方便界定旋转角度,可以考虑将世界坐标系表示为球面坐标系,笛卡尔之间坐标系一点(x,y,z)与球面坐标系的点的关系:
在这里插入图片描述
世界坐标系与观察坐标系的位置关系为:
在这里插入图片描述
世界坐标系定义为os(x,y,z),观察坐标系定义为os(xs,ys,zs),观察坐标系的原点(视点Os)在世界坐标系下的坐标为(a,b,c),观察坐标系z轴为视点Os指向世界坐标系原点O的方向(即Zs在OsO直线上),给定世界坐标系向上的Ys方向,通过左手定理可确定Xs方向。
接下来考虑如何实现世界坐标系到视觉坐标系的变换(视图变换):
通过基础几何变换实现世界坐标系到视觉坐标系的重合。
(1)将世界坐标系的原点O移动到视觉坐标系的原点Os,得到临时坐标系x1y1z1,变换矩阵为:
在这里插入图片描述
在这里插入图片描述

(2)将x1y1z1的z1坐标轴与视觉坐标系的Zs坐标轴重合。这一步需经过两步旋转变换。
做O1到平面xoy的投影P。
第一步旋转:实现x1与O1OP平面的重合
第二部旋转:分两步进行,首先绕Z1顺时针旋转以下角度,使得y1轴旋转到O1OP平面内
得到临时坐标系x2y2z2,此时的y2z2均位于O2OP平面内,x2垂直于O2OP平面
在这里插入图片描述在这里插入图片描述
旋转矩阵为:
在这里插入图片描述
第二部旋转将坐标轴z2绕坐标轴x2逆时针旋转以下角度,使得坐标轴z2轴与视觉坐标系的z坐标轴(即O1O重合),得到临时坐标系x3y3z3:
在这里插入图片描述
变换矩阵为:
在这里插入图片描述
(3)将x3y3z3的x轴做反射变换,即将x值取反,变换矩阵M4为:
在这里插入图片描述
将变换中的四个变换矩阵自右向左相乘:
在这里插入图片描述
此时就可以实现世界坐标系下的坐标到视觉坐标系下的坐标的变换。

三、投影变换
投影变换是把三维物体投影到投影面上得到二维平面图形的变换。其中投影面为平面的投影称为平面几何投影变换,接下来讨论的就是平面几何投影变换。
在这里插入图片描述
平面几何投影又分为平行投影和透视投影,平行投影的投影中心距离投影面无穷远,投影线是平行的,而透视投影的投影中心与投影面间有有限的距离,投影线间不平行:
在这里插入图片描述
平行投影的物体大小不变,多用于工程制图,透视投影的物体相关比例会发生变化,形成一种近大远小的效果(例如平行的两条火车轨道在远处相较于一点),更符合人眼自身的观察结果。
平行投影又分为正平行投影(投影线与投影面垂直,又称正交投影)和斜平行投影(投影线与投影面不垂直),还可再细分。
在这里插入图片描述
1.正交投影
正交投影的视见体通常为平行六面体,将平行六面体的前平面作为投影平面,正交投影将平行六面体内可见的三维形体投影到平行六面体的前平面,完成将三维形体投影到二维平面的过程。
在这里插入图片描述
正交投影中,当投影面与某一坐标轴垂直时,得到的投影是三视图:
在这里插入图片描述
当投影面与三个坐标轴都不垂直时,得到的投影为正轴测图:
在这里插入图片描述
常见的正交投影是三视图,生成的投影图为主视图(投影到xoz平面)、俯视图(投影到xoy平面)、侧视图(投影到yoz平面)。
在这里插入图片描述
三视图的投影变换矩阵:
主视图变换矩阵(将y坐标变为0):
在这里插入图片描述
得到的三个投影面不在同一平面内,可将其移到同一平面内。
例如,将xoy平面内生成的俯视图绕x轴旋转90度变换到xoz平面进行显示,为了拉开一定距离,再将其沿z轴负方向平移一段位移,这个复合变换的变换矩阵为:
在这里插入图片描述
仍以同样的方法得到xoz平面的侧视图:将yoz面得到的侧视图绕z轴正转90度到xoz平面,再将其沿负x方向平移一段距离。
投影矩阵为:
在这里插入图片描述
2.正轴测投影
在这里插入图片描述
3.透视投影
通常定义的视见体是棱台:
在这里插入图片描述
透视投影的投影线从与投影面相距有限远的空间一点投射,该点称为视点或投影中心。将眼睛所在的位置称为视点,视线称为投影线,垂直于屏幕的视线与屏幕的交点称为视心,视点到视心的距离称为视距。通常可以设定视点是视觉坐标系的坐标原点,视心是屏幕坐标系的坐标原点。透视投影有近大远小的特点,当投影小到极点会消失,这个极点被称为灭点。
以视觉坐标系的点变换到屏幕坐标系来讨论投射投影:
在这里插入图片描述
假设视觉坐标系XvYvZv一点为(xv,yx,zv),投影到屏幕坐标系中投影平面设定为z=d,投影平面垂直于视觉坐标系的z轴,视觉坐标系投影到屏幕坐标系的投影平面中的点为(xs,ys,zs),(xs,ys,zs)可以通过相似三角形来求解。
在这里插入图片描述
在这里插入图片描述
点的透视矩阵为:
在这里插入图片描述
注意,在透视投影过程中平行线之间的关系是否发生变化,规律是:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上述规律对于视点在x轴、y轴同样适用。
透视投影改变平行线间的平行关系:
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是计算机图形学中关于三维变换投影的常见问题及其答案: 1. 什么是三维变换三维变换是指对三维空间中的对象进行平移、旋转、缩放等操作,以改变其在三维空间中的位置、方向和大小。 2. 三维变换有哪些类型? 三维变换包括平移变换、旋转变换、缩放变换、剪切变换等。 3. 三维变换如何表示? 三维变换可以使用矩阵来表示。通常使用4x4的变换矩阵,其中前三行表示变换后的x、y、z坐标轴,第四行表示平移向量。 4. 什么是视图变换视图变换是指将三维物体从不同的角度和位置观察时的变换。常用的视图变换包括平移、旋转、缩放和投影等。 5. 什么是投影变换投影变换是将三维物体投影到二维平面上的过程。常用的投影方式包括正交投影透视投影。 6. 正交投影透视投影有什么区别? 正交投影是指将物体投影到一个平行于某个坐标轴的平面上,物体在投影后大小不会改变。透视投影是指将物体投影到一个斜截面上,物体在投影后大小会发生变化。 7. 什么是视口变换? 视口变换是将投影后的图像映射到屏幕上的过程。视口变换通常包括平移、缩放和旋转等操作。 8. 三维变换投影计算机图形学中有什么应用? 三维变换投影计算机图形学中广泛应用于三维建模、游戏开发、动画制作、虚拟现实等领域。通过对三维物体进行变换投影,可以实现逼真的三维场景渲染,提高用户的交互体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值