diff options
-rw-r--r-- | source/blender/blenkernel/intern/mesh_tangent.c | 3 | ||||
-rw-r--r-- | source/blender/render/intern/source/bake_api.c | 9 |
2 files changed, 7 insertions, 5 deletions
diff --git a/source/blender/blenkernel/intern/mesh_tangent.c b/source/blender/blenkernel/intern/mesh_tangent.c index b8d260e6922..a222c681a5e 100644 --- a/source/blender/blenkernel/intern/mesh_tangent.c +++ b/source/blender/blenkernel/intern/mesh_tangent.c @@ -45,6 +45,7 @@ #include "BKE_global.h" #include "BKE_mesh.h" #include "BKE_mesh_tangent.h" +#include "BKE_mesh_runtime.h" #include "BKE_report.h" #include "BLI_strict_flags.h" @@ -695,6 +696,8 @@ void BKE_mesh_calc_loop_tangents( Mesh *me_eval, bool calc_active_tangent, const char (*tangent_names)[MAX_NAME], int tangent_names_len) { + BKE_mesh_runtime_looptri_ensure(me_eval); + /* TODO(campbell): store in Mesh.runtime to avoid recalculation. */ short tangent_mask = 0; BKE_mesh_calc_loop_tangent_ex( diff --git a/source/blender/render/intern/source/bake_api.c b/source/blender/render/intern/source/bake_api.c index ca3907e8b73..181d3744ad7 100644 --- a/source/blender/render/intern/source/bake_api.c +++ b/source/blender/render/intern/source/bake_api.c @@ -432,8 +432,7 @@ static TriTessFace *mesh_calc_tri_tessface( me->totloop, me->totpoly, looptri); - - const float *precomputed_normals = me_eval ? CustomData_get_layer(&me_eval->pdata, CD_NORMAL) : NULL; + const float *precomputed_normals = me ? CustomData_get_layer(&me->pdata, CD_NORMAL) : NULL; const bool calculate_normal = precomputed_normals ? false : true; for (i = 0; i < tottri; i++) { @@ -514,11 +513,11 @@ bool RE_bake_pixels_populate_from_objects( tris_high[i] = mesh_calc_tri_tessface(highpoly[i].me, false, NULL); me_highpoly[i] = highpoly[i].me; - BKE_mesh_tessface_ensure(me_highpoly[i]); + BKE_mesh_runtime_looptri_ensure(me_highpoly[i]); - if (me_highpoly[i]->totface != 0) { + if (me_highpoly[i]->runtime.looptris.len != 0) { /* Create a bvh-tree for each highpoly object */ - BKE_bvhtree_from_mesh_get(&treeData[i], me_highpoly[i], BVHTREE_FROM_FACES, 2); + BKE_bvhtree_from_mesh_get(&treeData[i], me_highpoly[i], BVHTREE_FROM_LOOPTRI, 2); if (treeData[i].tree == NULL) { printf("Baking: out of memory while creating BHVTree for object \"%s\"\n", highpoly[i].ob->id.name + 2); |