3

ステンシル バッファの使用に問題があり、煮詰めるとまったく機能しないようです。次のコードがあるとします。

  glEnable(GL_STENCIL_TEST);
  glClearStencil(0);
  glClear(GL_STENCIL_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
  glColor4f(1, 1, 1, 1);
  glStencilFuncSeparate(GL_FRONT_AND_BACK, GL_NEVER, 0, 0);
  glStencilOpSeparate(GL_FRONT_AND_BACK, GL_INCR, GL_INCR, GL_INCR);
  glBegin(GL_TRIANGLES);
  { draw something }
  glEnd();

三角形はまだ描かれている!? ここで些細なことを見逃していますか?

注: 私はフレーム バッファにレンダリングしていません。glStencil...Separate を使用しているのは、それが front\back に関連していないことを確認するためだけです。私には関連していないように見えるコードのビットを保持しています。

4

1 に答える 1

3

ステンシル バッファがありません。そして仕様によると(4.3コア、フォリオページ432から):

ステンシル バッファーがない場合、ステンシルの変更は発生せず、StencilFunc の呼び出しに関係なく、ステンシル テストは常にパスするかのようになります。

于 2012-11-20T18:08:13.033 に答える