图形流水线中坐标变换详解:模型矩阵、视角矩阵、投影矩阵

本文详细介绍了图形流水线中的坐标变换,包括模型矩阵、视角矩阵和投影矩阵的作用和计算方法。模型矩阵用于模型局部坐标到世界坐标的转换,视角矩阵涉及世界坐标到视角坐标系(相机坐标系)的转换,其逆矩阵表示视角到世界的转换。投影矩阵则用于将3D坐标映射到近似2D的视图,模拟小孔成像的过程。文章还探讨了光圈、焦距、景深等因素对成像的影响,并解释了窗口变换,确保渲染结果适应输出设备的分辨率和宽高比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文重点介绍图形流水线中出现的各种坐标系,以及实现在这些坐标系之间转换的数学知识。希望能方便大家更加深入了解图形学基础,更好的学习图形学。如果文章中有错误也请大家积极指正。文章的主要参考来源有:
1.Scratchapixel 2.0:Rendering an Image of a 3D Scene: an Overview
2.Scratchapixel 2.0:Computing the Pixel Coordinates of a 3D Point
3.深入探索透视投影变换


图形流水线中坐标变换过程

在这里插入图片描述


模型矩阵:模型局部坐标系和世界坐标系之间的桥梁

1.模型局部坐标系存在的意义

简单用一句话来说:方便建模人员。如果把“经纬度和高程”比作世界坐标系,那么“北京市海淀区学院路37号”就是模型局部坐标系下的一个坐标,而这个模型局部坐标系可以是“北京市”,也可以是“北京市海淀区”,甚至可以是“北京市海淀区学院路”。我们在CG中展现的各种各样物体是很多建模人员努力的结果,我们无法规定一个统一的坐标系,让所有物体都在这个坐标系上建模(一方面是考虑到单位精度,二是在模型局部坐标系下能更方便的描述模型的具体位置)。因此一般模型默认都是在模型坐标系下。

2.根据模型局部坐标系中点求其在世界坐标系中的坐标(Model_to_Wrold) or 根据世界坐标系的点求其在模型坐标系中的坐标(Wrold_to_Model)

那么如何从模型坐标系变换到世界坐标系呢,我们先给出一些默认参数,以及一些矩阵知识:

  • CG中世界坐标系三个基底分别为e1(1,0,0), e2(0,1,0), e3(0,0,1),坐标系原点为O (0,0,0)
  • 坐标系的矩阵表示法(行主序,以世界坐标系为例):
    在这里插入图片描述
  • 不同坐标系下坐标点相互转换满足:
    P1 * M1 = P2 * M2
    其中 M1为坐标系1的矩阵表示,P1为点P在坐标系1下的坐标表示;M2为坐标系2的矩阵表示,P2为点P在坐标系2下的坐标表示

根据上述,我们就可以求得模型局部点在世界坐标系下的表示。
假设世界坐标系矩阵表示为Mworld
模型坐标系矩阵表示为Mmodel
模型上点在世界坐标系下的表示为Pworld
模型上点在模型坐标系下的表示为Pmodel
则有:
Pworld * MworldCoord = Pmodel * MmodelCoord
Pworld = Pmodel * MmodelCoord * M-1worldCoord
由世界坐标系的特点知:MworldCoord

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值