Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-08-13 14:03:50 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-08-13 14:10:00 +0300
commit3ee6b940dfd42a2251d1d3d44131f754d27769dd (patch)
tree4ffbe4971de6a72467f07dcc5641d48358fc54bf /source/blender/blenkernel/intern/DerivedMesh.c
parente6827ad9a6fe2810d50b44106bac7c4b2fa55127 (diff)
Subsurf: Remove OpenSubdiv options from modifier
There are following reasons to do so: - The plan is to replace it with some sort of object or viewport option, so we can apply OpenSubdiv subdivisions on top of modifier stack and keep modifier stack purely CPU side. This will solve issues when adding some relation in scene will force modifier to be evaluated on CPU. - With new upcoming OpenSubdiv based CPU modifier implementation we can cache topology similar to what GPU side was doing, which will already be reasonably faster. - OpenSubdiv GPU does not work since the OpenGL version bump, and is to be rewritten with all the adaptive refine options kept in mind. Since OpenSubdiv GPU was already broken and was only causing object to become invisible, there is no reason to keep having that option in the modifier. Reviewers: brecht Reviewed By: brecht Differential Revision: https://developer.blender.org/D3598
Diffstat (limited to 'source/blender/blenkernel/intern/DerivedMesh.c')
-rw-r--r--source/blender/blenkernel/intern/DerivedMesh.c45
1 files changed, 0 insertions, 45 deletions
diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index 05253f7962a..6fba5ec4eee 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -2857,39 +2857,6 @@ static void editbmesh_calc_modifiers(
MEM_freeN(deformedVerts);
}
-#ifdef WITH_OPENSUBDIV
-/* The idea is to skip CPU-side ORCO calculation when
- * we'll be using GPU backend of OpenSubdiv. This is so
- * playback performance is kept as high as possible.
- */
-static bool calc_modifiers_skip_orco(Depsgraph *depsgraph,
- Scene *scene,
- Object *ob,
- bool use_render_params)
-{
- ModifierData *last_md = ob->modifiers.last;
- const int required_mode = use_render_params ? eModifierMode_Render : eModifierMode_Realtime;
- if (last_md != NULL &&
- last_md->type == eModifierType_Subsurf &&
- modifier_isEnabled(scene, last_md, required_mode))
- {
- if (U.opensubdiv_compute_type == USER_OPENSUBDIV_COMPUTE_NONE) {
- return false;
- }
- else if ((ob->mode & (OB_MODE_VERTEX_PAINT | OB_MODE_WEIGHT_PAINT | OB_MODE_TEXTURE_PAINT)) != 0) {
- return false;
- }
- else if ((DEG_get_eval_flags_for_id(depsgraph, &ob->id) & DAG_EVAL_NEED_CPU) != 0) {
- return false;
- }
- SubsurfModifierData *smd = (SubsurfModifierData *)last_md;
- /* TODO(sergey): Deduplicate this with checks from subsurf_ccg.c. */
- return smd->use_opensubdiv != 0;
- }
- return false;
-}
-#endif
-
static void mesh_finalize_eval(Object *object)
{
Mesh *mesh = (Mesh *)object->data;
@@ -2941,12 +2908,6 @@ static void mesh_build_data(
BKE_object_free_derived_caches(ob);
BKE_object_sculpt_modifiers_changed(ob);
-#ifdef WITH_OPENSUBDIV
- if (calc_modifiers_skip_orco(depsgraph, scene, ob, false)) {
- dataMask &= ~(CD_MASK_ORCO | CD_MASK_PREVIEW_MCOL);
- }
-#endif
-
mesh_calc_modifiers(
depsgraph, scene, ob, NULL, 1, need_mapping, dataMask, -1, true, build_shapekey_layers,
true,
@@ -2988,12 +2949,6 @@ static void editbmesh_build_data(
BKE_editmesh_free_derivedmesh(em);
-#ifdef WITH_OPENSUBDIV
- if (calc_modifiers_skip_orco(depsgraph, scene, obedit, false)) {
- dataMask &= ~(CD_MASK_ORCO | CD_MASK_PREVIEW_MCOL);
- }
-#endif
-
editbmesh_calc_modifiers(
depsgraph, scene, obedit, em, dataMask,
&em->derivedCage, &em->derivedFinal);