[Bf-blender-cvs] [cf3c189] fluid-mantaflow: liquid mesh scaling improvements
Sebastián Barschkis
noreply at git.blender.org
Mon Jul 4 00:09:57 CEST 2016
Commit: cf3c18948bce02f2a6a28def4528ae3d405f5abf
Author: Sebastián Barschkis
Date: Mon Jul 4 00:09:30 2016 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBcf3c18948bce02f2a6a28def4528ae3d405f5abf
liquid mesh scaling improvements
===================================================================
M source/blender/blenkernel/intern/smoke.c
===================================================================
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index a8b90d0..e68e6e0 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -2828,7 +2828,7 @@ static void step(Scene *scene, Object *ob, SmokeModifierData *smd, DerivedMesh *
}
}
-static DerivedMesh *createLiquidMesh(SmokeDomainSettings *sds, DerivedMesh *orgdm)
+static DerivedMesh *createLiquidMesh(SmokeDomainSettings *sds, DerivedMesh *orgdm, Object* ob)
{
DerivedMesh *dm;
MVert *mverts;
@@ -2872,6 +2872,8 @@ static DerivedMesh *createLiquidMesh(SmokeDomainSettings *sds, DerivedMesh *orgd
printf("num_verts: %d, num_normals: %d, num_triangles: %d\n", num_verts, num_normals, num_faces);
+ float max_size = MAX3(sds->global_size[0], sds->global_size[1], sds->global_size[2]);
+
// Vertices
for (i = 0; i < num_verts; i++, mverts++)
{
@@ -2879,9 +2881,9 @@ static DerivedMesh *createLiquidMesh(SmokeDomainSettings *sds, DerivedMesh *orgd
mverts->co[1] = liquid_get_vertex_y_at(sds->fluid, i);
mverts->co[2] = liquid_get_vertex_z_at(sds->fluid, i);
- mverts->co[0] *= sds->scale;
- mverts->co[1] *= sds->scale;
- mverts->co[2] *= sds->scale;
+ mverts->co[0] *= max_size / fabsf(ob->size[0]);
+ mverts->co[1] *= max_size / fabsf(ob->size[1]);
+ mverts->co[2] *= max_size / fabsf(ob->size[2]);
// printf("mverts->co[0]: %f, mverts->co[1]: %f, mverts->co[2]: %f\n", mverts->co[0], mverts->co[1], mverts->co[2]);
}
@@ -3183,7 +3185,7 @@ struct DerivedMesh *smokeModifier_do(SmokeModifierData *smd, Scene *scene, Objec
else if (smd->type & MOD_SMOKE_TYPE_DOMAIN && smd->domain &&
smd->domain->type == MOD_SMOKE_DOMAIN_TYPE_LIQUID)
{
- DerivedMesh *result = createLiquidMesh(smd->domain, dm);
+ DerivedMesh *result = createLiquidMesh(smd->domain, dm, ob);
return (result) ? result : CDDM_copy(dm);
}
else {
More information about the Bf-blender-cvs
mailing list