0

バインドされたテクスチャの1つのピクセルを変更したいと思います。

私は1x1のビットマップを持っていて、そのビットマップデータを取得し、それを次のように渡すことができることを知っています。

GL.TexSubImage2D(TextureTarget.Texture2D, 0, pixel.X, pixels.Y, 1, 1, OpenTK.Graphics.OpenGL.PixelFormat.Bgra, PixelType.UnsignedByte, bmpData.scan0);

ただし、1つのピクセルを変更するという単純なタスクでは、これは途方もなく複雑に思えます。これを行う簡単な方法はありますか?

4

1 に答える 1

2

これを行う簡単な方法はありますか?

いいえ。少なくとも、OpenGLに関する限りではありません。

一般的に、人々は1つのテクセルを変更したくありません。アップロードを行っている場合は、テクスチャデータの領域全体を更新する必要があるためです。そして、CPU->GPUDMA操作はその事実に基づいて設計されています。

OpenTK部分(ビットマップの作成、ロックなど)については、ビットマップを作成する必要はありません。TexSubImage2Dオーバーロードの1つを使用して、C#配列を渡すことができます。

于 2012-09-05T14:36:20.873 に答える