《3D数学基础-图形和游戏开发》阅读笔记 | 3D数学基础 (学习中)

文章目录

3D数学基础

矢量/向量

在笔记中

  • 变量使用小写字母表示,a
  • 由于笔记中画上箭头表示向量比较麻烦,这里小写字母加粗显示,a
  • 矩阵变量使用粗体大写字母表示,A

概述 - 什么是向量

在线性代数中,Vector被称为向量。在几何中,Vector被称为矢量。

向量意义

对数学家来说,向量是一个数字列表(程序员一般称为数组)。

[1,2,3]表示为行向量,垂直过来就是列向量。可以引用向量来表示各个分量,通常使用x,y来代指二维向量中的元素,x,y,z来代指三维向量中的元素。比如a=[1,2,3]ax=1,ay=2,az=3

矢量意义

矢量是具有大小和方向的有向线段

  • 矢量的大小:矢量的长度,非负值。
  • 矢量的方向:描述矢量在空间中指向的方向。

图形上每个矢量是位置无关的,比如使用笛卡尔坐标描述矢量时,每个坐标相当于描述对应维度(xy其他)中有符号位移

比如三维矢量[3,-1,2]可以表示为①向+x轴平移3个单位②向+y轴平移-1个单位(或者-y轴平移1个单位)③向+z轴平移2个单位。其实顺序不重要,移动的总量是一样的。

零矢量:矢量中唯一没有方向的,可以理解为无位移(而不是一个点因为矢量不描述一点)

点与矢量的关系

假设有点(x,y)与矢量[x,y]

如果从原点开始按照矢量[x,y]指定的量移动,最终将到达点(x,y)的位置。或者说矢量[x,y]给出了原点到点(x,y)的位移。

单位矢量:只关注方向不关注大小

单位矢量/归一化矢量 表示大小为1(单位长度)的矢量

有时会将单位向量称为法线,法线通常隐含垂直于其他东西的矢量,主要关注点在垂直而不是单位长度。法线往往是单位向量,但是也有例外(所以需要注意例外的情况)

总结

  • 归一化矢量是大小为单位长度的矢量
  • 法线与某些东西垂直的矢量,通常情况是单位长度

计算公式
v 的单位矢量=v /|v|

数学运算

标量和矢量的乘法,标量乘以矢量的每个分量
k[x,y,z] = [x,y,z]k = [kx,ky,kz]

矢量的加法与减法

规则:相应分量相加/相减

a +b = b +a
a -b = -(b -a)

比如a +b ,三角形法则几何理解为从一个点开始应用由a 指定的位移,然后再应用由b 指定的位移

减法的几何意义计算一个点到另一个点的位移

比如a点到b的距离,将ab 理解为来自原点的矢量,b -a 产生的是从ab 的矢量,矢量b-a 的长度就是两点之间的距离。

矢量的点积与叉积


矩阵

矩阵的几何意义

  • 方阵的行可以理解为坐标空间的基矢量
  • 将矢量从原始空间变化到新坐标空间的方法是:矢量 * 矩阵
  • 原始坐标空间到由基矢量定义的坐标空间的变化是线性变化(保留直线、平行线也保持平行、原点不移动变化不包含平移),但角度、长度、面积等可能在变化后发生变化。
  • 可以通过可视化变化后坐标空间的基矢量来可视化矩阵。
相关推荐
听麟7 小时前
HarmonyOS 6.0+ PC端虚拟仿真训练系统开发实战:3D引擎集成与交互联动落地
笔记·深度学习·3d·华为·交互·harmonyos
新缸中之脑7 小时前
30个最好的3D相关AI代理技能
人工智能·3d
多恩Stone7 小时前
【3D AICG 系列-9】Trellis2 推理流程图超详细介绍
人工智能·python·算法·3d·aigc·流程图
简cere8 小时前
解决webgl画面虚问题
webgl
多恩Stone9 小时前
【3D AICG 系列-8】PartUV 流程图详解
人工智能·算法·3d·aigc·流程图
多恩Stone1 天前
【3D AICG 系列-6】OmniPart 训练流程梳理
人工智能·pytorch·算法·3d·aigc
晚霞的不甘2 天前
揭秘 CANN 内存管理:如何让大模型在小设备上“轻装上阵”?
前端·数据库·经验分享·flutter·3d
Var_al2 天前
抖小Unity WebGL分包命令行工具实践指南
unity·游戏引擎·webgl
哈__2 天前
CANN加速3D目标检测推理:点云处理与特征金字塔优化
目标检测·3d·目标跟踪
心疼你的一切2 天前
三维创世:CANN加速的实时3D内容生成
数据仓库·深度学习·3d·aigc·cann