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)
 


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to