老
孟
一个
有态度
的程序员
Android中GLES20.glTexParameteri函数表示对纹理的设置,函数结构如下:
public static native void glTexParameteri(
int target,
int pname,
int param
);
参数说明如下:
GL_TEXTURE_WRAP_S和GL_TEXTURE_WRAP_T
纹理的坐标系统叫做ST坐标系统,和xy坐标系统一样,s对应x,t对应y,因此GL_TEXTURE_WRAP_S和GL_TEXTURE_WRAP_T表示超出范围的纹理处理方式,可以设置的值如下:GL_CLAMP_TO_EDGE、GL_REPEAT、GL_MIRRORED_REPEAT。
将纹理的坐标值设置超出界限,纹理坐标如下:
var texBuffer = GLTools.array2Buffer(
floatArrayOf(
0.0f, 0.0f,
0.0f, 1.0f,
2.0f, 1.0f,
2.0f, 0.0f
)
)
后面的部分使用纹理的最后像素的颜色值。
GL_TEXTURE_WRAP_T和GL_TEXTURE_WRAP_S一样,T代表y轴。
GL_TEXTURE_MIN_FILTER和GL_TEXTURE_MAG_FILTER
当纹理的大小和渲染屏幕的大小不一致时会出现两种情况:
可设置的值为GL_NEAREST 、GL_LINEAR。
视觉效果如下图:
左面的图为GL_LINEAR的效果,是放大模糊的效果。右面的图是GL_NEAREST的效果,锯齿比较明显,但没有模糊。