在工程mytutoriald3d11_17中,我們重新定義我們的cube頂點法向,每個三角形面的頂點法向都是和這個三角形的面法向是一致的。如下圖所示:
在該工程中,我們還修改了cubemodelclass檔案,從乙個cube.txt檔案中讀cube頂點位置、法向、紋理座標。
cube.txt的格式為:
vertex count: 36
data:
-1.0 1.0 -1.0 0.0 0.0 0.0 0.0 -1.0
資料行前三個資料為頂點位置,接著兩個資料為紋理座標,最後的三個資料為頂點法向。
為了實現讀取cube.txt,我們增加了函式loadmodel,該函式把模型資料讀取到m_model中去,之後在初始化緩衝函式中,又會從m_model中讀取資料。
程式的執行效果如下,可以看到由於使用面法向,再加上是平行光光源,所有cube的每個面顏色都是一樣的,效果很差。
完整的**請參考:
工程檔案mytutoriald3d11_17
Directx教程 27 簡單的光照模型 6
從mytutoriald3d11 15到mytutoriald3d11 19的工程中,我們都只有乙個光源,光源的位置在lightclass中我設定為m position d3dxvector4 5.0,5.0,3.0,1.0 所以我們渲染的cube,在前面,右側,上面都沒有問題,但是,我們通過a鍵移...
Directx11教程 20 乙個簡單的水面
nnd,以前發的這篇教程怎麼沒有了?是我自己誤刪除了,還是被系統刪除了?找不到存稿了,沒有心情再寫一遍了。簡單說一下,本篇教程就是實現乙個水面的動畫,主要是利用動態頂點緩衝,在每一幀都改變頂點的值,從而實現水面的動畫。主要參考的是 introduction to 3d game programmin...
Directx11教程 20 乙個簡單的水面
nnd,以前發的這篇教程怎麼沒有了?是我自己誤刪除了,還是被系統刪除了?找不到存稿了,沒有心情再寫一遍了。簡單說一下,本篇教程就是實現乙個水面的動畫,主要是利用動態頂點緩衝,在每一幀都改變頂點的值,從而實現水面的動畫。主要參考的是 introduction to 3d game programmin...