向量、矩阵、变换的理解

1.3d绘图的核心是向量运算、矩阵变换、三角函数

2.矩阵主要是用来描述两个坐标系的关系,通过定义一种运算来将一个坐标系中的向量转换到另一个坐标系中

3.大多数3d图形不是真正3d的,我们使用3d的概念和术语来描述物体,然后这些3d数据被“压扁”在2d的计算机屏幕上。这种将3d数据压扁成2d数据的处理过程就叫做投影。我们前面讲过正投影和透视投影。投影中会出现的变换(正交变换或透视变换),但投影只是OpenGL中发生变换的一种。变换还允许我们旋转对象、移动对象,甚至对它们进行伸展、收缩和扭曲。

4.在我们指定顶点和这些顶点出现在屏幕上之间的这段时间里,可能会发生3种类型的几何变换:视图变换、模型变换和投影变换。

opengl变换术语概览:

1.视图变换:指定观察者和照相机位置

2.模型变换:在场景中移动物体(移动、旋转、缩放)

3.模型视图变换:描述视图和模型变换的二元性(将对象向后移动和将参考坐标系向前移动在视觉上没有区别)

4.投影变换:改变视景体的大小或重新设置它的形状

5.视口变换:这事一种伪变换,只是对窗口上的最终输出进行缩放

视觉坐标:表示一个虚拟的固定坐标系,是相对于观察者视角而言的,我们讨论的所有变换都是根据他们相对于视觉坐标系的效果来描述的。

1.视图变换:是应用到场景中的第一种变换。它用来确定场景中的有利位置。在默认情况下,透视投影中的观察点位于原点(0,0,0),并沿着z轴的负方向进行观察(向显示器内部“看进去”)。观察点相对于视觉坐标系进行移动,来提供特定的有利位置。当观察点位于原点(0,0,0)时,就向在透视投影中一样,绘制在Z坐标为正的位置对象则位于观察者背后。(看不见)

    然而在正投影中,观察者被认为是在Z轴正方向无穷远的位置,能够看到视景体中的任何东西。

视图变允许我们把观察点放在所希望的任何位置,并允许在任何方向上观察场景。确定视图变换就像在场景中放置照相机并让他指向某个方向。

从大局上考虑,在应用任何其他模型变换之前,必须先应用视图变换。这样做是因为,对于视觉坐标系而言,视图变换移动了当前的工作坐标系。所有后续变换随后都会基于新调整的坐标系进行。

4.投影变换:在模型视图变换之后应用到顶点上。这种投影实际上定义了视景体并创建了裁剪平面。裁剪平面是3D空间中的平面方程式,OPENGL用它来确定几何图形对于观察者来说是否可见。投影变换指定一个完成的场景(所有模型变换已完成)是如何投影到屏幕上的最终图像。

向量、矩阵、变换的理解_第1张图片

矩阵:

向量、矩阵、变换的理解_第2张图片

 如果有一个包含坐标系位置和方向的4x4矩阵, 用其他坐标系(与当前坐标系不同)的坐标向量乘以这个矩阵,得到的结果是一个转换到新坐标系下的新的向量。这就意味着,空间中任何位置和任何想要的方向都可以由一个4x4矩阵唯一确定,并且如果用一个对象的所有向量乘以这个矩阵,那么我们就将整个对象变换到了这个矩阵的坐标系中!

 

   

 

你可能感兴趣的:(opengl)