Principled Node added in Add Images as Planes

This is about replacing the Diffuse shader with a principled shader, so that exporting to other formats like OBJ, FBX, GLTF  becomes hassle - free as the textures are also imported along with it , as mentioned in the Task [[ https://developer.blender.org/T66299 | T66299 ]]

Reviewers: mont29, lichtwerk

Reviewed By: mont29

Subscribers: Dok11, lichtwerk

Tags: #add-ons

Differential Revision: https://developer.blender.org/D5610
This commit is contained in:
Bastien Montagne 2019-08-29 11:44:18 +02:00
parent ea5f0df783
commit a215a3c85a
Notes: blender-bot 2023-02-14 19:13:17 +01:00
Referenced by issue #74473, 'Images on a plane' transparency/alpha import bug on Blender 2.82 (vs 2.8)
Referenced by issue #66299, Addon "Import images as planes". change node system for better exprting to glTF
1 changed files with 6 additions and 12 deletions

View File

@ -21,7 +21,7 @@
bl_info = {
"name": "Import Images as Planes",
"author": "Florian Meyer (tstscr), mont29, matali, Ted Schundler (SpkyElctrc)",
"version": (3, 2, 2),
"version": (3, 3, 0),
"blender": (2, 80, 0),
"location": "File > Import > Images as Planes or Add > Mesh > Images as Planes",
"description": "Imports images and creates planes with the appropriate aspect ratio. "
@ -727,11 +727,11 @@ class IMPORT_IMAGE_OT_to_plane(Operator, AddObjectHelper):
# ------------------------------
# Properties - Material / Shader
SHADERS = (
('DIFFUSE', "Diffuse", "Diffuse Shader"),
('PRINCIPLED',"Principled","Principled Shader"),
('SHADELESS', "Shadeless", "Only visible to camera and reflections"),
('EMISSION', "Emit", "Emission Shader"),
)
shader: EnumProperty(name="Shader", items=SHADERS, default='DIFFUSE', description="Node shader to use")
shader: EnumProperty(name="Shader", items=SHADERS, default='PRINCIPLED', description="Node shader to use")
emit_strength: FloatProperty(
name="Strength", min=0.0, default=1.0, soft_max=10.0,
@ -1009,8 +1009,8 @@ class IMPORT_IMAGE_OT_to_plane(Operator, AddObjectHelper):
tex_image = self.create_cycles_texnode(context, node_tree, img_spec)
if self.shader == 'DIFFUSE':
core_shader = node_tree.nodes.new('ShaderNodeBsdfDiffuse')
if self.shader == 'PRINCIPLED':
core_shader = node_tree.nodes.new('ShaderNodeBsdfPrincipled')
elif self.shader == 'SHADELESS':
core_shader = get_shadeless_node(node_tree)
else: # Emission Shading
@ -1021,13 +1021,7 @@ class IMPORT_IMAGE_OT_to_plane(Operator, AddObjectHelper):
node_tree.links.new(core_shader.inputs[0], tex_image.outputs[0])
if self.use_transparency:
bsdf_transparent = node_tree.nodes.new('ShaderNodeBsdfTransparent')
mix_shader = node_tree.nodes.new('ShaderNodeMixShader')
node_tree.links.new(mix_shader.inputs[0], tex_image.outputs[1])
node_tree.links.new(mix_shader.inputs[1], bsdf_transparent.outputs[0])
node_tree.links.new(mix_shader.inputs[2], core_shader.outputs[0])
core_shader = mix_shader
node_tree.links.new(core_shader.inputs[18], tex_image.outputs[1])
node_tree.links.new(out_node.inputs[0], core_shader.outputs[0])