不同渲染后端坐标系差异

Number of views 74

OpenGL、OpenGL ES 和 WebGL:

NDC(标准化设备坐标):+Y 轴向上。点 (-1, -1) 位于左下角。
帧缓冲区坐标:+Y 轴向上。原点 (0, 0) 位于左下角。
纹理坐标:+Y 轴向上。原点 (0, 0) 位于左下角。参见 OpenGL 4.6 规范中图 8.4。

D3D12 和 Metal:

NDC(标准化设备坐标):+Y 轴向上。点 (-1, -1) 位于左下角。
帧缓冲区坐标:+Y 轴向下。原点 (0, 0) 位于左上角。
纹理坐标:+Y 轴向下。原点 (0, 0) 位于左上角。

Vulkan

NDC(标准化设备坐标):+Y 轴向下。点 (-1, -1) 位于左上角。详情请参见 Vulkan 1.1 规范中关于“PointCoord”的描述。
帧缓冲区坐标:+Y 轴向下。原点 (0, 0) 位于左上角。详情请参见 Vulkan 1.1 规范中关于“VkViewport”和“FragCoord”的描述。但是,我们可以通过设置视口高度值为负数来翻转视口坐标。
纹理坐标:+Y 轴向下。原点 (0, 0) 位于左上角。

WebGPU

NDC(标准化设备坐标):+Y轴向上。点(-1, -1)位于左下角。

帧缓冲区坐标:+Y轴向下。原点(0,0)位于左上角。

纹理坐标:+Y轴向下。原点(0,0)位于左上角。

0 Answers