generated from krampus/template-godot4
Using material overlay for grunk (!)
This commit is contained in:
parent
79dbeb1147
commit
ec832494ee
@ -16,7 +16,6 @@ const CLEAR_TOTAL_EPSILON := 1
|
|||||||
@export var initial_mask: Texture
|
@export var initial_mask: Texture
|
||||||
|
|
||||||
@export var source_gunk_material: ShaderMaterial
|
@export var source_gunk_material: ShaderMaterial
|
||||||
@export var material_surface: int = 0
|
|
||||||
|
|
||||||
var meshtool := MeshDataTool.new()
|
var meshtool := MeshDataTool.new()
|
||||||
|
|
||||||
@ -57,12 +56,8 @@ func _ready() -> void:
|
|||||||
var mat_instance: ShaderMaterial = source_gunk_material.duplicate()
|
var mat_instance: ShaderMaterial = source_gunk_material.duplicate()
|
||||||
# Set material gunk mask to our mask viewport texture
|
# Set material gunk mask to our mask viewport texture
|
||||||
mat_instance.set_shader_parameter("gunk_mask", mask_viewport.get_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
|
# Overlay mesh with gunk material
|
||||||
# Iterate through material passes to the end
|
mesh_instance.material_overlay = mat_instance
|
||||||
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
|
|
||||||
|
|
||||||
if initial_mask:
|
if initial_mask:
|
||||||
mask_texture.texture = initial_mask
|
mask_texture.texture = initial_mask
|
||||||
|
Loading…
x
Reference in New Issue
Block a user