D3D遊戲開發1之準備

2021-06-16 04:16:31 字數 2394 閱讀 5085

開始,編譯器的正確配置

第一步:

安裝directx sdk(june 2008)和microsoft visual studio 2005

第二步:

設定directx和visual studio 2005關聯:

<1> 開啟visual studio 2005,將d3d需要的lib 檔案目錄在鏈結器中指定路徑。具體步驟是:工具->選項->專案和解決方案->vc++目錄,在右邊「顯示以下內容的目錄」中選擇「包含檔案」,加入directx中的include目錄,我電腦上的該目錄為d:/program files/directx9/include。新增完include標頭檔案後,再

選擇庫檔案,加入lib檔案,我電腦上的該目錄為d:/program files/directx9/lib/x86

<2> 開啟sdk的sample裡面的乙個例子,開啟時開啟.sln檔案,引用幾個相關的lib檔案,具體步驟是:專案->屬性->配置屬性->鏈結器->輸入,在附加依賴項裡面加入下面幾個lib檔案:

d3dxof.lib

dxguid.lib

d3dx9d.lib

d3d9.lib

winmm.lib

第三步:

設定好後,就可以執行程式了,除錯->開始執行(不除錯)。

注:若出現打不開預編譯標頭檔案的錯誤,就如下設定:專案->屬性->配置屬性->c/c++->預編譯頭,右邊第一項「建立/使用預編譯頭」選擇「不使用預編譯頭」

接著3d程式設計概念

可以概括為四個階段

第一階段:初學者階段。

這個階段主要是熟悉3d圖形學的基本原理,和基本api的使用。

特別是對於空間的變換,矩陣的原理要有非常清楚的認識。

能夠用簡單的資源,做乙個簡單的demo,基本上就是達到了。

這個階段比較簡單,基本上每個人都可以達到,學習方法也很簡單,就是看書,看demo,寫**。

時間週期大概1年。

第二階段:高階階段

過了第乙個階段,一般人會走兩條路。一種人會選擇直接學引擎,開發遊戲。另一種人,會選擇先學場景管理和高階渲染。

這個視每個人的目標和愛好不同有所不一樣。

做好demo後,就會想著怎麼讓效果更好,於是就學了很多高階渲染,比如陰影,法線貼圖,hdr,反射折射等。

做了很多效果後,發現效率低下,於是就寫一些場景管理方案。

能夠基本實現場景管理和一些高階效果,基本上這個階段就到達了。

國內大部分3d程式在這個階段。

這個階段要難點,自學達到需要一些毅力。如果你在公司裡做,有人指導,也有測試資源,那會容易很多。

這個階段的瓶頸在於沒有經歷過非常複雜的場景和效果,對於3d認識還是比較孤立的。不過已經打下了良好的基礎了。

這個階段應該也都開始熟悉一款引擎了。

時間週期每個人差別很大,1-2年左右。

第三階段:3d成熟階段

當第二階段學得很好的時候,就會覺得自己像個高手了。有的人開始自己設計開發3d引擎了。

當發現,自己設計的場景管理和渲染都很不錯的時候,可是效率還是不盡如人意。

當效果複雜,每幀都需要多遍渲染場景的時候,就發現了,原來還是做了很多重複的事情,以及占用了很多重複的資源和頻寬等。

這個時候會靜下心來,好好想想場景系統和邏輯該怎麼設計才能效率最高,沒有重複計算。

了解硬體的資源管理方式,結合自己的需求,解決資源的不當占用和頻寬的隨意浪費的情況。

深入熟悉硬體,徹底了解顯示卡流水線的特性,充分利用流水線的特性進行優化,這個時候對dx/opgl api也已經非常熟悉了,甚至乙個列舉引數都了解它背後的意義。對於圖形的debug,也非常熟練了,一般的渲染問題很快就解決了。

這個時候應該知道根據不同的遊戲型別構建不同的場景系統了,即使是設計wow,crysis這種場景也可以,知道該怎麼設計材質系統,以及effect 框架了。

這個階段是最煎熬的階段,也是最開心的階段。

成長情況更是差別巨大,環境應該是至關重要。

大部分引擎其實在效率上都沒完全達到這個程度。

時間週期1年以上,上不封頂,很多人估計都到不了這個層次。如果人夠聰明,基礎夠好,環境也好,1年就夠了。

這個階段的乙個特徵,圖形已經很簡單了,不想再說啥了。

第四階段:達人階段

第三和第四階段也許沒有明顯分界線。但有點是肯定不同的。

第三個階段還是花很多時間在學習摸索,到第四個階段,就是在尋求解決方案了。

更關注創作了。也許他覺得市面上沒有讓他非常滿意的引擎,至少很難找到適合中國國情的引擎。

也許他會帶著一幫小弟一起做引擎,也許是做遊戲。

這個階段技術已經不是唯一追求的目的了,還有很多很多其他的方面他會關注。

因為他的目的是讓整個社會承認他的價值,明白一點只有技術是不夠的。

這個階段特徵我也不是很清楚,無法一概而論,國內我只見過幾個人達到或者超越了這個階段。

好好向這個四個階段進發吧!。。。。總有一天成功的。。。。。

C 遊戲開發教程 D3D

本文適合有一定程式設計基礎的愛好者!本文不會涉及基本的語法等內容,本文適合所有遊戲開發初學者,本文從microsoft directx 9.0 sdk summer 2004 中的d3d下tutorials資料夾下的例子開始!關鍵字 c 遊戲開發 3d 教程 c 讀作 c sharp 是一種簡單 現...

D3D開發 搖搖球

經過2個月的d3d學習,再經過了幾個星期的開發,完成了搖搖球的初步開發,仍有許多不足之處。仍有許多地方需要進行改進與學習。尤其是碰撞測試方面。程式簡介 該程式最初靈感來自於小時候所玩了迷宮尺子,有小球在帶有迷宮的尺子上滾動,後了解到這時著名的重力迷宮球遊戲,普及在iphone android等手機中...

D3D基本框架 即D3D標頭檔案分類

了dxut的結構 後,發現微軟程式設計師的編碼風格太深奧了。各種巨集定義 預編譯跳得頭暈,由於對於window api的不精通,導致寫出符合dxut風格的框架以現在的水平來看是不可能的。既然沒有弄通dxut,我也暫時不想套用了,那麼還是先自己用自己的框架來寫把。框架如下 雖然沒學會dxut,但是微軟...