OpenGL ES for Android

OpengGL ES 纹理过滤模式-glTexParameter

2020-01-23  本文已影响0人  老孟程序员

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_MIN_FILTER和GL_TEXTURE_MAG_FILTER

当纹理的大小和渲染屏幕的大小不一致时会出现两种情况:

可以设置GL_NEAREST 和 GL_LINEAR。

视觉效果如下图:


image

左面的图为GL_LINEAR的效果,是放大模糊的效果。右面的图是GL_NEAREST的效果,锯齿比较明显,但没有模糊。

\color{#c64935}{更多相关内容}

上一篇 下一篇

猜你喜欢

热点阅读