textureGradOffset 函数可以取样器采样给定纹理中的一个纹素,并使用该纹素的邻域数据来执行各向异性过滤。
sampler:采样器类型,纹理采样的来源coord:vec类型,纹理的坐标(从左下角为 (0.0, 0.0), 右上角为 (1.0, 1.0))ddx:vec类型,S方向上的偏导数ddy:vec类型,T方向上的偏导数offset:ivec类型,纹理的偏移量(可选参数,默认为 ivec2(0, 0))sampler:需要进行采样的纹理类型,包括纹理图像和采样器对象
sampler 可以是以下类型:
• sampler1D
• sampler2D
• sampler3D
• samplerCube
• sampler1DShadow
• sampler2DShadow
coord:纹理坐标的第一维是纹理图片的宽度,第二维是纹理图片的高度。纹理坐标需要将图片的左下角坐标(0.0, 0.0)转化为 (0.0, 0.0), 右上角坐标(width, height)转化为 (1.0, 1.0)
coord参数可以是以下类型:
• ivec2
• ivec3
• ivec4
• vec2
• vec3
• vec4
ddx 和 ddy:分别表示 S 方向和 T 方向上的偏导数。偏导数用于实现各向异性过滤。需要指出的是:在 OpenGL ES 2.0 和 OpenGL ES 3.0 中,偏导数取值必须由变量或常量表达式提供。
ddx 和 ddy 参数可以是以下类型:
• float
• vec2
• vec3
• vec4
offset(可选):指定从指定坐标 coord 开始,向左偏移 xOffset 个像素,向上偏移 yOffset 个像素。
offset 参数可以是以下类型:
• ivec2
vec4 textureData = textureGradOffset(sampler, coord, ddx, ddy, offset);