diff --git a/components/Bullets/Common/LaserSummoner.tscn b/components/Bullets/Common/LaserSummoner.tscn index 6420b8e..0ce20e8 100644 --- a/components/Bullets/Common/LaserSummoner.tscn +++ b/components/Bullets/Common/LaserSummoner.tscn @@ -2,7 +2,7 @@ [ext_resource type="PackedScene" uid="uid://crtdkysmnkith" path="res://components/Abstracts/BulletBase.tscn" id="1_pnxoq"] [ext_resource type="Script" path="res://scripts/Contents/Bullets/BigLaser.gd" id="2_nk2p8"] -[ext_resource type="Shader" path="res://shaders/BigLaser1.gdshader" id="3_ow2gn"] +[ext_resource type="Shader" path="res://shaders/BigLaser.gdshader" id="3_ow2gn"] [ext_resource type="Texture2D" uid="uid://dy4op6n6vxef3" path="res://resources/bullets/laser-circle/circle.svg" id="4_sewyb"] [sub_resource type="SpriteFrames" id="SpriteFrames_yip5k"] @@ -11,11 +11,12 @@ shader = ExtResource("3_ow2gn") shader_parameter/laser_color = Color(1, 0, 0, 1) shader_parameter/width = 1.0 -shader_parameter/softness = 0.3 -shader_parameter/wave_speed = 3.0 -shader_parameter/wave_frequency = 13.154 -shader_parameter/wave_amplitude = 1.151 -shader_parameter/wave_width = 0.032 +shader_parameter/softness = 0.5 +shader_parameter/wave_speed = 1.0 +shader_parameter/wave_frequency = 1.0 +shader_parameter/wave_amplitude = 0.5 +shader_parameter/wave_width = 0.5 +shader_parameter/edge_nonalpha = 0.6 [sub_resource type="Curve" id="Curve_m7ued"] _data = [Vector2(0, 1), 0.0, 0.0, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0] diff --git a/shaders/BigLaser1.gdshader b/shaders/BigLaser.gdshader similarity index 87% rename from shaders/BigLaser1.gdshader rename to shaders/BigLaser.gdshader index 1fae183..1de84b2 100644 --- a/shaders/BigLaser1.gdshader +++ b/shaders/BigLaser.gdshader @@ -7,6 +7,7 @@ uniform float wave_speed : hint_range(-10.0, 10.0) = 2.0; // 波传播速度 uniform float wave_frequency : hint_range(1.0, 20.0) = 8.0; // 波频率 uniform float wave_amplitude : hint_range(0.1, 2.0) = 0.5; // 波幅度 uniform float wave_width : hint_range(0.01, 0.5) = 0.1; // 波宽度 +uniform float edge_nonalpha:hint_range(0.0, 1.0, 0.01)=0.25; void fragment() { vec2 uv = UV - vec2(0.5, 0.0); float dist = abs(uv.x) / width; @@ -17,8 +18,8 @@ void fragment() { float wave_intensity = exp(-wave_dist * wave_dist / (2.0 * wave_width * wave_width)); wave_intensity *= exp(-uv.x * uv.x / (2.0 * (width * 0.5) * (width * 0.5))); wave_intensity *= sin(wave_dist * wave_frequency * 3.14159) * wave_amplitude; - float total_intensity = laser_intensity + wave_intensity; vec3 base_color = mix(vec3(1.0), laser_color.rgb, 1.0 - laser_intensity); vec3 color = base_color + vec3(wave_intensity); - COLOR = vec4(color, (0.5-x_dist)/0.5); + //COLOR = vec4(color, (0.5-x_dist)/0.5); + COLOR = vec4(color,smoothstep(0,1.0-edge_nonalpha,(0.5-x_dist)/0.5)); } \ No newline at end of file