Adds VFX and optimizes tile map generation

Adds visual effects, including fire and rain, to the scene.
The VFX are implemented using GPUParticles3D nodes.

Optimizes tile map generation by reducing chunk size and tiles
per frame. This improves performance.

Sets the SubViewport to have a transparent background.
This commit is contained in:
Dan Baker 2025-06-23 20:20:54 +01:00
parent 66ce3ff503
commit c397615e12
2 changed files with 38 additions and 38 deletions

View file

@ -511,6 +511,7 @@ stretch = true
stretch_shrink = 2
[node name="SubViewport" type="SubViewport" parent="SubViewportContainer"]
transparent_bg = true
handle_input_locally = false
size = Vector2i(576, 324)
render_target_update_mode = 4
@ -793,7 +794,6 @@ transform = Transform3D(0.707107, 0, -0.707107, -0.408607, 0.816138, -0.408607,
visible = false
extra_cull_margin = 16384.0
mesh = SubResource("QuadMesh_tfa5t")
skeleton = NodePath("../../../..")
[node name="Environment" type="Node3D" parent="SubViewportContainer/SubViewport"]
visible = false
@ -837,6 +837,41 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -1.18018, 1.33948e-16, 0.2696
[node name="rock-c2" parent="SubViewportContainer/SubViewport/Environment" instance=ExtResource("9_rt72s")]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0.899231, 0.00213623, 0.359619)
[node name="VFX" type="Node3D" parent="SubViewportContainer/SubViewport"]
[node name="Fire" type="GPUParticles3D" parent="SubViewportContainer/SubViewport/VFX"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.08083, 0.0837402, 0.501403)
amount = 50
lifetime = 0.4
speed_scale = 0.4
process_material = SubResource("ParticleProcessMaterial_xvexm")
draw_pass_1 = SubResource("QuadMesh_hvb1l")
[node name="OmniLight3D" type="OmniLight3D" parent="SubViewportContainer/SubViewport/VFX/Fire"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000509977, 0.121094, -0.00151992)
light_color = Color(0.89, 0.461613, 0.2136, 1)
light_energy = 0.779335
light_indirect_energy = 1.084
light_volumetric_fog_energy = 3.764
light_size = 0.105
shadow_enabled = true
distance_fade_enabled = true
distance_fade_begin = 386.01
distance_fade_shadow = 45.9
distance_fade_length = 28.05
script = ExtResource("22_ukp6m")
[node name="Rain" type="GPUParticles3D" parent="SubViewportContainer/SubViewport/VFX"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0)
visible = false
amount = 1000
preprocess = 10.0
visibility_aabb = AABB(-4, -20, -4, 8, 20, 8)
trail_enabled = true
trail_lifetime = 0.1
process_material = SubResource("ParticleProcessMaterial_p5fn2")
draw_pass_1 = SubResource("RibbonTrailMesh_5r2bu")
[node name="Level" type="Node3D" parent="SubViewportContainer/SubViewport"]
visible = false
@ -981,41 +1016,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.75134, 0, -1.84204)
[node name="bedroll2" parent="SubViewportContainer/SubViewport/Level" instance=ExtResource("20_p5fn2")]
transform = Transform3D(0.857948, 0, 0.513736, 0, 1, 0, -0.513736, 0, 0.857948, 0.985229, 0.05, -2.78149)
[node name="VFX" type="Node3D" parent="SubViewportContainer/SubViewport"]
[node name="Fire" type="GPUParticles3D" parent="SubViewportContainer/SubViewport/VFX"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 1.76638, 0.0837402, -1.82306)
amount = 50
lifetime = 0.4
speed_scale = 0.4
process_material = SubResource("ParticleProcessMaterial_xvexm")
draw_pass_1 = SubResource("QuadMesh_hvb1l")
[node name="OmniLight3D" type="OmniLight3D" parent="SubViewportContainer/SubViewport/VFX/Fire"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -0.000509977, 0.121094, -0.00151992)
light_color = Color(0.89, 0.461613, 0.2136, 1)
light_energy = 0.737273
light_indirect_energy = 1.084
light_volumetric_fog_energy = 3.764
light_size = 0.105
shadow_enabled = true
distance_fade_enabled = true
distance_fade_begin = 386.01
distance_fade_shadow = 45.9
distance_fade_length = 28.05
script = ExtResource("22_ukp6m")
[node name="Rain" type="GPUParticles3D" parent="SubViewportContainer/SubViewport/VFX"]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 10, 0)
visible = false
amount = 1000
preprocess = 10.0
visibility_aabb = AABB(-4, -20, -4, 8, 20, 8)
trail_enabled = true
trail_lifetime = 0.1
process_material = SubResource("ParticleProcessMaterial_p5fn2")
draw_pass_1 = SubResource("RibbonTrailMesh_5r2bu")
[node name="TileGround" type="Node3D" parent="SubViewportContainer/SubViewport"]
unique_name_in_owner = true
script = ExtResource("24_vyi1v")