1.模型空间(左手坐标系) 每个模型都有自己独立的坐标空间,模型空间的原点和坐标轴通常是由美术人员在建模软件里确定好的 我们可以在顶点着色器中访问到每个顶点的坐标,这些坐标都是相对于模型空间中的原点(通常位于模型的重心)定义的
2.世界空间(左手坐标系) 对应unity中的世界坐标系
3.观察空间(右手坐标系) 在观察空间中,摄像机位于原点,+x轴指向右方,+y轴指向上方,+z轴指向摄像机的后方,也就是说摄像机的正前方指向的是-z轴方向
4.裁剪空间(左手坐标系) 由视锥体定义的空间
5.屏幕空间(左手坐标系) 屏幕空间是一个二维空间,把顶点从裁剪空间投影到屏幕空间,也就是一个3D坐标到2D坐标的过程
总结 1.渲染流水线中顶点的空间变换过程:模型空间->世界空间->观察空间->裁剪空间->屏幕空间 顶点着色器最基本的任务就是把顶点坐标从模型空间转换到裁剪空间(1 => 4),对应变换矩阵是MVP矩阵 在片元着色器中,我们可以拿到该片元在屏幕空间的像素位置 2.只有观察空间是右手坐标系
NDC空间转换为世界空间非常重要。shader里经验会用到。
那两种shader呢? (Vertex Shader) => Clip Space => (透视除法) => NDC => (视口变换) => Screen Space => (Fragment Shader)
|