Commit: 2d887ae200885c74bd9799ef3eaa450b622a10c4 Author: Bastien Montagne Date: Tue Mar 29 17:33:08 2016 +0200 Branches: blender-v2.77-release https://developer.blender.org/rB2d887ae200885c74bd9799ef3eaa450b622a10c4
Revert "Fix T47902: Particle grid not using modifier stack." This reverts commit 2bd3acf7cd27c0c3ee77b10d56b91c3b03226d39. Commit is valid in theory - but in practice, it means nearly all edited hair systems would need to be re-created from scratch... Not nice, so better revert and note in code that particle distribution is ugly and does not respect 'use modifier stack' option in most cases. =================================================================== M source/blender/blenkernel/intern/particle_distribute.c =================================================================== diff --git a/source/blender/blenkernel/intern/particle_distribute.c b/source/blender/blenkernel/intern/particle_distribute.c index 6d712ca..1c4099f 100644 --- a/source/blender/blenkernel/intern/particle_distribute.c +++ b/source/blender/blenkernel/intern/particle_distribute.c @@ -796,23 +796,13 @@ static int psys_thread_context_init_distribute(ParticleThreadContext *ctx, Parti } psys_thread_context_init(ctx, sim); - - if (psys->part->use_modifier_stack) - dm = finaldm; - else - dm= CDDM_from_mesh((Mesh*)ob->data); - - /* BMESH ONLY, for verts we don't care about tessfaces */ - if (from != PART_FROM_VERT) { - DM_ensure_tessface(dm); - } - + /* First handle special cases */ if (from == PART_FROM_CHILD) { /* Simple children */ if (part->childtype != PART_CHILD_FACES) { BLI_srandom(31415926 + psys->seed + psys->child_seed); - distribute_simple_children(scene, ob, dm, sim->psmd->dm_deformed, psys); + distribute_simple_children(scene, ob, finaldm, sim->psmd->dm_deformed, psys); return 0; } } @@ -820,11 +810,10 @@ static int psys_thread_context_init_distribute(ParticleThreadContext *ctx, Parti /* Grid distribution */ if (part->distr==PART_DISTR_GRID && from != PART_FROM_VERT) { BLI_srandom(31415926 + psys->seed); - - distribute_grid(dm, psys); - - if (dm != finaldm) dm->release(dm); - + dm= CDDM_from_mesh((Mesh*)ob->data); + DM_ensure_tessface(dm); + distribute_grid(dm,psys); + dm->release(dm); return 0; } } @@ -833,6 +822,10 @@ static int psys_thread_context_init_distribute(ParticleThreadContext *ctx, Parti if (from == PART_FROM_CHILD) { distr=PART_DISTR_RAND; BLI_srandom(31415926 + psys->seed + psys->child_seed); + dm= finaldm; + + /* BMESH ONLY */ + DM_ensure_tessface(dm); children=1; @@ -853,6 +846,16 @@ static int psys_thread_context_init_distribute(ParticleThreadContext *ctx, Parti distr = part->distr; BLI_srandom(31415926 + psys->seed); + if (psys->part->use_modifier_stack) + dm = finaldm; + else + dm= CDDM_from_mesh((Mesh*)ob->data); + + /* BMESH ONLY, for verts we don't care about tessfaces */ + if (from != PART_FROM_VERT) { + DM_ensure_tessface(dm); + } + /* we need orco for consistent distributions */ if (!CustomData_has_layer(&dm->vertData, CD_ORCO)) DM_add_vert_layer(dm, CD_ORCO, CD_ASSIGN, BKE_mesh_orco_verts_get(ob)); _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs