在opengl中,一个坐标的完整转换过程,从结构层、渲染管线、坐标空间三个层级的划分如下:
结构层:顶点——>图元——> 片元——>缓冲(FBO)
图像渲染管线:顶点着色器 ——>图元装配——>裁剪 ——>几何着色器 ——>栅格化 ——>片段着色器——> 测试与混合
坐标空间:Model/Local —(ModelTransform)—> World —(ViewTransform)—> eye/view/camera —(视椎体裁剪,椎体范围转为正方体范围)—>Clip ———(PerspectiveDivide)—>NDC(clip/w)——(ViewportTransform)——>Screen——(ScanConversion)——>Window**
顶点的三个状态
顶点(vertex), 一些点
图元(primitives), 顶点组合成图元。根据渲染模式(点、线、面)对三角面进行细分,复杂结构增加物体的三角面数以拆解成基本图元。
片元 (Fragment),表示基本图元映射到二维平面上的映射区域,通常一个Fragment对应屏幕一个像素。
栅格化是把点线三角形映射到屏幕上的像素点的过程。
图像渲染管线各过程详解
w分量
左右手坐标系转换?

第二步详细过程:
1.Eye Space的点e在两个二维平面 (ZX平面 ZY平面)上映射到视椎体Near平面 的点p,得到点e和点p的映射关系。
2.视椎体Near平面映射到NDC空间的[-1,1], 求出 点ndc和点p的关系
最后得到点e和点ndc的关系,
三维NDC坐标系转为二维像素坐标系
最终,模型要显示在二维平面上,其范围与视口相关。NDC空间很接近窗口,NDC的xy坐标与窗口坐标之间的线性关系被称为视口变换。NDC的z值理解为深度值。
参考文档
gl_FragColor的含义
从顶点到片元
OpenGL投影矩阵(Projection Matrix)构造方法 - lxycg - 博客园
游戏开发技术杂谈3:OpenGL投影矩阵