From f883d12e0cd3d796a0ec0d540e24214ccdb0e39c Mon Sep 17 00:00:00 2001 From: Daniel Genrich Date: Thu, 24 May 2012 23:50:20 +0000 Subject: 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. --- source/blender/blenloader/intern/readfile.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'source/blender/blenloader') 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! */ -- cgit v1.2.3