From d3eef4d22a021bf71c5e6cac492139cab397e4d2 Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Tue, 2 Aug 2022 09:49:51 -0500 Subject: [PATCH] Fix: Use evaluated materials in OBJ exporter Since 1a81d268a19f2f140, materials on object data can change during evaluation. But a different function is necessary to retrieve materials taking that into account. Solves part of T96721. Differential Revision: https://developer.blender.org/D15595 --- source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc b/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc index e2ecda32717..9460746630d 100644 --- a/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc +++ b/source/blender/io/wavefront_obj/exporter/obj_export_mesh.cc @@ -219,13 +219,13 @@ void OBJMesh::calc_poly_order() const Material *OBJMesh::get_object_material(const int16_t mat_nr) const { /** - * The const_cast is safe here because BKE_object_material_get won't change the object + * The const_cast is safe here because #BKE_object_material_get_eval won't change the object * but it is a big can of worms to fix the declaration of that function right now. * * The call uses "+ 1" as material getter needs one-based indices. */ Object *obj = const_cast(&export_object_eval_); - const Material *r_mat = BKE_object_material_get(obj, mat_nr + 1); + const Material *r_mat = BKE_object_material_get_eval(obj, mat_nr + 1); return r_mat; }