计算机图形学-GAMES101-4

这篇具有很好参考价值的文章主要介绍了计算机图形学-GAMES101-4。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、变换矩阵中的旋转部分

  • 当我们旋转Q角度和旋转-Q角度时,变换矩阵中旋转的部分如下图所示:
    计算机图形学-GAMES101-4

  • 旋转Q和旋转-Q的变换矩阵应该互为逆矩阵,而我们可以看到它们互为对方矩阵的转置。其实Rq是一个正交矩阵,因此其逆矩阵就是它自己的转置。当我们旋转图形一个角度为Q时,如果我们想旋转为-Q,可以直接将其变换矩阵中旋转的部分做转置。

  • 3D空间中的变换:
    计算机图形学-GAMES101-4

  • 3D空间中绕不同轴旋转的变换矩阵(y的sin是反的是因为z叉乘x才能得到y,而不是x叉乘z):
    计算机图形学-GAMES101-4

二、3D空间中的旋转

  • 欧拉角:
    计算机图形学-GAMES101-4计算机图形学-GAMES101-4

  • 在3D空间中绕任意一条过原点的轴n旋转:
    计算机图形学-GAMES101-4

  • 如果轴不过原点,那么我们就将它平移到原点上,再进行旋转,然后旋转完再平移回去。

  • A旋转对应的旋转矩阵为MA,B旋转对应的旋转矩阵为MB,(MA+BM)/ 2 旋转矩阵对应的旋转可不是 (A+B) / 2,因此欧拉角使用欧拉角有很多不方便的地方,诸如不能还原角度、万向节死锁。建议使用四元数表示旋转。

三、Veiwing transformation

 我们变换的最终目的是把三维空间中的物体,变成一张二维的照片。我们需要做的变换为如下MVP变换:

  • 模型变换:把物体摆好,把场景搭建好。
  • 视图变换:把相机摆好,把相机的位置和方向确定下来。
  • 投影变换:根据场景和相机,把三维空间投影到二维中。

(1)View / Camera transformation

 相机具有的属性有:

  • 位置POS、方向FRONT、向上方向UP(相机转动角度垂直于向上方向)。

 以上就是观测矩阵需要的定义。

  • 当相机和场景中的物体相对位置保持不变时,拍出来的照片内容相同。因此为什么我们不讲相机永远固定在一个位置呢?

  • 我们定义相机永远位于原点、朝向负Z方向、向上方向为Y轴。

  • 进行视图变换(将相机平移到原点,朝向-Z轴,向上为Y轴):
    计算机图形学-GAMES101-4

  • 平移矩阵很简单:
    计算机图形学-GAMES101-4

  • 怎么旋转呢?将摄像机的朝向g转向-Z,将摄像机的向上方向t转向Y,而g×t自然朝向X。可是g转向-Z不好写,有什么简单的呢?我们可以简单的写出X转向g×t 和 Y转向t,这样Z自然就转向-g了,这个矩阵为:
    计算机图形学-GAMES101-4

  • 上图中矩阵乘以(1,0,0,0)即X轴会得到(Xgt,Ygt,Zgt)即g×t的方向,乘以(0,1,0,0)即Y轴会得到(Xt,Yt,Zt)即相机向上方向t,乘以(0,0,1,0)即Z轴会得到(X-g,Y-g,Z-g)则把Z轴转向摄像机方向的反向。因此上图矩阵可以把XYZ轴分别旋转到g×t、t、-g方向。

  • 现在我们需要的是把g×t、t、g方向分别旋转到XY -Z轴,那该怎么办呢?我们又知道变换矩阵中旋转部分是一个正交矩阵,只要转置就能得到逆矩阵,就能得到 “把XYZ轴分别旋转到g×t、t、-g方向” 的逆操作 “g×t、t、g方向分别旋转到XY -Z轴”。因此我们使用逆矩阵即可。
    计算机图形学-GAMES101-4

  • 我们将物体和相机一起应用观察矩阵即可保证它们的相对位置不变,同时还把相机移到了一个规范通用简单的位置。

  • 模型矩阵:怎样拜访物体。视图矩阵:怎样把物体和相机摆放到标准位置。模型矩阵和视图矩阵都会应用到物体上。

(2)Projection transformation

 当我们把相机和场景都移动到标准位置,即相机位于原点朝向-Z轴时,我们如何得到相机看到的画面呢?想象现在有一个相机,我们知道它的位置(一个点)、朝向(一个向量),我们总不能只描绘出一个点吧?类比我们人类的眼睛,其实可以看到一定角度中的内容,而透视投影定义的就是如何将三维空间投影到一个二维平面上。
 透视投影会看到平行的线不再平行,比如你的眼睛。正交投影不会带来"近大远小"的效果。两种投影的示意图如下:
计算机图形学-GAMES101-4
 从z方向看的好处是我们可以扔掉物体的z坐标(区分前后内容后面再讨论),只保留x和y。然后不管相机拍摄覆盖区域有多大,我们都把它们的x、y值移动到【-1,1】的区间中。

(2.1)Orthographic projection

 正交投影需要投影一个立方体区域,它假设摄像机距离场景无限远,因此摄像机镜头的边界是两束平行光。定义正交投影,就是定义这样一个立方体是什么样的,我们规定这个立方体有如下参数:
计算机图形学-GAMES101-4
 要注意Z轴朝向的是屏幕以外,即Z值越小其位置离我们越远。不管立方体是怎么样的,我们只需要把它移动到原点然后再缩放到【-1,1】中。
计算机图形学-GAMES101-4
 上述变换对应的变换矩阵如下:
计算机图形学-GAMES101-4
 当我们把原本的一个立方体缩放到【-1,1】,会导致物体的拉伸,但是在所有的变换都做完,所有的物体都处在【-1,1】立方体内时,还会做一次拉伸叫做视口变换。(缩放是xyz都要缩放)
 正交投影的立方体块是我们自己定义的,想要投影哪一块就定义哪一块,设置对应的立方体块参数。

(2.2)Perspective projection

 使用最多的投影方式;近大远小;投影后平行线不再平行,如下图所示:
计算机图形学-GAMES101-4

  • 透视投影会将平面投影到另一个平面上,导致平行线不再平行。
    计算机图形学-GAMES101-4

  • 透视投影和正交投影的示意图
    计算机图形学-GAMES101-4

  • 透视投影:先将Frustum四面体挤成一个Cuboid立方体,再进行正交投影。Frustum近平面永远不变,远平面的z值不变,Frustum中心点不变。我们现在要做的是求变换矩阵,从透视到正交的变换矩阵。
    计算机图形学-GAMES101-4

  • 原本的Z值不管,对于Y,从侧面分析得到以下式子:
    计算机图形学-GAMES101-4

  • 对X同理应用相似三角形,得到:
    计算机图形学-GAMES101-4

  • 设变换矩阵为:
    计算机图形学-GAMES101-4
    计算机图形学-GAMES101-4

  • 根据近平面和远平面中心点不变推导得到参数为:

计算机图形学-GAMES101-4文章来源地址https://www.toymoban.com/news/detail-451666.html

到了这里,关于计算机图形学-GAMES101-4的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Games101学习笔记 - 变换矩阵基础

    缩放变换 : 1均匀缩放 2不均匀缩放 注意:上图是默认二维旋转的是以远点为圆转重心,并且逆时针旋转 旋转矩阵推导原理: 引入原因: 上面说了ax + by 的方式都可以写成矩阵的形式,但是平移的操作的公式如下,不能写成矩阵的形式。 只能写成如下: 为了同意变换,让他

    2024年02月15日
    浏览(32)
  • 【计算机图形学】图形变换(平移变换、比例变换、旋转变换、对称变换、错切变换、复合变换)

    一 实验目的 编写图形各种变换的算法 二 实验内容 1 :自行设计基本图案,完成1-5种简单变换 实验结果如下图所示: 图形初始化: 第一次点击左键,实现平移变换:     第二次点击左键,实现比例变换(同时伴有平移变换):   第三次点击左键,实现对称变换(以平行

    2024年02月05日
    浏览(46)
  • 计算机图形学(三) -- 3D 变换

    同样引入齐次坐标: 3D 点 = ( x , y , z , 1 ) T (x, y, z, 1)^T ( x , y , z , 1 ) T 3D 向量 = ( x , y , z , 0 ) T (x, y, z, 0)^T ( x , y , z , 0 ) T 通常, ( x , y , z , w ) (x, y, z, w) ( x , y , z , w ) (w != 0) 表示一个坐标为 ( x / w , y / w , z / w ) (x/w, y/w, z/w) ( x / w , y / w , z / w ) 的 3D 点 用一个 4x4 的矩阵来表示

    2024年02月08日
    浏览(42)
  • 【计算机图形学01】坐标变换

             将坐标变换为标准化设备坐标,接着再转化为屏幕坐标的过程通常是分步进行的,也就是类似于流水线那样子。在流水线中,物体的顶点在最终转化为屏幕坐标之前还会被变换到多个坐标系统(Coordinate System)。将物体的坐标变换到几个 过渡 坐标系(Intermediate Coor

    2024年02月10日
    浏览(40)
  • 计算机图形学 | 变换与观察

    华中科技大学《计算机图形学》课程 MOOC地址:计算机图形学(HUST) 回顾几何阶段 整体流程: 这其中存在3种变换: 坐标系的变换 模型本身的运动 观察者的运动 几何变换 以上各种变换都可以通过以下变换的复合来计算: 平移 比例 旋转 对称 错切 图形的几何变换是指对图

    2023年04月27日
    浏览(44)
  • 【计算机图形学】图形变换(以任意直线为对称轴的对称变换)

    模块3-2 图形变换 一 实验目的 编写图形各种变换的算法 二 实验内容 1 :任意直线的对称变换。要求将变换矩阵写在实验报告中,并与代码匹配。求对任意直线Ax+By+C=0的对称变换矩阵。 实验结果如下图所示: 1:预设图形初始化 2:鼠标左键点击直线起点 3:鼠标右键点击直线

    2024年02月01日
    浏览(58)
  • 计算机图形学:二维图形的几何变换(算法原理及代码实现)

    对于一个二维图形作平移、旋转、放缩变换,可以转换为在二维坐标系中图形的所有点分别可以对应到在x,y轴方向分别平移tx,ty(平移)、绕一点旋转固定的角(旋转)、在x,y轴方向分别放缩sx,sy倍。 对于变换的原理,只需要将原图形的点通过极坐标或者相加、相乘,再

    2024年02月11日
    浏览(51)
  • 计算机图形学基础:2D/3D坐标变换(Transformation)

    本文讲解了2D变换和3D变换式如何用矩阵表示的 如何将线性和非线性变换进行一个统一表示形式 三维物体在二维空间上的映射 表示向量添加了一维,分别表示单位距离和平移不变形的方向 旋转默认都是以(0, 0)为中心

    2023年04月08日
    浏览(45)
  • games101-1 光栅化与光线追踪中的空间变换

    在学习了一些games101的课程之后,我还是有点困惑,尤其是对于课程讨论的空间的变换,幸而最*在做games101的第五次作业时,查询资料找到了scratchpixel这个网站,看了一些文章,终于把脑子里的一团乱麻组织起来了,也就有了这篇关于图形学的第一篇博客。 想要更好的理解这

    2024年02月06日
    浏览(43)
  • 计算机视觉 图像形成 几何图形和变换 3D到2D投影

            现在我们知道如何表示2D和3D几何图元以及如何在空间上转换它们,我们需要指定如何将 3D图元投影到图像平面上。 我们可以使用线性3D到2D投影矩阵来做到这一点。最简单的模型是正交法,它不需要除法就可以得到最终的(不均匀的)结果。更常用的模型是透视,

    2023年04月08日
    浏览(64)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包