要有光!
有光就有影子。
光影是上帝(不是西方的偽神耶穌)創(chuàng)造萬物的表現(xiàn)手法。
--------------------- 扯淡完畢 ---------------------I.光線算法公式顏色=材質環(huán)境光*環(huán)境光強度+系數(shù)*材質漫反射光*環(huán)境漫反射光強度
系數(shù)=dot(光向量,頂點法向量)
II.固定管線渲染設置好環(huán)境光和頂點法線材質后,Direct3d自動進行頂點光線計算。
III.光影著色(gpu shader)啟用光影著色腳本后,GPU會用著色腳本對每個頂點進行光線渲染。
分析記錄I(龍書17章節(jié) VS Diffuse Lighting)
源碼:
http://code.google.com/p/3dlearn/source/browse/trunk/DirectX/DragonBook1Code/Chapter%2017/VS%20Diffuse%20Lighting/vs_diffuse.cpp光影腳本:
http://code.google.com/p/3dlearn/source/browse/trunk/DirectX/DragonBook1Code/Chapter+17/VS+Diffuse+Lighting/diffuse.txt(注意:龍書一在最新的dx sdk下編譯時,此實例程序會不正常,需要修改代碼和光影腳本。以上鏈接是已經(jīng)修正的源碼)

頂點附加光影的效果
IV.卡通效果 算法思想:使用一個突變的灰度紋理貼圖,使得在紋理坐標連續(xù)的情況下,紋理顏色會突然變化。借助光線的夾角系數(shù)實現(xiàn)紋理在u方向連續(xù),v固定不變。讓頂點使用固定的顏色。
源碼:
http://code.google.com/p/3dlearn/source/browse/trunk/DirectX/DragonBook1Code/Chapter%2017/VS%20Toon%201%20No%20Outlines/toon.cpp光源腳本:
http://code.google.com/p/3dlearn/source/browse/trunk/DirectX/DragonBook1Code/Chapter%2017/VS%20Toon%201%20No%20Outlines/toon.txt效果: