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>2019-04-19 19:06:25 +0300
committerJulien Duroure <julien.duroure@gmail.com>2019-04-19 19:06:25 +0300
commite4165cee8b34b216db5ff41b20b9a05991a4b4b7 (patch)
treef3aeacf78fa2fd94772e36f3407c63c112c3faf8 /io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_pbrSpecularGlossiness.py
parent022fb9d09aac59f5df055e879002573daa597efc (diff)
glTF importer: Manage KHR_texture_transform extension
Diffstat (limited to 'io_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_pbrSpecularGlossiness.py')
-rwxr-xr-xio_scene_gltf2/blender/imp/gltf2_blender_KHR_materials_pbrSpecularGlossiness.py39
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