Ich habe einen 2D-Flüssigkeitssimulator implementiert. Solver läuft vollständig auf der GPU. Alles funktioniert gut ... auf meinem Arbeits-PC. Aber auf dem Heim-PC habe ich einige schreckliche Störungen, und ich kann nicht verstehen, wie ich sie beheben kann. Empirisch entdeckte ich, dass das Problem irgendwo im Advect- Programm lokalisiert ist . Dies ist eine sehr seltsame Ursache, da ich bei der Arbeit Video integriert habe und zu Hause - NVIDIA GeForce 9800 GT. Hier ist die GLSL-Quelle des Advect-Programms (einige Zeilen wurden aus Gründen der Übersichtlichkeit gelöscht):
#version 130
out vec3 value;
uniform sampler2D q;
uniform sampler2D velocity;
uniform float dt;
uniform float inverseSize;
void main()
{
vec2 p = gl_FragCoord.xy * inverseSize;
vec2 np = p - dt * texture(velocity, p).xy;
value = texture(q, np).xyz;
}
Und einige Screenshots.
Arbeits-PC:
Heim-PC: