mirror of
https://github.com/Rundll86/Dog-Lynx-And-HCN.git
synced 2026-05-27 22:41:56 +08:00
feat(激光效果): 更新激光着色器参数并添加边缘透明度控制
调整激光着色器参数以优化视觉效果,包括波速、频率和幅度等 添加 edge_nonalpha 参数控制激光边缘透明度 删除旧版着色器文件 BigLaser1.gdshader
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
Reference in New Issue
Block a user