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 関数では、次のエラー コードを取得できます。
名前 | 意味 |
---|---|
|
func は、受け入れ可能な 8 つの値のうちの 1 つではありません。 |
|
glBegin の呼び出しと glEnd の対応する呼び出しの間に関数が呼び出されました。 |
解説
ステンシルは、z バッファリングと同様に、ピクセル単位で描画を有効または無効にします。 OpenGL 描画プリミティブを使用してステンシル平面に描画し、ステンシル平面を使用してジオメトリとイメージをレンダリングして、画面の一部をマスクします。 ステンシルは、通常、デカール、アウトライン、建設的なソリッド ジオメトリ レンダリングなどの特殊効果を実現するために、マルチパス レンダリング アルゴリズムで使用されます。
ステンシル テストでは、参照値とステンシル バッファー内の値の比較の結果に基づいて、条件付きでピクセルが削除されます。 このテストは、引数GL_STENCIL_TESTを使用して glEnable と glDisable によって有効になります。 ステンシル テストの結果に基づいて実行されるアクションは、 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 [デスクトップ アプリのみ] |
ヘッダー |
|
ライブラリ |
|
[DLL] |
|