mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-06-11 22:27:12 +08:00
feat: 更新激光材质和着色器参数,优化激光效果
This commit is contained in:
@@ -8,6 +8,9 @@
|
|||||||
|
|
||||||
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5n8cv"]
|
[sub_resource type="ShaderMaterial" id="ShaderMaterial_5n8cv"]
|
||||||
shader = ExtResource("2_h6cxi")
|
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"]
|
[sub_resource type="CapsuleShape2D" id="CapsuleShape2D_y85id"]
|
||||||
height = 300.0
|
height = 300.0
|
||||||
@@ -29,10 +32,9 @@ sprite_frames = SubResource("SpriteFrames_yip5k")
|
|||||||
material = SubResource("ShaderMaterial_5n8cv")
|
material = SubResource("ShaderMaterial_5n8cv")
|
||||||
offset_left = -10.0
|
offset_left = -10.0
|
||||||
offset_top = -300.0
|
offset_top = -300.0
|
||||||
offset_right = 19.0
|
offset_right = 10.0
|
||||||
|
|
||||||
[node name="hitbox" parent="." index="1"]
|
[node name="hitbox" parent="." index="1"]
|
||||||
visible = false
|
|
||||||
position = Vector2(150, 0)
|
position = Vector2(150, 0)
|
||||||
rotation = 1.5708
|
rotation = 1.5708
|
||||||
shape = SubResource("CapsuleShape2D_y85id")
|
shape = SubResource("CapsuleShape2D_y85id")
|
||||||
|
|||||||
@@ -3,14 +3,10 @@ uniform vec4 color: source_color;
|
|||||||
uniform float laser_width: hint_range(0.01, 1.0) = 0;
|
uniform float laser_width: hint_range(0.01, 1.0) = 0;
|
||||||
uniform float soft_edge: hint_range(0.0, 0.5) = 0.5;
|
uniform float soft_edge: hint_range(0.0, 0.5) = 0.5;
|
||||||
void fragment() {
|
void fragment() {
|
||||||
float textureWidth=float(textureSize(TEXTURE,0).x);
|
float dist = abs(UV.x - 0.5);
|
||||||
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 core = 1.0 - smoothstep(0.0, laser_width, dist);
|
float core = 1.0 - smoothstep(0.0, laser_width, dist);
|
||||||
float edge=1.0 - smoothstep(laser_width, laser_width + soft_edge, dist);
|
float edge = 1.0 - smoothstep(laser_width, laser_width + soft_edge, dist);
|
||||||
float alpha = max(core, edge);
|
float alpha = max(core, edge);
|
||||||
COLOR = color;
|
COLOR = color;
|
||||||
COLOR.a = alpha;
|
COLOR.a = alpha;
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user