diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-12-30 22:29:41 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2012-12-30 22:29:41 +0400 |
commit | bbaeac3bf83bb622743e2b7e551db9aa5feb7ff9 (patch) | |
tree | 76910639f8b8d421cfa20d49aa23481849989a9d /source/blender/blenkernel/intern/cdderivedmesh.c | |
parent | ae9d6e08130e56157cf3979bff81e6d2bf778946 (diff) |
Update DerivedMesh for dynamic-topology sculpt mode
* Build bmesh PBVH in CDDM when dyntopo is enabled
* Disable all modifiers when dyntopo is enabled
Diffstat (limited to 'source/blender/blenkernel/intern/cdderivedmesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 61d0936d41d..080e5fd857c 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -262,6 +262,17 @@ static PBVH *cdDM_getPBVH(Object *ob, DerivedMesh *dm) cddm->pbvh_draw = can_pbvh_draw(ob, dm); } + /* Sculpting on a BMesh (dynamic-topology) gets a special PBVH */ + if (!cddm->pbvh && ob->sculpt->bm) { + cddm->pbvh = BLI_pbvh_new(); + cddm->pbvh_draw = TRUE; + + BLI_pbvh_build_bmesh(cddm->pbvh, ob->sculpt->bm, + ob->sculpt->bm_smooth_shading, + ob->sculpt->bm_log); + } + + /* always build pbvh from original mesh, and only use it for drawing if * this derivedmesh is just original mesh. it's the multires subsurf dm * that this is actually for, to support a pbvh on a modified mesh */ |