diff options
author | Mai Lavelle <mai.lavelle@gmail.com> | 2016-08-14 19:41:45 +0300 |
---|---|---|
committer | Mai Lavelle <mai.lavelle@gmail.com> | 2016-08-14 22:04:21 +0300 |
commit | 9396e11180fbdc380f06dbd4c696a9c39ff32ec9 (patch) | |
tree | 376c958f000ffb64030106791a42134b6e31e961 /intern/cycles/blender | |
parent | 5c0a67b325b2c07574ef303947d5c026ab3f55d5 (diff) |
Cycles microdisplacement: Move call to tessellate() from addon to Cycles
By calling `tessellate()` from the mesh manager in Cycles we can do pre/post
processing or even threaded tessellation without concerning client side code
with the details.
Diffstat (limited to 'intern/cycles/blender')
-rw-r--r-- | intern/cycles/blender/blender_mesh.cpp | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp index 6dc26c2981b..c33bc4c263f 100644 --- a/intern/cycles/blender/blender_mesh.cpp +++ b/intern/cycles/blender/blender_mesh.cpp @@ -806,7 +806,10 @@ static void create_subd_mesh(Scene *scene, } /* set subd params */ - SubdParams sdparams(mesh); + if(!mesh->subd_params) { + mesh->subd_params = new SubdParams(mesh); + } + SubdParams& sdparams = *mesh->subd_params; PointerRNA cobj = RNA_pointer_get(&b_ob.ptr, "cycles"); @@ -816,10 +819,6 @@ static void create_subd_mesh(Scene *scene, scene->camera->update(); sdparams.camera = scene->camera; sdparams.objecttoworld = get_transform(b_ob.matrix_world()); - - /* tesselate */ - DiagSplit dsplit(sdparams); - mesh->tessellate(&dsplit); } /* Sync */ |