Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Duroure <julien.duroure@gmail.com>2020-02-22 10:16:03 +0300
committerJulien Duroure <julien.duroure@gmail.com>2020-02-22 10:16:03 +0300
commitb629ab427c4ee766bfae52f188287dd8ca767aae (patch)
tree1cb525d6fcebfb457e4d439ebd65b49bfba2f934 /io_scene_gltf2
parentfb2b2f5cff3ba0256eeff5db217eefde421b25e3 (diff)
glTF importer: omit texture mapping & UVMap node when not needed
Diffstat (limited to 'io_scene_gltf2')
-rwxr-xr-xio_scene_gltf2/__init__.py2
-rw-r--r--io_scene_gltf2/blender/imp/gltf2_blender_texture.py32
2 files changed, 18 insertions, 16 deletions
diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py
index 0ea3e23f..2efef1d9 100755
--- a/io_scene_gltf2/__init__.py
+++ b/io_scene_gltf2/__init__.py
@@ -15,7 +15,7 @@
bl_info = {
'name': 'glTF 2.0 format',
'author': 'Julien Duroure, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
- "version": (1, 2, 22),
+ "version": (1, 2, 23),
'blender': (2, 82, 7),
'location': 'File > Import-Export',
'description': 'Import-Export as glTF 2.0',
diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_texture.py b/io_scene_gltf2/blender/imp/gltf2_blender_texture.py
index e7ca60e6..678fd2af 100644
--- a/io_scene_gltf2/blender/imp/gltf2_blender_texture.py
+++ b/io_scene_gltf2/blender/imp/gltf2_blender_texture.py
@@ -64,10 +64,16 @@ def texture(
x -= 340
# UV Transform (for KHR_texture_transform)
- mapping = mh.node_tree.nodes.new('ShaderNodeMapping')
- mapping.location = x - 160, y + 30
- mapping.vector_type = 'POINT'
- if tex_info.extensions and 'KHR_texture_transform' in tex_info.extensions:
+ needs_tex_transform = 'KHR_texture_transform' in (tex_info.extensions or {})
+ if needs_tex_transform:
+ mapping = mh.node_tree.nodes.new('ShaderNodeMapping')
+ mapping.location = x - 160, y + 30
+ mapping.vector_type = 'POINT'
+ # Outputs
+ mh.node_tree.links.new(uv_socket, mapping.outputs[0])
+ # Inputs
+ uv_socket = mapping.inputs[0]
+
transform = tex_info.extensions['KHR_texture_transform']
transform = texture_transform_gltf_to_blender(transform)
mapping.inputs['Location'].default_value[0] = transform['offset'][0]
@@ -75,25 +81,21 @@ def texture(
mapping.inputs['Rotation'].default_value[2] = transform['rotation']
mapping.inputs['Scale'].default_value[0] = transform['scale'][0]
mapping.inputs['Scale'].default_value[1] = transform['scale'][1]
- # Outputs
- mh.node_tree.links.new(uv_socket, mapping.outputs[0])
- # Inputs
- uv_socket = mapping.inputs[0]
- x -= 260
+ x -= 260
# UV Map
- uv_map = mh.node_tree.nodes.new('ShaderNodeUVMap')
- uv_map.location = x - 160, y - 70
- # Get UVMap
uv_idx = tex_info.tex_coord or 0
try:
uv_idx = tex_info.extensions['KHR_texture_transform']['texCoord']
except Exception:
pass
- uv_map.uv_map = 'UVMap' if uv_idx == 0 else 'UVMap.%03d' % uv_idx
- # Outputs
- mh.node_tree.links.new(uv_socket, uv_map.outputs[0])
+ if uv_idx != 0 or needs_tex_transform:
+ uv_map = mh.node_tree.nodes.new('ShaderNodeUVMap')
+ uv_map.location = x - 160, y - 70
+ uv_map.uv_map = 'UVMap' if uv_idx == 0 else 'UVMap.%03d' % uv_idx
+ # Outputs
+ mh.node_tree.links.new(uv_socket, uv_map.outputs[0])
def set_filtering(tex_img, pysampler):
"""Set the filtering/interpolation on an Image Texture from the glTf sampler."""