Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Genrich <daniel.genrich@gmx.net>2012-05-25 03:50:20 +0400
committerDaniel Genrich <daniel.genrich@gmx.net>2012-05-25 03:50:20 +0400
commitf883d12e0cd3d796a0ec0d540e24214ccdb0e39c (patch)
tree1a6d8ab7df334c3501bfdb8362019e112830ef83 /source/blender/blenloader
parentfda16e7381c5ce4c96fcd05cf9422ebda6bfbe1c (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.c21
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! */