GAMES101-现代计算机图形学学习笔记(02)

2023-10-27

GAMES101-现代计算机图形学学习笔记(02)

今天有幸看到闫老师的现代图形学课程,感觉真的讲得很好,所以决定把自己的一些学习笔记以及课程作业记录下来,希望能和大家一起讨论学习一下。如果有时间还是希望大家能去看看原课程,强推!!
b站视频链接: link.
课程官网链接: link.

向量

向量定义

一种既有大小,又有方向的量;大小体现在模长,方向体现在指向。
没有绝对的起始位置,所以也具有平移不变性的性质。
一个如图所示的向量 A B → \overrightarrow{A B} AB , 可由如下公式表示:
在这里插入图片描述
A B → = B − A \overrightarrow{A B}=B-A AB =BA

向量运算

向量单位化

向量 A B → \overrightarrow{A B} AB 的模长记为: ∣ ∣ A B → ∣ ∣ ||\overrightarrow{A B}|| AB , 对于三维空间的向量 A B → = ( x , y , z ) \overrightarrow{A B} = (x,y,z) AB =(x,y,z) 来说,模长为 x 2 + y 2 + z 2 2 \sqrt[2]{x^{2}+y^{2}+z^{2}} 2x2+y2+z2
一个模长为1的向量为单位向量,计算一个单位向量可以通过 A B ^ = A B → / ∥ A B → ∥ \hat{AB}=\overrightarrow{A B} /\|\overrightarrow{A B}\| AB^=AB /AB 来计算。

向量加法的两种表示形式

  1. 几何上:表示为平行四边形或者三角形法则相加
  2. 代数上:表示为数值位(坐标轴位)上的相加

向量乘法

假设已知向量 a ⃗ \vec{a} a b ⃗ \vec{b} b 为三维空间上的向量。

  1. 点乘
    点乘结果是一个
    ①代数形式:
    向量点乘表示为其各个分量上的乘积和
    a ⃗ ⋅ b ⃗ = ∑ i = 1 3 a i b i = a 1 b 1 + a 2 b 2 + a 3 b 3 \vec{a} \cdot \vec{b}=\sum_{i=1}^{3} a_{i} b_{i}=a_{1} b_{1}+a_{2} b_{2}+a_{3} b_{3} a b =i=13aibi=a1b1+a2b2+a3b3
    ②几何形式:
    a ⃗ ⋅ b ⃗ = ∥ a ⃗ ∥ ∥ b ⃗ ∥ cos ⁡ θ \vec{a} \cdot \vec{b}=\|\vec{a}\|\|\vec{b}\| \cos \theta a b =a b cosθ
    同时也可以变换公式得到两个向量的夹角余弦值:
    cos ⁡ θ = a ⃗ ⋅ b ⃗ ∥ a ⃗ ∥ ∥ b ⃗ ∥ \cos \theta=\frac{\vec{a} \cdot \vec{b}}{\|\vec{a}\|\|\vec{b}\|} cosθ=a b a b
    即通过该余弦值计算两个向量的相似度。
    ③意义:
    第一点,找到两个向量的夹角(可以通过角度的大小决定两个向量的前后关系);
    在这里插入图片描述
    第二点,找到一个向量在另一个向量上的投影;
    第三点,对向量在水平和垂直方向上进行分解;
    第三点图
    点乘的应用十分广泛,还有诸如计算光照反射分量也需要用到点乘,即考虑了入射光和物体表面法向的夹角关系,当光照方向与物体法向方向夹角越小时,其光照影响会越大,即点乘结果越接近1,如下图所示:
    在这里插入图片描述
  2. 叉乘
    叉乘结果是一个向量
    ①代数形式:
    a ⃗ × b ⃗ = ( y a z b − y b z a z a x b − x a z b x a y b − y a x b ) \vec{a} \times \vec{b}=\left(\begin{array}{l} y_{a} z_{b}-y_{b} z_{a} \\ z_{a} x_{b}-x_{a} z_{b} \\ x_{a} y_{b}-y_{a} x_{b} \end{array}\right) a ×b =yazbybzazaxbxazbxaybyaxb
    ②几何形式:
    数值上 a ⃗ \vec{a} a , b ⃗ \vec{b} b 夹角为θ组成的平行四边形的面积。
    方向上垂直于 a ⃗ \vec{a} a , b ⃗ \vec{b} b 所决定的平面,其指向按右手定则从 a ⃗ \vec{a} a 转向 b ⃗ \vec{b} b 来确定。

    需要注意的一点)两个向量叉乘交换需要加负号,而点乘不需要。
    a ⃗ × b ⃗ = − b ⃗ × a ⃗ \vec{a} \times \vec{b}=-\vec{b} \times \vec{a} a ×b =b ×a a ⃗ ⋅ b ⃗ = b ⃗ ⋅ a ⃗ \vec{a} \cdot \vec{b}=\vec{b} \cdot \vec{a} a b =b a
    ③意义:
    第一点,叉乘可以用来向量的左右关系。若向量 a ⃗ \vec{a} a 在向量 b ⃗ \vec{b} b 右边,通过右手法则,他们叉乘的结果应该朝上;而如果结果朝下,则向量 a ⃗ \vec{a} a 在向量 b ⃗ \vec{b} b 左边;
    第二点,叉乘可以用来判断一个点是否在多边形内。如果一个点P在一个多边形内,那么从该多边形所有的点来说,每条边构成的向量与点p构成的向量叉乘结果都应该是一致的,反之,会出现某些叉乘结构不一致,即算出的向量方向相反。
    下图中点A B C 构成的向量与点 P构成的向量的叉乘结果都是朝向屏幕外。
    在这里插入图片描述

矩阵

矩阵定义

矩阵本质上是由m × n 个数排成的m行n列的数表。记作:
A = [ a 11 a 12 ⋯ a 1 n a 21 a 22 ⋯ a 2 n a 31 a 32 ⋯ a 3 n ⋯ ⋯ ⋯ a m 1 a m 2 ⋯ a m n ] \mathbf{A}=\left[\begin{array}{llll} a_{11} & a_{12} & \cdots & a_{1 n} \\ a_{21} & a_{22} & \cdots & a_{2 n} \\ a_{31} & a_{32} & \cdots & a_{3 n} \\ \cdots & \cdots & & \cdots \\ a_{m 1} & a_{m 2} & \cdots & a_{m n} \end{array}\right] A=a11a21a31am1a12a22a32am2a1na2na3namn

矩阵运算

包括矩阵与矩阵的加法,减法,矩阵的交换律,结合律等等。这里不详细展开,可以参考:
链接: link.

矩阵乘法

  1. 矩阵与数的乘法
  2. 矩阵与矩阵的乘法(需要第一个矩阵列数与第二个矩阵行数相等)
    在这里插入图片描述

点乘和叉乘的矩阵乘法表示

  1. 点乘的矩阵乘法表示
    a ⃗ ⋅ b ⃗ = a ⃗ T b ⃗ = ( x a y a z a ) ( x b y b z b ) = ( x a x b + y a y b + z a z b ) \begin{array}{cc} \vec{a} \cdot \vec{b}=\vec{a}^{T} \vec{b} =\left(\begin{array}{lll} x_{a} & y_{a} & z_{a} \end{array}\right)\left(\begin{array}{l} x_{b} \\ y_{b} \\ z_{b} \end{array}\right) \end{array}=\left(x_{a} x_{b}+y_{a} y_{b}+z_{a} z_{b}\right) a b =a Tb =(xayaza)xbybzb=(xaxb+yayb+zazb)
  2. 叉乘的矩阵乘法表示
    a ⃗ × b ⃗ = A ∗ b = ( 0 − z a y a z a 0 − x a − y a x a 0 ) ( x b y b z b ) \vec{a} \times \vec{b}=A^{*} b=\left(\begin{array}{ccc} 0 & -z_{a} & y_{a} \\ z_{a} & 0 & -x_{a} \\ -y_{a} & x_{a} & 0 \end{array}\right)\left(\begin{array}{l} x_{b} \\ y_{b} \\ z_{b} \end{array}\right) a ×b =Ab=0zayaza0xayaxa0xbybzb
    这里的叉乘也和后面计算轴角的一个分量对应上了。

总的来说,图形学里用到的矩阵和向量概念十分多,向量可由用来计算光照,表示方向,同时矩阵也可以用来计算变换过程,十分方便。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GAMES101-现代计算机图形学学习笔记(02) 的相关文章

  • 第一章----行列式知识点汇总

    目录 线性代数 1 来自b站网课截屏 本人亲自截屏作为笔记 在这里供大家学习分享 需要线性代数全部内容请通过传送门自行下载 第一章 行列式 1 1行列式的定义 二阶行列式的定义 排列与逆序 排列 逆序 定理1 1 1 一个对换 奇偶排列改变
  • 高等数学——驻点,拐点,极值点

    一 定义不同 1 极值点 若f a 是函数f x 的极大值或极小值 则a为函数f x 的极值点 极大值点与极小值点统称为极值点 极值点是函数图像的某段子区间内上极大值或者极小值点的横坐标 极值点出现在函数的驻点 导数为0的点 或不可导点处
  • 差分 【一维差分和二维差分】

    全文目录 一维差分 差分数组的构建 二维差分 差分矩阵的构建 一维差分 首先来了解一下差分的性质 差分是前缀和的逆运算 如果说前缀和是 S f n 那么差分就是 D f 1 n 也就是说 原数组是差分数组的前缀和 原数组 a i 差分数组
  • 宋浩线性代数笔记(五)矩阵的对角化

    本章的知识点难度和重要程度都是线代中当之无愧的T0级 对于各种杂碎的知识点 多做题 复盘才能良好的掌握 良好掌握的关键点在于 所谓的性质A与性质B 是谁推导得谁
  • 使用克拉默法则进行三点定圆(三维)

    目录 1 三维圆 2 python代码 3 计算结果 本文由CSDN点云侠原创 爬虫网站请自重 1 三维圆 已知不共线的三个点 设其坐标为 x 1 y 1
  • 线性代数---之正交向量

    转载 百度百科 正交向量 编辑 本词条由 科普中国 百科科学词条编写与应用工作项目审核 正交向量 是一个数学术语 指点积为零的两个或多个向量 几何向量的概念在 线性代数中经由抽象化 得到更一般的向量概念 此处向量定义为 向量空间的元素 要注
  • openGL之API学习(六十三)GL_RASTERIZER_DISCARD

    glEnable GL RASTERIZER DISCARD 使用GL RASTERIZER DISCARD标志作为参数调用glEnable 函数 告诉渲染管线在transform feedback可选阶段之后和到达光栅器前抛弃所有的图元
  • openGL之API学习(六十八)core profile、compatibility profile、forward compatibility

    在OpenGL的发展历程中 总是兼顾向下兼容的特性 但是到了一定的程度之后 这些旧有的OpenGL API不再适应时代的需要 还有一些扩展并不是驱动一定要实现的扩展 这些被统一划入可选的Compatibility Profile 而由Ope
  • 2022年第十四届华中杯数学建模A题解题思路附代码

    A 题 分拣系统优化问题 某电商公司配送中心的工作流程分为统计汇总 转运上架 按订单分拣 核对打包等 步骤 其中 分拣环节操作复杂 耗时较长 其效率是影响配送中心整体性能的关键因素 首先 系统统计汇总出当天全部待配送订单所包含的所有货品及相
  • 抖音seo矩阵系统源码搭建开发详解

    抖音SEO矩阵系统是一个用于提高抖音视频在搜索引擎排名的工具 如果你想开发自己的抖音SEO矩阵系统 以下是详细的步骤 开发步骤详解 确定你需要的功能和算法 抖音SEO矩阵系统包含很多功能 比如关键词研究 内容优化 链接建设 社交媒体营销等
  • 提取任务相关成分的TRCA算法

    提取任务相关成分的TRCA算法 1 TRCA算法简介 2 TRCA算法原理与推导 3 Ensemble TRCA算法原理简介 1 TRCA算法简介 虽然基于CCA的方法在识别SSVEP信号方面具有不错的表现 但这类方法的性能仍旧易受到自发脑
  • Game101现代计算机图形学作业1

    Game101现代计算机图形学作业1 一 作业描述 二 解决方法 一 模型变换 二 投影变换 绕任意轴旋转 三 总结 四 参考和引用 一 作业描述 给定三维下三个点 v 0 2 0 0
  • C++ 代码实现定义法计算行列式的值

    一 前言 最近在捣鼓C 学到线代的行列式之后就想着来捣鼓一下求行列式的值 主要原因是当时群里有人在捣鼓着用上下三角来求值 所以我最后就去玩定义法求值了 二 n阶行列式的定义 从定义中我们可以看出值计算公式由三个部分组成 分别是逆序数r 行列
  • 给定一个序列快速计算不同二叉树的个数

    给定一个序列求二叉树的个数 就相当于n个数进栈然后得到一个出栈序列种树 假设用f n 表示n个数的出栈序列数的种树 假设第一个出栈序数是k 则k将1 n的序列分为两个序列 其中一个是1 k 1 序列个数是k 1 另一个是 k 1 n 序列个
  • 变分模态分解(VMD)运算步骤及源码解读

    1 简述 VMD的目标是将实值输入信号 f f f分解为离散数量的子信号 模态 u k u k uk 我们先假设每个模态在一个中心频率
  • 《Computer Graphics with OpenGL》计算机图形学读书笔记 02——计算机图形学软件

    这里是 Computer Graphics with OpenGL 英文原版第四版的读书笔记 预计每一章写一篇读书笔记 本篇为第二章 简要介绍计算机图形学的相关软件 图形学相关软件可分为两类 专业类 综合类 其中 专业类为非编程人员准备 可
  • OpenGL ES 3.0 Programming Guide 1-3

    一 introduction to OGLES 3 0 OGLES 3 0 Graphics Pipeline VertexBuffer ArrayObj gt VertexShader texture transform feedback
  • 《VirtualLab Fusion物理光学实验教程》好书分享

    目录 第一章 物理光学概念介绍 6 1 1 几何光学和光线追迹 6 1 2 物理光学和光场追迹 6 1 3 电场 磁场以及坡印廷矢量 8 1 4 振幅 相位及实部和虚部 9 1 5 振幅 相位与偏振 10 1 6菲涅尔公式 11 1 7 全
  • 【二分查找】【z型搜索】LeetCode240:搜索二维矩阵

    LeetCoe240搜索矩阵 作者推荐 贪心算法 中位贪心 执行操作使频率分数最大 本文涉及的基础知识点 二分查找算法合集 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 该矩阵具有以下特性 每
  • MIT_线性代数笔记:第 23 讲 微分方程和 exp(At)

    目录 微分方程 Differential equations 矩阵指数函数 Matrix exponential e A t e At

随机推荐