第一、二章:图形学概述、向量与线性代数

第一章 图形学概述

1.图形学应用场景

游戏场景渲染、电影特效、动画、设计、可视化(人体三维扫描)、虚拟现实、数字绘图、模拟、GUI、字体排版等

2.图形学包含内容:

  • 数学:矩阵、曲线、曲面

  • 物理学:光学、着色

  • 描述、操作三维的不同形体

  • 动画、仿真

3.本课程包含的内容:

  • 光栅化

    • 光栅化是把三维空间的几何形体显示在屏幕上,是实时图形学的主要应用。实时:每秒钟生成 30 帧,否则叫做离线
  • 曲线、曲面

    • 如何表示一条光滑的曲线、如何表示曲面、怎么把简单曲面通过细分的方法得到更复杂的曲面,形状发生变化的时候面要如何变化,如何保持物体的拓扑结构
  • 光线追踪

    • 实时光线追踪技术
  • 动画/模拟

4.本课程不包含的内容:

  • 怎么使用 API

  • 怎么做三维建模

  • 计算机视觉:一切需要猜测的东西是计算机视觉(根据图像推测模型)。

    ​​image​​

    model 描述三维空间中形状的几何形体,或对于渲染而言描述它的材质、光照,把这些三维空间中有的东西转为一幅图(渲染),就是计算机图形学。此外,还包括纯三维空间的仿真,材质建模、材质与光线之间作用的研究等,都属于计算机图形学的范畴。

从一张图识别出各种模型(比如识别出照片里哪些是桌子、椅子),或者图形、视频处理(中间涉及到一些推测、推理)等是计算机视觉的范畴。

某些场景下没有严格的边界,比如 AR 需要二者的结合。

第二章 向量与线性代数

1.图形学依赖:

  • 数学基础:线性代数、微积分、统计

  • 数学基础:力学、光学

  • 其他杂项:信号处理、数值分析

  • 一点点美学

2.向量(Vectors)

向量表示两个内容:方向和长度,平移向量不会改变它(因为方向和长度不变)。

image

一个向量除它的长度可以得到一个长度为 1 的单位向量。

image

向量求和:

几何上:平行四边形法则、三角形法则。

image

代数上:坐标相加(笛卡尔坐标系)

image

向量点乘:

可以通过点乘快速得到两个向量的夹角(特别是两个向量都是方向向量,点乘后直接得到夹角的余弦)

image

点乘运算满足交换律、分配律和结合律

image

代数上的点乘即对应的坐标元素做乘积之后相加:

image

点乘在图形学中的应用:
  • 找到两个向量(两个方向)之间的夹角。比如光照模型,计算光照到物体表面的法线等等
  • 找到一个向量到另一个向量上的投影,分解向量
  • 计算两个向量之间有多接近:夹角越小(点乘的结果越大)越接近。比如镜面反射计算高光点
  • 可以知道两个向量之间的方向是相同还是相反(正数相同、负数相反)
    image​​image
向量叉乘

叉乘后的向量同时垂直于两个原向量,叉乘得到的向量方向符合右手螺旋定则。

image

叉乘不满足交换律,需要加一个负号。但满足分配律和结合律。

image

代数上:

imageimage​​

叉乘在图形学中的应用:
  • 判定左和右

  • 判定内和外(三角形光栅化的基础)

    imageimage​​

3.矩阵(Matrics)

矩阵就是一堆数字,用 m 行 n 列的结构表示。

图形学中,用矩阵实现一些移动、旋转的变换。

image

矩阵乘一个数就是把矩阵中每一个数字和该数字想乘得到一个矩阵。

矩阵乘积

一定要满足前一个矩阵的列数等于后一个矩阵的行数才能实现相乘。计算方式:乘出来的结果在 m 行 b 列就去找相乘的前一个矩阵的 m 行对应的值与后一个矩阵的 n 列对应的值一一相乘后再相加。

image

矩阵不满足交换律,但满足结合率和分配律:

image

矩阵和向量相乘:认为向量是一个 m 乘 1 的矩阵,则可以将任意一个 n 乘 m 的矩阵与向量相乘,基于该前提实现一个向量变换(比如相对一个坐标轴翻转)

image

矩阵转置

image

单位矩阵

单位矩阵只有对角线上有元素。

如果两个矩阵相乘为单位矩阵,则该两个矩阵互为逆矩阵。

image

向量点乘和叉乘写成矩阵的形式(用在旋转的推导上)

image