OpenGL ESのテクスチャフィルタモード-glTexParameteri

次のようにAndroidのGLES20.glTexParameteri機能は、テクスチャ、構造関数のセットを表します。

public static native void glTexParameteri(
        int target,
        int pname,
        int param
    );

パラメータは次のとおりです。

  • ターゲット:ターゲットテクスチャアクティブテクスチャユニット、GLES20.GL_TEXTURE_2Dこのテクスチャを使用するには、Android OESテクスチャ、プレビューやビデオカメラに固有である、2Dテクスチャ、ならびにGLES11Ext.GL_TEXTURE_EXTERNAL_OESなどの他のテクスチャを表します。

  • PNAME:次のようにテクスチャパラメータ値のタグ名を設定できます。GL_TEXTURE_MIN_FILTER、GL_TEXTURE_MAG_FILTER、GL_TEXTURE_WRAP_SまたはGL_TEXTURE_WRAP_T。

  • PARAM:値セット。

GL_TEXTURE_WRAP_S和GL_TEXTURE_WRAP_T

テクスチャ座標系ST座標系と呼ばれ、X-Y座標系において、xにyに対応するTに対応し、したがってGL_TEXTURE_WRAP_S GL_TEXTURE_WRAP_Tテクスチャ実施形態が範囲外を示すS、として次のように値が設定されてもよい: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_CLAMP_TO_EDGE:テクスチャサンプリングエッジ、すなわち、テクスチャのカラー値の残りの部分の縁近く表示されます。結果は以下の通りであります:

ピクセルの最終的なテクスチャカラー値の後部。

  • GL_REPEAT:テクスチャを繰り返します。結果は以下の通りであります:

  • GL_MIRRORED_REPEAT:ミラーリピート効果は次のとおりです。

そしてGL_TEXTURE_WRAP_TとしてGL_TEXTURE_WRAP_S、Tのy軸を表します。

GL_TEXTURE_MIN_FILTER和GL_TEXTURE_MAG_FILTER

ときに、2つの条件場合は、テクスチャのサイズとレンダリング画面の大きさは、一貫性のない表示されます。

  • 第一の場合:画面より大きいレンダリングテクスチャ、GL_TEXTURE_MIN_FILTERに対応し、画面上のピクセルの一部に存在しマッピングされないであろう。

  • 第二种情况:纹理小于渲染屏幕,没有足够的像素映射到屏幕上,GL_TEXTURE_MAG_FILTER。

可设置的值为GL_NEAREST 、GL_LINEAR。

  • GL_NEAREST:使用纹理中坐标最接近的一个像素的颜色作为需要绘制的像素颜色。

  • GL_LINEAR:使用纹理中坐标最接近的若干个颜色,通过加权平均算法得到需要绘制的像素颜色,与GL_NEAREST比较速度较慢。

视觉效果如下图:

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

 

发布了123 篇原创文章 · 获赞 68 · 访问量 30万+

おすすめ

転載: blog.csdn.net/mengks1987/article/details/104085587