GAME101_Lecture02学习

学习视频链接

【GAMES101-现代计算机图形学入门-闫令琪】 https://www.bilibili.com/video/BV1X7411F744/?p=2&share_source=copy_web&vd_source=8332072dc5586e92174abc96d6e4280f

向量复习

图形学中,未作特殊规定的向量,缺省值(默认值)都是列

image-20240416184124364

  • 点积

  • 叉积

  • 正交基与坐标系

点乘

点乘基本知识

image-20240416172958213

左下角的公式中:点乘可以快速得到两个向量之间的夹角,特别是在两个向量都只是方向的时候。

右下角的公式中:只要我们做一个反余弦,那就可以得到两个向量之间的夹角。

image-20240416181413864

A表示一个向量(默认列向量),AT是A向量的转置

A的值可以用红色公式表示。

直角坐标系的点积

image-20240416173414055

图形学应用

image-20240416173442667

  • 求两个向量之间的夹角(如光源与表面夹角的余弦)

  • 求一个向量在另一个向量上的投影

投影点积

image-20240416173507601

点乘可以把一个向量任意的进行垂直与平行的分解

上图计算向量b向量a的投影时,b的投影向量 = 向量b的长度 · cosθ · 向量a

图形学作用

image-20240416173534623

  • 测量两个方向的距离

  • 分解向量

  • 确定向前/向后

图形学中,可以计算两个向量或两个方向多么接近。主要通过比较点乘结果,可以判断接近还是远离这两个方向。

image-20240416173926813

向量的点乘还可以得到一个前与后的信息。

如图假设向量a给定了某个方向,从a的起点向上为前,向下为后。

向量a与b的点乘会为正数表示其的方向是指向a的前方。向量c反之。

若向量a与某个向量的点乘为0,那么这个向量与向量a垂直。

同理,前面说到点乘可以判断接近还是原理。向量b与向量a越来越远,那么两者的点乘还会越来越等于0(即垂直),随后更远就是与a的方向相反,直到点乘变成-1(此时b与a完全相反)。

判断两个向量是否接近,其中一个应用——菲涅尔效果(看的角度和面的法线是否重合问题。越重合,说明面是对着相机的。否则面就越侧面(越亮),直到变成负数就是背面了(暗色))

叉乘

叉乘基本知识

image-20240416180608714

  • 叉积与两个初始向量正交

  • 右手定则确定方向

  • 在构造坐标系中很有用(以后)

右手螺旋定则(有些地方会用左手),可以判断

image-20240416181639954

左侧的公式中,如果在三维坐标系中,x叉乘y是z,那么这个坐标系就是一个右手坐标系。

右侧的公式中,注意向量叉乘自己是0向量。并且叉乘只有反交换律。

image-20240416182118165

在下方的公式,是向量可以写成矩阵的形式,然后向量的叉乘可以转换成矩阵乘以向量

图形学的应用

image-20240416182340467

  • 确定左/右

  • 确定内部/外部

在图形学中,叉乘一是判断左和右,另一个是判断内和外。

image-20240416182759510

在左图中,向量a叉乘向量b、得到z是正的;向量b叉乘向量a、得到的z是负的。这两种都能证明b在a的左侧。

在右图中,ABC的排布是逆时针,AB叉乘AP和BC叉乘AP、AC叉乘AP的z都是向外的(即AP都在所有边的左侧),这能说明P在ABC的中间。

ABC的排布变成顺时针也同理。(此处是对三角形做光栅化的基础,可以判断三角形覆盖了那些像素。若值等于0,即该像素刚好在三角形的边上,那么就自己定义)

正交基与坐标系

通过这些向量的乘法,就可以定义坐标系。定义坐标系可以把任意一个向量分解到三个轴上(利用点积算投影,然后用投影分解)

image-20240416190717359

如图,假设将uvw设为一个三维坐标系的坐标轴,它们都是单位向量。

假设有一个向量p。我们可以用投影的方式投影到坐标轴上,直接用点乘的结果就可以立刻得到投影的长度。原因解释如下:

  • 先假设向量p投影到u轴上,此时计算向量p在向量u上的投影向量。

  • p在向量u上的投影向量 = 向量p的长度 · cosθ · 向量u

  • 向量p点乘向量u=p的长度 × u的长度 × cosθ。

  • 此时u为单位向量,长度为1。

  • 那么,向量p点乘向量u = u的长度 × cosθ,正好就是其投影长度。

  • (picgo上传出了问题,后面再补坑吧呜呜呜)

    image-20240416200321655

矩阵复习

image-20240416190822580

  • 神奇的2D阵列,在每一个CS课程中萦绕

  • 在图形学中,广泛用于表示变换翻译、旋转、剪切、缩放(下一讲更详细)

矩阵乘积知识

image-20240416191421852

m*n的矩阵 乘以 n*p的矩阵 = m*p的矩阵

矩阵乘法运算,黑色框框和蓝色框框分别是两个例子:

  • 黑色框框的?,是在结果的第一行第二列,那么就去第一个矩阵中找第一行,第二个矩阵中找第二列,(1*6)+(3*7) = 27

  • 蓝色框框同理,(5*4)+(2*3) = 26

image-20240416192400862

矩阵没有任何的交换率。结合律比较有用。

image-20240416192852730

  • 将向量视为列矩阵(mx1)

  • 转换点的关键(下一讲)

  • 官方剧透:关于y轴的2D反射

始终认为,矩阵在左边,向量在右边。

image-20240416192945749

矩阵的变换(转置)

image-20240416193013912

矩阵和向量

image-20240416193056657

向量在矩阵形式上的计算。

总结

这节课主要是对线性代数中向量和矩阵的复习,总体来说难度不大。

1.向量主要是其点乘和叉乘的两种乘法。

  • 点乘能够用于计算向量之间的投影和向量之间的夹角,能够判断两向量是否相近(菲涅尔效果)

  • 而向量投影主要能测量两个方向的距离、分解向量以及确定向前/向后等,这些特性能够运用到确定直角坐标系上(即确定基坐标,就是确定一个基准的感觉)

  • 叉乘能够用于确定向量之间的位置关系,左右、内外等。

  • 确定内外在后续光栅化用的会很多,而确定左右的方向好像没有提及运用??后续有涉及到的话在回来补坑。

2.矩阵则是其乘法计算的一些计算方法。

  • 计算机的图形信息基本都是用矩阵存储的,信息与信息的计算后续也会涉及。这里闫老师主要是稍微复习了一下。

  • 35
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值