diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-01-10 19:01:35 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2019-01-10 19:09:48 +0300 |
commit | e551ddf712e5e8c8fb4bfcd99158158ac2f7d56e (patch) | |
tree | 4410f712bc85fc571df7d742412c03d1c7aecde1 /source/blender/blenkernel/intern/subdiv_mesh.c | |
parent | 41b65d9a8ed7f95b6851e6c6e1ef55d52961107d (diff) |
Fix T60393: Subdiv gives wrong vertex colors
Diffstat (limited to 'source/blender/blenkernel/intern/subdiv_mesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/subdiv_mesh.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/source/blender/blenkernel/intern/subdiv_mesh.c b/source/blender/blenkernel/intern/subdiv_mesh.c index 4d1b436ca16..9c4793a9efc 100644 --- a/source/blender/blenkernel/intern/subdiv_mesh.c +++ b/source/blender/blenkernel/intern/subdiv_mesh.c @@ -385,13 +385,14 @@ static void loop_interpolation_from_corner( * middle points. * * TODO(sergey): Re-use one of interpolation results from previous - * iteration. - */ + * iteration. */ const float weights[2] = {0.5f, 0.5f}; - const int first_indices[2] = { - loops_of_ptex.first_loop - coarse_mloop, - (loops_of_ptex.first_loop + 1 - coarse_mloop) % - coarse_poly->totloop}; + const int base_loop_index = coarse_poly->loopstart; + const int first_loop_index = loops_of_ptex.first_loop - coarse_mloop; + const int second_loop_index = + base_loop_index + + (first_loop_index - base_loop_index + 1) % coarse_poly->totloop; + const int first_indices[2] = {first_loop_index, second_loop_index}; const int last_indices[2] = { loops_of_ptex.last_loop - coarse_mloop, loops_of_ptex.first_loop - coarse_mloop}; |