個人認為學習3D圖形程序開發,有兩套經典教程.D3D的<D3D游戲開發編程基礎>也就是紅龍那本書.OpenGL的NEHE教程.為向經典致敬,將我之前翻寫他們的程序開源.
我所做的工作是將其所有的DEMO集成到一個項目中.所有的DEMO使用同一個渲染設備.這樣可以在一個進程中自由地切換DEMO.寫這套東西最大的麻煩是,每一個DEMO對渲染設備狀態做出的改變,在其退出時需要恢復回去.這看上去很容易,但當出現問題時查起來卻很麻煩,因為教程中的DEMO實在是太多了.最常見的問題是渲染效果不對了,這在搞圖形程序時最常發生,對此類問題,我沒什么好解決方案,能給出的建議是:錯得多了慢慢就會有經驗了.還有一點要注意的是DEMO中申請的資源需要在退出時釋放.在NEHE的OpenGL教程中似乎不太注重這點,很多地方只有申請,沒有釋放.但在D3D中如果開啟了D3D Debug模式下,退出程序時,若有未釋放的資源則會出現報錯.
兩套程序中都有個Flying項目模塊,這是我自己寫的幾個圖形DEMO.我的設計是每一類DEMO放到一個項目中,比如開發者要再翻寫一套OPENGL編程寶典或紅寶書的經典程序,可以新建一個項目,將其所有DEMO寫到該工程中.需要注意的是配置文件的新寫DEMO配置.
開發環境:VS2008.
代碼下載地址:
http://pan.baidu.com/s/1pJkD4Bh
這里面有三個工程,Why_DX9和Why_GL分別含有紅龍教程和NEHE教程的代碼.
軟件說明:
主UI界面上,鼠標點擊可以選擇要運行的DEMO
鍵盤的上下鍵也可以選擇DEMO,PageUp和PageDown用於翻頁,回車鍵用於啟動選中的DEMO
F11鍵用於全屏切換,
ESC用於退出當前DEMO及退出全屏
每個DEMO都會將提示文字信息顯示在界面上,H鍵可以隱藏文字.