0

サイズが100x100の6つの頂点の長方形があります。これは100x100の背景画像で覆われています。次に、その上に2つの「サブテクスチャ」をレンダリングしたいと思います。

サイズが20x20の2つのサブテクスチャがあるとします。1つはx:10 y:10に配置し、もう1つはx:50とy:50に配置します。

(これらは実際には背景画像のマスクとして使用されます。)

これはどうすればいいですか?私の最初の考えは、フラグメントシェーダーに情報を提供する2つのサブテクスチャの位置を含む均一なvec2を送信することでしたが、texture2dは0-1の値をとるため、それらをtexture2d(subtexture、coordinate )に変換する方法を実際に理解できません。私は本当にこれに頭を包むことができません、そして私は私が行くべき方向にいくつかの指針を得たいと思っています。

(これはOpenGL ES 2.0で使用されます)

4

1 に答える 1

0

次に、あなたが本当に探しているのは、テクスチャを更新する方法だと思います。あなたの場合、最も簡単な方法はを使用することかもしれませんglTexSubImage2D。以下はあなたがあなたの元の投稿で尋ねることをします

glTexSubImage2D( GL_TEXTURE_2D, 0, 10, 10, 20, 20, <format>, <type>, <subimage1> );
glTexSubImage2D( GL_TEXTURE_2D, 0, 50, 50, 20, 20, <format>, <type>, <subimage2> );

ここで、、<format>およびに<type>格納されているサブテクスチャのピクセルを記述し<subimage*>ます。他の質問にはかなり多くの追加の回答があります。glTexSubImage2Dを検索するだけです。

より複雑な方法(問題ほど単純ではない場合)は、フレームバッファオブジェクトを使用してテクスチャにレンダリングすることです(必要に応じて、フレームバッファオブジェクトも検索してください)。

于 2013-01-21T19:57:12.340 に答える