Metal定义了几个标准坐标系,以表示沿渲染管线处于不同阶段的变换后的图形数据。
四维均匀向量 ( x,y,z,w) 指定一个三维点 剪辑空间坐标。 顶点着色器在剪辑空间(clip-space)坐标中生成位置。Metal分 x , y, 和 z值由 w 将剪辑空间坐标转换为标准化设备坐标。规范化的设备坐标使用左手坐标系( 参见图1)并映射到视口中的位置。这些坐标与视口大小无关。视口的左下角位于 ( x,y) 的坐标 (- 1.0,-1.0) 而上角在(1.0,1.0) 。 正- z 值指向远离摄像机的位置(“进入屏幕”)。可见部分z坐标在 0.0 和 1.0 。 Metal渲染管道将基元剪切到此框。
光栅化阶段将标准化设备坐标(NDC)转换为视口(viewport)坐标。此空间中的(x,y)坐标以像素为单位测量,原点位于视口的左上角,正值位于右下角。在该坐标空间中指定视口,Metal将NDC坐标映射到视口的范围。
如果使用可变栅格化速率(请参见第6.15节),则视口坐标系是独立于渲染目标的物理布局的逻辑坐标系。速率图确定此逻 辑坐标系中的坐标(有时称为屏幕空间(screen space))与渲染目标中的像素(物理坐标)之间的关系。
纹理坐标 使用类似视口坐标的坐标系。纹理坐标也可以使用 归一化纹理坐标。 对于2D纹理,归一化纹理坐标为 0.0 至 1.0 同时 X 和 y 方向,如图3所示。(0.0, 0.0) 指定图像数据第一个字节(图像的左上角)的像素。( 1.0 , 1.0 ) 指定图像数 据最后一个字节(图像的右下角)的像素。