[Bf-extensions-cvs] [4b1dd1ea] master: glTF expoter: check image sizes when merging images

Julien Duroure noreply at git.blender.org
Sat Mar 16 15:56:16 CET 2019


Commit: 4b1dd1ea5fd39e6fe6979755d4e35e4ca978588c
Author: Julien Duroure
Date:   Sat Mar 16 15:56:01 2019 +0100
Branches: master
https://developer.blender.org/rBA4b1dd1ea5fd39e6fe6979755d4e35e4ca978588c

glTF expoter: check image sizes when merging images

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

M	io_scene_gltf2/blender/exp/gltf2_blender_gather_texture_info.py

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

diff --git a/io_scene_gltf2/blender/exp/gltf2_blender_gather_texture_info.py b/io_scene_gltf2/blender/exp/gltf2_blender_gather_texture_info.py
index eb796df6..4f579800 100755
--- a/io_scene_gltf2/blender/exp/gltf2_blender_gather_texture_info.py
+++ b/io_scene_gltf2/blender/exp/gltf2_blender_gather_texture_info.py
@@ -18,8 +18,8 @@ from io_scene_gltf2.blender.exp.gltf2_blender_gather_cache import cached
 from io_scene_gltf2.io.com import gltf2_io
 from io_scene_gltf2.blender.exp import gltf2_blender_gather_texture
 from io_scene_gltf2.blender.exp import gltf2_blender_search_node_tree
-from io_scene_gltf2.blender.exp import gltf2_blender_export_keys
 from io_scene_gltf2.blender.exp import gltf2_blender_get
+from io_scene_gltf2.io.com.gltf2_io_debug import print_console
 from io_scene_gltf2.io.com.gltf2_io_extensions import Extension
 
 
@@ -49,6 +49,20 @@ def __filter_texture_info(blender_shader_sockets_or_texture_slots, export_settin
         if any([__get_tex_from_socket(socket) is None for socket in blender_shader_sockets_or_texture_slots]):
             # sockets do not lead to a texture --> discard
             return False
+
+        resolution = __get_tex_from_socket(blender_shader_sockets_or_texture_slots[0]).shader_node.image.size
+        if any(__get_tex_from_socket(elem).shader_node.image.size != resolution
+               for elem in blender_shader_sockets_or_texture_slots):
+            def format_image(image_node):
+                return "{} ({}x{})".format(image_node.name, image_node.image.size[0], image_node.image.size[1])
+
+            images = [format_image(__get_tex_from_socket(elem).shader_node) for elem in
+                      blender_shader_sockets_or_texture_slots]
+
+            print_console("ERROR", "Image sizes do not match. In order to be merged into one image file, "
+                                   "images need to be of the same size. Images: {}".format(images))
+            return False
+
     return True



More information about the Bf-extensions-cvs mailing list