1

古い glDrawPixels のようなものを実行しようとしています: テキストで作成されたピクセル バッファーがあり、それをバック バッファー (すべてのシーンが既にレンダリングされている場所) に適用したいと考えています。

unsigned char a[] = {255, 255, 255, 255, 0, 0, 255, 255, 255, 255, 0, 0};

// What I would
//glDrawPixels(2, 2, GL_RGB, GL_UNSIGNED_BYTE, (GLvoid*)pixels);

// What I am trying
GLuint pbo = 0;
glGenBuffers(1, &pbo);
glBindBuffer( GL_PIXEL_UNPACK_BUFFER, pbo);
glBufferData(GL_PIXEL_UNPACK_BUFFER, 12, a, GL_STREAM_DRAW);
// Blit pbo to back buffer, but how?

// Release all
....

ほとんどのチュートリアル [1] は、ピクセル バッファをテクスチャにコピーしてから、このテクスチャをクワッドに適用するように見えますが、このソリューションは多くの不要な操作を実行しているようです: データのコピー、テクスチャのフィルタリングの作成、クワッドの描画 (つまり、新しい VBO) など...

他の回答[2]は「ブリッティング」について語っていますが、私はそれを機能させることができません。

また、OpenGL に関するほとんどの情報では、OpenGL 3.X では非推奨 (および使用不可) になっている glDrawPixels を引き続き使用しています。

[1] http://www.songho.ca/opengl/gl_pbo.html

TTF SDL2.0 opengl 3.1 をレンダリング

[2] https://devtalk.nvidia.com/default/topic/453751/cuda-programming-and-performance/direct-access-to-frame-buffer-/

4

0 に答える 0