0

2 つの RenderTarget2D を作成しました。

currentWorldState = new RenderTarget2D(graphicsDevice, width, height, false, SurfaceFormat.Vector4, DepthFormat.None);
nextWorldState = new RenderTarget2D(graphicsDevice, width, height, false, SurfaceFormat.Vector4, DepthFormat.None);

GPU でシミュレーション コードを記述しようとしています。私の目標は、これらのレンダー ターゲット間で vector4 情報を渡すことができるようにすることです。最初のターゲットから情報を読み取り、次のターゲットに出力するシェーダーを作成しました。私の問題は、float4 が色情報に変換され、多くの精度が失われることです。

これは、私のピクセル シェーダーのヘッダーです。

float4 CreateActions(in float2 uv : TEXCOORD0) : COLOR

float4 データを出力するためにこれを何らかの方法で変更できますか? COLOR を他のものに変更してもコンパイルされません。

4

1 に答える 1

0

レンダー ターゲットの形式を変更する必要があります。これが精度を決定します。

Shawn Heargraveがそれについて書いており、ここにSurfaceFormat のドキュメントがあります

于 2012-04-18T15:54:18.873 に答える