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

[简化版 GAMES 101] 计算机图形学 07:图形学投影完全推导

[简化版 GAMES 101] 计算机图形学 07:图形学投影完全推导

  • Bilibili 同步视频
  • 0. 前置约定 📌
  • 一、正交投影 Orthographic Projection
    • 1.1 直观理解
    • 1.2 变换两步走
      • 平移矩阵
      • 缩放矩阵
      • 正交投影矩阵(最终)
  • 二、透视投影 Perspective Projection
    • 2.1 核心思路
    • 2.2 挤压规则
    • 2.3 相似三角形推导 XY 变换
      • ✍️ 补充:第三行为什么是 [0,0,A,B]
    • 2.4 解方程求 A、B
    • 2.5 透视→正交矩阵
    • 2.6 完整透视投影矩阵
  • 三、关键结论 💡
  • 四、经典思考题 🤔

Bilibili 同步视频

[简化版 GAMES 101] 计算机图形学 07:图形学投影完全推导

在计算机图形学中,投影变换是连接 3D 世界与 2D 屏幕的唯一桥梁✨。正交投影(Orthographic)与透视投影(Perspective)是所有渲染、相机、视图系统的底层根基。本文严格依照经典图形学推导,完整复现矩阵由来,不跳步、不省略,带你一次吃透两种投影的数学本质。


0. 前置约定 📌

  • 相机位于原点 (0,0,0)

  • 看向-Z 方向

  • 向上为+Y 方向

  • 使用右手坐标系

  • 近平面:n(较大 Z),远平面:f(较小 Z)
    ➡️n > f


一、正交投影 Orthographic Projection

1.1 直观理解

正交投影 = 相机在无限远处
平行光线射入 →无近大远小→ 平行线永远平行
适合:工程制图、CAD、蓝图

核心:把一个任意长方体映射到标准立方体 NDC

1.2 变换两步走

  1. 平移:把长方体中心移到原点

  2. 缩放:把长宽高缩到 [-1,1]

平移矩阵

c x = f r a c l + r 2 , c y = f r a c b + t 2 , c z = f r a c n + f 2 c_x = frac{l+r}{2}, c_y = frac{b+t}{2}, c_z = frac{n+f}{2}cx=fracl+r2,cy=fracb+t2,cz=fracn+f2
KaTeX parse error: Expected 'EOF', got '&' at position 21: …egin{bmatrix}1 &̲ 0 & 0 & -c_x …

缩放矩阵

KaTeX parse error: Expected 'EOF', got '&' at position 32: …x}frac{2}{r-l} &̲ 0 & 0 & 0 0 &…

正交投影矩阵(最终)

KaTeX parse error: Expected '}', got '&' at position 46: …x}frac{2}{r-l} &̲ 0 & 0 & -frac{…


二、透视投影 Perspective Projection

2.1 核心思路

透视投影观测空间是视锥体 Frustum,直接求矩阵很难 →拆成两步

  1. 把 Frustum 挤成长方体(Perspective → Ortho)

  2. 做正交投影

2.2 挤压规则

  1. 近平面任意点完全不变

  2. 远平面 Z 不变,仅 XY 收缩

  3. 中心点不变

2.3 相似三角形推导 XY 变换

x ′ = x c d o t f r a c n z , y ′ = y c d o t f r a c n z x' = x cdot frac{n}{z}, y' = y cdot frac{n}{z}x=xcdotfracnz,y=ycdotfracnz
齐次坐标同乘 z:
( x , y , z , 1 ) t o ( n x , n y , ? , z ) (x,y,z,1) to (nx, ny, ?, z)(x,y,z,1)to(nx,ny,?,z)
得到矩阵雏形:
KaTeX parse error: Expected 'EOF', got '&' at position 27: …egin{bmatrix}n &̲ 0 & 0 & 0 0 &…

✍️ 补充:第三行为什么是 [0,0,A,B]

第三行计算输出深度z'z' 只和原深度 z 相关,与 x、y 无关,因此前两位必须为 0,只保留 z 与常数项的系数 A、B。

2.4 解方程求 A、B

近平面条件:
A n + B = n 2 A n + B = n^2An+B=n2
远平面中心点条件:
A f + B = f 2 A f + B = f^2Af+B=f2
联立解得:
b o x e d A = n + f , q u a d b o x e d B = − n f boxed{A = n+f},quad boxed{B = -n f}boxedA=n+f,quadboxedB=nf

2.5 透视→正交矩阵

KaTeX parse error: Expected '}', got '&' at position 33: …egin{bmatrix}n &̲ 0 & 0 & 0 0 &…

2.6 完整透视投影矩阵

b o x e d M p e r s p = M o r t h o c d o t M p 2 o boxed{M_{persp} = M_{ortho} cdot M_{p2o}}boxedMpersp=MorthocdotMp2o


三、关键结论 💡

  1. 正交:无近大远小,仅平移 + 缩放

  2. 透视:有近大远小,先挤压再正交

  3. 右手系下:n > f

  4. 挤压矩阵第三行前两位为 0,因深度与 x、y 无关


四、经典思考题 🤔

视锥体中间点 z=(n+f)/2,挤压后会被推向远平面,这是深度精度与 Z‑fighting 的核心原因。

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

相关文章:

  • Taotoken在教育培训场景中为不同难度习题提供适配的模型解答
  • 别再只用Loop了!Blender/3ds Max网格细分实战:Catmull-Clark与Loop算法效果对比与选择指南
  • Select to Think:蒸馏 token 排序能力,效果平均提升24%
  • **Claude Code Skills 最佳实践指南:10 个顶级技能,装上就删不掉!(附真实使用场景、好处与详细教程)**
  • 苹果手机怎么把照片抠图?2026年最全解决方案对比
  • 自改进代理的学习边界与安全防护策略
  • 冷启动延迟飙升500ms?,Java函数压测中92%团队忽略的ClassLoader隔离缺陷与ClassLoaderCache热启修复法
  • 使用Hermes Agent时如何将其后端切换至Taotoken平台
  • 照片换背景底色在线制作免费?试试这个微信小程序,1-2秒智能抠图不压缩
  • 从零到高手:如何用AI象棋助手Vin象棋在3个月内提升棋力20%
  • 光学
  • 2026年4月市场做得好的中频点焊机实力厂家推荐口碑分析,对焊工艺环保,符合绿色标准 - 品牌推荐师
  • 2026年韦尔股份数字IC设计笔试题带答案
  • 终极雀魂数据分析指南:用牌谱屋快速提升麻将水平
  • OpenClaw 用户如何通过 Taotoken 便捷接入并使用多个 AI 模型能力
  • 回归任务必看:MAE、MSE 与 Smooth L1 Loss 全解析
  • 在线抠图软件有哪些?2026年最全工具对比+实用推荐
  • 构建高质量土耳其语NLI数据集TrMNLI的技术实践
  • 前端如何设计权限系统(RBAC / ABAC)?
  • 一直调用工具
  • 对比直接使用厂商原价taotoken官方折扣如何节省api成本
  • VC维与PAC学习在自修改系统中的理论与应用
  • 深度研究AI代理:多智能体协作实现自动化信息搜集与分析
  • 终极3DS游戏格式转换指南:5分钟掌握3dsconv将CCI转CIA
  • 输入参数、输出参数
  • 论文怎么降低aigc率?降ai率最有效的4个办法,建议收藏!
  • MoE架构在智能代码补全中的术语生成优化实践
  • 机器人动作雅可比惩罚:让机械臂运动更流畅
  • 机电文盲,摸索只使用python,来操作Lilygo T-WATCH-S3 可编程手表
  • Cloud Posse Helm Charts:面向生产环境的Kubernetes应用部署最佳实践