[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33845] trunk/blender/release/scripts/op/ io_scene_x3d/export_x3d.py: bugfix [#25252] X3D Export does not specify ImageTexture to go with provided TextureCoordinate data

Campbell Barton ideasman42 at gmail.com
Wed Dec 22 11:44:31 CET 2010


Revision: 33845
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33845
Author:   campbellbarton
Date:     2010-12-22 11:44:31 +0100 (Wed, 22 Dec 2010)

Log Message:
-----------
bugfix [#25252] X3D Export does not specify ImageTexture to go with provided TextureCoordinate data

x3d material support is primitive but at least export first image texture found, similar to how texface is treated at the moment.

Modified Paths:
--------------
    trunk/blender/release/scripts/op/io_scene_x3d/export_x3d.py

Modified: trunk/blender/release/scripts/op/io_scene_x3d/export_x3d.py
===================================================================
--- trunk/blender/release/scripts/op/io_scene_x3d/export_x3d.py	2010-12-22 09:30:13 UTC (rev 33844)
+++ trunk/blender/release/scripts/op/io_scene_x3d/export_x3d.py	2010-12-22 10:44:31 UTC (rev 33845)
@@ -388,7 +388,6 @@
         #   (meshName, loc[0], loc[1], loc[2], sca[0], sca[1], sca[2], rot[0], rot[1], rot[2], quat.angle*DEG2RAD) )
 
         self.writeIndented("<Shape>\n",1)
-        hasImageTexture = False
         is_smooth = False
 
         # XXX, lame, only exports first material.
@@ -406,24 +405,31 @@
                     print("Warning: mesh named %s has multiple materials" % meshName)
                     print("Warning: only one material per object handled")
 
+            image = None
+
             if mat_first is None or mat_first.use_face_texture:
                 #-- textures
-                image = None
                 if mesh.uv_textures.active:
                     for face in mesh.uv_textures.active.data:
                         if face.use_image:
                             image = face.image
                             if image:
-                                self.writeImageTexture(image)
                                 break
+            elif mat_first:
+                for mtex in mat_first.texture_slots:
+                    tex = mtex.texture
+                    if tex and tex.type == 'IMAGE':
+                        image = tex.image
+                        if image:
+                            break
 
-                # XXX, incorrect, uses last image
-                if image:
-                    hasImageTexture = True
+            # XXX, incorrect, uses first image
+            if image:
+                self.writeImageTexture(image)
 
-                    if self.tilenode == 1:
-                        self.writeIndented("<TextureTransform	scale=\"%s %s\" />\n" % (image.xrep, image.yrep))
-                        self.tilenode = 0
+                if self.tilenode == 1:
+                    self.writeIndented("<TextureTransform	scale=\"%s %s\" />\n" % (image.xrep, image.yrep))
+                    self.tilenode = 0
 
             self.writeIndented("</Appearance>\n", -1)
 





More information about the Bf-blender-cvs mailing list