私は新しいピクセルシェーダーを作成し、マネージドDirectXプロジェクトで使用しています。ここで、基本的なサンプルを取得して開始できます。
1 に答える
1
デバイスの作成方法を知っていることを前提としています。
まず、シェーダー自体を準備する必要があります。
これは小さなサンプル ピクセル シェーダーです (ps_1_4 で見られるように、ピクセル シェーダー 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
ここで、Device は Direct3D デバイスです。
HLSL を使用する場合、同様のプロセスがシェーダーのコンパイルに適用されます。
編集:これは1年前の質問であることに気付きました.
于 2010-06-19T15:34:33.210 に答える