gl_PointCoord()
- 获取点精灵的纹理坐标。
vec2 gl_PointCoord();
gl_PointCoord()
函数返回当前片段中点精灵的纹理坐标。点精灵默认情况下是 $1.0 \times 1.0$ 的正方形。
纹理坐标的范围是 $(0.0, 0.0)$ 到 $(1.0, 1.0)$。 纹理坐标对应于点精灵的区域,其中 $(0.0, 0.0)$ 是左下角,$(1.0, 1.0)$ 是右上角。
gl_PointCoord()
函数只能用于点渲染模式。在其他渲染模式下使用该函数将导致不确定的行为。
函数返回当前片段中点精灵的纹理坐标。
uniform sampler2D texture;
void main() {
vec2 textureCoords = gl_PointCoord();
gl_FragColor = texture2D(texture, textureCoords);
}
在这个例子中,我们将点精灵的纹理坐标作为纹理采样的输入,使用 texture2D()
去获取纹理中对应坐标的颜色,并将结果输出到屏幕上。
gl_PointCoord()
函数只能在片段着色器中使用。gl_PointCoord()
函数只适用于点渲染模式。gl_PointCoord()
应该在片段着色器中使用。如果点精灵是使用内部渲染管线生成的,则可以在几何着色器或片段着色器中使用该函数。gl_PointCoord()
返回的纹理坐标对于点精灵是固定的,除非使用着色器修改纹理坐标或更改点精灵大小。