shader之旅-7-平面陰影(planar shadow)

根據《real-time shadow》這本書第二章中的推導,實現了最簡單的陰影技術。 
planar shadow經過一個投影矩陣將被燈光照射的物體的頂點沿着光線方向投影到接受陰影的平面。 

關鍵的問題是這個投影矩陣怎麼獲得。 
陰影所在平面用下式表示:其中n是法線,d是常量,x是平面上的點。 
燈光和被投影的頂點所在的直線用下式來表示:,其中l是光源的位置,v是被投影的頂點,t是係數。 
推導過程: 

因此最終獲得投影到平面上的頂點座標寫成齊次座標的形式爲: 

寫成矩陣的形式就是 

爲了在代碼中實現,我新加了兩個類,分別是Mesh和Program,由於在析構時涉及到刪除OpenGL內部的資源的問題,因此若是不處理好拷貝構造和拷貝賦值就會出現問題,因此在沒想過好的處理方案以前把他倆都實現成了沒法複製的類。 
代碼已經更新http://www.eyesourcecode.com/t/58005/1/1code

相關文章
相關標籤/搜索