2017年10月19日 星期四

LLF的計圖學習筆記_Week_06

函式:
啟用或禁用 GL服務端功能
void glEnable ( GLenum cap);
void glDisable ( GLenum cap);
cap:GL功能的符號常數

GL_DEPTH_TEST

如果啟用,將進行深度比較並更新depth buffer。
請注意,即使depth buffer存在且depth mask不為零,
如果深度測試被禁用,depth buffer也不會被更新。

GL_LIGHTi

如果啟用,將光源 i 加入光源方程式的計算中。

GL_LIGHTING

如果啟用且沒有vertex shader是活動狀態,使用目前的光源參數來計算頂點顏色或索引,
否則,只將目前的顏色或索引與每個頂點相關聯。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
設置光源參數
void glLightf ( GLenum lightGLenum pnameGLfloat param);
void glLighti ( GLenum lightGLenum pnameGLint param);
void glLightfv ( GLenum lightGLenum pnameconst GLfloat * params);
void glLightiv ( GLenum lightGLenum pname, const GLint * params);

light:指定一個光源(燈),燈的數量取決於implementation(最少支持8個燈),
由GL_LIGHT i作為名稱標示,i的範圍為0~GL_MAX_LIGHTS -1。

pname:指定光源的單值光源參數。
GL_SPOT_EXPONENT
GL_SPOT_CUTOFF
GL_CONSTANT_ATTENUATION
GL_LINEAR_ATTENUATION
GL_QUADRATIC_ATTENUATION
param:指定光源光的參數pname將被設置為的值。

pname:指定光源的光源參數。
GL_AMBIENT
GL_DIFFUSE
GL_SPECULAR
GL_POSITION:params包含四個整數或浮點值,用於指定光在坐標中的位置。
整數和浮點值直接映射,且都不被箝制。
GL_SPOT_CUTOFF
GL_SPOT_DIRECTION
GL_SPOT_EXPONENT
GL_CONSTANT_ATTENUATION
GL_LINEAR_ATTENUATION
GL_QUADRATIC_ATTENUATION
params:指定光源光的參數pname將被設置為的值或值的指標。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
函式:keyboardmouse
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
void glutPostRedisplay ( void) ;
將當前窗口標記為需要重新顯示

沒有留言:

張貼留言