diff options
author | Daniel Genrich <daniel.genrich@gmx.net> | 2012-05-25 03:50:20 +0400 |
---|---|---|
committer | Daniel Genrich <daniel.genrich@gmx.net> | 2012-05-25 03:50:20 +0400 |
commit | f883d12e0cd3d796a0ec0d540e24214ccdb0e39c (patch) | |
tree | 1a6d8ab7df334c3501bfdb8362019e112830ef83 /source/blender/blenloader | |
parent | fda16e7381c5ce4c96fcd05cf9422ebda6bfbe1c (diff) |
Smoke: 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.
First reported by the Sintel artists long ago, again reported by MiikaH.
Part of my Smoke Development Project Phase III.
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 63df006aa66..352e9d57489 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6814,7 +6814,7 @@ static void do_versions_nodetree_frame_2_64_6(bNodeTree *ntree) } /* initialize custom node color */ - node->color[0] = node->color[1] = node->color[2] = 0.608; /* default theme color */ + node->color[0] = node->color[1] = node->color[2] = 0.608f; /* default theme color */ } } @@ -7498,6 +7498,25 @@ static void do_versions(FileData *fd, Library *lib, Main *main) for (ntree=main->nodetree.first; ntree; ntree=ntree->id.next) do_versions_nodetree_frame_2_64_6(ntree); } + + if (main->versionfile < 263 || (main->versionfile == 263 && main->subversionfile < 7)) + { + Object *ob; + + for (ob = main->object.first; ob; ob = ob->id.next) { + ModifierData *md; + for (md = ob->modifiers.first; md; md = md->next) { + if (md->type == eModifierType_Smoke) { + SmokeModifierData *smd = (SmokeModifierData *)md; + if((smd->type & MOD_SMOKE_TYPE_DOMAIN) && smd->domain) { + int maxres = MAX3(smd->domain->res[0], smd->domain->res[1], smd->domain->res[2]); + smd->domain->scale = smd->domain->dx * maxres; + smd->domain->dx = 1.0f / smd->domain->scale; + } + } + } + } + } /* WATCH IT!!!: pointers from libdata have not been converted yet here! */ /* WATCH IT 2!: Userdef struct init has to be in editors/interface/resources.c! */ |