在 OpenGL 中,归一化 UV 坐标(也称纹理坐标)是用于将 2D 纹理图像映射到 3D 模型表面的一种标准化坐标系统。归一化 UV 坐标指的是把纹理图像的位置用 0 到 1 之间的浮点数表示,而不是用像素坐标。
核心定义
- UV 坐标是一个二维向量 (u, v),分别对应纹理图像的水平(X)和垂直(Y)方向。
- 取值范围为 [0, 1],与纹理图像的实际像素尺寸无关,因此称为"归一化"。
- 原点 (0, 0) 位于纹理的左下角,(1, 1) 位于右上角,u 向右增加,v 向上增加 。
示例说明
(0.5, 0.5):采样到纹理图像的中心点。(0, 0):左下角像素。(1, 0):右下角像素。(0, 1):左上角像素。(1, 1):右上角像素 。
注意:OpenGL 的标准约定是左下角为 (0, 0)。
在 OpenGL 中,将实际像素坐标(例如第 152 列,第 300 行)除以纹理宽度/高度,就得到了归一化的浮点坐标,这样无论纹理分辨率多大,着色器都能正确采样。