From 9f48a04799fb494520c1121d591e03dc1b01641f Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Fri, 21 Jun 2019 14:58:47 +0200 Subject: 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. --- intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc b/intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc index c5dd4509976..431258aa415 100644 --- a/intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc +++ b/intern/opensubdiv/internal/opensubdiv_evaluator_internal.cc @@ -812,11 +812,8 @@ OpenSubdiv_EvaluatorInternal *openSubdiv_createEvaluatorInternal( StencilTableFactory::Create(*refiner, face_varying_stencil_options)); } // 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; -- cgit v1.2.3