GLFOG

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

名前

glFogf, glFogi, glFogfv, glFogiv - フォグ処理のパラメータを指定する

 

書式

void glFogf( GLenum pname,

               GLfloat param )
void glFogi( GLenum pname,

               GLint param )

delim $$  

引き数

pname
フォグ処理のパラメータを指定する。 値は符号付きの値であり、 GL_FOG_MODE, GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END, GL_FOG_INDEX のいずれかを指定できる。
param
pname に設定する値を指定する。
 

書式

void glFogfv( GLenum pname,

                const GLfloat *params )
void glFogiv( GLenum pname,

                const GLint *params )

 

引き数

pname
フォグ処理のパラメータを指定する。 GL_FOG_MODE, GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END, GL_FOG_INDEX, GL_FOG_COLOR を指定できる。
params
pname に割り当てる値(複数の場合もある)を指定する。 GL_FOG_COLOR の場合は 4 つの値からなる配列が必要である。 他のパラメータでは、値をひとつだけ持つ配列を指定できる。
 

説明

フォグ処理は初期状態では無効にされている。 有効である場合、フォグ処理はラスタライズされる 幾何形状、ビットマップ、ピクセルブロックに影響を与える。 ただしバッファのクリア操作には影響を与えない。 フォグ処理を有効または無効にするには、 glEnableglDisable に引き数 GL_FOG を 与えて呼ぶ。 glFog は、f2params に格納されている値(複数の場合もある)を pname で指定されたフォグ処理パラメータに割り当てる。 pname には以下の値を指定できる:
GL_FOG_MODE
params はひとつの整数値または浮動小数点値である。 この値はフォグのブレンド係数 $f$ を計算するために使う式を指定する。 シンボル定数 GL_LINEAR, GL_EXP, GL_EXP2 を指定できる。 これらのシンボル係数に対応する式は以下のように定義されている。 初期状態でのフォグ処理のモードは GL_EXP である。
GL_FOG_DENSITY
params は 1 個の整数値または浮動小数点値である。 この値は指数的フォグ処理式の両方で使われる フォグの密度($density$)を指定する。 負でない値しか指定できない。 フォグ密度の初期値は 1 である。
GL_FOG_START
params は 1 個の整数値または浮動小数点値である。 この値は線形フォグ処理式で使われるニア平面への距離($start$)を 指定する。 ニア平面への距離の初期値は 0 である。
GL_FOG_END
params は 1 個の整数値または浮動小数点値である。 この値は線形フォグ処理式で使われるファー平面への距離($end$)を 指定する。 ファー平面への距離の初期値は 1 である。
GL_FOG_INDEX
params は 1 個の整数値または浮動小数点値である。 この値はフォグの色インデックス($i sub f$)を指定する。 フォグの色インデックスの初期値は 0 である。
GL_FOG_COLOR
params は 4 個の整数値または浮動小数点値である。 これら値はフォグの色(. 整数値のマッピングは、表現可能な正の最大値が 1.0 にマップとなり、 表現可能な負の最小値が -1.0 となるように線形に行われる。 浮動小数点値は直接マッピングされる。 変換後には、全ての色要素は [0,1] の範囲に収められる。 フォグの色の初期値は (0, 0, 0, 0) である。 フォグ処理では、フォグ色に対し、ラスタライズされたピクセル細片の テクスチャ処理後の各色が混合される。 混合の際にはブレンド係数 $f$ が使われる。 係数 $f$ を計算する方法は 3 つある。 どの方法が使われるのかはフォグ処理のモードによって決まる。 $z$ を視点座標系における原点からフォグ処理される細片への距離とする。 GL_LINEAR フォグ処理の場合の式は

f ~=~ {end ~-~ z} over {end ~-~ start}

となる。 GL_EXP フォグ処理の場合の式は


f ~=~ e sup {-^(density ~cdot~ z)}

となる。 GL_EXP2 フォグ処理の式は


f ~=~ e sup {-^(density ~cdot~ z)} sup 2

となる。 フォグ処理のモードに関係なく、$f$ は計算後には [0, 1] の 範囲に収められる。 次に、GL が RGBA 色モードの場合には、 細片の R, G, B 色($C sub r$ で表現される)は


{C sub r} sup prime ~=~ f^C sub r ~+~ (1 - f)^C sub f

で置き換えられる。 フォグ処理は細片のアルファ要素には影響を与えない。 色インデックスモードでは、細片の色インデックス $i sub r$ は


{i sub r} sup prime ~=~ i sub r ~+~ (1 - f)^i sub f

で置き換えられる。

 

エラー

GL_INVALID_ENUM: pname の値が不正である場合に起こる。 pnameGL_FOG_MODE であり、かつ params の 値が不正な場合にも起こる。 GL_INVALID_VALUE: pnameGL_FOG_DENSITY であり、かつ params が 負の値の場合に起こる。 GL_INVALID_OPERATION: glBegin と、その対になる glEnd の間で glFog が実行されると起こる。  

関連する取得値

引き数 GL_FOG を指定した glIsEnabled
引き数 GL_FOG_COLOR を指定した glGet
引き数 GL_FOG_INDEX を指定した glGet
引き数 GL_FOG_DENSITY を指定した glGet
引き数 GL_FOG_START を指定した glGet
引き数 GL_FOG_END を指定した glGet
引き数 GL_FOG_MODE を指定した glGet  

関連項目

glEnable(3G)


 

Index

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

jman



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