glLightiv 関数
glLightiv 関数は、光源パラメーター値を返します。
構文
void WINAPI glLightiv(
GLenum light,
GLenum pname,
const GLint *params
);
パラメーター
-
light
-
ライトの識別子。 使用可能なライトの数は実装によって異なりますが、少なくとも 8 つのライトがサポートされています。 これらは、i GL_LIGHT形式のシンボリック名によって識別されます。ここで、i は値 0 から GL_MAX_LIGHTS - 1 です。
-
pname
-
ライト の光源パラメーター。 次のシンボリック名を使用できます。
値 説明 - GL_AMBIENT
params パラメーターには、光のアンビエント RGBA 強度を指定する 4 つの整数値が含まれています。 整数値は、最も正の表現可能な値が 1.0 にマップされ、最も負の表現可能な値が -1.0 にマップされるように線形的にマップされます。 浮動小数点値は直接マップされます。 整数も浮動小数点値もクランプされません。 既定のアンビエント ライトの強度は (0.0、0.0、0.0、1.0) です。 - GL_DIFFUSE
params パラメーターには、光の拡散 RGBA 強度を指定する 4 つの整数値が含まれています。 整数値は、最も正の表現可能な値が 1.0 にマップされ、最も負の表現可能な値が -1.0 にマップされるように線形的にマップされます。 浮動小数点値は直接マップされます。 整数も浮動小数点値もクランプされません。 既定の拡散強度は、ライト 0 以外のすべてのライトに対して (0.0、0.0、0.0、1.0) です。 ライト ゼロの既定の拡散強度は (1.0、1.0、1.0、1.0)です。 - GL_SPECULAR
params パラメーターには、光の反射 RGBA 強度を指定する 4 つの整数値が含まれています。 整数値は、最も正の表現可能な値が 1.0 にマップされ、最も負の表現可能な値が 1.0 にマップされるように線形的にマップされます。 浮動小数点値は直接マップされます。 整数も浮動小数点値もクランプされません。 既定の反射強度は、ライト 0 以外のすべてのライトに対して (0.0、0.0、0.0、1.0) です。 ライト 0 の既定の反射強度は (1.0、1.0、1.0、1.0) です。 - GL_POSITION
params パラメーターには、同種のオブジェクト座標におけるライトの位置を指定する 4 つの整数値が含まれています。 整数と浮動小数点の両方の値が直接マップされます。 整数も浮動小数点値もクランプされません。
位置は、 glLightiv が呼び出されたときに modelview マトリックスによって変換され (ポイントの場合と同様)、視線座標に格納されます。 位置の w 成分が 0.0 の場合、ライトは方向ソースとして扱われます。 拡散光と反射照明の計算では、ライトの方向は考慮されませんが、実際の位置は考慮されず、減衰は無効になります。 それ以外の場合、拡散光と反射照明の計算は、目の座標におけるライトの実際の位置に基づいて計算され、減衰が有効になります。 既定の位置は (0,0,1,0) です。したがって、既定の光源は方向、平行、-z 軸の方向になります。- GL_SPOT_DIRECTION
params パラメーターには、光の方向を同種のオブジェクト座標で指定する 3 つの整数値が含まれています。 整数と浮動小数点の両方の値が直接マップされます。 整数も浮動小数点値もクランプされません。
スポット方向は、 glLightiv が呼び出されたとき (通常の場合と同様に) モデルビュー 行列の逆関数によって変換され、視線座標に格納されます。 これは、GL_SPOT_CUTOFFが 180 ではなく、既定で有効な場合にのみ重要です。 既定の方向は (0,0,1) です。- GL_SPOT_EXPONENT
params パラメーターは、光の強度分布を指定する単一の整数値です。 整数と浮動小数点の値は直接マップされます。 [0, 128] の範囲内の値のみが受け入れられます。
有効な光強度は、光の方向と光から点灯する頂点までの方向との間の角度のコサインによって減衰し、スポット指数の累乗に上昇します。 したがって、スポット指数が高いほど、スポットカットオフ角に関係なく、より焦点を絞った光源が得られます。 既定のスポット指数は 0 で、均一な光分布になります。- GL_SPOT_CUTOFF
params パラメーターは、光源の最大拡散角度を指定する単一の整数値です。 整数と浮動小数点の値は直接マップされます。 [0, 90] の範囲内の値と特殊な値 180 のみが受け入れられます。
ライトの方向とライトが点灯する頂点までの方向の角度がスポット カットオフ角度よりも大きい場合、ライトは完全にマスクされます。 それ以外の場合、その強度はスポット指数と減衰係数によって制御されます。 既定のスポット カットオフは 180 で、均一な光分布になります。- GL_CONSTANT_ATTENUATION、GL_LINEAR_ATTENUATION、GL_QUADRATIC_ATTENUATION
params パラメーターは、3 つの光減衰係数のいずれかを指定する単一の整数値です。 整数と浮動小数点の値は直接マップされます。 負でない値のみが受け入れられます。
光が方向ではなく位置的である場合、その強度は、定数係数、光と頂点の間の距離を乗算した線形係数、および同じ距離の二乗係数の和の逆数によって減衰します。 既定の減衰係数は (1,0,0) であり、減衰はありません。 -
params
-
光源ライトの pname パラメーターを設定する値を指定します。
戻り値
この関数は値を返しません。
エラー コード
glGetError 関数では、次のエラー コードを取得できます。
名前 | 意味 |
---|---|
|
light または pname が受け入れ可能な値ではなかった。 |
|
スポット指数値が [0, 128] の範囲外で指定されたか、スポットカットオフが [0, 90] の範囲外 (特殊値 180 を除く) で指定されたか、負の減衰係数が指定されました。 |
|
glBegin の呼び出しと glEnd の対応する呼び出しの間に関数が呼び出されました。 |
注釈
glLightiv 関数は、個々の光源パラメーターの値または値を設定します。 light パラメーターはライトに名前を付け、i GL_LIGHT形式のシンボリック名です。ここで、0 = i< GL_MAX_LIGHTS。
pname パラメーターは、いずれかの光源パラメーターをシンボリック名で指定します。 params パラメーターは、1 つの値であるか、新しい値を含む配列へのポインターです。
引数GL_LIGHTINGで glEnable と glDisable を使用して、照明計算を有効または無効にします。 照明を有効にすると、有効になっている光源が照明計算に貢献します。 光源 i は、引数 i で glEnable と glDisable を使用して有効および無効GL_LIGHT。
i = GL_LIGHT0 +i をGL_LIGHTする場合は常 にです。
次の関数は 、glLightiv 関数に関連する情報を取得します。
glIsEnabled と引数 GL_LIGHTING
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows 2000 Server [デスクトップ アプリのみ] |
ヘッダー |
|
ライブラリ |
|
[DLL] |
|