Direct3D11學習:(一)開發環境配置


轉載請注明出處:http://www.cnblogs.com/Ray1024
 
從今天開始,開啟一個新的系列:Direct3D11的學習教程。
因為一直對3D方面比較感興趣,最近決定開始學習D3D知識。我之前也沒有接觸過Direct3D9,在網絡上咨詢過一些大神,大家都推薦直接從D3D11開始學起。我想了好久終於下決心買了一本D3D11的龍書《Introduction to 3D Game Programming: With Directx 11》,可惜這本書目前只有英文版。自己可憐的英文當初四級都差點沒過,只能逼着自己,一定要堅持下去啊。
寫這個系列的博客有多方面的考慮,一方面用這種方式監督自己的學習,另一方面記錄一下自己的學習歷程,也跟大家交流一下學習過程中的問題和心得。
 
首先,在學習D3D之前,必須要做的就是開發環境的配置。這篇文章主要講解了D3D11開發環境的配置過程,創建並調試運行書中的一個例子BoxDemo。
 
一.工具准備
1.DirectX11 SDK安裝包
安裝包選擇微軟官網下載,我選擇的SDK版本是DXSDK_Jun10.exe。下載網址:https://www.microsoft.com/en-us/download/details.aspx?id=6812
按照安裝提示安裝完成。
注意DXSDK_Jun10.exe的安裝過程中可能會出現安裝錯誤,如下圖:
 
2.Visual Studio 2010鏡像
龍書中教程使用的IDE是vs2010,我電腦中已經安裝過了vs2010,所以就不貼鏡像網址了。
 
二、創建一個win32項目
1.運行vs2010,打開菜單文件>新建>項目,如下圖所示:
 
 
2.出現新建項目對話框后,選擇Visual C++ > Win32選項,選擇Win32項目,接下來輸入項目名稱並選擇你想要創建的項目路徑。如果為解決方案創建目錄選項默認勾選了,把它取消勾選。點擊確定按鈕。如下圖:
 
3.接下來彈出一個新的對話框窗口,如下圖。這個對話框左邊有兩個選項:概述和應用程序設置。選擇應用程序設置選項,對話框窗口出現應用程序設置頁面。在應用程序類型中選擇Windows應用程序,在附加選項中選擇空項目。然后點擊完成按鈕。
 
到這為止,我們已經成功地創建了一個空的Win32項目。但是要能創建DirectX項目示例,我們還需要做一些事情。
 
三、鏈接DirectX庫文件
1.編譯Effect庫
Effect框架是微軟額外提供的一個程序框架,用於管理着色器程序和渲染狀態的工具代碼,使用戶在程序中使用shader時與C++程序更方便地銜接。這個框架對於編寫D3D程序來說不是必需的,好比D3DX庫對於D3D程序來說也是可有可無的。但它畢竟大大方便了我們使用shader,在學習過程把心思放在要點上,因此在后面學習過程中將全程使用Effect框架。

在Direct3D 11中,Effects框架已從D3DX庫中移除,你必須包含一個單獨的頭文件(d3dx11Effect.h),鏈接一個單獨的庫文件(Effects11.lib用於release生成,而Effects11D.lib用於debug生成)。

而且,在Direct3D 11中提供了effect庫的完整源代碼(DirectX SDK\Samples\C++\Effects11)。因此,你可以根據需要修改effect框架。本書中,我們只是使用、並不會修改effect框架。要使用這個庫,首先需要生成Effects11項目的Release和Debug模式,用於獲得Effects11.lib和Effects11D.lib文件。d3dx11Effect.h頭文件可在DirectX SDK\Samples\C++\Effects11\Inc文件夾中找到。我們將d3dx11Effect.h放到DirectX SDK\Include目錄下,Effects11D.lib和Effects11.lib文件都放在DirectX SDK\Lib\x86目錄下,這樣所有的項目文件都能共享這些文件。

 

2.鏈接DirectX庫文件
我們需要將Direct3D的庫文件鏈接到我們的項目中。
項目Debug版本需要的庫文件是:
     d3d11.lib;
     d3dx11d.lib;
     D3DCompiler.lib;
     Effects11d.lib; 
     dxerr.lib;
     dxgi.lib;
     dxguid.lib;
 
對於項目Release版本需要的庫文件,和上面的Debug版本差不多,只需要把d3dx11d.lib和Effects11d.lib換成d3dx11.lib和Effects11.lib就可以了。
右鍵點擊項目,選擇菜單中的屬性,彈出屬性頁,如下圖。選擇 配置屬性>鏈接器>輸入,在附加依賴項中添加上面提到的庫文件,然后點擊應用確定退出。
 
 
四、設置頭文件和庫文件包含目錄
我們在這一步中,需要讓Visual Studio知道去哪里找DirectX的頭文件和庫文件。
右鍵點擊項目,選擇菜單中的屬性,彈出屬性頁,如下圖。選擇 配置屬性>VC++目錄,在包含目錄中添加DirectX頭文件路徑,在庫目錄中添加DirectX庫文件路徑,然后點擊應用確定退出。
(注:這個路徑是取決於你把DirectX SDK安裝到哪了,我安裝在C:\Program Files (x86)\Microsoft DirectX SDK (June 2010),所以包含目錄為C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Include,庫目錄為C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Lib\x86。)
 
配置的這些屬性在一個項目中無所謂,但是如果以后需要創建大量的DirectX項目,那么就需要一個一個地去配置這些屬性,工作非常繁瑣而且浪費時間。接下來我們介紹一個可以一勞永逸的方法: 點擊VS2010窗口頂部菜單 視圖 > 屬性管理器打開屬性管理器窗口,雙擊屬性管理器中的Microsoft.Cpp.Win32.user項目,就會打開一個和之前的屬性窗口很像的窗口,如下圖。將上面提到的鏈接庫文件、設置包含路徑的步驟都在這里完成,確定退出。那么我們以后創建的每個項目都會自動繼承這些屬性的,這將省去我們很多的時間。
 
 
我們的項目屬性終於配置完成了。那么我們接下來就可以添加代碼並調試項目了。 
 
五、添加代碼並調試項目
書中的代碼示例在附帶光盤中,也可以去書中寫到的網址中下載示例代碼,網址:http://www.d3dcoder.net/d3d11.htm
在代碼示例第6部分中,找到Box項目:
  1.把"Box"項目的源碼BoxDemo.cpp拷貝到自己的項目的文件夾中,
  2.把"FX"文件夾也拷貝到自己的項目的文件夾中 。
  3.把"Common"文件夾拷貝過來。並且將路徑添加到包含目錄中。
在做完這些之后,我們就可以將源碼添加到我們的項目中了。如下圖:
 
生成項目並運行,就會出現我們預期的效果了。如下圖:
 
 
到這里,我們配置環境的工作就完成了,並且將BoxDemo示例代碼運行成功!
之后,我們就可以正式開始D3D11的學習了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM