[Bf-blender-cvs] [dd102a47574] blender2.8: fix:T58093 Collada Exporter does not create bind_vertex_input and texcoord attribute

Gaia Clary noreply at git.blender.org
Wed Nov 28 15:57:21 CET 2018


Commit: dd102a47574d2806da52747b997e85dd7f1e5f62
Author: Gaia Clary
Date:   Wed Nov 28 15:27:11 2018 +0100
Branches: blender2.8
https://developer.blender.org/rBdd102a47574d2806da52747b997e85dd7f1e5f62

fix:T58093 Collada Exporter does not create bind_vertex_input and texcoord attribute

The Collada exporter used MTFACE layers (deprecated) instead of
CD_MLOOPUV layers. In 2.8 the exporter could no longer find the UVMaps
reliably.

===================================================================

M	source/blender/collada/InstanceWriter.cpp

===================================================================

diff --git a/source/blender/collada/InstanceWriter.cpp b/source/blender/collada/InstanceWriter.cpp
index 68842596550..0c0b1a15653 100644
--- a/source/blender/collada/InstanceWriter.cpp
+++ b/source/blender/collada/InstanceWriter.cpp
@@ -57,13 +57,14 @@ void InstanceWriter::add_material_bindings(COLLADASW::BindMaterial& bind_materia
 
 			// create <bind_vertex_input> for each uv map
 			Mesh *me = (Mesh *)ob->data;
-			int totlayer = CustomData_number_of_layers(&me->fdata, CD_MTFACE);
+
+			int num_layers = CustomData_number_of_layers(&me->ldata, CD_MLOOPUV);
 
 			int map_index = 0;
-			int active_uv_index = CustomData_get_active_layer_index(&me->fdata, CD_MTFACE) -1;
-			for (int b = 0; b < totlayer; b++) {
+			int active_uv_index = CustomData_get_active_layer_index(&me->ldata, CD_MLOOPUV);
+			for (int b = 0; b < num_layers; b++) {
 				if (!active_uv_only || b == active_uv_index) {
-					char *name = bc_CustomData_get_layer_name(&me->fdata, CD_MTFACE, b);
+					char *name = bc_CustomData_get_layer_name(&me->ldata, CD_MLOOPUV, b);
 					im.push_back(COLLADASW::BindVertexInput(name, "TEXCOORD", map_index++));
 				}
 			}



More information about the Bf-blender-cvs mailing list