glTF expoter: check image sizes when merging images
This commit is contained in:
parent
41699ae84a
commit
4b1dd1ea5f
|
@ -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
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue