当前位置: 首页 > news >正文

《C++从零打造渲染器》学习笔记 第1讲(上):3D数学基础(上)

第1讲(上):3D数学基础(上)


说明:本教程基于B站图形学大佬 发财学长 制作的 C++从零打造渲染器 系列视频。写这篇文章的目的主要是作个人学习笔记,如果这份笔记能帮到他人,本人不胜荣幸

多数内容在 初高中数学 高等数学 线性代数 课程已经介绍很详细了,这里不过多解释。本文章主要讨论这些课程未覆盖到,与图形学强相关的知识点

视频链接:【C++从零打造渲染器】第1讲(上集):3D数学基础(线性代数、向量、行列式、旋转矩阵、缩放矩阵)

视频链接:【C++从零打造渲染器】第1讲(下集):3D数学基础(平移变换、坐标系间的转换、世界坐标系、世界变换矩阵)


坐标系

二维坐标系

三维坐标系:左手系 右手系

极坐标系

球面坐标系


向量

向量矩阵形式:行向量 列向量(常用)

运算:加,减,数乘,取模,单位化,点乘,叉乘

向量混合积=向量构成平行六面体体积=向量构成行列式

\[\mathbf{a} \cdot (\mathbf{b} \times \mathbf{c}) = \begin{vmatrix} a_1 & a_2 & a_3 \\ b_1 & b_2 & b_3 \\ c_1 & c_2 & c_3 \end{vmatrix} \]


行列式

克拉默法则

假设有一个包含 \(n\) 个未知数、\(n\) 个方程的线性方程组:

\[\begin{cases} a_{11}x_1 + a_{12}x_2 + \dots + a_{1n}x_n = b_1 \\ a_{21}x_1 + a_{22}x_2 + \dots + a_{2n}x_n = b_2 \\ \dots \\ a_{n1}x_1 + a_{n2}x_2 + \dots + a_{nn}x_n = b_n \end{cases} \]

将其写成矩阵形式 \(A\mathbf{x} = \mathbf{b}\)

\(j\) 个未知数 \(x_j\) 的值为:

\[x_j = \frac{|A_j|}{|A|} \]

  • \(|A_j|\):将系数矩阵 \(A\)\(j\)替换为常数向量 \(\mathbf{b}\) 后,得到的新矩阵的行列式。

几何变换

  • 任何一个矩阵变换都可以写成矩阵的形式

  • 几何变换的逆,就是矩阵的逆

缩放

例1:把下面的图形放大\(5\)

2026-07-04-10-36-07-image

例2:沿着\(x\)轴放大\(3\)倍,沿\(y\)轴缩小\(\frac{1}{3}\)

2026-07-10-01-17-38-image

变换矩阵:\(\begin{bmatrix} s_x & 0 \\ 0 & s_y \end{bmatrix}\) 逆变换:\(\begin{bmatrix} \frac{1}{s_x} & 0 \\ 0 & \frac{1}{s_y} \end{bmatrix}\)

旋转

例1:在二维平面中,把P点旋转\(\theta\)

2026-07-10-01-26-10-1783617968728428330

变换矩阵:\(\begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}\)逆变换:\(\begin{bmatrix} \cos\theta & sin\theta \\ -\sin\theta & \cos\theta \end{bmatrix}\)

例2:在三维空间中,把P点绕Z轴旋转\(\theta\)

2026-07-10-01-29-48-image

绕z轴旋转\(\begin{bmatrix} \cos\theta & -\sin\theta & 0 \\ \sin\theta & \cos\theta & 0 \\ 0 & 0 & 1 \end{bmatrix}\)

绕x轴旋转\(\begin{bmatrix} 1 & 0 & 0 \\ 0 & \cos\theta & -\sin\theta \\ 0 & \sin\theta & \cos\theta \end{bmatrix}\)

绕y轴旋转\(\begin{bmatrix} \cos\theta & 0 & \sin\theta \\ 0 & 1 & 0 \\ -\sin\theta & 0 & \cos\theta \end{bmatrix}\)

旋转方向遵循右手螺旋法则

例3:把P点绕X轴旋转\(\alpha\)度,再绕Y轴旋转\(\beta\)度,再绕X轴旋转\(\gamma\)

其实就是左乘三个旋转矩阵

变换矩阵:\(\begin{bmatrix} \cos\gamma & -\sin\gamma & 0 \\ \sin\gamma & \cos\gamma & 0 \\ 0 & 0 & 1 \end{bmatrix}\begin{bmatrix} \cos\beta & 0 & \sin\beta \\ 0 & 1 & 0 \\ -\sin\beta & 0 & \cos\beta \end{bmatrix}\begin{bmatrix} \cos\alpha & -\sin\alpha & 0 \\ \sin\alpha & \cos\alpha & 0 \\ 0 & 0 & 1 \end{bmatrix}\)

\(\alpha,\beta,\gamma\)合称为欧拉角

欧拉角既可以表示变换,也可以表示朝向

朝向和变换本质是一回事的,朝向的意思就是对图形原始朝向做了什么变换

http://www.jsqmd.com/news/1157976/

相关文章:

  • 2026年当下,河北知名的AI机构如何以GEO搜荐优化重塑企业获客格局 - 品牌鉴赏官2026
  • 2026年粒度分析仪采购渠道推荐,助您精准选择 - 品牌排行榜
  • 泰格豪雅中国官方售后服务中心|地址与客服服务热线权威信息通知(2026年7月最新) - 亨得利官方服务中心
  • 多业务系统并行迁移:架构设计与实施复盘
  • STM32/51单片机蜂鸣器驱动电路对比:ULN2003 vs 三极管,实测功耗与音质差异
  • 系统工具配置热重载:监听文件变化,不用重启就能改参数
  • 锂电池主动均衡方案:MP2672A与STM32F469II应用详解
  • 基于传统 Spring Boot 接入 AI:知识、组件与环境准备方案
  • 2026年7月最新亨得利官方钟表服务中心|最新电话和完整地址权威信息声明 - 亨得利钟表维修中心
  • 蓝速科技视觉 3D 全息仓 AI 数字人一体机深度评测
  • 亲身到店探访合肥亨得利官方名表服务中心|完整地址与联系电话(2026年7月更新) - 亨得利官方
  • 提示词工程(Prompt_Engineering)实战指南
  • ISO认证机构哪家好?2026年权威推荐 - 品牌排行榜
  • 安卓修改大师布局单位全解析:从px到sp的实战指南
  • Unity像素游戏精灵导入与优化全攻略
  • 清华SIGS数据与信息研究院:8个博士学科与11个硕士项目全览
  • 百度Unlimited OCR开源项目:基于遗忘机制的长文档识别技术解析
  • 2026年行业内质量好的室内膨胀型防火涂料品牌推荐 - 品牌排行榜
  • LangChain-Chatchat多模型部署实战:日志驱动的生产级架构
  • Xilinx FPGA 电源纹波超标:从10mV到<5mV的3步实测优化
  • 2026清远正规漏水检测维修权威推荐-卫生间漏水免砸砖维修/厨房阳台墙面暗管漏水检测/屋顶外墙堵漏维修-防水补漏公司实测口碑榜推荐 - 即刻修防水
  • 亨得利官方名表服务中心|完整地址与客服热线权威信息声明(2026年7月更新) - 亨得利官方博客
  • 2026年浙江实力黑胡桃床制造商盘点:天龙红木家具深度解析 - 品牌鉴赏官2026
  • 云资源管理(Boto3+Python):AWS 服务器监控与自动扩容脚本
  • Codex浏览器插件原理与自建实践:从API调用到OpenAI兼容网关
  • 身份认证技术实战:从静态口令到多因子认证的3种方案与安全对比
  • HarmonyOS 6.1 全场景开发终篇:从单设备到万物互联的实战复盘与架构思考
  • OpenCode:本地AI编程工作流的重新定义
  • Harness工程:Copilot背后的可编程智能调度系统
  • UE5 AI行为树动态生成敌人不动?系统性排查与修复指南