图形学的矩阵变换

  1. 确定一个四棱锥的一块空间,两个断面之间的空间就是需要投影的空间
  2. gluLookAt的函数的作用,它封装了世界坐标系到观察坐标系的转换,从“从一个点去看另一个点的方法(ps:包括方向)”
  3. 世界坐标系是最大的坐标系,最小的是模型坐标系;最后显示的结果是观察坐标系;
  4. 可以建立一个巨大的虚拟世界,这个世界里面包含了很多的对象; 但是这个世界是没有“观察”的;等有了“观察”之后,就需要观察的位置和产生的结果的地方(gluLookAt);并且需要哪些东西可以在观察的位置出现,这个就是gluPerspective

  模型矩阵描述了一系列变换的信息。我们首先计算物体的模型矩阵,然后将物体每个顶点的坐标(在局部的物体坐标系下)都左乘该模型矩阵,得到这一帧该物体每个顶点的坐标。

三大变换:

  1. 模型视图变换 (自身)
  2. 投影变换  (观察)
  3. 视口变换(显示)

在模型矩阵中,我们关心物体在变换后处在世界坐标系下的位置。事实上,我们更加关心物体相对于观察者的位置。最简单的方案是将观察者置于原点处,面向z轴正半轴,那么空间中的点在世界坐标系下的位置就是其相对于观察者的位置。观察者的位置和方向变化时(用一个变换来描述),就好像整个世界的位置和方向进行了相反的变换。所以,在所有物体的模型矩阵的左侧再乘以一个表示整个世界变换的模型矩阵,就可以了。这个表示整个世界变换的矩阵又称为“视图矩阵”,因为他们经常一起工作,所以将视图矩阵乘以模型矩阵得到的矩阵称为“模型视图矩阵”。模型视图矩阵的作用是:乘以一个点坐标,获得一个新的点坐标,新的点坐标表示点在世界里变换,观察者也变换后,点相对于观察者的位置。将观察者视为一个模型,那么视图矩阵就是观察者本身模型矩阵的逆矩阵。

将世界里的所有模型看作一个大模型,在所有模型矩阵的左侧再乘以一个表示整个世界变换的模型矩阵。

 

坐标系有以下几种:

  • 局部(模型)坐标系、
  • 世界坐标系、
  • 相机坐标系、
  • 屏幕坐标系;               

对应的矩阵变换则有

  • 模型变换、
  • 视图(相机)变换、
  • 投影变换,其中投影变换分为正视投影、透视投影。

而坐标系之间的转换要用到矩阵。

原文地址:https://www.cnblogs.com/bornfish/p/4563902.html