Amélioration de l'ambiance de Aqua

This commit is contained in:
2026-06-26 09:48:06 +02:00
parent 8cc85e3d6c
commit e133519dc0
4 changed files with 129 additions and 2 deletions

View File

@@ -0,0 +1,49 @@
shader_type spatial;
uniform float scale : hint_range(0.1, 2.0, 0.1) = 1.0;
uniform float speed : hint_range(0.1, 2.0, 0.1) = 0.2;
uniform float strenght : hint_range(10., 500., 10.) = 100.;
uniform sampler2D color_ramp;
varying vec3 world_position;
vec2 random(vec2 uv) {
return vec2(fract(sin(dot(uv.xy,
vec2(12.9898,78.233))) * 43758.5453123));
}
float worley(vec2 uv, float columns, float rows) {
vec2 index_uv = floor(vec2(uv.x * columns, uv.y * rows));
vec2 fract_uv = fract(vec2(uv.x * columns, uv.y * rows));
float minimum_dist = 1.0;
for (int y= -1; y <= 1; y++) {
for (int x= -1; x <= 1; x++) {
vec2 neighbor = vec2(float(x),float(y));
vec2 point = random(index_uv + neighbor);
vec2 diff = neighbor + point - fract_uv;
float dist = length(diff);
minimum_dist = min(minimum_dist, dist);
}
}
return minimum_dist;
}
void vertex(){
world_position = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz;
}
void fragment(){
float worley_value = worley(world_position.xz * scale + TIME * speed, 3.0, 3.0);
float worley_value_2 = worley(world_position.xz * scale * 2. - TIME * speed, 3.0, 3.0);
float color = texture(color_ramp, vec2(worley_value*worley_value_2)).r;
color = min(0.99, color);
color = log(0.999)/log(color);
color *= strenght;
ALPHA = color;
EMISSION = vec3(color);
}

View File

@@ -0,0 +1 @@
uid://740mg4jlufyc

View File

@@ -5,6 +5,8 @@
[ext_resource type="PackedScene" uid="uid://ci5vs3qhiuf0x" path="res://stages/3d_scenes/common/assets/3d/hub.blend" id="3_mr0dk"] [ext_resource type="PackedScene" uid="uid://ci5vs3qhiuf0x" path="res://stages/3d_scenes/common/assets/3d/hub.blend" id="3_mr0dk"]
[ext_resource type="Shader" uid="uid://n4s2kr10ivgb" path="res://common/vfx/materials/shaders/underwater.gdshader" id="4_dltk4"] [ext_resource type="Shader" uid="uid://n4s2kr10ivgb" path="res://common/vfx/materials/shaders/underwater.gdshader" id="4_dltk4"]
[ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="4_k4ak1"] [ext_resource type="PackedScene" uid="uid://da7a74dg30q1l" path="res://entities/player_3d/player_3D.tscn" id="4_k4ak1"]
[ext_resource type="PackedScene" uid="uid://c2unmkf4ec4gf" path="res://entities/interactable_3d/ai_receptacle/ai_receptacle.tscn" id="4_m5l0g"]
[ext_resource type="Material" uid="uid://ba5cnhu0o1yf5" path="res://stages/3d_scenes/aqua_base/resources/materials/caustic_default_3d.tres" id="4_nydtf"]
[sub_resource type="Environment" id="Environment_m5l0g"] [sub_resource type="Environment" id="Environment_m5l0g"]
background_mode = 2 background_mode = 2
@@ -38,13 +40,16 @@ shading_mode = 0
albedo_color = Color(0.5882353, 0.7019608, 0.85882354, 1) albedo_color = Color(0.5882353, 0.7019608, 0.85882354, 1)
albedo_texture = ExtResource("2_mr0dk") albedo_texture = ExtResource("2_mr0dk")
[sub_resource type="ViewportTexture" id="ViewportTexture_nydtf"]
viewport_path = NodePath("Screen/SubViewport")
[sub_resource type="QuadMesh" id="QuadMesh_m5l0g"] [sub_resource type="QuadMesh" id="QuadMesh_m5l0g"]
size = Vector2(3, 3) size = Vector2(3, 3)
[sub_resource type="ShaderMaterial" id="ShaderMaterial_nydtf"] [sub_resource type="ShaderMaterial" id="ShaderMaterial_nydtf"]
render_priority = 0 render_priority = 0
shader = ExtResource("4_dltk4") shader = ExtResource("4_dltk4")
shader_parameter/tint = Color(0.13725491, 0.39215687, 0.6666667, 0.69411767) shader_parameter/tint = Color(0.14069998, 0.39652818, 0.67, 0.29411766)
shader_parameter/wave_speed = 3.0 shader_parameter/wave_speed = 3.0
shader_parameter/wave_freq = 10.0 shader_parameter/wave_freq = 10.0
shader_parameter/wave_width = 1.0 shader_parameter/wave_width = 1.0
@@ -106,7 +111,47 @@ mesh = SubResource("SphereMesh_nydtf")
surface_material_override/0 = SubResource("StandardMaterial3D_u74oo") surface_material_override/0 = SubResource("StandardMaterial3D_u74oo")
[node name="hub" parent="." unique_id=1785379104 instance=ExtResource("3_mr0dk")] [node name="hub" parent="." unique_id=1785379104 instance=ExtResource("3_mr0dk")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.06477356, 2.558891, -0.17544556) transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.06701422, 2.5714142, -0.17472172)
[node name="hub" parent="hub" index="11" unique_id=1764872435]
surface_material_override/0 = ExtResource("4_nydtf")
surface_material_override/1 = ExtResource("4_nydtf")
[node name="AiReceptacle" parent="." unique_id=1082354698 instance=ExtResource("4_m5l0g")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -3.9, -0.34409285)
screen_text = "DOWNLOAD_DATA"
broken = true
[node name="Model" parent="AiReceptacle" index="0" unique_id=154868613]
visible = false
[node name="ModelBroken" parent="AiReceptacle" index="1" unique_id=1633938801]
visible = true
[node name="Support" parent="AiReceptacle/ModelBroken" index="5" unique_id=1098621972]
surface_material_override/0 = ExtResource("4_nydtf")
[node name="Receptacle" parent="AiReceptacle/ModelBroken" index="6" unique_id=956575790]
surface_material_override/0 = ExtResource("4_nydtf")
[node name="Screen" parent="AiReceptacle" index="3" unique_id=1396407912]
texture = SubResource("ViewportTexture_nydtf")
[node name="ScreenTitle" parent="AiReceptacle/Screen/SubViewport/ScreenContent/VBoxContainer" parent_id_path=PackedInt32Array(1082354698, 1893636910) index="1" unique_id=443526476]
text = "DOWNLOAD_DATA"
[node name="SpotLight3D" type="SpotLight3D" parent="AiReceptacle" unique_id=1906884086]
transform = Transform3D(1, 0, 0, 0, -0.67415154, -0.73859304, 0, 0.73859304, -0.67415154, 0, 0.66735864, 3.2564082)
light_color = Color(0.972549, 0.007843138, 0.3764706, 1)
light_energy = 9.821
light_volumetric_fog_energy = 16.0
spot_range = 11.312
spot_angle = 48.61
[node name="OmniLight3D" type="OmniLight3D" parent="AiReceptacle" unique_id=1726681139]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.90115404, 3.440281)
light_energy = 0.282
omni_range = 0.90236074
[node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("4_k4ak1")] [node name="Player3D" parent="." unique_id=549819967 instance=ExtResource("4_k4ak1")]
transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 32.225853, -2.260468, 9.559124) transform = Transform3D(-4.371139e-08, 0, 1, 0, 1, 0, -1, 0, -4.371139e-08, 32.225853, -2.260468, 9.559124)
@@ -141,4 +186,7 @@ light_volumetric_fog_energy = 2.507
shadow_enabled = true shadow_enabled = true
shadow_blur = 10.0 shadow_blur = 10.0
[editable path="hub"]
[editable path="AiReceptacle"]
[editable path="AiReceptacle/ModelBroken"]
[editable path="Player3D"] [editable path="Player3D"]

View File

@@ -0,0 +1,29 @@
[gd_resource type="StandardMaterial3D" format=3 uid="uid://ba5cnhu0o1yf5"]
[ext_resource type="Texture2D" uid="uid://dlsx1mofjccib" path="res://common/assets/textures/3d_texture.png" id="1_htbkf"]
[ext_resource type="Shader" uid="uid://740mg4jlufyc" path="res://common/vfx/materials/shaders/caustics.gdshader" id="2_w81pb"]
[sub_resource type="Gradient" id="Gradient_0bekw"]
[sub_resource type="GradientTexture1D" id="GradientTexture1D_s2rwh"]
gradient = SubResource("Gradient_0bekw")
[sub_resource type="ShaderMaterial" id="ShaderMaterial_bblss"]
render_priority = 0
shader = ExtResource("2_w81pb")
shader_parameter/scale = 0.60000000894072
shader_parameter/speed = 0.10000000149012
shader_parameter/strenght = 100.0
shader_parameter/color_ramp = SubResource("GradientTexture1D_s2rwh")
[resource]
next_pass = SubResource("ShaderMaterial_bblss")
diffuse_mode = 3
specular_mode = 2
albedo_texture = ExtResource("1_htbkf")
metallic_specular = 0.0
roughness = 0.0
rim_tint = 0.48
stencil_flags = 2
stencil_reference = 5
stencil_outline_thickness = 0.626