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:
Diffstat (limited to 'io_scene_gltf2/blender/imp/gltf2_blender_texture.py')
-rw-r--r--io_scene_gltf2/blender/imp/gltf2_blender_texture.py33
1 files changed, 17 insertions, 16 deletions
diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_texture.py b/io_scene_gltf2/blender/imp/gltf2_blender_texture.py
index a0f90ddf..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."""
@@ -149,4 +151,3 @@ def wrap_name(wrap):
if wrap == TextureWrap.MirroredRepeat: return 'MIRRORED_REPEAT'
if wrap == TextureWrap.Repeat: return 'REPEAT'
return 'UNKNOWN (%s)' % wrap
-