次の方法で共有


glLightModeli 関数

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

構文

void WINAPI glLightModeli(
   GLenum pname,
   GLint  param
);

パラメーター

pname

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

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

param

param が設定される値。

戻り値

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

エラー コード

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

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

解説

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

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

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

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

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

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

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

glGet と引数 GL_LIGHT_MODEL_LOCAL_VIEWER

glGet と引数 GL_LIGHT_MODEL_TWO_SIDE

glIsEnabled with argument GL_LIGHTING

必要条件

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

関連項目

glBegin

glEnd

glLight

glMaterial