齐次裁剪空间 Homogenous Clip Space

在OpenGL等图形API中,顶点在通过顶点着色器(Vertex Shader)处理后,通常会输出一个 vec4 类型的位置变量,称为 gl_Position。这个 gl_Position 就处于 齐次裁剪空间(Homogeneous Clip Space)。

GLSL
gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(vertexPosition, 1.0);
点击展开查看更多

该坐标将由GPU自动做以下处理:

  1. 裁剪:在齐次裁剪空间中,GPU会对坐标进行视锥体裁剪,规则如下:
    • -w ≤ x ≤ w
    • -w ≤ y ≤ w
    • -w ≤ z ≤ w 只有满足这些条件的顶点,才会被继续处理,进入后续的光栅化步骤。否则,这个顶点所在的图元(如三角形)会被剔除或剪裁。
  2. 透视除法:将未被剔除的坐标进行透视除法计算,以获得[-1, 1]范围的归一化设备坐标(NDC):
    • x_ndc = x / w
    • y_ndc = y / w
    • z_ndc = z / w

归一化设备坐标 NDC

归一化设备坐标(Normalized Device Coordinates,简称 NDC)是图形渲染管线中的一个核心中间阶段,表示所有顶点在视图投影后的统一空间坐标,它是从齐次裁剪空间通过透视除法得到的。 归一化设备坐标是一个三维坐标系,其范围严格限制在:

版权声明

作者: Chaim

链接: https://chaim.eu.org/posts/%E9%BD%90%E6%AC%A1%E8%A3%81%E5%89%AA%E7%A9%BA%E9%97%B4-%E4%B8%8E-ndc/

许可证: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Please attribute the source, use non-commercially, and maintain the same license.

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键