版本記錄
版本號 | 時間 |
---|---|
V1.0 | 2017.12.31 |
前言
OpenGL 圖形庫項目中一直也沒用過,最近也想學著使用這個圖形庫,感覺還是很有意思,也就自然想著好好的總結一下,希望對大家能有所幫助。下面內容來自歡迎來到OpenGL的世界。
1. OpenGL 圖形庫使用(一) —— 概念基礎
2. OpenGL 圖形庫使用(二) —— 渲染模式、對象、擴展和狀態機
3. OpenGL 圖形庫使用(三) —— 著色器、數據類型與輸入輸出
4. OpenGL 圖形庫使用(四) —— Uniform及更多屬性
5. OpenGL 圖形庫使用(五) —— 紋理
6. OpenGL 圖形庫使用(六) —— 變換
7. OpenGL 圖形庫的使用(七)—— 坐標系統之五種不同的坐標系統(一)
8. OpenGL 圖形庫的使用(八)—— 坐標系統之3D效果(二)
9. OpenGL 圖形庫的使用(九)—— 攝像機(一)
10. OpenGL 圖形庫的使用(十)—— 攝像機(二)
11. OpenGL 圖形庫的使用(十一)—— 光照之顏色
12. OpenGL 圖形庫的使用(十二)—— 光照之基礎光照
13. OpenGL 圖形庫的使用(十三)—— 光照之材質
14. OpenGL 圖形庫的使用(十四)—— 光照之光照貼圖
15. OpenGL 圖形庫的使用(十五)—— 光照之投光物
16. OpenGL 圖形庫的使用(十六)—— 光照之多光源
復習總結
恭喜您已經學習到了這個地方!辛苦啦!不知道你有沒有注意到,總的來說我們在學習光照教程的時候關于OpenGL本身并沒有什么新東西,除了想訪問uniform數組這樣細枝末節的知識。目前為止的所有教程都是關于使用一些技巧或者公式來操作著色器,達到真實的光照效果。這再一次想你展示了著色器的威力。著色器是非常靈活的,你也親眼見證了我們僅僅使用一些3D向量和可配置的變量就能夠創造出驚人的圖像這一點。
在前面的幾個教程中,你學習了顏色、馮氏光照模型(包括環境光照、漫反射光照和鏡面光照)、物體的材質、可配置的光照屬性、漫反射和鏡面光貼圖、不同種類的光,并且學習了怎樣將所有所學知識融會貫通,合并到一個程序當中。記得去實驗一下不同的光照、材質顏色、光照屬性,并且試著利用你無窮的創造力創建自己的環境。
在下一節當中,我們在我們的場景當中加入更高級的形狀,這些形狀將會在我們之前討論過的光照模型中非常好看。
詞匯表
顏色向量(Color Vector)
:一個通過紅綠藍(RGB)分量的組合描繪大部分真實顏色的向量。一個物體的顏色實際上是該物體所不能吸收的反射顏色分量。馮氏光照模型(Phong Lighting Model)
:一個通過計算環境光,漫反射,和鏡面光分量的值來估計真實光照的模型。環境光照(Ambient Lighting)
:通過給每個沒有被光照的物體很小的亮度,使其不是完全黑暗的,從而對全局光照進行估計。漫反射著色(Diffuse Shading)
:一個頂點/片段與光線方向越接近,光照會越強。使用了法向量來計算角度。法向量(Normal Vector)
:一個垂直于平面的單位向量。法線矩陣(Normal Matrix)
:一個3x3矩陣,或者說是沒有平移的模型(或者模型-觀察)矩陣。它也被以某種方式修改(逆轉置),從而在應用非統一縮放時,保持法向量朝向正確的方向。否則法向量會在使用非統一縮放時被扭曲。鏡面光照(Specular Lighting)
:當觀察者視線靠近光源在表面的反射線時會顯示的鏡面高光。鏡面光照是由觀察者的方向,光源的方向和設定高光分散量的反光度值三個量共同決定的。馮氏著色(Phong Shading)
:馮氏光照模型應用在片段著色器。Gouraud著色(Gouraud shading)
:馮氏光照模型應用在頂點著色器上。在使用很少數量的頂點時會產生明顯的瑕疵。會得到效率提升但是損失了視覺質量。GLSL結構體(GLSL struct)
:一個類似于C的結構體,用作著色器變量的容器。大部分時間用來管理輸入/輸出/uniform。材質(Material)
:一個物體反射的環境光,漫反射,鏡面光顏色。這些東西設定了物體所擁有的顏色。光照屬性(Light(properties))
:一個光的環境光,漫反射,鏡面光的強度。可以使用任何顏色值,對每一個馮氏分量(Phong Component)定義光源發出的顏色/強度。漫反射貼圖(Diffuse Map)
:一個設定了每個片段中漫反射顏色的紋理圖片。鏡面光貼圖(Specular Map)
:一個設定了每一個片段的鏡面光強度/顏色的紋理貼圖。僅在物體的特定區域顯示鏡面高光。定向光(Directional Light)
:只有一個方向的光源。它被建模為不管距離有多長所有光束都是平行而且其方向向量在整個場景中保持不變。點光源(Point Light)
:一個在場景中有位置的,光線逐漸衰減的光源。衰減(Attenuation)
:光隨著距離減少強度的過程,通常使用在點光源和聚光下。聚光(Spotlight)
:一個被定義為在某一個方向上的錐形的光源。手電筒(Flashlight)
:一個擺放在觀察者視角的聚光。
GLSL uniform數組(GLSL Uniform Array):一個uniform值數組。它的工作原理和C語言數組大致一樣,只是不能動態分配內存。
后記
未完,待續~~~