lyh916

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

一.坐标空间

1.模型空间(左手坐标系)

每个模型都有自己独立的坐标空间,模型空间的原点和坐标轴通常是由美术人员在建模软件里确定好的

我们可以在顶点着色器中访问到每个顶点的坐标,这些坐标都是相对于模型空间中的原点(通常位于模型的重心)定义的

 

2.世界空间(左手坐标系)

对应unity中的世界坐标系

 

3.观察空间(右手坐标系)

在观察空间中,摄像机位于原点,+x轴指向右方,+y轴指向上方,+z轴指向摄像机的后方,也就是说摄像机的正前方指向的是-z轴方向

 

4.裁剪空间(左手坐标系)

由视锥体定义的空间

 

5.屏幕空间(左手坐标系)

屏幕空间是一个二维空间,把顶点从裁剪空间投影到屏幕空间,也就是一个3D坐标到2D坐标的过程

具体过程:

a.进行齐次除法,即用齐次坐标系的w分量去除x,y,z分量。经过这一步,就可以把坐标从齐次裁剪坐标空间转换到NDC,变换到一个立方体内。这个立方体的x,y,z分量的范围都是[-1,1]

b.进行坐标映射,将上面变换后的x,y坐标映射到屏幕的像素坐标

以x坐标为例,(-1,1) 乘以width=> (-width,width) ,加上width=> (0,2width),除以2=> (0,width) 

 

二.总结

1.渲染流水线中顶点的空间变换过程:模型空间->世界空间->观察空间->裁剪空间->屏幕空间

顶点着色器最基本的任务就是把顶点坐标从模型空间转换到裁剪空间,对应变换矩阵是MVP矩阵

在片元着色器中,我们可以拿到该片元在屏幕空间的像素位置(回想下渲染流水线)

 

2.只有观察空间是右手坐标系

posted on 2021-01-04 22:26  艰苦奋斗中  阅读(313)  评论(0编辑  收藏  举报