glLighti 函式
glLighti函式會傳回光源參數值。
void WINAPI glLighti(
GLenum light,
GLenum pname,
GLint param
);
-
light
-
光線的識別碼。 可能的光線數目取決於實作,但至少支援八個光線。 它們是以i 格式的符號名稱來識別 GL_LIGHT,其中 i 是值:0 到 GL_MAX_LIGHTS - 1。
-
pname
-
光線的單一值光源參數。 接受下列符號名稱。
值 意義 - GL_SPOT_EXPONENT
param參數是單一整數值,指定光線的強度分佈。 整數和浮點值會直接對應。 只接受範圍 [0, 128] 中的值。
有效的光線強度會受到光線方向與光線方向之間角度的余弦值衰減,從光線到頂點被光源的方向,提升至現成指數的乘冪。 因此,不論現成截斷角度為何,較高的現成指數都會產生更專注的光源。 預設的現成指數為 0,導致統一光線分佈。- GL_SPOT_CUTOFF
param參數是單一整數值,指定光源的最大散佈角度。 整數和浮點值會直接對應。 只接受範圍 [0, 90] 和特殊值 180 中的值。
如果光線方向與從光線到點點方向之間的角度大於特別剪下角度,則光線會完全遮罩。 否則,其強度是由現成指數和衰減因數所控制。 預設的現成截斷為 180,導致統一光線分佈。- GL_CONSTANT_ATTENUATION、GL_LINEAR_ATTENUATION、GL_QUADRATIC_ATTENUATION
param參數是單一整數值,指定三個光線衰減因數之一。 整數和浮點值會直接對應。 只接受非負值。
如果光線是位置,而不是方向,其強度會由總和的倒數衰減:常數因數、線性因數乘以光線與點之間的距離,而二次方因數乘以相同距離的平方。 預設衰減因數 (1,0,0) ,因此不會造成衰減。 -
param
-
指定將設定光源光源參數 pname的值。
此函式不會傳回值。
glGetError函式可以擷取下列錯誤碼。
名稱 | 意義 |
---|---|
|
light 或 pname 不是可接受的值。 |
|
指定的現成指數值超出範圍 [0, 128] 或現成截斷值超出範圍 [0, 90] (,但指定特殊值 180) ,或指定負衰減因數。 |
|
函式是在 對 glBegin 的呼叫和 glEnd的對應呼叫之間呼叫。 |
glLighti函式會設定個別光源參數的值或值。 light參數會將光線命名為 light,而且是 GL_LIGHTi形式的符號名稱,其中 0 = i< GL_MAX_LIGHTS。
pname參數會以符號名稱再次指定其中一個光源參數。 param參數是單一值或包含新值的陣列指標。
使用 glEnable 和 glDisable 搭配引數GL_LIGHTING啟用和停用光源計算。 啟用光源時,啟用的光源會參與光源計算。 使用glEnable和glDisable搭配引數 GL_LIGHT i 來啟用和停用光源i。
GL_LIGHTi = GL_LIGHT0 + i一律是這種情況。
下列函式會擷取 與 glLighti 函式相關的資訊:
glIsEnabled with argument GL_LIGHTING
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows 2000 Professional [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows 2000 Server [僅限桌面應用程式] |
標頭 |
|
程式庫 |
|
DLL |
|