Ajout des nuages

* ajout d'un effet de post processing de nuage qui réagit à la recharge
This commit is contained in:
2026-04-29 23:15:37 +02:00
parent 91e266ec85
commit 6430609c37
8 changed files with 174 additions and 28 deletions

View File

@@ -4,21 +4,16 @@
[ext_resource type="Shader" uid="uid://cfj18vc04cgkg" path="res://common/vfx/materials/shaders/blur_vignette.gdshader" id="2_ktnx3"]
[ext_resource type="PackedScene" uid="uid://yk78ubpu5ghq" path="res://gui/game/pass_day/pass_day.tscn" id="3_ktnx3"]
[ext_resource type="Shader" uid="uid://btgk5l0a6ii44" path="res://common/vfx/materials/shaders/screen_fog.gdshader" id="3_qdnee"]
[ext_resource type="Script" uid="uid://bi8fo6yp25su7" path="res://stages/terrain/region/scripts/camera_fog.gd" id="4_ovqi1"]
[ext_resource type="Script" uid="uid://bi8fo6yp25su7" path="res://stages/terrain/region/scripts/screen_post_process.gd" id="4_ovqi1"]
[ext_resource type="PackedScene" uid="uid://12nak7amd1uq" path="res://gui/game/game_gui.tscn" id="4_qdnee"]
[ext_resource type="Shader" uid="uid://doceegdvj0pp3" path="res://common/vfx/materials/shaders/screen_clouds.gdshader" id="5_2w03p"]
[ext_resource type="Script" uid="uid://b366do6jdx87h" path="res://stages/terrain/region/scripts/post_process/clouds.gd" id="5_6d8m3"]
[ext_resource type="PackedScene" uid="uid://bgvbgeq46wee2" path="res://entities/player/player.tscn" id="5_ovqi1"]
[ext_resource type="PackedScene" uid="uid://d324mlmgls4fs" path="res://entities/interactables/truck/recharge/truck_recharge.tscn" id="7_6d8m3"]
[ext_resource type="PackedScene" uid="uid://dj7gp3crtg2yt" path="res://entities/camera/camera.tscn" id="8_fwgig"]
[ext_resource type="PackedScene" uid="uid://fnv0qhkh40mv" path="res://gui/game/announce/announce.tscn" id="8_mlppq"]
[ext_resource type="Texture2D" uid="uid://rdrhi3r11ey6" path="res://common/icons/square-rounded.svg" id="10_ktnx3"]
[sub_resource type="ShaderMaterial" id="ShaderMaterial_qdnee"]
shader = ExtResource("2_ktnx3")
shader_parameter/blur_radius = 0.0630000029925
shader_parameter/blur_amount = 1.0000000475
shader_parameter/blur_inner = 0.4950000235125
shader_parameter/blur_outer = 0.7810000370975
[sub_resource type="FastNoiseLite" id="FastNoiseLite_ovqi1"]
noise_type = 2
@@ -47,7 +42,37 @@ shader_parameter/noise_speed_2 = 0.010000000475
shader_parameter/noise_dir_1 = Vector2(1, 1)
shader_parameter/noise_dir_2 = Vector2(1, -1)
shader_parameter/smoke_color = Color(1, 1, 1, 1)
shader_parameter/density = 0.010000000475
shader_parameter/density = 0.070000003325
[sub_resource type="FastNoiseLite" id="FastNoiseLite_2w03p"]
noise_type = 2
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_6d8m3"]
noise = SubResource("FastNoiseLite_2w03p")
seamless = true
[sub_resource type="ShaderMaterial" id="ShaderMaterial_6d8m3"]
shader = ExtResource("5_2w03p")
shader_parameter/camera_position = Vector2(0, 0)
shader_parameter/camera_zoom = Vector2(1, 1)
shader_parameter/viewport_size = Vector2(1920, 1080)
shader_parameter/noise_texture = SubResource("NoiseTexture2D_6d8m3")
shader_parameter/cloud_speed = 0.10000000475
shader_parameter/cloud_delay = 1.0
shader_parameter/noise_dir = Vector2(1, 1)
shader_parameter/cloud_color = Color(0.59428054, 0.8206175, 0.899937, 1)
shader_parameter/cloud_alpha = 1.0
shader_parameter/cloud_size = 87.48400410799
shader_parameter/cloud_distorsion_speed = 0.10000000475
shader_parameter/density = 0.3610000171475
shader_parameter/blur_amount = 0.0400000019
[sub_resource type="ShaderMaterial" id="ShaderMaterial_qdnee"]
shader = ExtResource("2_ktnx3")
shader_parameter/blur_radius = 0.0630000029925
shader_parameter/blur_amount = 1.0000000475
shader_parameter/blur_inner = 0.4950000235125
shader_parameter/blur_outer = 0.7810000370975
[sub_resource type="Curve" id="Curve_qdnee"]
_data = [Vector2(0, 0), 0.0, 0.0, 0, 0, Vector2(0.4883721, 1), 0.037164874, 0.037164874, 0, 0, Vector2(1, 0), 0.0, 0.0, 0, 0]
@@ -88,17 +113,10 @@ script = ExtResource("1_441sk")
entity_container = NodePath("Entities")
[node name="PostProcess" type="CanvasLayer" parent="." unique_id=729471745]
[node name="Vignette" type="ColorRect" parent="PostProcess" unique_id=2057271511]
material = SubResource("ShaderMaterial_qdnee")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
layer = 0
[node name="Fog" type="ColorRect" parent="PostProcess" unique_id=1487713892 node_paths=PackedStringArray("camera")]
visible = false
material = SubResource("ShaderMaterial_mlppq")
anchors_preset = 15
anchor_right = 1.0
@@ -109,8 +127,30 @@ mouse_filter = 2
script = ExtResource("4_ovqi1")
camera = NodePath("../../Camera")
[node name="Clouds" type="ColorRect" parent="PostProcess" unique_id=1053740484 node_paths=PackedStringArray("camera", "region")]
material = SubResource("ShaderMaterial_6d8m3")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
script = ExtResource("5_6d8m3")
camera = NodePath("../../Camera")
region = NodePath("../..")
[node name="Vignette" type="ColorRect" parent="PostProcess" unique_id=2057271511]
material = SubResource("ShaderMaterial_qdnee")
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
mouse_filter = 2
[node name="PassDay" parent="." unique_id=1144772570 instance=ExtResource("3_ktnx3")]
unique_name_in_owner = true
visible = false
[node name="RegionGui" type="CanvasLayer" parent="." unique_id=2024485651]
layer = 2

View File

@@ -1,10 +0,0 @@
extends ColorRect
@export var camera : Camera
func _process(_delta: float) -> void:
if is_node_ready():
if visible:
if camera:
material.set_shader_parameter( "camera_position", camera.global_position )
# material.set_shader_parameter( "camera_offset", camera.offset )

View File

@@ -0,0 +1,52 @@
extends ColorRect
@export var camera : Camera
@export var region : Region
const PASSING_DAY_CLOUD_SPEED = 5
const CLOUD_DELAY_ACC_LERP = 0.2
var in_passing_day := false
var cloud_delay := 0.
var cloud_delay_acc = 0.
func _ready():
if region:
update_noise()
region.data.pass_day_proceeded.connect(
func(_d):
update_noise()
cloud_delay = 0
)
else:
printerr("No region selected for clouds")
func _process(_delta: float) -> void:
if is_node_ready():
if region and region.data.in_passing_day_animation:
cloud_delay_acc = lerp(cloud_delay_acc,1.,CLOUD_DELAY_ACC_LERP)
else:
cloud_delay_acc = lerp(cloud_delay_acc,0.,CLOUD_DELAY_ACC_LERP)
cloud_delay += cloud_delay_acc * PASSING_DAY_CLOUD_SPEED
if visible:
if camera:
material.set_shader_parameter("camera_zoom", camera.zoom )
material.set_shader_parameter("camera_position", camera.global_position )
material.set_shader_parameter("viewport_size", get_viewport().get_visible_rect().size)
material.set_shader_parameter("cloud_delay", cloud_delay)
func update_noise() -> void:
var texture := NoiseTexture2D.new()
texture.seamless = true
var noise := FastNoiseLite.new()
noise.noise_type = FastNoiseLite.TYPE_CELLULAR
noise.seed = region.data.region_name.hash() + region.data.charges
texture.noise = noise
material.set_shader_parameter("noise_texture", texture)

View File

@@ -0,0 +1 @@
uid://b366do6jdx87h

View File

@@ -0,0 +1,14 @@
extends ColorRect
@export var camera : Camera
func _process(_delta: float) -> void:
if is_node_ready():
if visible:
if camera:
material.set_shader_parameter("camera_zoom", camera.zoom )
material.set_shader_parameter("camera_position", camera.global_position )
material.set_shader_parameter( "viewport_size", get_viewport().get_visible_rect().size)