Skip to content

纹理采样

texture2D

从 2D 纹理中采样。

glsl
vec4 texture2D(sampler2D sampler, vec2 coord)
vec4 texture2D(sampler2D sampler, vec2 coord, float bias)

参数说明:

  • sampler: 纹理采样器
  • coord: 纹理坐标
  • bias: 可选的 mipmap 偏移值 返回值:采样得到的颜色值

使用示例:

glsl
vec4 color = texture2D(u_texture, v_texCoord);

textureCube

从立方体贴图中采样。

glsl
vec4 textureCube(samplerCube sampler, vec3 coord)
vec4 textureCube(samplerCube sampler, vec3 coord, float bias)

参数说明:

  • sampler: 立方体贴图采样器
  • coord: 纹理坐标(3D 向量)
  • bias: 可选的 mipmap 偏移值 返回值:采样得到的颜色值

使用示例:

glsl
vec4 color = textureCube(u_cubemap, v_direction);

texture2DProj

使用投影坐标从 2D 纹理中采样。

glsl
vec4 texture2DProj(sampler2D sampler, vec3 coord)
vec4 texture2DProj(sampler2D sampler, vec4 coord)
vec4 texture2DProj(sampler2D sampler, vec3 coord, float bias)
vec4 texture2DProj(sampler2D sampler, vec4 coord, float bias)

参数说明:

  • sampler: 纹理采样器
  • coord: 投影纹理坐标
  • bias: 可选的 mipmap 偏移值 返回值:采样得到的颜色值

使用示例:

glsl
vec4 color = texture2DProj(u_texture, v_projCoord);

texture2DLod

从 2D 纹理中采样,指定 LOD 级别。

glsl
vec4 texture2DLod(sampler2D sampler, vec2 coord, float lod)

参数说明:

  • sampler: 纹理采样器
  • coord: 纹理坐标
  • lod: LOD 级别 返回值:采样得到的颜色值

使用示例:

glsl
vec4 color = texture2DLod(u_texture, v_texCoord, 0.0);

texture2DGrad

从 2D 纹理中采样,指定梯度。

glsl
vec4 texture2DGrad(sampler2D sampler, vec2 coord, vec2 dPdx, vec2 dPdy)

参数说明:

  • sampler: 纹理采样器
  • coord: 纹理坐标
  • dPdx: x 方向的梯度
  • dPdy: y 方向的梯度 返回值:采样得到的颜色值

使用示例:

glsl
vec4 color = texture2DGrad(u_texture, v_texCoord, dFdx(v_texCoord), dFdy(v_texCoord));

texture2DArray

从 2D 纹理数组中采样。

glsl
vec4 texture2DArray(sampler2DArray sampler, vec3 coord)
vec4 texture2DArray(sampler2DArray sampler, vec3 coord, float bias)

参数说明:

  • sampler: 纹理数组采样器
  • coord: 纹理坐标(xy 为纹理坐标,z 为数组索引)
  • bias: 可选的 mipmap 偏移值 返回值:采样得到的颜色值

使用示例:

glsl
vec4 color = texture2DArray(u_textureArray, vec3(v_texCoord, layerIndex));

texture3D

从 3D 纹理中采样。

glsl
vec4 texture3D(sampler3D sampler, vec3 coord)
vec4 texture3D(sampler3D sampler, vec3 coord, float bias)

参数说明:

  • sampler: 3D 纹理采样器
  • coord: 纹理坐标(3D 向量)
  • bias: 可选的 mipmap 偏移值 返回值:采样得到的颜色值

使用示例:

glsl
vec4 color = texture3D(u_volumeTexture, v_texCoord);