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);