计算机图形学---如何理解模型矩阵、视图矩阵、投影矩阵

在 OpenGL 的渲染管线中,模型视图矩阵投影矩阵 是把 3D 物体画到屏幕上的两次关键坐标变换。下面用"相机拍照"的类比来理解,再配合现代 OpenGL + GLM 的代码。


一、模型视图矩阵(Model‑View Matrix)

它其实是两步变换的合并

阶段 作用 类比
模型矩阵 (Model) 把物体从自身坐标系 变换到世界坐标系(摆放位置、旋转、缩放) 把桌上的苹果放到房间的正确位置
视图矩阵 (View) 把世界坐标变换到摄像机(观察)坐标系(相当于把整个场景反向移动,让相机位于原点看向 -Z) 你举起相机,对准那个苹果

现代实践中通常分开写,在顶点着色器里做 projection * view * model 乘法,但 view * model 的结果就是模型视图矩阵,表示从模型局部空间一步到视图空间。


二、投影矩阵(Projection Matrix)

投影矩阵将视图空间 的坐标变换到裁剪空间,并定义"什么形状的范围能被看到"。

类型 效果 生成函数(GLM)
透视投影 近大远小,有消失点,符合真实视觉 glm::perspective(fov, aspect, near, far)
正交投影 没有近大远小,常用于 2D、UI 或 CAD glm::ortho(left, right, bottom, top, near, far)

投影矩阵输出的坐标是齐次坐标 (x, y, z, w),之后 GPU 会自动做 透视除法 (x/w, y/w, z/w) 得到标准化设备坐标。


三、完整变换流程(MVP 管线)‌

一个顶点从模型到屏幕的完整变换链为:

‌局部坐标‌ →(乘以 ‌模型矩阵 M‌)→ ‌世界坐标‌

‌世界坐标‌ →(乘以 ‌视图矩阵 V‌)→ ‌观察坐标‌

‌观察坐标‌ →(乘以 ‌投影矩阵 P‌)→ ‌裁剪坐标‌

‌裁剪坐标‌ →(透视除法)→ ‌标准化设备坐标(NDC)‌

‌NDC‌ →(视口变换)→ ‌屏幕像素坐标‌

整体公式:‌MVP = P × V × M‌,最终顶点变换为:gl_Position = MVP × vertex ‌

相关推荐
OAK中国_官方1 天前
OAK相机 IMU 和外壳标定
数码相机
FrameNotWork1 天前
HarmonyOS 6.0 相机开发——拍照与录像
数码相机·华为·harmonyos
郝学胜-神的一滴1 天前
中级OpenGL教程 022:探秘三维世界的血脉传承——物体父子关系与矩阵递归奥义
c++·线性代数·unity·矩阵·游戏引擎·unreal engine·opengl
song150265372981 天前
M12 X-Code 8芯 PoE 相机/远程IO 针脚定义完整详解
数码相机
luoganttcc3 天前
指数分布的完整推导
线性代数·机器学习·概率论
爱刷碗的苏泓舒3 天前
平方根信息滤波:矩阵推导及 GNSS 参数估计应用
线性代数·算法·矩阵·gnss·参数估计·测量平差·平方根信息滤波
田里的水稻3 天前
FA_数字相机成像原理、分级和分类
运维·数码相机·机器人·自动驾驶
智灵鸟科技3 天前
封闭网络怎么安全地接外部能力:三条通道穷举、威胁封堵矩阵与残余风险
网络·安全·矩阵
zandy10113 天前
企业级BI平台选型指南:评估框架与核心能力矩阵
大数据·人工智能·矩阵
AI科技星3 天前
光速螺旋时空曲率挠率拓扑统一场论——四大力全域闭环求导、精算验证与第一性原理完备证明
线性代数·算法·决策树·机器学习·常温超导·ai科技星