OpenGL點光源

OpenGL點光源

ID:36737311

大?。?59.00 KB

頁數(shù):36頁

時間:2019-05-14

OpenGL點光源_第1頁
OpenGL點光源_第2頁
OpenGL點光源_第3頁
OpenGL點光源_第4頁
OpenGL點光源_第5頁
資源描述:

《OpenGL點光源》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫

1、OpenGL點光源????在OpenGL場景描述中可以包含多個點光源,光源的各種屬性設置使用函數(shù):???????voidglLight{if}(GLenumlight,GLenumpname,TYPEparam);???????voidglLight{if}v(GLenumlight,GLenumpname,TYPE*param);指定。其中,參數(shù)light指定進行參數(shù)設置的光源,其取值可以是符號常量GL_LIGHT0,GL_LIGHT1,…,GL_LIGHT7;參數(shù)pname指定對光源設置何種屬性,其取值參見表10-1;參數(shù)

2、param指定對于光源light的pname屬性設置何值,非矢量版本中,它是一個數(shù)值,矢量版本中,它是一個指針,指向一個保存了屬性值的數(shù)組。表10-1參數(shù)pname的取值及其含義???(1)點光源的顏色???點光源的顏色由環(huán)境光、漫反射光和鏡面光分量組合而成,在OpenGL中分別使用GL_AMBIENT、GL_DIFFUSE和GL_SPECULAR指定。其中,漫反射光成分對物體的影響最大。???(2)點光源的位置和類型???點光源的位置使用屬性GL_POSITION指定,該屬性的值是一個由4個值組成的矢量(x,y,z,w)。其

3、中,如果w值為0,表示指定的是一個離場景無窮遠的光源,(x,y,z)指定了光源的方向,這種光源被稱為方向光源,發(fā)出的是平行光;如果w值為1,表示指定的是一個離場景較近的光源,(x,y,z)指定了光源的位置,這種光源稱為定位光源。???(3)聚光燈???當點光源定義為定位光源時,默認情況下,光源向所有的方向發(fā)光。但通過將發(fā)射光限定在圓錐體內,可以使定位光源變成聚光燈。屬性GL_SPOT_CUTOFF用于定義聚光截止角,即光錐體軸線與母線之間的夾角,它的值只有錐體頂角值的1/2。聚光截止角的默認值為180.0,意味著沿所有方向發(fā)射

4、光線。除默認值外,聚光截止角的取值范圍為[0.0,90.0]。GL_SPOT_DIRECTION屬性指定聚光燈光錐軸線的方向,其默認值是(0.0,0.0,-1.0),即光線指向z軸負向。而GL_SPOT_EXPONENT屬性可以指定聚光燈光錐體內的光線聚集程度,其默認值為0。在光錐的軸線處,光強最大,從軸線向母線移動時,光強會不斷衰減,衰減的系數(shù)是:軸線與照射到頂點的光線之間夾角余弦值的聚光指數(shù)次方。???(4)光強度衰減???屬性GL_CONSTANT_ATTENUATION、GL_LINEAR_ATTENUATION、GL

5、_QUADRATIC_ATTENUATION分別指定了衰減系數(shù)c0,c1和c2,用于指定光強度的衰減。???在OpenGL中,必須明確啟用或禁用光照。默認情況下,不啟用光照,此時使用當前顏色繪制圖形,不進行法線矢量、光源、光照模型、材質屬性的相關的計算。要啟用光照,可以使用函數(shù):???????glEnable(GL_LIGHTING);指定了光源的參數(shù)后,需要使用函數(shù):???????glEnable(light);啟用light指定的光源。當然也可以用light參數(shù)調用glDisable函數(shù),禁用light指定的光源。需要特別

6、說明的是,點光源的位置和方向是定義在場景中的,與景物一起通過幾何變換和觀察變換變換到觀察坐標系中,因此光源既可以與場景中對象的相對位置保持不變,也可以使光源隨觀察點一起移動。?OpenGL全局光照????在OpenGL中,還需要設定全局光照(相當于背景光)。OpenGL提供了下面的函數(shù)對全局光照的屬性進行定義。???????voidglLightMode{if}(GLenumpname,TYPEparam);???????voidglLightMode{if}v(GLenumpname,TYPE*param);其中,參數(shù)pna

7、me指定全局光照的屬性,其取值參見表10-2;參數(shù)param指定進行設置的屬性的值。表10-2參數(shù)pname的取值及含義???屬性GL_LIGHT_MODEL_AMBIENT指定OpenGL場景中的背景光,如果不指定,系統(tǒng)使用低強度的白色(0.2,0.2,0.2,1.0)光。???鏡面反射時需要幾個矢量參數(shù),包括從物體表面到觀察位置的矢量V,它指出表面位置與觀察位置的關系。矢量V的默認方向為正z方向(0.0,0.0,1.0),如果不希望用默認值而使用位于觀察坐標原點的實際觀察位置來計算V,則將GL_LIGHT_MODEL_LO

8、CAL_VIEWER屬性值指定為GL_TRUE。???在有些應用中,需要看到物體的后向面,例如實體的內部剖視圖。此時需要打開雙面光照,即對物體的前向面和后向面都進行光照計算。???在光照計算中,通常是分別計算環(huán)境光、表面散射光、漫反射光和鏡面反射光的貢獻,然后將其疊加。默認情

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。