GLCONVOLUTIONPARAMETER
Section: Misc. Reference Manual Pages (3G)
索引
xjman
名前
glConvolutionParameterf, glConvolutionParameteri, glConvolutionParameterfv, glConvolutionParameteriv
- 畳み込みのパラメータを設定する
書式
void glConvolutionParameterf(
GLenum target,
GLenum pname,
GLfloat params )
void glConvolutionParameteri(
GLenum target,
GLenum pname,
GLint params )
delim $$
引き数
- target
-
畳み込みパラメータの対象。
GL_CONVOLUTION_1D,
GL_CONVOLUTION_2D,
GL_SEPARABLE_2D
のいずれかでなければならない。
- pname
-
設定するパラメータ。
GL_CONVOLUTION_BORDER_MODE でなければならない。
- params
-
パラメータの値。
GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER
のいずれかでなければならない。
書式
void glConvolutionParameterfv(
GLenum target,
GLenum pname,
const GLfloat *params )
void glConvolutionParameteriv(
GLenum target,
GLenum pname,
const GLint *params )
引き数
- target
-
畳み込みパラメータの対象。
GL_CONVOLUTION_1D,
GL_CONVOLUTION_2D,
GL_SEPARABLE_2D
のいずれかでなければならない。
- pname
-
設定するパラメータ。
GL_CONVOLUTION_BORDER_MODE,
GL_CONVOLUTION_BORDER_COLOR,
GL_CONVOLUTION_FILTER_SCALE,
GL_CONVOLUTION_FILTER_BIAS
のいずれかでなければならない。
- params
-
パラメータの値。
pname が GL_CONVOLUTION_BORDER_MODE の場合、
params は GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER
のいずれかでなければならない。
それ以外の場合、params は 4 個の値(赤、緑、青、アルファ値)
を持つベクトルでなければならない。
このベクトルは、
畳み込みフィルタカーネルのスケーリング処理(pname が GL_CONVOLUTION_FILTER_SCALE の場合は)
または畳み込みフィルタカーネルのバイアス処理(pname が GL_CONVOLUTION_FILTER_BIAS の場合)、
定数境界色の設定 (pname が GL_CONVOLUTION_BORDER_COLOR の場合)のいずれかでなければならない。
説明
glConvolutionParameter は畳み込みパラメータの値を
設定する。
target は、影響を与える畳み込みフィルタを選択する:
1D フィルタの場合は GL_CONVOLUTION_1D,
2D フィルタの場合は GL_CONVOLUTION_2D,
分割可能 2D フィルタの場合は GL_SEPARABLE_2D
を指定する。
pname は変更するパラメータを指定する。
GL_CONVOLUTION_FILTER_SCALE と GL_CONVOLUTION_FILTER_BIAS
は畳み込みフィルタカーネルの定義に影響する。
詳しくは
glConvolutionFilter1D, glConvolutionFilter2D,
glSeparableFilter2D
を参照すること。
これらの場合、params は 4 つの値を持つ配列であり、
それぞれの値は赤、緑、青、アルファ値に適用される。
GL_CONVOLUTION_FILTER_SCALE に対する初期値は (1, 1, 1, 1) であり、
GL_CONVOLUTION_FILTER_BIAS に対する初期値は (0, 0, 0, 0) である。
GL_CONVOLUTION_BORDER_MODE の pname 値は、
畳み込みの境界モードを指定する。
以下の値を指定できる:
- GL_REDUCE
-
畳み込みの結果として得られるイメージは入力イメージより小さい。
フィルタの幅が $Wf$, 高さが $Hf$, 入力イメージの幅が $Ws$, 高さが $Hs$ ならば、
畳み込み処理されたイメージの幅は $Ws ~-~ Wf ~+~ 1$ となり、
高さは $Hs ~-~ Hf ~+~ 1$ となる。
(この縮小によりイメージの幅や高さが 0 以下になる場合、出力は単に
空になる。
エラーは出力されない。)
畳み込みの結果として得られるイメージの座標は、
幅方向では 0 から $Ws ~-~ Wf$ となり、
高さ方向では 0 から $Hs ~-~ Hf$ となる。
- GL_CONSTANT_BORDER
-
畳み込みの結果得られるイメージは入力イメージと同じサイズになる。
GL_CONVOLUTION_BORDER_COLOR で指定された色のピクセルで
入力イメージが囲まれるような処理が行われる。
- GL_REPLICATE_BORDER
-
畳み込みの結果得られるイメージは入力イメージと同じサイズになる。
入力イメージの境界の最も外側にあるピクセルが複製されるような処理が
行われる。
注意
glConvolutionParameter が存在するのは、
引き数 GL_EXTENSIONS を指定して glGetString を
呼んだ際に GL_ARB_imaging が返される場合だけである。
不正なディメンジョンの指定によりエラーが起こり得る場合、
チェックされるのは畳み込みの後のディメンジョンであり、
入力イメージのディメンジョンではない。
例えば、glTexImage1D はサイズが 2 の乗数であるイメージを要求する。
GL_REDUCE 境界モードが有効な場合、
入力イメージは最終の 2 の階乗のサイズのイメージより 1 大きくなければならず、
1D フィルタカーネルの大きさより小さくなければならない。
エラー
GL_INVALID_ENUM:
target が指定可能な値のいずれでもない場合に起こる。
GL_INVALID_ENUM:
pname が指定可能な値のいずれでもない場合に起こる。
GL_INVALID_ENUM:
pname が GL_CONVOLUTION_BORDER_MODE であり、かつ
params が GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER
のいずれでもない場合に起こる。
GL_INVALID_OPERATION:
glBegin と、その対になる glEnd の間で glConvolutionParameter が
実行された場合に起こる。
関連する取得値
glGetConvolutionParameter
関連項目
glConvolutionFilter1D(3G),
glConvolutionFilter2D(3G),
glSeparableFilter2D(3G),
glGetConvolutionParameter(3G)
Index
- 名前
-
- 書式
-
- 引き数
-
- 書式
-
- 引き数
-
- 説明
-
- 注意
-
- エラー
-
- 関連する取得値
-
- 関連項目
-
Time: 07:01:05 GMT, January 12, 2009