2016-06-21 191 views
0

我有一個第三方應用程序跟蹤可訪問參數(但不具有應用程序源代碼)的DirectX 9 API調用,並且使用帶有World_View_Projection矩陣的頂點着色器作爲單個參數。出於某種目的,我需要將頂點從模型轉換到世界空間,那麼是否有一些方法可以使用組合的World_View_Projection矩陣(不使用單獨的矩陣),並可以藉助可以從原始API調用中提取的其他數據?感謝您的回答。使用剛剛組合的WVP矩陣獲取世界空間頂點座標

回答

1

您需要將世界矩陣以及世界視圖投影矩陣傳遞給着色器。你當然可以通過世界矩陣和一個視圖投影矩陣,而不是在你的着色器中進行乘法運算。或者,您可以將世界,視圖和投影作爲單個矩陣傳遞,並在着色器中創建所需的組合。

隨着現代Direct3D硬件特性級別10.0或更高版本的卡,它們往往具有很大的計算能力,因此它不像在較老的Shader Model 2.0卡上那樣具有預先計算矩陣之前被傳遞到着色器。

爲什麼使用Direct3D 9而不是Direct3D 11?除非你的目標是Windows XP,否則Direct3D 11是一個更好的選擇。請參閱DirectX工具包tutorials

+0

我無法修改邏輯,着色器等,因爲我沒有源代碼 - 它不是我的項目,我剛剛捕獲了DirectX API調用運行的應用程序與特殊跟蹤工具(apitrace),所以我只能處理與原始頂點數據和API調用參數,如該WVP矩陣 – Aonir