关于坐标变换的问题和理解

在光栅化的过程中坐标变换问题一直让我迷迷糊糊,反复看101终于理解清楚了一点,现在用自己的语言跟据101代码来描述一下过程,不涉及数学推导。
坐标一开始是右手系。

第一步 modelview变换

本来model变换的作用是把模型的坐标从模型空间转换到世界坐标系中,但是现在模型的坐标好像都是一开始就是世界坐标系中了,有的模型格式会设置原点坐标和缩放系数,101代码中就是对模型进行变化操作,比如放大旋转。
view变换就是把摄像机变为原点的过程。

第二步 投影变化

通过摄像机的参数,比如近平面距离,pov,宽高比,我们能够得到一个视锥体,这就是我们摄像机能看到的范围,现在我们要将这个视锥体通过投影变换和裁剪操作和齐次化操作(homogenization,坐标除以w分量),最终将其转换到NDC空间中(规范化设备坐标系,normalized device coordinate)。来方便我们的后续光栅化操作,在这个过程中,有的api会为了方便对坐标系进行镜像操作,使深度值更符合我们认知操作。比如离我们远的就深度值更大。
投影变化分两步,先进行透视变化,再进行正交变化。
透视投影带来的一个影响是,计算出的深度值并不会随着输入的z值线性变化,具体插值矫正公式看明白了。

posted @ 2025-03-24 10:13  Rincharo  阅读(54)  评论(0)    收藏  举报