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:
-rw-r--r--source/blender/blenkernel/BKE_subdiv.h4
-rw-r--r--source/blender/blenkernel/intern/subdiv_converter_mesh.c3
-rw-r--r--source/blender/blenkernel/intern/subdiv_inline.h11
3 files changed, 16 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_subdiv.h b/source/blender/blenkernel/BKE_subdiv.h
index 7f4fe1c7673..3b342402ecb 100644
--- a/source/blender/blenkernel/BKE_subdiv.h
+++ b/source/blender/blenkernel/BKE_subdiv.h
@@ -287,6 +287,10 @@ BLI_INLINE int BKE_subdiv_rotate_quad_to_corner(const float quad_u,
BLI_INLINE void BKE_subdiv_rotate_grid_to_quad(
const int corner, const float grid_u, const float grid_v, float *r_quad_u, float *r_quad_v);
+/* Convert Blender edge crease value to OpenSubdiv sharpness. */
+BLI_INLINE float BKE_subdiv_edge_crease_to_sharpness_f(float edge_crease);
+BLI_INLINE float BKE_subdiv_edge_crease_to_sharpness_char(char edge_crease);
+
#ifdef __cplusplus
}
#endif
diff --git a/source/blender/blenkernel/intern/subdiv_converter_mesh.c b/source/blender/blenkernel/intern/subdiv_converter_mesh.c
index a078648e68b..41fc28c5d52 100644
--- a/source/blender/blenkernel/intern/subdiv_converter_mesh.c
+++ b/source/blender/blenkernel/intern/subdiv_converter_mesh.c
@@ -168,8 +168,7 @@ static float get_edge_sharpness(const OpenSubdiv_Converter *converter, int manif
}
const int edge_index = storage->manifold_edge_index_reverse[manifold_edge_index];
const MEdge *medge = storage->mesh->medge;
- const float edge_crease = (float)medge[edge_index].crease / 255.0f;
- return edge_crease * edge_crease * 10.0f;
+ return BKE_subdiv_edge_crease_to_sharpness_char(medge[edge_index].crease);
}
static bool is_infinite_sharp_vertex(const OpenSubdiv_Converter *converter,
diff --git a/source/blender/blenkernel/intern/subdiv_inline.h b/source/blender/blenkernel/intern/subdiv_inline.h
index f00c5cf7ff7..a51a33feb3d 100644
--- a/source/blender/blenkernel/intern/subdiv_inline.h
+++ b/source/blender/blenkernel/intern/subdiv_inline.h
@@ -104,4 +104,15 @@ BLI_INLINE void BKE_subdiv_rotate_grid_to_quad(
}
}
+BLI_INLINE float BKE_subdiv_edge_crease_to_sharpness_f(float edge_crease)
+{
+ return edge_crease * edge_crease * 10.0f;
+}
+
+BLI_INLINE float BKE_subdiv_edge_crease_to_sharpness_char(char edge_crease)
+{
+ const float edge_crease_f = edge_crease / 255.0f;
+ return BKE_subdiv_edge_crease_to_sharpness_f(edge_crease_f);
+}
+
#endif /* __SUBDIV_INLINE_H__ */