glLightfv 関数

glLightfv 関数は、光源パラメーター値を返します。

構文

void WINAPI glLightfv(
         GLenum  light,
         GLenum  pname,
   const GLfloat *params
);

パラメーター

light

ライトの識別子。 使用可能なライトの数は実装によって異なりますが、少なくとも 8 つのライトがサポートされています。 これらは、i GL_LIGHT形式のシンボリック名によって識別されます。ここで、i は値 0 から GL_MAX_LIGHTS - 1 です。

pname

ライトの光源パラメーター。 次のシンボリック名を使用できます。

説明
GL_AMBIENT
params パラメーターには、光のアンビエント RGBA 強度を指定する 4 つの浮動小数点値が含まれています。 浮動小数点値は直接マップされます。 整数値も浮動小数点値もクランプされません。 既定のアンビエント ライトの強度は (0.0、0.0、0.0、1.0) です。
GL_DIFFUSE
params パラメーターには、ライトの拡散 RGBA 強度を指定する 4 つの浮動小数点値が含まれています。 浮動小数点値は直接マップされます。 整数値も浮動小数点値もクランプされません。 既定の拡散強度は、ライト 0 以外のすべてのライトに対して (0.0、0.0、0.0、1.0) です。 ライト ゼロの既定の拡散強度は (1.0、1.0、1.0、1.0) です。
GL_SPECULAR
params パラメーターには、光の反射 RGBA 強度を指定する 4 つの浮動小数点値が含まれています。 浮動小数点値は直接マップされます。 整数値も浮動小数点値もクランプされません。 既定の反射強度は、ライト 0 以外のすべてのライトに対して (0.0、0.0、0.0、1.0) です。 ライト ゼロの既定の反射強度は (1.0、1.0、1.0、1.0) です。
GL_POSITION
params パラメーターには、同種のオブジェクト座標でライトの位置を指定する 4 つの浮動小数点値が含まれています。 整数と浮動小数点の両方の値が直接マップされます。 整数値も浮動小数点値もクランプされません。
位置は、 glLightfv が呼び出されたとき (ポイントと同じように) モデルビュー 行列によって変換され、目の座標に格納されます。 位置の w 成分が 0.0 の場合、光源は方向ソースとして扱われます。 拡散光と反射照明の計算では、ライトの方向は考慮されますが、実際の位置は考慮されず、減衰は無効になります。 それ以外の場合、拡散光と反射照明の計算は、目の座標におけるライトの実際の位置に基づいて計算され、減衰が有効になります。 既定の位置は (0,0,1,0) です。したがって、既定の光源は方向、平行、-z 軸の方向です。
GL_SPOT_DIRECTION
params パラメーターには、光の方向を同種のオブジェクト座標で指定する 3 つの浮動小数点値が含まれています。 整数と浮動小数点の両方の値が直接マップされます。 整数値も浮動小数点値もクランプされません。
スポット方向は、 glLightfv が呼び出されたとき (通常の場合と同じように) モデルビュー 行列の逆関数によって変換され、目の座標に格納されます。 これは、GL_SPOT_CUTOFFが 180 ではない場合にのみ重要です。これは既定です。 既定の方向は (0,0,1) です。
GL_SPOT_EXPONENT
params パラメーターは、ライトの強度分布を指定する単一の浮動小数点値です。 整数と浮動小数点の値は直接マップされます。 [0, 128] の範囲内の値のみが受け入れられます。
有効な光強度は、光の方向と光の方向から光の頂点までの方向との間の角度のコサインによって減衰し、スポット指数の累乗に上昇します。 したがって、スポット指数が大きいほど、スポットカットオフ角度に関係なく、より焦点を合わせる光源が得られます。 既定のスポット指数は 0 で、均一な配光になります。
GL_SPOT_CUTOFF
params パラメーターは、光源の最大拡散角度を指定する 1 つの浮動小数点値です。 整数と浮動小数点の値は直接マップされます。 [0, 90] の範囲内の値と特殊な値 180 のみが受け入れられます。
ライトの方向とライトが点灯する頂点までの方向の角度がスポット カットオフ角度よりも大きい場合、ライトは完全にマスクされます。 それ以外の場合、その強度はスポット指数と減衰係数によって制御されます。 既定のスポット カットオフは 180 で、均一な配光になります。
GL_CONSTANT_ATTENUATION、GL_LINEAR_ATTENUATION、GL_QUADRATIC_ATTENUATION
params パラメーターは、3 つの光減衰係数のいずれかを指定する単一の浮動小数点値です。 整数と浮動小数点の値は直接マップされます。 負でない値のみが受け入れられます。
光が方向ではなく位置的である場合、その強度は、定数係数、光と頂点の間の距離を乗算した線形係数、および同じ距離の二乗係数の和の逆数によって減衰します。 既定の減衰係数は (1,0,0) であるため、減衰はありません。

params

光源光源のpname パラメーターの値を設定します。

戻り値

この関数は値を返しません。

エラー コード

glGetError 関数では、次のエラー コードを取得できます。

Name 意味
GL_INVALID_ENUM
light または pname が受け入れられた値ではありません。
GL_INVALID_VALUE
スポット指数値が [0, 128] の範囲外で指定されたか、またはスポット カットオフが [0, 90] の範囲外で指定された (特殊な値 180 を除く)、または負の減衰係数が指定されました。
GL_INVALID_OPERATION
この関数は、 glBegin の呼び出しと glEnd の対応する呼び出しの間で呼び出されました。

注釈

glLightfv 関数は、個々の光源パラメータの値または値を設定します。 light パラメーターは light という名前を付け、i GL_LIGHT形式のシンボル名です。ここで、0 = i< GL_MAX_LIGHTS。

pname パラメーターは、いずれかの光源パラメーターをシンボリック名で指定します。 params パラメーターは、単一の値か、新しい値を含む配列へのポインターです。

引数 GL_LIGHTING で glEnableglDisable を使用して照明計算を有効または無効にします。 照明を有効にすると、有効になっている光源が照明計算に寄与します。 光源 i は、引数 i で glEnableglDisable を使用して有効または無効GL_LIGHT。

i = GL_LIGHT0 +i をGL_LIGHTする場合は常 にです

次の関数は 、glLightfv 関数に関連する情報を取得します。

glGetLight

glIsEnabled with argument GL_LIGHTING

要件

要件
サポートされている最小のクライアント
Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー
Windows 2000 Server [デスクトップ アプリのみ]
ヘッダー
Gl.h
ライブラリ
Opengl32.lib
[DLL]
Opengl32.dll

こちらもご覧ください

glBegin

glColorMaterial

glEnd

glLightModel

glMaterial