DirectX11程式設計8 紅龍書第七章練習
阿新 • • 發佈:2018-12-17
環境:VS2017 語言:C++
第七章的習題量少,也比較簡單,不過我們還是來仔細研究一下
1.這邊的程式都是以win64執行的;
2.如果沒有找到Common指令碼,請到工程/屬性/VC++目錄中新增包含目錄“../Common”;
3.如果沒有找到libs,請到工程/屬性/連結器新增附加庫目錄“../Common/libs”
4.所有的練習都在工程中,全域性搜尋“練習7”關鍵字就能找到,想要執行開啟註釋即可。
有任何錯誤,請大佬們指正。
1.在Lighting Demo中改變光源的顏色,使直射光為紅色、點光源為綠色、聚光燈為藍色,檢視效果?
答:
2.在Lighting Demo中改變高光的指數引數,檢視效果?
答:
高光使用的指數來自於Material的a位引數,而rgb位仍代表的是顏色。該位值越大,高光衰減的就越厲害。
3.實現卡通渲染效果?
答:
該解答在LightHelper.fx中,根據書上提供的公式來實現就好。最終效果真的特別有感覺。
3.實現聚光燈可以動態改變其椎體範圍的功能?
答:
if (GetAsyncKeyState('1') & 0x8000) { mSpotLight.Spot += 1; } if (GetAsyncKeyState('2') & 0x8000) { mSpotLight.Spot -= 1; } if (mSpotLight.Spot < 50.0f) mSpotLight.Spot = 50.0f; else if (mSpotLight.Spot > 1000.0f) mSpotLight.Spot = 1000.0f;
通過上一章我們知道聚光燈原理實際和高光一樣,所以我這邊動態改變的高光計算時指數的大小,指數越大衰減的越厲害燈照亮範圍就越小,指數越小衰減的越弱照亮範圍就越大。