games101-2 线性代数(图形学)

原文地址,侵删

1.图形学需要的基础

  • 数学:线性代数,微积分,统计学
  • 物理:光学,力学
  • 其他:信号处理,数值分析
  • 一点美学

2 线性代数

1 向量概念

2 vector normalization向量规范化

3 向量加法


向量的加法可以从两个角度去理解:
  • 从几何的角度去理解:平行四边形法则和三角形法则
  • 坐标系中相应的坐标相加
    将向量表示成坐标的形式是非常有助于计算向量的长度的

4 向量的点乘 Dot product

两个向量的点乘是一个数;

可以快速计算两个向量之间的夹角;
向量点乘的基本属性:

在直角坐标系中的计算公式如下:

向量点乘在图形学中的用法:

快速找到两个向量之间的夹角; 比如在一个向量投影到另外一个向量上什么样子的

可以计算两个向量方向接近程度:根据点乘的结果来判断是接近和远离;比如在高光渲染的时候就要用这个知识

向量点乘还可以给出一个前与后的信息:如果落在了上半圆就是接近,如果落在了下半圆就是远离。根据点乘的符号来判断,如果是正的,结果等于1就是相同,如果是-1是相向;



投影-可以将一个向量分解成两个向量,一个向量平行于第一个向量,另外一个向量垂直于第一个向量;

5 向量的叉乘 Cross product

向量叉乘的结果是一个向量!方向用右手螺旋定则确定(或者左手)

右手螺旋定则:
OpenGL中使用的是左手坐标系!




叉乘在图形学中的意义:

  1. 判断左和右
    如下图:判断b在a的左边还是右边
    用a叉乘b,得到的结果是正的,说明b在a的左侧
    用b叉乘a,得到的结果是负的,说明b在a的右侧
  2. 判断里和外
    判断P在三角形ABC的内部?
    ABXAP,结果是正的,说明P在AB的左侧
    BCXBP,结果是正的,说明P在AB的左侧
    CAXPC,结果是正的,说明P在CA的左侧
    所以P在三角形ABC的内部,
    绕的顺序是AB-BC-CA,绕向逆时针和顺时针,也就是三个叉乘结果要嘛都是正的,要嘛都是负的
    这个是三角形光栅化的基础,要知道三角形覆盖了哪些像素,判断像素是否在三角形内部;

6 正交坐标系

3 矩阵

1 概念

2 矩阵的乘积

3 矩阵相乘的特性

没有交换律

4 矩阵向量相乘

始终任务矩阵在左边,向量在右边
将向量看成是mx1的矩阵
点的变换就是基于这个知识点

5 矩阵的转置

6 单位矩阵

矩阵的逆

7 向量的乘积的矩阵形式

posted @ 2021-11-19 19:34  青川薄  阅读(208)  评论(0)    收藏  举报