From BlenderWiki

Jump to: navigation, search

Smoke Development Project 2012

The Smoke Development Project is one of the projects funded by the Blender Fund. It's purpose was the enhancement of Blender Smoke, fixing bugs and general maintenance. One of the very important goals was the support of moving collision objects.

Phase II

The goal of Part I was to add basic support of moving collision objects.

Phase III

The second part was designed to fix several major bugs in the smoke implementation as well as to provide a more sophisticated approach to support moving collision objects. Another side project was to make the particle system mandatory so someone can create a simulation without a particle system.

Smoke without particles

Smoke was designed to use particle positions os emitter points. This made many creative settings possible but it also come with some serious restrictions. A simple setup was not possible, it was also very slow. For collision objects, no more particles are used internally, resulting in a nice speedup and less bugs using collision objects.

Vorticity from moving collision objects

r51351: Collision objects do cause vorticity when passing through smoke

Velocity from moving collision objects

One of the problems was that animated collision objects were blocking the smoke instead of influencing the simulated smoke (Scene by nudelZ).

Regression blend file: Smoke with a ventilator (by nudelZ)

r51373: Animated collision objects do no longer block smoke. Smoke gets transfered velocity from moving collision object.

Vorticity and new boundary handling for collision objects

Bugfixes / Patches (courtesy of Phase III)

r49485: High resolution "exploded" when using uneven resolutions, sometimes with specific object scaling.

r48601: Smoke / DynamicPaint: Missing update call from depsgraph was missing when force fields were used.

r48491: wrong / bad vorticity forming weird banding on the y and z axis.

r47485: Make Smoke density available to python via rna.

r47334: Velocity of moving objects was too high after scaling patch.

r47113: Fix messed up shadow display with OpenMP. This needs fixing. For now disable openmp for that function. Shadow calculation would be better raytraced on GPU or using shaders for the future.

r47087: a) Another boundary fix. Resulted in smoke getting "sucked" back into the domain b) Disabling substeps (internal thing). Fixes arbitrary explosions/instabilities.

r46989: Start fixing scaling issues which happen with non cube-shaped domains. Detail: Smoke solver and Blender side of smoke now share the same cell length.

r46981: Fix wrong maximum timestep, resulting in exploding/unstable fluids.

More: Several fixes and patches which were merged into svn with the merge of the fried-chicken branch which containted the Smoke Google Summer of Code 2012 project.

Combined Results