[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