diff options
Diffstat (limited to 'source/blender/blenkernel')
4 files changed, 11 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_blender_version.h b/source/blender/blenkernel/BKE_blender_version.h index 9ae85725488..4c88410134c 100644 --- a/source/blender/blenkernel/BKE_blender_version.h +++ b/source/blender/blenkernel/BKE_blender_version.h @@ -24,7 +24,7 @@ * and keep comment above the defines. * Use STRINGIFY() rather than defining with quotes */ #define BLENDER_VERSION 280 -#define BLENDER_SUBVERSION 53 +#define BLENDER_SUBVERSION 54 /* Several breakages with 280, e.g. collections vs layers */ #define BLENDER_MINVERSION 280 #define BLENDER_MINSUBVERSION 0 diff --git a/source/blender/blenkernel/BKE_subdiv.h b/source/blender/blenkernel/BKE_subdiv.h index 8c6b92e3638..f14a11005e7 100644 --- a/source/blender/blenkernel/BKE_subdiv.h +++ b/source/blender/blenkernel/BKE_subdiv.h @@ -58,6 +58,7 @@ typedef struct SubdivSettings { bool is_simple; bool is_adaptive; int level; + bool use_creases; eSubdivVtxBoundaryInterpolation vtx_boundary_interpolation; eSubdivFVarLinearInterpolation fvar_linear_interpolation; } SubdivSettings; diff --git a/source/blender/blenkernel/intern/multires_subdiv.c b/source/blender/blenkernel/intern/multires_subdiv.c index 3d1a019f427..59229f28751 100644 --- a/source/blender/blenkernel/intern/multires_subdiv.c +++ b/source/blender/blenkernel/intern/multires_subdiv.c @@ -41,6 +41,7 @@ void BKE_multires_subdiv_settings_init( settings->is_simple = (mmd->simple != 0); settings->is_adaptive = true; settings->level = settings->is_simple ? 1 : mmd->quality; + settings->use_creases = (mmd->flags & eMultiresModifierFlag_UseCrease); settings->vtx_boundary_interpolation = SUBDIV_VTX_BOUNDARY_EDGE_ONLY; settings->fvar_linear_interpolation = BKE_subdiv_fvar_interpolation_from_uv_smooth(mmd->uv_smooth); diff --git a/source/blender/blenkernel/intern/subdiv_converter_mesh.c b/source/blender/blenkernel/intern/subdiv_converter_mesh.c index 00a2436098e..eda6b522b85 100644 --- a/source/blender/blenkernel/intern/subdiv_converter_mesh.c +++ b/source/blender/blenkernel/intern/subdiv_converter_mesh.c @@ -168,6 +168,9 @@ static float get_edge_sharpness(const OpenSubdiv_Converter *converter, return 10.0f; } #endif + if (!storage->settings.use_creases) { + return 0.0f; + } const int edge_index = storage->manifold_edge_index_reverse[manifold_edge_index]; const MEdge *medge = storage->mesh->medge; @@ -190,9 +193,13 @@ static bool is_infinite_sharp_vertex(const OpenSubdiv_Converter *converter, vertex_index); } -static float get_vertex_sharpness(const OpenSubdiv_Converter *UNUSED(converter), +static float get_vertex_sharpness(const OpenSubdiv_Converter *converter, int UNUSED(manifold_vertex_index)) { + ConverterStorage *storage = converter->user_data; + if (!storage->settings.use_creases) { + return 0.0f; + } return 0.0f; } |