聚光燈:在定點光源的基礎加上光線輻射方向,因此光線呈圓錐.
聚光燈參數 | 範圍 | 簡介 |
GL_SPOT_DIRECTION | (x,y,z) | 聚光燈指向/方向3D矢量
默認值:(0,0,-1) |
GL_SPOT_EXPONENT | 0-128 | 焦點/指數:光線從焦點到圓錐的邊界,光的強度不斷衰減,直到邊界消失.
指數越大焦點越小 指數越小焦點越大 |
GL_SPOT_CUTOFF | 0.1-90 | 圓錐面與指向軸的角度(圓錐角),所以聚光燈的張角為圓錐角的2倍.
張角=圓錐角*2 |
聚光燈函式使用示例
- float Spot_Direction[] = {0f,0.0f,-1,0.0f}; // 聚光燈的指向
- float Light_Ambient[] = {0f,1.0f,1.0f,1.0f};// 環境光
- float Light_Diffuse[] = {0f,1.0f,1.0f,1.0f};// 散射光
- float Light_Position[] = {0f,0.0f,1.0f,1.0f};// 光源位置
- glEnable(GL_LIGHTING); // 啟用光照
- glLightfv(light,GL_AMBIENT, Light_Ambient);// 環境光分量
- glLightfv(light,GL_DIFFUSE, Light_Diffuse);// 散射光分量
- glLightfv(light,GL_POSITION,Light_Position);// 光源位置
- glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 0f); // 設置聚光燈的角度
- glLightfv(GL_LIGHT0,GL_SPOT_DIRECTION, Spot_Direction); // 設置聚光燈的
- glLightf(GL_LIGHT0, GL_SPOT_EXPONENT, 0f); // 設置聚光燈的指數
- glEnable(GL_LIGHT0); // 啟用燈光
聚光燈程式示例,可分別設定張角與焦點.下載
- 按(/)鍵增加或減小聚光燈焦點指數
- 按[/]鍵增加或減小聚光燈張角
- 按+/-鍵增加或減小聚光燈亮度
- 按SPACE(空格)鍵啟用或禁用聚光燈
- 按UP/DOWN鍵正方體繞X軸旋轉
- 按LEFT/RIGHT鍵正方體繞Y軸旋轉
- 按F1鍵打開幫助
- 按ESC鍵重置聚光燈參數