diff options
author | Julien Duroure <julien.duroure@gmail.com> | 2019-04-19 19:06:25 +0300 |
---|---|---|
committer | Julien Duroure <julien.duroure@gmail.com> | 2019-04-19 19:06:25 +0300 |
commit | e4165cee8b34b216db5ff41b20b9a05991a4b4b7 (patch) | |
tree | f3aeacf78fa2fd94772e36f3407c63c112c3faf8 /io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_pbrSpecularGlossiness.py | |
parent | 022fb9d09aac59f5df055e879002573daa597efc (diff) |
glTF importer: Manage KHR_texture_transform extension
Diffstat (limited to 'io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_pbrSpecularGlossiness.py')
-rwxr-xr-x | io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_pbrSpecularGlossiness.py | 39 |
1 files changed, 34 insertions, 5 deletions
diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_pbrSpecularGlossiness.py b/io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_pbrSpecularGlossiness.py index fec65ee4..0365fa18 100755 --- a/io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_pbrSpecularGlossiness.py +++ b/io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_pbrSpecularGlossiness.py @@ -14,6 +14,7 @@ import bpy from .gltf2_blender_texture import BlenderTextureInfo +from ..com.gltf2_blender_conversion import texture_transform_gltf_to_blender class BlenderKHR_materials_pbrSpecularGlossiness(): @@ -86,7 +87,7 @@ class BlenderKHR_materials_pbrSpecularGlossiness(): math_vc_B = node_tree.nodes.new('ShaderNodeMath') math_vc_B.operation = 'MULTIPLY' - BlenderTextureInfo.create(gltf, pbrSG['diffuseTexture']['index']) + BlenderTextureInfo.create(gltf, pbrSG['diffuseTexture'], dict_=True) # create UV Map / Mapping / Texture nodes / separate & math and combine text_node = node_tree.nodes.new('ShaderNodeTexImage') @@ -122,6 +123,13 @@ class BlenderKHR_materials_pbrSpecularGlossiness(): mapping = node_tree.nodes.new('ShaderNodeMapping') mapping.location = -1500, 500 + mapping.vector_type = 'POINT' + tex_transform = text_node.image['tex_transform'][str(pbrSG['diffuseTexture']['index'])] + mapping.translation[0] = texture_transform_gltf_to_blender(tex_transform)['offset'][0] + mapping.translation[1] = texture_transform_gltf_to_blender(tex_transform)['offset'][1] + mapping.rotation[2] = texture_transform_gltf_to_blender(tex_transform)['rotation'] + mapping.scale[0] = texture_transform_gltf_to_blender(tex_transform)['scale'][0] + mapping.scale[1] = texture_transform_gltf_to_blender(tex_transform)['scale'][1] uvmap = node_tree.nodes.new('ShaderNodeUVMap') uvmap.location = -2000, 500 @@ -162,7 +170,7 @@ class BlenderKHR_materials_pbrSpecularGlossiness(): elif pbrSG['diffuse_type'] == gltf.TEXTURE: - BlenderTextureInfo.create(gltf, pbrSG['diffuseTexture']['index']) + BlenderTextureInfo.create(gltf, pbrSG['diffuseTexture'], dict_=True) # TODO alpha ? if vertex_color: @@ -209,6 +217,13 @@ class BlenderKHR_materials_pbrSpecularGlossiness(): mapping.location = -2500, 500 else: mapping.location = -1500, 500 + mapping.vector_type = 'POINT' + tex_transform = text_node.image['tex_transform'][str(pbrSG['diffuseTexture']['index'])] + mapping.translation[0] = texture_transform_gltf_to_blender(tex_transform)['offset'][0] + mapping.translation[1] = texture_transform_gltf_to_blender(tex_transform)['offset'][1] + mapping.rotation[2] = texture_transform_gltf_to_blender(tex_transform)['rotation'] + mapping.scale[0] = texture_transform_gltf_to_blender(tex_transform)['scale'][0] + mapping.scale[1] = texture_transform_gltf_to_blender(tex_transform)['scale'][1] uvmap = node_tree.nodes.new('ShaderNodeUVMap') if vertex_color: @@ -260,7 +275,7 @@ class BlenderKHR_materials_pbrSpecularGlossiness(): node_tree.links.new(glossy.inputs[0], combine.outputs[0]) elif pbrSG['specgloss_type'] == gltf.TEXTURE: - BlenderTextureInfo.create(gltf, pbrSG['specularGlossinessTexture']['index']) + BlenderTextureInfo.create(gltf, pbrSG['specularGlossinessTexture'], dict_=True) spec_text = node_tree.nodes.new('ShaderNodeTexImage') if gltf.data.images[ gltf.data.textures[pbrSG['specularGlossinessTexture']['index']].source @@ -275,6 +290,13 @@ class BlenderKHR_materials_pbrSpecularGlossiness(): spec_mapping = node_tree.nodes.new('ShaderNodeMapping') spec_mapping.location = -1000, 0 + spec_mapping.vector_type = 'POINT' + tex_transform = spec_text.image['tex_transform'][str(pbrSG['specularGlossinessTexture']['index'])] + spec_mapping.translation[0] = texture_transform_gltf_to_blender(tex_transform)['offset'][0] + spec_mapping.translation[1] = texture_transform_gltf_to_blender(tex_transform)['offset'][1] + spec_mapping.rotation[2] = texture_transform_gltf_to_blender(tex_transform)['rotation'] + spec_mapping.scale[0] = texture_transform_gltf_to_blender(tex_transform)['scale'][0] + spec_mapping.scale[1] = texture_transform_gltf_to_blender(tex_transform)['scale'][1] spec_uvmap = node_tree.nodes.new('ShaderNodeUVMap') spec_uvmap.location = -1500, 0 @@ -292,8 +314,7 @@ class BlenderKHR_materials_pbrSpecularGlossiness(): node_tree.links.new(spec_text.inputs[0], spec_mapping.outputs[0]) elif pbrSG['specgloss_type'] == gltf.TEXTURE_FACTOR: - - BlenderTextureInfo.create(gltf, pbrSG['specularGlossinessTexture']['index']) + BlenderTextureInfo.create(gltf, pbrSG['specularGlossinessTexture'], dict_=True) spec_text = node_tree.nodes.new('ShaderNodeTexImage') if gltf.data.images[ @@ -312,6 +333,14 @@ class BlenderKHR_materials_pbrSpecularGlossiness(): spec_mapping = node_tree.nodes.new('ShaderNodeMapping') spec_mapping.location = -1000, 0 + spec_mapping.vector_type = 'POINT' + tex_transform = spec_text.image['tex_transform'][str(pbrSG['specularGlossinessTexture']['index'])] + spec_mapping.translation[0] = texture_transform_gltf_to_blender(tex_transform)['offset'][0] + spec_mapping.translation[1] = texture_transform_gltf_to_blender(tex_transform)['offset'][1] + spec_mapping.rotation[2] = texture_transform_gltf_to_blender(tex_transform)['rotation'] + spec_mapping.scale[0] = texture_transform_gltf_to_blender(tex_transform)['scale'][0] + spec_mapping.scale[1] = texture_transform_gltf_to_blender(tex_transform)['scale'][1] + spec_uvmap = node_tree.nodes.new('ShaderNodeUVMap') spec_uvmap.location = -1500, 0 |