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:
parent
66ce3ff503
commit
c397615e12
2 changed files with 38 additions and 38 deletions
|
|
@ -511,6 +511,7 @@ stretch = true
|
||||||
stretch_shrink = 2
|
stretch_shrink = 2
|
||||||
|
|
||||||
[node name="SubViewport" type="SubViewport" parent="SubViewportContainer"]
|
[node name="SubViewport" type="SubViewport" parent="SubViewportContainer"]
|
||||||
|
transparent_bg = true
|
||||||
handle_input_locally = false
|
handle_input_locally = false
|
||||||
size = Vector2i(576, 324)
|
size = Vector2i(576, 324)
|
||||||
render_target_update_mode = 4
|
render_target_update_mode = 4
|
||||||
|
|
@ -793,7 +794,6 @@ transform = Transform3D(0.707107, 0, -0.707107, -0.408607, 0.816138, -0.408607,
|
||||||
visible = false
|
visible = false
|
||||||
extra_cull_margin = 16384.0
|
extra_cull_margin = 16384.0
|
||||||
mesh = SubResource("QuadMesh_tfa5t")
|
mesh = SubResource("QuadMesh_tfa5t")
|
||||||
skeleton = NodePath("../../../..")
|
|
||||||
|
|
||||||
[node name="Environment" type="Node3D" parent="SubViewportContainer/SubViewport"]
|
[node name="Environment" type="Node3D" parent="SubViewportContainer/SubViewport"]
|
||||||
visible = false
|
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")]
|
[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)
|
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"]
|
[node name="Level" type="Node3D" parent="SubViewportContainer/SubViewport"]
|
||||||
visible = false
|
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")]
|
[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)
|
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"]
|
[node name="TileGround" type="Node3D" parent="SubViewportContainer/SubViewport"]
|
||||||
unique_name_in_owner = true
|
unique_name_in_owner = true
|
||||||
script = ExtResource("24_vyi1v")
|
script = ExtResource("24_vyi1v")
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ extends Node3D
|
||||||
@export var map_width: int = 500
|
@export var map_width: int = 500
|
||||||
@export var map_height: int = 500
|
@export var map_height: int = 500
|
||||||
@export var tile_size: float = 2.0
|
@export var tile_size: float = 2.0
|
||||||
@export var chunk_size: int = 4
|
@export var chunk_size: int = 2
|
||||||
@export var view_distance: int = 2
|
@export var view_distance: int = 2
|
||||||
@export var tiles_per_frame: int = 4 # How many tiles to create per frame
|
@export var tiles_per_frame: int = 1 # How many tiles to create per frame
|
||||||
var loaded_chunks: Dictionary = {}
|
var loaded_chunks: Dictionary = {}
|
||||||
var player_position: Vector3
|
var player_position: Vector3
|
||||||
var last_chunk_pos: Vector2i = Vector2i(-999, -999)
|
var last_chunk_pos: Vector2i = Vector2i(-999, -999)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue