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

要設定 參數 的值。

傳回值

此函式不會傳回值。

錯誤碼

glGetError函式可以擷取下列錯誤碼。

名稱 意義
GL_INVALID_ENUM
pname 不是可接受的值。
GL_INVALID_OPERATION
函式是在 對 glBegin 的呼叫和 glEnd的對應呼叫之間呼叫。

備註

glLightModeli函式會設定光源模型參數。 pname參數會為參數命名,而param會提供新的值。個別光源參數的值或值。

在 RGBA 模式中,頂點的淺色是材質發出濃度的總和、材質環境反射的乘積和光源模型全場景環境強度,以及每個啟用的光源來源的貢獻。 每個光源都會提供三個詞彙的總和:環境、擴散和反射。

  • 環境光源貢獻是材料環境反射和光線的環境濃度乘積。
  • 擴散光源貢獻是材質擴散反射的乘積、光線的擴散強度,以及頂點的常態乘積,以及從頂點到光源的標準化向量。
  • 反射光源貢獻是材質反射的乘積、光線的反射強度,以及正規化頂點對眼和頂點對光線向量的點乘積,會提升至材質的光亮能力。

這三個光源貢獻都會根據頂點到光源的距離,以及光源方向、散佈指數和切割角度,平均衰減。 如果所有點產品評估為負值,則會以零取代。

所產生淺色的 Alpha 元件會設定為材質擴散反射的 Alpha 值。

在色彩索引模式中,頂點的淺色索引值範圍從環境到使用 GL_COLOR_INDEXES傳遞至 glMaterial 的反射值。 擴散和反射係數,使用 (.30、.59、.11) 光線色彩的加權、材質的光亮度,以及與 RGBA 案例相同的反射和衰減方程式,決定產生的索引高於環境。

下列函式會擷取 與 glLightModeli 函式相關的資訊:

glGet with argument GL_LIGHT_MODEL_LOCAL_VIEWER

glGet with argument 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