From 7c863402bb5fed9313a5fb8c781653a589fc93c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Fri, 29 Aug 2025 09:54:45 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=BF=80=E5=85=89=E6=95=88=E6=9E=9C):=20?= =?UTF-8?q?=E6=9B=B4=E6=96=B0=E6=BF=80=E5=85=89=E7=9D=80=E8=89=B2=E5=99=A8?= =?UTF-8?q?=E5=8F=82=E6=95=B0=E5=B9=B6=E6=B7=BB=E5=8A=A0=E8=BE=B9=E7=BC=98?= =?UTF-8?q?=E9=80=8F=E6=98=8E=E5=BA=A6=E6=8E=A7=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整激光着色器参数以优化视觉效果,包括波速、频率和幅度等 添加 edge_nonalpha 参数控制激光边缘透明度 删除旧版着色器文件 BigLaser1.gdshader --- components/Bullets/Common/LaserSummoner.tscn | 13 +++++++------ shaders/{BigLaser1.gdshader => BigLaser.gdshader} | 5 +++-- 2 files changed, 10 insertions(+), 8 deletions(-) rename shaders/{BigLaser1.gdshader => BigLaser.gdshader} (87%) 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