Appearance
纹理采样
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);