[Bf-extensions-cvs] [feca8c52] master: glTF importer: import grayscale emissiveFactor as Emission Strength (new principled socket)
Julien Duroure
noreply at git.blender.org
Wed Sep 23 08:03:33 CEST 2020
Commit: feca8c5289794a70bdd375be76fc4bc59d83c96b
Author: Julien Duroure
Date: Wed Sep 23 08:02:46 2020 +0200
Branches: master
https://developer.blender.org/rBAfeca8c5289794a70bdd375be76fc4bc59d83c96b
glTF importer: import grayscale emissiveFactor as Emission Strength (new principled socket)
===================================================================
M io_scene_gltf2/__init__.py
M io_scene_gltf2/blender/imp/gltf2_blender_pbrMetallicRoughness.py
===================================================================
diff --git a/io_scene_gltf2/__init__.py b/io_scene_gltf2/__init__.py
index ab73a475..d6d44f11 100755
--- a/io_scene_gltf2/__init__.py
+++ b/io_scene_gltf2/__init__.py
@@ -15,8 +15,8 @@
bl_info = {
'name': 'glTF 2.0 format',
'author': 'Julien Duroure, Scurest, Norbert Nopper, Urs Hanselmann, Moritz Becher, Benjamin Schmithüsen, Jim Eckerlein, and many external contributors',
- "version": (1, 4, 31),
- 'blender': (2, 90, 0),
+ "version": (1, 4, 32),
+ 'blender': (2, 91, 0),
'location': 'File > Import-Export',
'description': 'Import-Export as glTF 2.0',
'warning': '',
diff --git a/io_scene_gltf2/blender/imp/gltf2_blender_pbrMetallicRoughness.py b/io_scene_gltf2/blender/imp/gltf2_blender_pbrMetallicRoughness.py
index deb9e301..4bc584b0 100755
--- a/io_scene_gltf2/blender/imp/gltf2_blender_pbrMetallicRoughness.py
+++ b/io_scene_gltf2/blender/imp/gltf2_blender_pbrMetallicRoughness.py
@@ -62,6 +62,7 @@ def pbr_metallic_roughness(mh: MaterialHelper):
mh,
location=locs['emission'],
color_socket=pbr_node.inputs['Emission'],
+ strength_socket=pbr_node.inputs['Emission Strength'],
)
base_color(
@@ -167,7 +168,7 @@ def calc_locations(mh):
# [Texture] => [Emissive Factor] =>
-def emission(mh: MaterialHelper, location, color_socket):
+def emission(mh: MaterialHelper, location, color_socket, strength_socket=None):
x, y = location
emissive_factor = mh.pymat.emissive_factor or [0, 0, 0]
@@ -178,20 +179,26 @@ def emission(mh: MaterialHelper, location, color_socket):
color_socket.default_value = emissive_factor + [1]
return
- # Mix emissive factor
- if emissive_factor != [1, 1, 1]:
- node = mh.node_tree.nodes.new('ShaderNodeMixRGB')
- node.label = 'Emissive Factor'
- node.location = x - 140, y
- node.blend_type = 'MULTIPLY'
- # Outputs
- mh.node_tree.links.new(color_socket, node.outputs[0])
- # Inputs
- node.inputs['Fac'].default_value = 1.0
- color_socket = node.inputs['Color1']
- node.inputs['Color2'].default_value = emissive_factor + [1]
+ # Put grayscale emissive factors into the Emission Strength
+ e0, e1, e2 = emissive_factor
+ if strength_socket and e0 == e1 == e2:
+ strength_socket.default_value = e0
- x -= 200
+ # Otherwise, use a multiply node for it
+ else:
+ if emissive_factor != [1, 1, 1]:
+ node = mh.node_tree.nodes.new('ShaderNodeMixRGB')
+ node.label = 'Emissive Factor'
+ node.location = x - 140, y
+ node.blend_type = 'MULTIPLY'
+ # Outputs
+ mh.node_tree.links.new(color_socket, node.outputs[0])
+ # Inputs
+ node.inputs['Fac'].default_value = 1.0
+ color_socket = node.inputs['Color1']
+ node.inputs['Color2'].default_value = emissive_factor + [1]
+
+ x -= 200
texture(
mh,
More information about the Bf-extensions-cvs
mailing list