2
我是圖形編程的初學者。我遇到了一個「紋理視圖」創建超出紋理的情況,然後將此資源視圖設置爲VS資源。總結:DirectX:使用紋理的頂點着色器
CreateTexture2D(D3D10_TEXTURE2D_DESC{ 640, 512, .... **ID3D10Texture2D_0c2c0f30**)
CreateShaderResourceView(**ID3D10Texture2D_0c2c0f30**, ..., **ID3D10ShaderResourceView_01742c80**)
VSSetShaderResources(0, 1, [**0x01742c80**])
當,什麼是當我們使用紋理頂點着色的情況?誰能幫忙?
謝謝。
其實我看到的例子中,他們大多數情況下都使用'Texture1D'。所以你可以給你一些關於你正在談論的wave函數的指針。 – 2013-04-10 09:20:49
想想正弦波。不用在着色器中計算'float sinX = sin(x)',你只需簡單地從你的正弦函數查找紋理中抽取值:'float sinX = FunctionTexture.Sample(Sampler,x).r'。而且由於該函數在着色器中沒有進行硬編碼,所以可以使用任何可以打包成一維紋理(常量,噪聲,漸變等)的數據。在這種情況下'x'將是紋理座標。像素的顏色是函數值f(x)'。 – Lucius 2013-04-10 11:05:31