在使用 DirectX 11 進行遊戲開發時,需要進行大量的向量運算。那麼,在 DirectX 11中,該怎樣進行向量運算,又需要包含哪些頭文件,鏈接哪些庫呢?
下面,我就以現在市面上最流行的 VS2013為例,通過實例來教大傢俱體該怎麼做。
工具/原料
VS2013
一、頭文件、庫文件
要在 DirectX 11 中進行向量運算,需要鏈接庫文件 D3DX11.lib,包含頭文件 D3DX11.h,以及 XNAMATH.h。
當然了,由於需要輸入輸出,iostream 頭文件是必不可少的。另外,為了輸出格式整齊美觀,我們增加一個頭文件 iomanip.h。
最後,為了輸出的方便,我們重載了 XMVECTOR 的 << 操作符。
二、定義XMVECTOR類型變量
在 DirectX 11 中,需要使用 XNAMATH 數學庫來進行向量運算。在 XNAMATH 數學庫中,提供了一個“通用類型向量“XMVECTOR,它可在各種類型的2D、3D、4D向量以及浮點數之間進行轉換,極大地方便了我們的操作。
在定義 XMVECTOR 對象之前,我們可先定義一個具體的2D、3D、4D向量(比如帶 3 個分量的 XMFLOAT3 類型),然後再由定義好的對象構造(轉換為) XMVECTOR 對象。下面的示例代碼演示了怎樣用 XMFLOAT3 構造兩個 XMVECTOR 對象 u 和 v。
三、進行向量運算
首先,我們求向量長度和將向量單位化。
再進行向量的加減法操作和標量乘法操作。
接下來求點積和叉積。
最後,我們格式化輸出以上運算結果。
程序運行的結果如圖所示。
注意事項
如果以上內容你覺得有幫助,可以點擊頁面上部的收藏以便下次方便查看。
為了感謝大家的支持,以後將在陸續推出更多的 DirectX 11 教程,歡迎關注。