diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2016-02-28 01:51:25 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2016-02-28 01:57:40 +0300 |
commit | 0feab1baef730a63a242f7b9914e1e42813b8e54 (patch) | |
tree | 1be29ab39f47af9fa4e575d4b72a4ee26bdef90d /source/blender | |
parent | 9191dd3a4a705c8c39dfd687f7a20ec8a87687c1 (diff) |
Fix T47608: Cycles cage baking crash after recent uv derivative fixes.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/render/intern/source/bake_api.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/source/blender/render/intern/source/bake_api.c b/source/blender/render/intern/source/bake_api.c index 4101acf7990..6aec0a90269 100644 --- a/source/blender/render/intern/source/bake_api.c +++ b/source/blender/render/intern/source/bake_api.c @@ -543,6 +543,7 @@ bool RE_bake_pixels_populate_from_objects( for (i = 0; i < num_pixels; i++) { float co[3]; float dir[3]; + TriTessFace *tri_low; primitive_id = pixel_array_from[i].primitive_id; @@ -557,16 +558,19 @@ bool RE_bake_pixels_populate_from_objects( /* calculate from low poly mesh cage */ if (is_custom_cage) { calc_point_from_barycentric_cage(tris_low, tris_cage, mat_low, mat_cage, primitive_id, u, v, co, dir); + tri_low = &tris_cage[primitive_id]; } else if (is_cage) { calc_point_from_barycentric_extrusion(tris_cage, mat_low, imat_low, primitive_id, u, v, cage_extrusion, co, dir, true); + tri_low = &tris_cage[primitive_id]; } else { calc_point_from_barycentric_extrusion(tris_low, mat_low, imat_low, primitive_id, u, v, cage_extrusion, co, dir, false); + tri_low = &tris_cage[primitive_id]; } /* cast ray */ - if (!cast_ray_highpoly(treeData, &tris_low[primitive_id], tris_high, + if (!cast_ray_highpoly(treeData, tri_low, tris_high, pixel_array_from, pixel_array_to, mat_low, highpoly, co, dir, i, tot_highpoly)) { /* if it fails mask out the original pixel array */ |