2011-07-16 8 views
1

私はこのような緩衝液を用いてテクスチャを作成するためにglTexImage2D呼び出しを使用する場合:A glTexImage2D質問

glTexImage2D(GL_TEXTURE_2D /* target*/, 
      0 /* level */, 
      GL_RGBA /* internal format */, 
      width /* w */, 
      height /* h */, 
      0 /* border */, 
      GL_RGBA /* format (RGBA 4)*/, 
      GL_UNSIGNED_BYTE /* type */, 
      buffer /* pixel buffer */); 

私はそれを変更するには、テクスチャをバッファを変更し、期待することはできますか?

呼び出し後にテクスチャがファイナライズされていますか?

答えて

6

いいえ、OpenGLはあなたが前後にそれをコピーせずに、それを変更することはできません(これはまた、あなたがバッファを再利用したり、解放することができます意味ので、それはテクスチャの自身のコピーで作成されます。

2

をあなたの場合テクスチャの一部を変更したい場合は、glTexSubImage2Dを使用することがよくあります。この関数は新しいデータが連続していることを前提としていますので、テクスチャの途中で小さな四角形を変更しただけの場合は、影響を受けた列ではなく、変更した行のすべてのピクセルを送信する必要があるため、元のバッファに変更を加えます。