2012-12-10 25 views
1

我想在Windows Store DirectX應用程序中實現着色器動畫。其實我只想實現我在下面的鏈接中看到的相同的動畫(用於DirectX 9和C#)。爲Windows Store DirectX應用程序實現着色器動畫

http://www.rastertek.com/dx10tut33.html

我是那種能夠找到我的方式與DirectX 11.1(Windows應用商店的應用程序兼容的DirectX着色器)左右,但我看不出我可以打發時間參數從C++程序的着色器代碼邏輯,以便我可以影響着色器狀態並根據時間產生不同的效果。

請分享意見,如果你有一些。

回答

2

要將參數傳遞給着色器,可以使用常量緩衝區(msdn)。您創建一個常量緩衝區,並用您的數據填充它,例如實際時間,並將其設置在所需的着色器中

ID3D11DeviceContext::GSSetConstantBuffers 
    ID3D11DeviceContext::PSSetConstantBuffers 
or ID3D11DeviceContext::VSSetConstantBuffers. 
+0

謝謝,那正是我所期待的。然而,它的名字有點誤導。你知道爲什麼這些緩衝區被稱爲常量嗎? –

+0

Afaik因爲它們描述的數據是恆定的,所以在繪製過程中所有Shader單元之間都不會發生變化:) – Gnietschow