D3DX庫的使用&D3DX初始化

自7.0版以來,DirectX隨D3DX(Direct3D擴展)庫一起提供。該庫提供了一組簡化的數學運算,紋理和圖像操作,網格操作以及着色器操作(例如編譯和裝配)相關的常見3D圖形相關操作的函數,類和接口。也就是說,D3DX包含很多功能,如何你自己實現這些功能將會比較麻煩。

我們使用D3DX庫,因爲它使我們能夠專注於更有趣的材料。例如,可以簡單調用D3DX函數D3DxiicreateTextureFromFiie進行將各種圖像格式(例如.bmp,.jpeg)加載到Direct3D紋理接口中,而不必花費很多時間來解釋具體如何實現。換句話說,D3DX提高了生產力,讓我們更專注於內容,而不是花時間重新發明輪子。
其他使用D3DX的原因:
1.D3DX是通用的,可用於各種不同類型的3D應用。
2.D3DX速度很快,至少與一般功能一樣快。
3.其他開發人員使用D3DX。因此,您很可能會遇到使用D3DX的代碼。因此,無論您是否選擇使用D3DX,您都應該熟悉它,以便您可以閱讀使用D3DX的代碼。
4.D3DX已經存在並且已經過全面測試。此外,DirectX的每次迭代都會變得更加完善和功能豐富。

如何使用DIRECTX SDK文檔和SDK例子

Direct3D含有海量API。因此,想了解具體信息,必須瞭解如何使用DirectX SDK文檔。通過在DirectX SDK \ Documentation \ DirectX9目錄中執行windows_graphics.chm文件啓動C ++ DirectX聯機文檔,其中DirectX SDK是DirectX的安裝目錄。之後需要導航到Direct3D 11部分(請參見圖1)。

1
圖1. DirectX文檔中的Direct3D編程指南

隨DirectX SDK還提供了可用的Direct3D示例程序。C ++ Direct3D示例位於DirectX SDK \ Samples \ C ++ \ Direct3D10和DirectX SDK \ Samples \ C ++ \ Direct3Dll目錄中。每個示例說明如何在Direct3D中實現特定效果。注意這裏有Direct3D 10和Direct3D 11示例。Direct3D 11擴展了Direct3D 10的功能,因此Direct3D 10技術在製作Direct3D 11應用程序時仍然適用;因此,研究Direct3D 10樣本以瞭解特定效果如何實施也有意義。

2
圖2. DirectX文檔的索引

在VS2010中設置演示工程
只需雙擊相應的項目文件(.vcxproj)或解決方案文件(.sln)即可打開Demo。下面開始介紹如何使用Visual Studio 2010(VS2010)基於演示應用程序框架從頭開始構建項目。這裏以重新構建第6章的“Box”Demo爲演示示例進行講解。(這裏假設你已經安裝了DirectX SDK)

創建Win32 Project

首先,啓動VS10,然後進入主菜單並選擇File> New> Project,如圖3所示。
新建項目對話框將出現(圖4)。 從左側的Visual C ++項目類型樹控件中選擇Visual C ++> Win32。 在右側,選擇Win32 Project。 接下來,爲項目指定一個名稱並指定您想要存儲項目文件夾的位置。 如果默認情況下最初選中,請取消選中創建解決方案目錄。 現在點擊確定。
一個新的對話框將出現。 左側有兩個選項:概覽和應用程序設置。 選擇Application Settings,產生圖5所示的對話框。從這裏開始,確保選擇了Windows應用程序,並選中Empty項目框。 現在按下完成按鈕。 此時,您已經成功創建了一個空的Win32項目,但在構建DirectX項目演示之前還有一些事情要做。

3
圖3 創建一個新項目

4
圖4 新項目設置

4
圖5 應用設置

鏈接DirectX庫
我們現在需要將DirectX庫鏈接到我們的項目。 對於調試版本,添加附加庫:
d3dll.lib;
d3dxlld.lib;
D3DCompiler.lib;
Effectslld.lib;
dxerr.lib;
dxgi.lib;
dxguid.lib;
對於發佈版本,添加上面的相同庫,但在d3dxiid.iib和Effectsiid.iib末尾刪除’d’字符,以便它們只是d3dxii.iib和Effectsll.lib。
要鏈接庫文件,請右鍵單擊解決方案資源管理器下的項目名稱,然後從下拉菜單中選擇屬性(圖6)。 這將啓動圖7所示的對話框。從左側的樹形控件中,選擇Configuration Properties> Linker> Input。 然後在右側,在Additional Dependencies行中指定庫文件名。 按應用,然後確定。

設置附加包含目錄

我們現在需要確保Visual Studio知道要在其中搜索DirectX頭文件和庫文件的目錄。 再次,右鍵單擊Solution Explorer下的項目名稱,然後從下拉菜單中選擇Properties(圖6)。 這將啓動如圖7所示的對話框。從左側的樹形控件中,選擇Configuration Properties> VC ++ Directories。 然後在右側,您需要爲可執行目錄,包含目錄和庫目錄添加其他項目(圖8)。

請記住,DirectX SDK的確切路徑取決於您安裝DirectX SDK的位置,Common目錄的確切路徑取決於您提取示例程序的位置。 此外,您可以自由移動Common目錄,但必須記住相應地更新Visual Studio中的搜索路徑。

目錄 添加項
可執行文件目錄 1、D:\DXSDK\Utiliies\bin\x86-DX執行文件目錄.尤其是從IDE運行fxc實用程序時設置此文件夾。
包含目錄 1、D:\DXSDK\Include-DX頭文件目錄.
2、D:\Data\Books\Book IV\Code\Common-示例Demo中共享代碼的路徑
庫目錄 1、D:\DXSDK\Lib\x86-DX庫文件夾。
2、D:\Data\Books\Book IV\Code\Common-示例Demo中共享代碼的路徑

在Visual Studio 2010中,目錄路徑是每個項目設置的(這與Visual Studio 2008的行爲不同)。 這意味着當您創建新項目時,您需要爲每個項目設置搜索路徑。 如果你製作了很多演示項目,這可能很煩人。但是,有一種方法可以使這些設置對於用戶是永久的。 在Visual Studio菜單下,選擇View> Other Windows> Property Manager。 如圖9所示展開屬性管理器,然後雙擊Microsoft。CPP。 Win32,用戶項目。 您會看到類似於圖8中的對話框,只不過您在此處設置的路徑將在各個項目中保持不變,所以不需要每次都添加它們。 更具體地說,您製作的每個新項目都將繼承此處設置的值。

在Visual Studio 2010中,目錄路徑是每個項目設置的(這與Visual Studio 2008的行爲不同)。 這意味着當您創建新項目時,您需要爲每個項目設置搜索路徑。 如果你製作了很多演示項目,這可能很煩人。但是,有一種方法可以使這些設置對於用戶是永久的。 在Visual Studio菜單下,選擇View> Other Windows> Property Manager。 如圖9所示展開屬性管理器,然後雙擊Microsoft.CPP.Win32,用戶項目。您會看到類似於圖8中的對話框,只不過您在此處設置的路徑將在各個項目中保持不變,所以不需要每次都添加它們。更具體地說,您製作的每個新項目都將繼承此處設置的值。

添加源代碼並構建項目
最後,我們的項目設置完成。 我們現在可以將我們的源代碼文件添加到項目中並構建它。 首先,將“Box”源代碼文件複製到項目目錄以及FX文件夾中。 我們還假定您已將Common目錄放置在硬盤驅動器的某個位置,並添加了相應的搜索路徑,如前一節所述。
複製文件後,您的項目目錄應該與圖10中的目錄類似。現在,按照以下步驟將代碼添加到您的項目中。
1.右鍵單擊解決方案資源管理器下的項目名稱,然後從下拉菜單中選擇添加>現有項目…,然後將BoxDemo.cpp添加到項目中。
2.右鍵單擊解決方案資源管理器下的項目名稱,然後選擇添加>新建過濾器,然後命名過濾器FX。 右鍵單擊FX濾鏡並從下拉菜單中選擇Add> Existing Item …,然後將FX \ color.fx添加到項目中。
3.右鍵單擊解決方案資源管理器下的項目名稱,然後選擇添加>新建篩選器,並將篩選器命名爲Common。 右鍵單擊通用過濾器,然後從下拉菜單中選擇添加>現有項目…,導航到您放置本書的通用目錄代碼的位置,然後將該目錄中的所有.h / .cpp文件添加到項目中。
4.源代碼文件現在是項目的一部分,解決方案資源管理器應如圖11所示。現在可以轉到主菜單,然後選擇Debug> Start Debugging來編譯,鏈接和執行演示。 應該出現圖12中的應用程序。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章