2009-11-17 60 views

回答

1

我假設你知道如何創建一個設備。

首先,您需要準備着色器本身。

下面是一個小樣本像素着色器(使用像素着色器1.4,如ps_1_4所示; r0是作爲最終結果讀取的寄存器; v0是存儲原色(漫射照明)的寄存器):

ps_1_4 
mov r0, v0

該着色器位於着色器組件中,必須進行組裝。你可以做如下(注意,你需要D3DX庫引用,否則你不會看到ShaderLoader類):

Imports Microsoft.DirectX 

' other code 

Dim graphicsStream As GraphicsStream = Direct3D.ShaderLoader.FromString(shaderText, Nothing, Direct3D.ShaderFlags.None) 

' other code. 

組裝着色器後,你終於可以創建一個PixelShader對象如下:

' other code 

Dim p As Direct3D.PixelShader = New Direct3D.PixelShader(Device, graphicsStream) 

' other code 

申請像素着色器,使用方法:

' other code 

Device.PixelShader = p 

' other code 

,其中設備是Direct3D設備。

類似的過程適用於在使用HLSL的情況下編譯着色器。

編輯: 剛注意到這是一個古老的問題。