1
Hy!HLSL ComputeShaderテクスチャのサンプルが異常な動作をする
私は、コンピュートシェーダを持っている:
[numthreads(128, 1, 1)]
void csAdvect(uint2 dtid : SV_DispatchThreadID)
{
uint4 dtl = uint4(dtid, 0, 0);
float2 inverseSize = float2(1.0f/gridSize.x, 1.0f/gridSize.y);
float2 coord = float2(dtid.x*inverseSize.x, dtid.y*inverseSize.y);
float statict = statictemp.Load(dtl).x;
if (statict < 0)statict = 0;
float t = temperature.SampleLevel(zeroBoundarySampler, coord, 0).x;
outputTemperature[dtid] = statict + t;
}
それは、静的テクスチャセルから読み出されます、別のものをサンプリングし、出力テクスチャに書き込みます。裸のサンプル。 テクスチャとgridSizeは512x512です。私はこれをDispatch(4,512,1)と呼び、すべてのレンダリングステップで温度と出力温度テクスチャを入れ替えます。
私は静的な点から円形のように成長すると思っていましたが、その代わりに右だけが成長しています。 左上隅の黒っぽい/赤みを帯びたものは静的な「熱」ですが、赤色のものはシェーダからの温度が低くなります。
任意のアイデアはどのような私が間違っているのでしょうか?だから、すべての座標系の変換について