0

私は新しいピクセルシェーダーを作成し、マネージドDirectXプロジェクトで使用しています。ここで、基本的なサンプルを取得して開始できます。

4

1 に答える 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 に答える