GLSTENCILFUNC
Section: Misc. Reference Manual Pages (3G)
索引
xjman
名前
glStencilFunc
- ステンシルテストの式と参照値を設定する
delim $$
書式
void glStencilFunc(
GLenum func,
GLint ref,
GLuint mask )
引き数
- func
-
テスト式を指定する。
次の8つのトークンが有効である:
GL_NEVER,
GL_LESS,
GL_LEQUAL,
GL_GREATER,
GL_GEQUAL,
GL_EQUAL,
GL_NOTEQUAL,
GL_ALWAYS。
初期値は GL_ALWAYS である。
- ref
-
ステンシルテストの参照値を指定する。
ref は [0,$2 sup n - 1$] の範囲に限定される。
ここで $n$ はステンシルバッファのビットプレーンの数である。
初期値は 0 である。
- mask
-
マスクを指定する。
この値は、テストを行う際に、参照値および格納されているステンシル値の両方
との AND が取られる。
初期値では全てのビットが 1 である。
説明
ステンシル処理では(深さバッファリングと同じように)
描画の有効/無効がピクセルごとに切替えられる。
まず GL の描画プリミティブを使ってステンシルプレーンに描画し、
次に幾何形状やイメージをレンダリングする。
この際にステンシルプレーンが使われ、スクリーンの一部をマスクして
描画しないようにされる。
ステンシル処理は普通はマルチパスレンダリングアルゴリズムを
使って特殊な効果を得るために使われる。
例えば、転写、輪郭線抽出、CSG (constructive solid geometry) レンダリング
などである。
ステンシルテストは、参照値とステンシルバッファ内の値の比較結果に
基づいて、条件的にピクセルを削除する。
ステンシルテストを有効または無効にするには、
glEnable および glDisable を引き数を
指定して GL_STENCIL_TEST を呼ぶ。
ステンシルテストの結果に従って起こる動作を指定するには
glStencilOp を呼ぶ。
func はステンシル比較関数を決めるシンボル定数である。
この引き数には、後述のリストに示す 8 つの値を指定できる。
ref は参照値となる整数値であり、ステンシル比較に使われる。
この値は [0,$2 sup n - 1$] の範囲に限定される。
ここで $n$ はステンシルバッファのビットプレーン数である。
mask は参照値と格納されているステンシル値の両方とビットごとの
AND が取られ、AND を取られた値が比較に使われる。
stencil が、対象となるステンシルバッファの位置に
格納されている値を表している場合、
以下のリストは func で指定できるそれぞれの比較関数の効果を
表す。
比較が成功した場合に限り、ピクセルはラスタライズ処理の次の段階に
進む(glStencilOp を参照)。
全てのテストは stencil の値を [0,$2 sup n - 1$] の範囲を持つ
符号無し整数値として扱う。
ここで $n$ はステンシルバッファのビットプレーン数である。
func には以下の値を指定できる:
- GL_NEVER
-
必ず失敗する。
- GL_LESS
-
( ref & mask ) < ( stencil & mask )
の場合に通過する。
- GL_LEQUAL
-
( ref & mask ) < ( stencil & mask )
の場合に通過する。
- GL_GREATER
-
( ref & mask ) > ( stencil & mask )
の場合に通過する。
- GL_GEQUAL
-
( ref & mask ) > ( stencil & mask )
の場合に通過する。
- GL_EQUAL
-
( ref & mask ) = ( stencil & mask )
の場合に通過する。
- GL_NOTEQUAL
-
( ref & mask ) != ( stencil & mask )
の場合に通過する。
- GL_ALWAYS
-
必ず通過する。
注意
初期状態ではステンシルテストは無効状態である。
ステンシルバッファがない場合には、ステンシルバッファの修正は
起こることがなく、ステンシルテストが必ず通過するような動作をする。
エラー
GL_INVALID_ENUM:
func が指定可能な 8 つの値のいずれでもない場合に起こる。
GL_INVALID_OPERATION:
glBegin と、その対になる glEnd の間で
glStencilFunc が実行されると起こる。
関連する取得値
引き数 GL_STENCIL_FUNC を指定した glGet
引き数 GL_STENCIL_VALUE_MASK を指定した glGet
引き数 GL_STENCIL_REF を指定した glGet
引き数 GL_STENCIL_BITS を指定した glGet
引き数 GL_STENCIL_TEST を指定した glIsEnabled
関連項目
glAlphaFunc(3G),
glBlendFunc(3G),
glDepthFunc(3G),
glEnable(3G),
glIsEnabled(3G),
glLogicOp(3G),
glStencilOp(3G)
Index
- 名前
-
- 書式
-
- 引き数
-
- 説明
-
- 注意
-
- エラー
-
- 関連する取得値
-
- 関連項目
-
Time: 07:01:11 GMT, January 12, 2009