diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2014-01-21 19:32:36 +0400 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2014-01-21 19:32:47 +0400 |
commit | c691551249f3fe3982c43e4c75be40a19503dd26 (patch) | |
tree | 3332a4f50ff5e6df3884a44334b07e578d619840 /source/blender/blenkernel/BKE_mesh.h | |
parent | cda894fcfd6a19f48eeb745af49800b5165f936c (diff) |
Optimize tessellation code (min 20% better, up to 300% with some CD layers to tessellate).
The main idea is to store (during tessellation) or recreate (during tessdata update) a tessfaceverts-to-loops mapping, and then update all tessdata
in one pass, instead of calling `BKE_mesh_loops_to_mface_corners` repeatedly for all tfaces!
Differential Revision: https://developer.blender.org/D226
Reviewed by Campbell, thanks a lot!
Diffstat (limited to 'source/blender/blenkernel/BKE_mesh.h')
-rw-r--r-- | source/blender/blenkernel/BKE_mesh.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_mesh.h b/source/blender/blenkernel/BKE_mesh.h index e82689ec339..302f71e61bf 100644 --- a/source/blender/blenkernel/BKE_mesh.h +++ b/source/blender/blenkernel/BKE_mesh.h @@ -215,6 +215,9 @@ void BKE_mesh_loops_to_mface_corners( const int polyindex, const int mf_len, const int numTex, const int numCol, const bool hasPCol, const bool hasOrigSpace); +void BKE_mesh_loops_to_tessdata( + struct CustomData *fdata, struct CustomData *ldata, struct CustomData *pdata, + int *polyindices, unsigned int (*loopindices)[4], const int num_faces); int BKE_mesh_recalc_tessellation( struct CustomData *fdata, struct CustomData *ldata, struct CustomData *pdata, struct MVert *mvert, |