GLCOPYCONVOLUTIONFILTER1D
Section: Misc. Reference Manual Pages (3G)
索引
xjman
名前
glCopyConvolutionFilter1D
- 1 次元の畳み込みフィルタにピクセルをコピーする
書式
void glCopyConvolutionFilter1D(
GLenum target,
GLenum internalformat,
GLint x,
GLint y,
GLsizei width )
引き数
- target
-
GL_CONVOLUTION_1D でなければならない。
- internalformat
-
畳み込みフィルタカーネルの内部フォーマット。
以下の値のいずれかを指定できる:
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
- x, y
-
コピーするピクセル配列のウィンドウ空間座標。
左下の座標を指定する。
- width
-
コピーするピクセル配列の幅。
説明
glCopyConvolutionFilter1D は、1 次元の畳み込みフィルタカーネル
を定義する。
このフィルタカーネルは、現在の GL_READ_BUFFER から取り出した
ピクセルを持つ(取り出す先はメインメモリではない。これは
glConvolutionFilter1D の場合と同じである)。
画面用に整列されたピクセル矩形を使って畳み込みフィルタが定義される。
この矩形は左下隅の座標が (x, y), 幅が width, 高さが 1 である。
この領域にあるピクセルのいずれかが、GL コンテクストに関連付けられた
ウィンドウの外にある場合には、そのピクセルについて得られる値は未定義である。
矩形領域に含まれるピクセルは、glReadPixels の引き数
format に RGBA を指定して呼び出したときとほぼ同じように処理される。
ただし、最後の変換の直前に処理が終わる点が異なる。
次に、ピクセルの R, G, B, A 要素は
4 個の 1D GL_CONVOLUTION_FILTER_SCALE パラメータによってスケール処理され、
4 個の 1D GL_CONVOLUTION_FILTER_BIAS パラメータによってバイアス処理される。
(スケールパラメータとバイアスパラメータは
glConvolutionParameter を使って設定する。この際には
対象 GL_CONVOLUTION_1D と名前
GL_CONVOLUTION_FILTER_SCALE および GL_CONVOLUTION_FILTER_BIAS
が使われる。)
パラメータそのものは 4 つの値を持つベクトルを集めたもので、
4 つの値は赤、緑、青、アルファ値に適用される。順序は名前を挙げた順である。)
R, G, B, A 値は、この処理におけるどの時点でも [0,1] の範囲への
制限は行われない。
次に各ピクセルは internalformat で指定した内部フォーマットに変換される。
この変換は単にピクセルの要素値(R, G, B, A)を内部フォーマットに
含まれる値(赤、緑、青、アルファ値、輝度、強度)にマッピングするだけである。
マッピングは次の通りである:
|
内部フォーマット | 赤 | 緑 | 青 | アルファ値 | 輝度 | 強度
|
|
GL_ALPHA | | | | A | |
|
GL_LUMINANCE | | | | R | |
|
GL_LUMINANCE_ALPHA | | | A | R | |
|
GL_INTENSITY | | | | | | R
|
GL_RGB | R | G | B | | |
|
GL_RGBA | R | G | B | A | |
|
|
結果として得られるピクセルの赤、緑、青、アルファ値、輝度、強度の各要素は、
整数値ではなく、浮動小数点値で格納される。
ピクセルの並び順は、スクリーン座標の x が小さい方が
フィルタのイメージ座標の i の小さい方に対応する。
変換が実行された後、結果として得られる色要素も
対応する GL_POST_CONVOLUTION_c_SCALE パラメータによってスケール処理され、
対応する GL_POST_CONVOLUTION_c_BIAS パラメータによってバイアス処理される
(ここで c が取る値は RED, GREEN, BLUE, ALPHA の
いずれかである)。
これらのパラメータは glPixelTransfer を使って設定する。
注意
glCopyConvolutionFilter1D が存在するのは、
引き数 GL_EXTENSIONS を指定して glGetString を呼んだ際に
GL_ARB_imaging が返される場合だけである。
エラー
GL_INVALID_ENUM:
target が GL_CONVOLUTION_1D でない場合に起こる。
GL_INVALID_ENUM:
internalformat が指定可能な値のいずれでもない場合に起こる。
GL_INVALID_VALUE:
width が 0 より小さい場合、または対応している最大値より大きい場合に起こる。
この最大値は glGetConvolutionParameter を使って問い合わせることができる。
この際の対象は GL_CONVOLUTION_1D, 名前は GL_MAX_CONVOLUTION_WIDTH である。
GL_INVALID_OPERATION:
glBegin と、その対になる glEnd の間で
glCopyConvolutionFilter1D が実行されると起こる。
関連する取得値
glGetConvolutionParameter, glGetConvolutionFilter
関連項目
glConvolutionFilter1D(3G),
glConvolutionParameter(3G),
glPixelTransfer(3G)
Index
- 名前
-
- 書式
-
- 引き数
-
- 説明
-
- 注意
-
- エラー
-
- 関連する取得値
-
- 関連項目
-
Time: 07:01:06 GMT, January 12, 2009