本篇是復習篇,將光照部分的關鍵概念做一個整理
祝賀你能堅持到這里,如果你能從第一篇文章開始看到這一篇,那么我要鄭重的說一句:同志,你辛苦了,不僅是學習OpenGL的不易,還有就是忍受筆者粗糙的表述。同時,感謝你一直以來的關注,你的關注對我而言就是最大的鼓勵。
言歸正傳,進入光照章節后我們并沒有將什么關于OpenGL的知識,唯一的一點新內容也是怎么設置uniform數組元素(汗~)。所有的章節都是圍繞如何使用著色器來獲得逼真的光照效果,通過這些章節,我們看到了著色器確實是一個非常強大的東西。你見證了用幾個3D向量和一些可配置的變量創造出驚人圖形效果的過程!
之前的幾章中,我們學習了顏色、馮氏光照模型(包括環境光、漫反射和鏡面高光),物體材質,光源屬性,漫反射和鏡面高光貼圖,不同的光源模型,以及如何將所有的這些東西融合到一個應用中。嘗試不同的光照,材質顏色和光源屬性,你會看到不一樣的場景。
摘要
- 顏色向量:通過紅、綠、藍三個分量表示自然界中的絕大多數顏色效果。物體的顏色本質上是其反射不同顏色光多少的屬性。
- 馮氏著色模型:通過一個環境光、漫反射光和鏡面高光來模擬真實世界中的光照的方法。
- 環境光:場景中不管怎樣都會存在的一種微弱的光。
- 漫反射光:漫反射光會隨著片元靠近光源而變量。需要法線來計算角度值。
- 法向量:垂直于表面的一個單位向量
- 法向量矩陣:隨著模型變換而進行變換的矩陣,用于保持與原頂點的垂直。
- 鏡面高光:類似于鏡面反射的效果,物體上有一圈非常亮,做鏡面反射的部分。
- 材質:物體反射環境光、漫反射光和鏡面高光的程度。
- 光源:帶有環境光、漫反射光和鏡面高光強度的一個結構。
- 漫反射貼圖:一張紋理圖,用于設置每個片元的漫反射屬性。
- 鏡面高光貼圖:一張紋理圖,用于設置每個片元的鏡面高光屬性。
- 方向光:只有方向的光源。用于模擬類似陽光等從非常遠的距離上過來的光。
- 點光源:類似點燈,有一個位置,光照強度會隨著距離增大而減小。
- 聚光燈:有位置有方向的一個光源,光照限制在一定的范圍內,并且強度會隨著距離的增大而減小,像是手電筒。
參考資料
www.learnopengl.com(非常好的網站,建議學習)