非常に簡単な問題であると思われる問題に対処するための簡単なチュートリアルが見つからないようです。三角ストリップから作成された正方形があります。画像をマッピングしたい(ゲームスプライト)。すべてが2Dであり、照明は使用されていません。
照明を使用して3Dオブジェクトに対処するチュートリアルを見つけましたが、それらははるかに複雑なシナリオに対処しています。
どうすればこれを行うことができますか?
非常に簡単な問題であると思われる問題に対処するための簡単なチュートリアルが見つからないようです。三角ストリップから作成された正方形があります。画像をマッピングしたい(ゲームスプライト)。すべてが2Dであり、照明は使用されていません。
照明を使用して3Dオブジェクトに対処するチュートリアルを見つけましたが、それらははるかに複雑なシナリオに対処しています。
どうすればこれを行うことができますか?
GLES 2.0では、fixed-function pipeline
はプログラマブルに置き換えられましたshaders
。これは、オブジェクトのテクスチャを単に「有効化」することはできなくなり、実装を自分で作成する必要があることを意味します。texture-coordinate
通常、ジオメトリの2Dテクスチャ空間の属性と、テクスチャサンプラーが必要になります。
テクスチャを使用した頂点シェーダーとフラグメントシェーダーの簡単な例を次に示します。
バーテックスシェーダー:
attribute vec4 vertexPosition;
attribute vec2 texCoords;
uniform mat4 mvpMatrix;
varying vec2 uv;
void main(){
gl_Position = mvpMatrix*vertexPosition;
uv = texCoords;
}
フラグメントシェーダー:
uniform sampler2D texture;
varying vec2 uv;
void main(){
gl_FragColor = texture2D(texture, uv);
}
次に、描画する前に、テクスチャをバインドする必要があります。描画呼び出しごとに1つのテクスチャのみを使用する場合、それはそれと同じくらい簡単です。
テクスチャの読み込みと使用に関するその他のコード例については、AndroidApi -demosのGLES20サンプルプロジェクトをご覧ください。