glStencilFunc 関数

glStencilFunc 関数は、ステンシル テストの関数と参照値を設定します。

構文

void WINAPI glStencilFunc(
   GLenum func,
   GLint  ref,
   GLuint mask
);

パラメーター

func

テスト関数。 次の 8 つのトークンが有効です。

説明
GL_NEVER
常に失敗します。
GL_LESS
if (ref&mask) (ステンシル&マスク) < を渡します。
GL_LEQUAL
if (ref&mask) = (ステンシル&マスク) を渡します。
GL_GREATER
if (ref&mask) (ステンシル&マスク) > を渡します。
GL_GEQUAL
if (ref&mask) = (ステンシル&マスク) を渡します。
GL_EQUAL
if (ref&mask) = (ステンシル&マスク) を渡します。
GL_NOTEQUAL
if (ref&mask) を渡します。 (ステンシル)&mask)。
GL_ALWAYS
常に が渡されます。

ref

ステンシル テストの参照値。 ref パラメーターは範囲 [0, 2n 1] にクランプされます。ここで、n はステンシル バッファー内のビットプレーンの数です。

mask

テストの実行時に、参照値と格納されているステンシル値の両方を含む 、ANDのマスク。

戻り値

この関数は値を返しません。

エラー コード

glGetError 関数では、次のエラー コードを取得できます。

名前 意味
GL_INVALID_ENUM
func は、受け入れ可能な 8 つの値のうちの 1 つではありません。
GL_INVALID_OPERATION
glBegin の呼び出しと glEnd の対応する呼び出しの間に関数が呼び出されました。

解説

ステンシルは、z バッファリングと同様に、ピクセル単位で描画を有効または無効にします。 OpenGL 描画プリミティブを使用してステンシル平面に描画し、ステンシル平面を使用してジオメトリとイメージをレンダリングして、画面の一部をマスクします。 ステンシルは、通常、デカール、アウトライン、建設的なソリッド ジオメトリ レンダリングなどの特殊効果を実現するために、マルチパス レンダリング アルゴリズムで使用されます。

ステンシル テストでは、参照値とステンシル バッファー内の値の比較の結果に基づいて、条件付きでピクセルが削除されます。 このテストは、引数GL_STENCIL_TESTを使用して glEnableglDisable によって有効になります。 ステンシル テストの結果に基づいて実行されるアクションは、 glStencilOp で指定されます。

func パラメーターは、ステンシル比較関数を決定するシンボリック定数です。 上記の 8 つの値のいずれかを受け入れます。 ref パラメーターは、ステンシル比較で使用される整数値です。 範囲 [0, 2n 1] にクランプされます。 ここで、n はステンシル バッファー内のビットプレーンの数です。 mask パラメーターは、参照値と格納されているステンシル値の両方でビット単位で ANDされ、ANDed 値が比較に含まれます。

ステンシルが対応するステンシル バッファーの場所に格納されている値を表す場合、上記の一覧には、func で指定できる各比較関数の効果が表示されます。 比較が成功した場合にのみ、ラスター化プロセスの次のステージに渡されるピクセルです ( glStencilOp を参照してください)。 すべてのテストでは 、ステンシル 値が [0, 2n 1] の範囲の符号なし整数として扱われます。 ここで、n はステンシル バッファー内のビットプレーンの数です。

最初は、ステンシル テストは無効になっています。 ステンシル バッファーがない場合、ステンシルの変更は行われず、ステンシル テストが常に成功するかのように見えます。

次の関数は 、glStencilFunc に関連する情報を取得します。

引数GL_STENCIL_FUNCを含む glGet

引数GL_STENCIL_VALUE_MASKを含む glGet

引数GL_STENCIL_REFを含む glGet

引数GL_STENCIL_BITSを含む glGet

glIsEnabled と引数 GL_STENCIL_TEST

必要条件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Gl.h
ライブラリ
Opengl32.lib
[DLL]
Opengl32.dll

関連項目

glAlphaFunc

glBegin

glBlendFunc

glDepthFunc

glEnable

glEnd

glIsEnabled

glLogicOp

glStencilOp