[Bf-blender-cvs] [effbf4a4cb2] fluid-mantaflow: added guard for smoke/liquid sampling/distance functions
Sebastián Barschkis
noreply at git.blender.org
Sun Mar 26 20:41:37 CEST 2017
Commit: effbf4a4cb2a3e740d754720486ded6530f1b4e1
Author: Sebastián Barschkis
Date: Sat Mar 25 13:04:51 2017 +0200
Branches: fluid-mantaflow
https://developer.blender.org/rBeffbf4a4cb2a3e740d754720486ded6530f1b4e1
added guard for smoke/liquid sampling/distance functions
in smoke domains no need to get mesh distances, in liquid domains no need to calculate smoke influence factor
===================================================================
M source/blender/blenkernel/intern/smoke.c
===================================================================
diff --git a/source/blender/blenkernel/intern/smoke.c b/source/blender/blenkernel/intern/smoke.c
index 597c52f79e4..9c5f2084043 100644
--- a/source/blender/blenkernel/intern/smoke.c
+++ b/source/blender/blenkernel/intern/smoke.c
@@ -1842,14 +1842,18 @@ static void emit_from_derivedmesh_task_cb(void *userdata, const int z)
const float ray_start[3] = {((float)lx) + 0.5f, ((float)ly) + 0.5f, ((float)lz) + 0.5f};
/* Emission for smoke and fire. Result in em->influence */
- sample_derivedmesh(
- data->sfs, data->mvert, data->mloop, data->mlooptri, data->mloopuv,
- em->influence, em->velocity, index, data->sds->base_res, data->flow_center,
- data->tree, ray_start, data->vert_vel, data->has_velocity, data->defgrp_index, data->dvert,
- (float)lx, (float)ly, (float)lz);
+ if (data->sfs->type == MOD_SMOKE_FLOW_TYPE_SMOKE || data->sfs->type == MOD_SMOKE_FLOW_TYPE_FIRE || data->sfs->type == MOD_SMOKE_FLOW_TYPE_SMOKEFIRE) {
+ sample_derivedmesh(
+ data->sfs, data->mvert, data->mloop, data->mlooptri, data->mloopuv,
+ em->influence, em->velocity, index, data->sds->base_res, data->flow_center,
+ data->tree, ray_start, data->vert_vel, data->has_velocity, data->defgrp_index, data->dvert,
+ (float)lx, (float)ly, (float)lz);
+ }
/* Emission for liquid. Result in em->distances */
- update_mesh_distances(index, em->distances, data->tree, ray_start);
+ if (data->sfs->type == MOD_SMOKE_FLOW_TYPE_LIQUID) {
+ update_mesh_distances(index, em->distances, data->tree, ray_start);
+ }
}
/* take high res samples if required */
@@ -1864,12 +1868,14 @@ static void emit_from_derivedmesh_task_cb(void *userdata, const int z)
const float ray_start[3] = {lx + 0.5f * data->hr, ly + 0.5f * data->hr, lz + 0.5f * data->hr};
/* Emission for smoke and fire high. Result in em->influence_high */
- sample_derivedmesh(
- data->sfs, data->mvert, data->mloop, data->mlooptri, data->mloopuv,
- em->influence_high, NULL, index, data->sds->base_res, data->flow_center,
- data->tree, ray_start, data->vert_vel, data->has_velocity, data->defgrp_index, data->dvert,
- /* x,y,z needs to be always lowres */
- lx, ly, lz);
+ if (data->sfs->type == MOD_SMOKE_FLOW_TYPE_SMOKE || data->sfs->type == MOD_SMOKE_FLOW_TYPE_FIRE || data->sfs->type == MOD_SMOKE_FLOW_TYPE_SMOKEFIRE) {
+ sample_derivedmesh(
+ data->sfs, data->mvert, data->mloop, data->mlooptri, data->mloopuv,
+ em->influence_high, NULL, index, data->sds->base_res, data->flow_center,
+ data->tree, ray_start, data->vert_vel, data->has_velocity, data->defgrp_index, data->dvert,
+ /* x,y,z needs to be always lowres */
+ lx, ly, lz);
+ }
}
}
}
More information about the Bf-blender-cvs
mailing list