1
1
mirror of https://github.com/Rundll86/Dog-Lynx-And-HCN.git synced 2026-05-28 06:51:54 +08:00

feat: 更新激光材质和着色器参数,优化激光效果

This commit is contained in:
2025-08-27 14:59:27 +08:00
parent 9127692146
commit 2e1d15a0a0
2 changed files with 7 additions and 9 deletions
+4 -2
View File
@@ -8,6 +8,9 @@
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5n8cv"]
shader = ExtResource("2_h6cxi")
shader_parameter/color = Color(0.654902, 1, 1, 1)
shader_parameter/laser_width = 0.01
shader_parameter/soft_edge = 0.5
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_y85id"]
height = 300.0
@@ -29,10 +32,9 @@ sprite_frames = SubResource("SpriteFrames_yip5k")
material = SubResource("ShaderMaterial_5n8cv")
offset_left = -10.0
offset_top = -300.0
offset_right = 19.0
offset_right = 10.0
[node name="hitbox" parent="." index="1"]
visible = false
position = Vector2(150, 0)
rotation = 1.5708
shape = SubResource("CapsuleShape2D_y85id")
+3 -7
View File
@@ -3,14 +3,10 @@ uniform vec4 color: source_color;
uniform float laser_width: hint_range(0.01, 1.0) = 0;
uniform float soft_edge: hint_range(0.0, 0.5) = 0.5;
void fragment() {
float textureWidth=float(textureSize(TEXTURE,0).x);
float textureHeight=float(textureSize(TEXTURE,0).y);
float radius=textureHeight/2.0;
float radiusU=radius*TEXTURE_PIXEL_SIZE;
float dist = distance(vec2(0.5,clamp(UV.y,radiusU,1.0-radiusU)),UV);
float dist = abs(UV.x - 0.5);
float core = 1.0 - smoothstep(0.0, laser_width, dist);
float edge=1.0 - smoothstep(laser_width, laser_width + soft_edge, dist);
float alpha = max(core, edge);
float edge = 1.0 - smoothstep(laser_width, laser_width + soft_edge, dist);
float alpha = max(core, edge);
COLOR = color;
COLOR.a = alpha;
}