Eu implementei o simulador de fluido 2d. O Solver é executado inteiramente na GPU. Tudo funciona bem ... no meu PC de trabalho. Mas no PC doméstico, tenho algumas falhas terríveis e não consigo entender como corrigi-las. Empiricamente, descobri que o problema está localizado em algum lugar do programa avançado . Essa é uma causa muito estranha no trabalho, integrei vídeo e em casa - NVIDIA GeForce 9800 GT. Aqui está a fonte GLSL do programa de advect (algumas linhas foram descartadas para maior clareza):
#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;
}
E algumas capturas de tela.
PC de trabalho:
PC doméstico:
Respostas:
Pela resposta do OP, substituindo
para
resolveu o problema. O campo e a densidade se movem suavemente na
(0.01, 0.01)
direção.fonte