ported from perforce
This commit is contained in:
67
DonkeysAndDroids.Godot/debuffed_area.tscn
Normal file
67
DonkeysAndDroids.Godot/debuffed_area.tscn
Normal file
@@ -0,0 +1,67 @@
|
||||
[gd_scene load_steps=6 format=3 uid="uid://bv7h6vofl5nw3"]
|
||||
|
||||
[ext_resource type="Script" uid="uid://gdp1jvwnkerk" path="res://CorruptionArea.cs" id="1_kmgf5"]
|
||||
[ext_resource type="Texture2D" uid="uid://coqmy50cy4vdu" path="res://images/noise.png" id="2_lq7ir"]
|
||||
|
||||
[sub_resource type="Shader" id="Shader_corruption"]
|
||||
code = "shader_type spatial;
|
||||
render_mode blend_mix, cull_back, unshaded;
|
||||
render_mode depth_draw_never;
|
||||
|
||||
uniform vec4 base_color : source_color = vec4(0.6, 0.1, 0.8, 0.45);
|
||||
uniform sampler2D noise_texture : hint_default_black;
|
||||
|
||||
uniform float edge_softness = 0.35;
|
||||
uniform float noise_strength = 0.35;
|
||||
uniform float noise_scale = 3.0;
|
||||
uniform float noise_speed = 0.6;
|
||||
|
||||
// Driven from C# to make the effect pulse slightly.
|
||||
uniform float u_pulse = 1.0;
|
||||
|
||||
void fragment() {
|
||||
// PlaneMesh UV is 0..1. Remap to -1..1 so radius=1 matches the mesh edge.
|
||||
vec2 centered_uv = UV * 2.0 - vec2(1.0);
|
||||
float r = length(centered_uv);
|
||||
|
||||
// Circular mask that is 1.0 in the center and fades out to 0.0 near radius 1.0.
|
||||
float circle_mask = 1.0 - smoothstep(1.0 - edge_softness, 1.0, r);
|
||||
|
||||
// Animated noise used to break up the edge and interior.
|
||||
float t = TIME * noise_speed;
|
||||
vec2 noise_uv = UV * noise_scale + vec2(t, -t);
|
||||
float n = texture(noise_texture, noise_uv).r * 2.0 - 1.0;
|
||||
|
||||
float wobble = 1.0 + n * noise_strength * u_pulse;
|
||||
|
||||
float alpha = base_color.a * circle_mask * wobble;
|
||||
alpha = clamp(alpha, 0.0, base_color.a);
|
||||
|
||||
ALBEDO = base_color.rgb;
|
||||
ALPHA = alpha;
|
||||
}"
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_corruption"]
|
||||
render_priority = 0
|
||||
shader = SubResource("Shader_corruption")
|
||||
shader_parameter/base_color = Color(0.09600001, 0.1664001, 0.8, 0.4509804)
|
||||
shader_parameter/noise_texture = ExtResource("2_lq7ir")
|
||||
shader_parameter/edge_softness = 0.25
|
||||
shader_parameter/noise_strength = 1.0
|
||||
shader_parameter/noise_scale = 1.0
|
||||
shader_parameter/noise_speed = 0.1
|
||||
shader_parameter/u_pulse = 1.0
|
||||
|
||||
[sub_resource type="PlaneMesh" id="PlaneMesh_corruption"]
|
||||
subdivide_width = 4
|
||||
subdivide_depth = 4
|
||||
|
||||
[node name="DebuffedArea" type="Node3D"]
|
||||
script = ExtResource("1_kmgf5")
|
||||
Color = Color(0.26999998, 1, 0.4281667, 0.6745098)
|
||||
|
||||
[node name="Disc" type="MeshInstance3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.02, 0)
|
||||
material_override = SubResource("ShaderMaterial_corruption")
|
||||
cast_shadow = 0
|
||||
mesh = SubResource("PlaneMesh_corruption")
|
||||
Reference in New Issue
Block a user