Hy!HLSL ComputeShader Probe aus einer Textur verhalten sich merkwürdig
ich einen Compute-Shader haben:
[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;
}
Aus einer statischen Textur Zelle gelesen hat, eine andere Probe und es zu einem Ausgangs Textur schreiben. Bare Probe. Die Texturen und die GridSize sind 512x512, ich nenne das mit Dispatch (4, 512, 1) und vertausche in jedem Renderschritt die temperature und outputTemperature Texturen.
Ich dachte, es wird etwas wie ein kreisförmiges Wachstum von den statischen Punkten, sondern stattdessen nur von rechts nach unten wachsen. Das schwärzliche/rötliche Ding in der oberen linken Ecke ist die statische "Hitze", das weniger rote Ding ist die Temperatur vom Shader.
Jede Idee, was mache ich falsch?