From f6d03b060ca2dd4b4ca037aefa23da028d4f1b65 Mon Sep 17 00:00:00 2001 From: Onek8 Date: Wed, 28 May 2025 02:05:04 +0000 Subject: [PATCH 1/4] Update leenkx/blender/lnx/lightmapper/utility/cycles/nodes.py --- .../lnx/lightmapper/utility/cycles/nodes.py | 27 ++++++++++--------- 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/leenkx/blender/lnx/lightmapper/utility/cycles/nodes.py b/leenkx/blender/lnx/lightmapper/utility/cycles/nodes.py index da5e28b..fda6133 100644 --- a/leenkx/blender/lnx/lightmapper/utility/cycles/nodes.py +++ b/leenkx/blender/lnx/lightmapper/utility/cycles/nodes.py @@ -191,7 +191,7 @@ def apply_materials(load_atlas=0): mainNode = outputNode.inputs[0].links[0].from_node.inputs[0].links[0].from_node - if (mainNode.type == "ShaderNodeMixRGB"): + if (mainNode.type == "ShaderNodeMix"): if bpy.context.scene.TLM_SceneProperties.tlm_verbose: print("Mix RGB shader found") @@ -199,9 +199,11 @@ def apply_materials(load_atlas=0): #Add all nodes first #Add lightmap multipliction texture - mixNode = node_tree.nodes.new(type="ShaderNodeMixRGB") + mixNode = node_tree.nodes.new(type="ShaderNodeMix") mixNode.name = "Lightmap_Multiplication" mixNode.location = -800, 300 + mixNode.data_type = 'RGBA' + mixNode.inputs[0].default_value = 1 if scene.TLM_EngineProperties.tlm_lighting_mode == "indirect" or scene.TLM_EngineProperties.tlm_lighting_mode == "indirectAO": mixNode.blend_type = 'MULTIPLY' else: @@ -312,8 +314,8 @@ def apply_materials(load_atlas=0): else: mat.node_tree.links.new(lightmapNode.outputs[1], DecodeNode.inputs[1]) #Connect lightmap node to decodenode - mat.node_tree.links.new(DecodeNode.outputs[0], mixNode.inputs[1]) #Connect decode node to mixnode - mat.node_tree.links.new(ExposureNode.outputs[0], mixNode.inputs[1]) #Connect exposure node to mixnode + mat.node_tree.links.new(DecodeNode.outputs[0], mixNode.inputs[6]) #Connect decode node to mixnode + mat.node_tree.links.new(ExposureNode.outputs[0], mixNode.inputs[6]) #Connect exposure node to mixnode else: @@ -323,10 +325,10 @@ def apply_materials(load_atlas=0): else: mat.node_tree.links.new(lightmapNode.outputs[1], DecodeNode.inputs[1]) #Connect lightmap node to decodenode - mat.node_tree.links.new(DecodeNode.outputs[0], mixNode.inputs[1]) #Connect lightmap node to mixnode + mat.node_tree.links.new(DecodeNode.outputs[0], mixNode.inputs[6]) #Connect lightmap node to mixnode - mat.node_tree.links.new(baseColorNode.outputs[0], mixNode.inputs[2]) #Connect basecolor to pbr node - mat.node_tree.links.new(mixNode.outputs[0], mainNode.inputs[0]) #Connect mixnode to pbr node + mat.node_tree.links.new(baseColorNode.outputs[0], mixNode.inputs[7]) #Connect basecolor to pbr node + mat.node_tree.links.new(mixNode.outputs[2], mainNode.inputs[0]) #Connect mixnode to pbr node if not scene.TLM_EngineProperties.tlm_target == "vertex": mat.node_tree.links.new(UVLightmap.outputs[0], lightmapNode.inputs[0]) #Connect uvnode to lightmapnode @@ -338,11 +340,11 @@ def apply_materials(load_atlas=0): if(scene.TLM_EngineProperties.tlm_exposure_multiplier > 0): mat.node_tree.links.new(lightmapNode.outputs[0], ExposureNode.inputs[0]) #Connect lightmap node to mixnode - mat.node_tree.links.new(ExposureNode.outputs[0], mixNode.inputs[1]) #Connect lightmap node to mixnode + mat.node_tree.links.new(ExposureNode.outputs[0], mixNode.inputs[6]) #Connect lightmap node to mixnode else: - mat.node_tree.links.new(lightmapNode.outputs[0], mixNode.inputs[1]) #Connect lightmap node to mixnode - mat.node_tree.links.new(baseColorNode.outputs[0], mixNode.inputs[2]) #Connect basecolor to pbr node - mat.node_tree.links.new(mixNode.outputs[0], mainNode.inputs[0]) #Connect mixnode to pbr node + mat.node_tree.links.new(lightmapNode.outputs[0], mixNode.inputs[6]) #Connect lightmap node to mixnode + mat.node_tree.links.new(baseColorNode.outputs[0], mixNode.inputs[7]) #Connect basecolor to pbr node + mat.node_tree.links.new(mixNode.outputs[0], mainNode.inputs[2]) #Connect mixnode to pbr node if not scene.TLM_EngineProperties.tlm_target == "vertex": mat.node_tree.links.new(UVLightmap.outputs[0], lightmapNode.inputs[0]) #Connect uvnode to lightmapnode @@ -491,8 +493,9 @@ def applyAOPass(): AOMap.image = AOImage AOMap.location = -800, 0 - AOMult = nodes.new(type="ShaderNodeMixRGB") + AOMult = nodes.new(type="ShaderNodeMix") AOMult.name = "TLM_AOMult" + AOMult.data_type = 'RGBA' AOMult.blend_type = 'MULTIPLY' AOMult.inputs[0].default_value = 1.0 AOMult.location = -300, 300 From 38f72101ebd7b1d3c4e23c72148f413667dbf34a Mon Sep 17 00:00:00 2001 From: Onek8 Date: Wed, 28 May 2025 02:06:48 +0000 Subject: [PATCH 2/4] Update leenkx/blender/lnx/lightmapper/utility/cycles/prepare.py --- leenkx/blender/lnx/lightmapper/utility/cycles/prepare.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/leenkx/blender/lnx/lightmapper/utility/cycles/prepare.py b/leenkx/blender/lnx/lightmapper/utility/cycles/prepare.py index 4403f41..1615d75 100644 --- a/leenkx/blender/lnx/lightmapper/utility/cycles/prepare.py +++ b/leenkx/blender/lnx/lightmapper/utility/cycles/prepare.py @@ -518,7 +518,7 @@ def configure_meshes(self): if bpy.context.scene.TLM_SceneProperties.tlm_verbose: print("The material group is not supported!") - if (mainNode.type == "ShaderNodeMixRGB"): + if (mainNode.type == "ShaderNodeMix"): if bpy.context.scene.TLM_SceneProperties.tlm_verbose: print("Mix shader found") @@ -811,7 +811,7 @@ def set_settings(): print(bpy.app.version) - if bpy.app.version[0] == 3: + if bpy.app.version[0] == 3 or byp.app.version[0] == 4: if cycles.device == "GPU": scene.cycles.tile_size = 256 else: From 8efe11569845a3c3bd7cd4a532a9499961e66d87 Mon Sep 17 00:00:00 2001 From: Onek8 Date: Wed, 28 May 2025 02:21:24 +0000 Subject: [PATCH 3/4] Update leenkx/blender/lnx/lightmapper/utility/gui/Viewport.py --- leenkx/blender/lnx/lightmapper/utility/gui/Viewport.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/leenkx/blender/lnx/lightmapper/utility/gui/Viewport.py b/leenkx/blender/lnx/lightmapper/utility/gui/Viewport.py index 01ef600..4e1484a 100644 --- a/leenkx/blender/lnx/lightmapper/utility/gui/Viewport.py +++ b/leenkx/blender/lnx/lightmapper/utility/gui/Viewport.py @@ -28,7 +28,11 @@ class ViewportDraw: w = 400 h = 200 - self.shader = gpu.shader.from_builtin('2D_IMAGE') + if bpy.app.version[0] == 3: + self.shader = gpu.shader.from_builtin('2D_IMAGE') + else: + self.shader = gpu.shader.from_builtin('IMAGE') + self.batch = batch_for_shader( self.shader, 'TRI_FAN', { From 38ab6829784347101285c87a43d6814701121aa9 Mon Sep 17 00:00:00 2001 From: Onek8 Date: Wed, 28 May 2025 02:32:27 +0000 Subject: [PATCH 4/4] Update leenkx/blender/lnx/lightmapper/utility/utility.py --- leenkx/blender/lnx/lightmapper/utility/utility.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/leenkx/blender/lnx/lightmapper/utility/utility.py b/leenkx/blender/lnx/lightmapper/utility/utility.py index 6b6efa3..c028704 100644 --- a/leenkx/blender/lnx/lightmapper/utility/utility.py +++ b/leenkx/blender/lnx/lightmapper/utility/utility.py @@ -34,7 +34,7 @@ class Shader_Node_Types: normal = "ShaderNodeNormalMap" ao = "ShaderNodeAmbientOcclusion" uv = "ShaderNodeUVMap" - mix = "ShaderNodeMixRGB" + mix = "ShaderNodeMix" def select_object(self,obj): C = bpy.context