[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [48226] trunk/blender/source/blender: Added option for exporting material based textures.

Gaia Clary gaia.clary at machinimatrix.org
Sun Jun 24 00:03:40 CEST 2012


Revision: 48226
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=48226
Author:   gaiaclary
Date:     2012-06-23 22:03:31 +0000 (Sat, 23 Jun 2012)
Log Message:
-----------
Added option for exporting material based textures. Cleaned up header files due to a bug in osx

Modified Paths:
--------------
    trunk/blender/source/blender/collada/EffectExporter.cpp
    trunk/blender/source/blender/collada/EffectExporter.h
    trunk/blender/source/blender/collada/ExportSettings.h
    trunk/blender/source/blender/collada/ImageExporter.cpp
    trunk/blender/source/blender/collada/ImageExporter.h
    trunk/blender/source/blender/collada/collada.cpp
    trunk/blender/source/blender/collada/collada.h
    trunk/blender/source/blender/editors/io/io_collada.c
    trunk/blender/source/blender/makesrna/intern/rna_scene_api.c

Modified: trunk/blender/source/blender/collada/EffectExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/EffectExporter.cpp	2012-06-23 19:27:41 UTC (rev 48225)
+++ trunk/blender/source/blender/collada/EffectExporter.cpp	2012-06-23 22:03:31 UTC (rev 48226)
@@ -173,7 +173,8 @@
 {
 	// create a list of indices to textures of type TEX_IMAGE
 	std::vector<int> tex_indices;
-	createTextureIndices(ma, tex_indices);
+	if(this->export_settings->include_material_textures)
+		createTextureIndices(ma, tex_indices);
 
 	openEffect(translate_id(id_name(ma)) + "-effect");
 	
@@ -309,7 +310,7 @@
 
 
 	std::set<Image *> uv_textures;
-	if (ob->type == OB_MESH && ob->totcol) {
+	if (ob->type == OB_MESH && ob->totcol && this->export_settings->include_uv_textures) {
 		Mesh *me     = (Mesh *) ob->data;
 		BKE_mesh_tessface_ensure(me);
 		for (int i = 0; i < me->pdata.totlayer; i++) {

Modified: trunk/blender/source/blender/collada/EffectExporter.h
===================================================================
--- trunk/blender/source/blender/collada/EffectExporter.h	2012-06-23 19:27:41 UTC (rev 48225)
+++ trunk/blender/source/blender/collada/EffectExporter.h	2012-06-23 22:03:31 UTC (rev 48226)
@@ -64,7 +64,7 @@
 	void writeBlinn(COLLADASW::EffectProfile &ep, Material *ma);
 	void writeLambert(COLLADASW::EffectProfile &ep, Material *ma);
 	void writePhong(COLLADASW::EffectProfile &ep, Material *ma);
-	void EffectsExporter::writeTextures(COLLADASW::EffectProfile &ep,
+	void writeTextures(COLLADASW::EffectProfile &ep,
 			std::string &key,
 			COLLADASW::Sampler *sampler, 
 			MTex *t, Image *ima,

Modified: trunk/blender/source/blender/collada/ExportSettings.h
===================================================================
--- trunk/blender/source/blender/collada/ExportSettings.h	2012-06-23 19:27:41 UTC (rev 48225)
+++ trunk/blender/source/blender/collada/ExportSettings.h	2012-06-23 22:03:31 UTC (rev 48226)
@@ -41,6 +41,7 @@
 
 	bool active_uv_only;
 	bool include_uv_textures;
+	bool include_material_textures;
 	bool use_texture_copies;
 
 	bool use_object_instantiation;

Modified: trunk/blender/source/blender/collada/ImageExporter.cpp
===================================================================
--- trunk/blender/source/blender/collada/ImageExporter.cpp	2012-06-23 19:27:41 UTC (rev 48225)
+++ trunk/blender/source/blender/collada/ImageExporter.cpp	2012-06-23 22:03:31 UTC (rev 48226)
@@ -98,7 +98,7 @@
 			// So we have to export it. The export will keep the image state intact,
 			// so the exported file will not be associated with the image.
 
-			if (BKE_imbuf_write_as(imbuf, export_path, &imageFormat, true) != 0) {
+			if (BKE_imbuf_write_as(imbuf, export_path, &imageFormat, true) == 0) {
 				fprintf(stderr, "Collada export: Cannot export image to:\n%s\n", export_path);
 			}
 			BLI_strncpy(export_path, export_file, sizeof(export_path));
@@ -215,7 +215,9 @@
 	openLibrary();
 
 	MaterialFunctor mf;
-	mf.forEachMaterialInExportSet<ImagesExporter>(sce, *this, this->export_settings->export_set);
+	if (this->export_settings->include_material_textures) {
+		mf.forEachMaterialInExportSet<ImagesExporter>(sce, *this, this->export_settings->export_set);
+	}
 
 	if (this->export_settings->include_uv_textures) {
 		export_UV_Images();

Modified: trunk/blender/source/blender/collada/ImageExporter.h
===================================================================
--- trunk/blender/source/blender/collada/ImageExporter.h	2012-06-23 19:27:41 UTC (rev 48225)
+++ trunk/blender/source/blender/collada/ImageExporter.h	2012-06-23 22:03:31 UTC (rev 48226)
@@ -51,8 +51,8 @@
 private:
 	std::vector<std::string> mImages; // contains list of written images, to avoid duplicates
 
-	void ImagesExporter::export_UV_Images(); 
-	void ImagesExporter::export_UV_Image(Image *image, bool use_texture_copies);
+	void export_UV_Images(); 
+	void export_UV_Image(Image *image, bool use_texture_copies);
 	bool hasImages(Scene *sce);
 	const ExportSettings *export_settings;
 };

Modified: trunk/blender/source/blender/collada/collada.cpp
===================================================================
--- trunk/blender/source/blender/collada/collada.cpp	2012-06-23 19:27:41 UTC (rev 48225)
+++ trunk/blender/source/blender/collada/collada.cpp	2012-06-23 22:03:31 UTC (rev 48226)
@@ -63,6 +63,7 @@
 
 				   int active_uv_only,
 				   int include_uv_textures,
+				   int include_material_textures,
 				   int use_texture_copies,
 
                    int use_object_instantiation,
@@ -90,8 +91,9 @@
 	export_settings.deform_bones_only        = deform_bones_only != 0;
 
 	export_settings.active_uv_only           = active_uv_only != 0;
-	export_settings.include_uv_textures      = include_uv_textures;
-	export_settings.use_texture_copies       = use_texture_copies;
+	export_settings.include_uv_textures      = include_uv_textures != 0;
+	export_settings.include_material_textures= include_material_textures != 0;
+	export_settings.use_texture_copies       = use_texture_copies != 0;
 
 	export_settings.use_object_instantiation = use_object_instantiation != 0;
 	export_settings.sort_by_name             = sort_by_name != 0;

Modified: trunk/blender/source/blender/collada/collada.h
===================================================================
--- trunk/blender/source/blender/collada/collada.h	2012-06-23 19:27:41 UTC (rev 48225)
+++ trunk/blender/source/blender/collada/collada.h	2012-06-23 22:03:31 UTC (rev 48226)
@@ -57,8 +57,9 @@
                    int include_armatures,
                    int deform_bones_only,
 
-				   int active_uv,
-				   int include_textures,
+				   int active_uv_only,
+				   int include_uv_textures,
+				   int include_material_textures,
 				   int use_texture_copies,
 
                    int use_object_instantiation,

Modified: trunk/blender/source/blender/editors/io/io_collada.c
===================================================================
--- trunk/blender/source/blender/editors/io/io_collada.c	2012-06-23 19:27:41 UTC (rev 48225)
+++ trunk/blender/source/blender/editors/io/io_collada.c	2012-06-23 22:03:31 UTC (rev 48226)
@@ -85,6 +85,7 @@
 	int deform_bones_only;
 
 	int include_uv_textures;
+	int include_material_textures;
 	int use_texture_copies;
 	int active_uv_only;
 
@@ -109,6 +110,7 @@
 	deform_bones_only        = RNA_boolean_get(op->ptr, "deform_bones_only");
 
 	include_uv_textures      = RNA_boolean_get(op->ptr, "include_uv_textures");
+	include_material_textures= RNA_boolean_get(op->ptr, "include_material_textures");
 	use_texture_copies       = RNA_boolean_get(op->ptr, "use_texture_copies");
 	active_uv_only           = RNA_boolean_get(op->ptr, "active_uv_only");
 
@@ -129,8 +131,9 @@
 	        include_armatures,
 	        deform_bones_only,
 
+			active_uv_only,
 			include_uv_textures,
-			active_uv_only,
+			include_material_textures,
 			use_texture_copies,
 
 	        use_object_instantiation,
@@ -183,6 +186,9 @@
 	uiItemR(row, imfptr, "include_uv_textures", 0, NULL, ICON_NONE);
 
 	row = uiLayoutRow(box, 0);
+	uiItemR(row, imfptr, "include_material_textures", 0, NULL, ICON_NONE);
+
+	row = uiLayoutRow(box, 0);
 	uiItemR(row, imfptr, "use_texture_copies", 1, NULL, ICON_NONE);
 
 
@@ -267,6 +273,9 @@
 	RNA_def_boolean(ot->srna, "include_uv_textures", 0, "Include UV Textures",
 					"Export textures assigned to the object UV maps");
 
+	RNA_def_boolean(ot->srna, "include_material_textures", 0, "Include Material Textures",
+					"Export textures assigned to the object Materials");
+
 	RNA_def_boolean(ot->srna, "use_texture_copies", 1, "copy", 
 	                "Copy textures to same folder where the .dae file is exported");
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_scene_api.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_scene_api.c	2012-06-23 19:27:41 UTC (rev 48225)
+++ trunk/blender/source/blender/makesrna/intern/rna_scene_api.c	2012-06-23 22:03:31 UTC (rev 48226)
@@ -98,7 +98,8 @@
     int deform_bones_only,
 
 	int active_uv_only,
-	int include_textures,
+	int include_uv_textures,
+	int include_material_textures,
 	int use_texture_copies,
 
     int use_object_instantiation,
@@ -107,8 +108,8 @@
 {
 	collada_export(scene, filepath, apply_modifiers, export_mesh_type, selected,  
 	               include_children, include_armatures, deform_bones_only,
-				   active_uv_only, include_textures, use_texture_copies,
-	               use_object_instantiation, sort_by_name, second_life);
+				   active_uv_only, include_uv_textures, include_material_textures,
+				   use_texture_copies, use_object_instantiation, sort_by_name, second_life);
 }
 
 #endif
@@ -145,7 +146,8 @@
 	parm = RNA_def_boolean(func, "deform_bones_only", 0, "Deform Bones only", "Only export deforming bones with armatures");
 
 	parm = RNA_def_boolean(func, "active_uv_only", 0, "Active UV Layer only", "Export only the active UV Layer");
-	parm = RNA_def_boolean(func, "include_textures", 0, "Include Textures", "Export related textures");
+	parm = RNA_def_boolean(func, "include_uv_textures", 0, "Include UV Textures", "Export textures assigned to the object UV maps");
+	parm = RNA_def_boolean(func, "include_material_textures", 0, "Include Material Textures", "Export textures assigned to the object Materials");
 	parm = RNA_def_boolean(func, "use_texture_copies", 0, "copy", "Copy textures to same folder where the .dae file is exported");
 
 	parm = RNA_def_boolean(func, "use_object_instantiation", 1, "Use Object Instances", "Instantiate multiple Objects from same Data");




More information about the Bf-blender-cvs mailing list