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

在 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 ‌

相关推荐
05候补工程师4 小时前
【线性代数】硬核复习笔记:核心定理推导、矩阵变换本质与自创高频题解
经验分享·笔记·线性代数·考研·矩阵
2601_957418804 小时前
Android相机有线连接全栈解决方案:PTP/MTP协议深度实现与应用实践
android·数码相机
ZPC82104 小时前
双目相机 深度图和点云生成物体3D包围盒 生成抓取姿态
人工智能·数码相机·算法·yolo·计算机视觉
AI_yangxi4 小时前
短视频矩阵系统优质厂家
大数据·人工智能·矩阵
Mark White4 小时前
奇异值分解(SVD):从几何直觉理解矩阵的本质
线性代数·机器学习·矩阵
2601_9577875813 小时前
全场景矩阵系统多端统一体验与跨端实时同步技术实践
大数据·人工智能·矩阵·多端统一·跨端同步
雁迟16 小时前
第八章:矩阵与数组操作
线性代数·矩阵·r语言
2601_9577875818 小时前
星链引擎矩阵系统:插件化多平台 API 网关与账号级隔离技术实践
java·矩阵·插件化架构
dingzd9519 小时前
Reddit验证资料测试之后跨境品牌如何提升社区运营可信度
大数据·人工智能·矩阵·新媒体运营·内容营销·跨境
一条大祥脚19 小时前
ABC 458 球盒模型|AC自动机|矩阵快速幂DP
线性代数·矩阵