次の方法で共有


glLightModelf 関数

glLightModelf 関数は、照明モデルのパラメーターを設定します。

構文

void WINAPI glLightModelf(
   GLenum  pname,
   GLfloat *param
);

パラメーター

pname

単一値照明モデル パラメーター。 次の値を使用できます。

説明
GL_LIGHT_MODEL_LOCAL_VIEWER
param パラメーターは、反射反射角度の計算方法を指定する 1 つの浮動小数点値です。 param が 0 (または 0.0) の場合、反射反射角度は、視線座標内の頂点の位置に関係なく、-z 軸の方向と平行になるようにビューの方向を取ります。 それ以外の場合、反射反射は視線座標系の原点から計算されます。 既定値は 0 です。
GL_LIGHT_MODEL_TWO_SIDE
param パラメーターは、ポリゴンに対して片側または両面の照明計算を行うかどうかを指定する 1 つの浮動小数点値です。 ポイント、線、またはビットマップの照明計算には影響しません。 param が 0 (または 0.0) の場合は、片面照明が指定され、照明式では前面の材料パラメータのみが使用されます。 それ以外の場合は、両面照明が指定されます。
この場合、背面のポリゴンの頂点はバック マテリアル パラメータを使用して点灯し、照明方程式が評価される前に法線が反転します。 正面向きのポリゴンの頂点は常に前面マテリアル パラメータを使用して点灯し、法線に変更はありません。 既定値は 0 です。

param

パラメーターを設定する値。

戻り値

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

エラー コード

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

名前 意味
GL_INVALID_ENUM
pname は受け入れ可能な値ではありません。
GL_INVALID_OPERATION
glBegin の呼び出しと glEnd の対応する呼び出しの間に関数が呼び出されました。

解説

glLightModelf 関数は、照明モデル パラメーターを設定します。 pname パラメーターはパラメーターに名前を付け、param は新しい値を指定します。個々の光源パラメーターの値または値を指定します。

RGBA モードでは、頂点の明るい色は、マテリアルの発光強度、マテリアルのアンビエント反射率と照明モデルのフルシーンアンビエント強度の積、および各有効な光源の寄与の合計です。 各光源は、アンビエント、拡散、反射の 3 つの用語の合計を提供します。

  • 環境光源の寄与は、材料のアンビエント反射率と光の周囲強度の積です。
  • 拡散光源の寄与は、マテリアルの拡散反射率、光の拡散強度、頂点から光源への正規化されたベクトルを使用した頂点の法線のドット積の積です。
  • 反射光源の寄与は、マテリアルの反射反射率、光の反射強度、正規化された頂点対目ベクトルと頂点対光ベクトルのドット積の積であり、マテリアルの輝きの力に上昇します。

3 つの光源コントリビューションはすべて、頂点から光源までの距離と光源方向、拡散指数、および拡散カットオフ角に基づいて等しく減衰されます。 負の値に評価された場合、すべてのドット積は 0 に置き換えられます。

得られた明るい色のアルファ成分は、材料の拡散反射率のアルファ値に設定される。

カラー インデックス モードでは、頂点の明るいインデックスの値は、アンビエントから、GL_COLOR_INDEXESを使用して glMaterial に渡される反射値までです。 拡散係数と反射係数は、光の色の重み付け (.30、.59、.11)、マテリアルの光沢度、RGBA の場合と同じ反射と減衰の方程式で計算され、結果として得られるインデックスの周囲のどのくらい上にあるかを決定します。

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

引数GL_LIGHT_MODEL_LOCAL_VIEWERを含む glGet

引数GL_LIGHT_MODEL_TWO_SIDEを含む glGet

glIsEnabled と引数 GL_LIGHTING

必要条件

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

関連項目

glBegin

glEnd

glLight

glMaterial