[Bf-blender-cvs] [7c9f64d0083] master: Fix T63766: Multiresolution behavior when using crease edge

Sergey Sharybin noreply at git.blender.org
Fri Jun 21 15:53:21 CEST 2019


Commit: 7c9f64d008357151ae2e0007172a088d41588dec
Author: Sergey Sharybin
Date:   Fri Jun 21 14:58:47 2019 +0200
Branches: master
https://developer.blender.org/rB7c9f64d008357151ae2e0007172a088d41588dec

Fix T63766: Multiresolution behavior when using crease edge

Switch to Gregory basis patches which are tangent continuous across their
boundaries.

Originally we've used BSpline basis patches to be more compatible with the
old subdivision code, but a lot of things changed anyway.

===================================================================

M	intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc

===================================================================

diff --git a/intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc b/intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc
index fa45c0119ec..198f985a233 100644
--- a/intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc
+++ b/intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc
@@ -771,11 +771,8 @@ OpenSubdiv_EvaluatorInternal *openSubdiv_createEvaluatorInternal(
   }
 #endif
   // Generate bi-cubic patch table for the limit surface.
-  // TODO(sergey): Ideally we would want to expose end-cap settings via
-  // C-API to make it more generic. Currently it matches old Blender's
-  // subsurf code.
   PatchTableFactory::Options patch_options(level);
-  patch_options.SetEndCapType(PatchTableFactory::Options::ENDCAP_BSPLINE_BASIS);
+  patch_options.SetEndCapType(PatchTableFactory::Options::ENDCAP_GREGORY_BASIS);
   patch_options.useInfSharpPatch = use_inf_sharp_patch;
   patch_options.generateFVarTables = has_face_varying_data;
   patch_options.generateFVarLegacyLinearPatches = false;



More information about the Bf-blender-cvs mailing list