GLCONVOLUTIONFILTER1D

Section: Misc. Reference Manual Pages (3G)
索引 xjman
 

名前

glConvolutionFilter1D - 一次元の畳み込みフィルタを定義する

 

書式

void glConvolutionFilter1D( GLenum target,

                              GLenum internalformat,
                              GLsizei width,
                              GLenum format,
                              GLenum type,
                              const GLvoid *image )

 

引き数

target
GL_CONVOLUTION_1D でなければならない。
internalformat
畳み込みフィルタのカーネルの内部フォーマット。 指定できる値は GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, GL_RGBA である。
width
image によって参照されるピクセル配列の幅。
format
image に格納されているピクセルデータのフォーマット。 指定できる値は GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16 である。
type
image に格納されているデータの型。 シンボル定数 GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, GL_UNSIGNED_INT_2_10_10_10_REV を指定できる。
image
ピクセルデータの 1 次元の配列を指すポインタ。 このデータを処理して畳み込みフィルタのカーネルを構築する。
 

説明

glConvolutionFilter1D は、ピクセルの配列から 1 次元の畳み込みフィルタのカーネルを構築する。

width, format, type, image によって 指定されたピクセルの配列はメモリから取り出されて処理される。 この処理では glDrawPixels を呼んだ場合と同様の処理がなされるが、 RGBA への最後の展開が完了すると処理が終了する。

次に、各ピクセルの R, G, B, A 要素は 4 個の 1D GL_CONVOLUTION_FILTER_SCALE パラメータによって スケール変換され、4 個の 1D GL_CONVOLUTION_FILTER_BIAS パラメータによって バイアス処理される。 (スケール変換およびバイアスパラメータは、 対象 GL_CONVOLUTION_1D および 名前 GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS を使って glConvolutionParameter を呼ぶことにより設定する。 これらのパラメータそのものは 4 個の値を持つベクトル群であり、 赤、緑、青、アルファ値に対してこの順で適用される。) R, G, B, A の値は、この処理のどの時点においても [0,1] の範囲に制限されることはない。

次に、各ピクセルは internalformat で指定された内部フォーマット に変換される。 この変換は単にピクセル(R, G, B, A)の要素値を 内部フォーマット(赤、緑、青、アルファ値、輝度、強度)に含まれている 値にマッピングするだけである。 マッピングは次のように行われる:


内部フォーマットアルファ値輝度強度

GL_ALPHAA
GL_LUMINANCER
GL_LUMINANCE_ALPHAAR
GL_INTENSITYR
GL_RGBRGB
GL_RGBARGBA

結果として得られるピクセルの赤、緑、青、アルファ値、輝度、強度成分は 整数値でなく、浮動小数点値で格納される。 これは 1 次元のフィルタカーネルイメージをなす。 また、このイメージは 座標 i によってインデックス付けされている。 i は 0 から始まり、左から右に行くにしたがって増加していく。 カーネル位置 i は 0 から数えて i 版目のピクセルから 求められる。

畳み込みが実行された後は、結果として得られる色要素も、 この畳み込みに対応する GL_POST_CONVOLUTION_c_SCALE パラメータによって スケール変換され、 GL_POST_CONVOLUTION_c_BIAS パラメータによって バイアス処理される点に注意すること(ここで cRED, GREEN, BLUE, ALPHA を値に取る)。 これらのパラメータは glPixelTransfer で設定する。  

注意

glConvolutionFilter1D が存在するのは、 glGetString に引き数 GL_EXTENSIONS を指定して 呼んだ際に GL_ARB_imaging が返される場合だけである。  

エラー

GL_INVALID_ENUM: targetGL_CONVOLUTION_1D でない場合に起こる。 GL_INVALID_ENUM: internalformat が指定可能な値のいずれでもない場合に起こる。 GL_INVALID_VALUE: width が 0 より小さいか、対応している最大値よりも大きい場合に起こる。 この最大値は、 対象 GL_CONVOLUTION_1D および 名前 GL_MAX_CONVOLUTION_WIDTH を指定した glGetConvolutionParameter を呼び出すことにより問い合わせできる。 GL_INVALID_ENUM: format が指定可能な値のいずれでもない場合に起こる。 GL_INVALID_ENUM: type が指定可能な値のいずれでもない場合に起こる。 GL_INVALID_OPERATION: glBegin と、その対になる glEnd の間で glConvolutionFilter1D が実行されると起こる。 P GL_INVALID_OPERATION: format の値が GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV のいずれかであり、かつ type の値が GL_RGB でない 場合に起こる。 GL_INVALID_OPERATION: format の値が GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, GL_UNSIGNED_INT_2_10_10_10_REV のいずれかであり、かつ typeGL_RGBAGL_BGRA のいずれでもない場合に起こる。  

関連する取得値

glGetConvolutionParameter, glGetConvolutionFilter  

関連項目

glConvolutionFilter2D(3G), glSeparableFilter2D(3G), glConvolutionParameter(3G), glPixelTransfer(3G)


 

Index

名前
書式
引き数
説明
注意
エラー
関連する取得値
関連項目

jman



Time: 07:01:05 GMT, January 12, 2009