1. ホーム
  2. opengl

[解決済み] GL_COLOR_BUFFER_BITとGL_DEPTH_BUFFER_BITは何のためにあるのでしょうか?

2022-02-24 04:52:40

質問

OpenGLの初心者として、これらが何をするのか、なぜこれらが必要なのかを知りたいのです。たとえば、次のような呼び出しがあります。

 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

解決方法は?

GL_COLOR_BUFFER_BITGL_DEPTH_BUFFER_BIT は関数ではなく、定数です。 これらを使って glClear() この例では、深度バッファと "buffers currently enabled for color writing" をクリアします。 また GL_ACCUM_BUFFER_BIT 蓄積バッファをクリアするため、および/または GL_STENCIL_BUFFER_BIT でステンシルバッファをクリアします。

重要なのは、各定数のバイナリ表現が互いに重ならないように実装することです。 この特性によって、複数の定数のビットごとの OR を glClear() .

をチェックしてください。 glClear() ドキュメンテーション をご覧ください。