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:
Antworten:
Gemäß der Antwort des OP wird ersetzt
zum
Problem gelöst. Das Feld und die Dichte bewegen sich gleichmäßig in die
(0.01, 0.01)
Richtung.quelle