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.
This commit is contained in:
Sergey Sharybin 2019-06-21 14:58:47 +02:00
parent 83a4f5600d
commit 7c9f64d008
Notes: blender-bot 2023-02-14 03:46:57 +01:00
Referenced by commit ae6300a8b7, Fix T66022: crash adding subdivision surface modifier to some meshes
Referenced by issue #63766, Multiresolution behavior when using crease edge
1 changed files with 1 additions and 4 deletions

View File

@ -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;