Using material overlay for grunk (!)

This commit is contained in:
Rob Kelly 2025-03-18 12:36:04 -06:00
parent 79dbeb1147
commit ec832494ee

View File

@ -16,7 +16,6 @@ const CLEAR_TOTAL_EPSILON := 1
@export var initial_mask: Texture
@export var source_gunk_material: ShaderMaterial
@export var material_surface: int = 0
var meshtool := MeshDataTool.new()
@ -57,12 +56,8 @@ func _ready() -> void:
var mat_instance: ShaderMaterial = source_gunk_material.duplicate()
# Set material gunk mask to our mask viewport texture
mat_instance.set_shader_parameter("gunk_mask", mask_viewport.get_texture())
# Set gunk material as the next-pass material of the base surface material
# Iterate through material passes to the end
var base_mat := mesh_instance.mesh.surface_get_material(material_surface)
while base_mat.next_pass:
base_mat = base_mat.next_pass
base_mat.next_pass = mat_instance
# Overlay mesh with gunk material
mesh_instance.material_overlay = mat_instance
if initial_mask:
mask_texture.texture = initial_mask