void ciMsaFluidSolver::update() { addSourceUV(); if( doVorticityConfinement ) { vorticityConfinement(uvOld); addSourceUV(); } swapUV(); diffuseUV( viscocity ); project(uv, uvOld); swapUV(); advect2d(uv, uvOld); project(uv, uvOld); if(doRGB) { addSourceRGB(); swapRGB(); if( colorDiffusion!=0. && _dt!=0. ) { diffuseRGB(0, colorDiffusion ); swapRGB(); } advectRGB(0, uv); fadeRGB(); } else { addSource(r, rOld); swapR(); if( colorDiffusion!=0. && _dt!=0. ) { diffuse(0, r, rOld, colorDiffusion ); swapRGB(); } advect(0, r, rOld, uv); fadeR(); } }
void FluidSolver::update() { addSource(uv, uvOld); if( doVorticityConfinement ) { vorticityConfinement(uvOld); addSource(uv, uvOld); } SWAP(uv, uvOld); diffuseUV( viscocity ); project(uv, uvOld); SWAP(uv, uvOld); advect2d(uv, uvOld); project(uv, uvOld); if(doRGB) { addSource(color, colorOld); SWAP(color, colorOld); if( colorDiffusion!=0. && deltaT!=0. ) { diffuseRGB(0, colorDiffusion ); SWAP(color, colorOld); } advectRGB(0, uv); fadeRGB(); } else { addSource(density, densityOld); SWAP(density, densityOld); if( colorDiffusion!=0. && deltaT!=0. ) { diffuse(0, density, densityOld, colorDiffusion ); SWAP(density, densityOld); } advect(0, density, densityOld, uv); fadeDensity(); } }