feat(world): world-space marine snow around the viewer
Quality Gate / Quality Gate (pull_request) Failing after 3m10s
Quality Gate / Quality Gate (pull_request) Failing after 3m10s
A GPUParticles3D emitter in the dive site re-centres on the active camera every frame and restarts after a jump, so flakes keep their own slow sink and drift while the submarine moves through them. Soft additive billboard discs dimmed by the water column and faded over their life replace the sphere volume that was attached to the submarine and turned with it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
48e054557c
commit
029e2b99bd
7 files changed
+127
-26
No files matched your search
@@ -1,25 +1,10 @@
|
||||
[gd_scene load_steps=7 format=3]
|
||||
[gd_scene load_steps=5 format=3]
|
||||
|
||||
[ext_resource type="PackedScene" path="res://game/world/sites/dive_site.tscn" id="1_site"]
|
||||
[ext_resource type="PackedScene" path="res://game/world/submarine/submarine_actor.tscn" id="2_submarine"]
|
||||
[ext_resource type="PackedScene" path="res://game/presentation/cockpit/cockpit_camera_rig.tscn" id="3_camera"]
|
||||
[ext_resource type="PackedScene" path="res://game/presentation/cockpit/cockpit_interior.tscn" id="4_cockpit"]
|
||||
|
||||
[sub_resource type="ParticleProcessMaterial" id="SuspendedMotion"]
|
||||
emission_shape = 3
|
||||
emission_box_extents = Vector3(45, 28, 70)
|
||||
direction = Vector3(0.1, 0.04, 0)
|
||||
spread = 180.0
|
||||
initial_velocity_min = 0.02
|
||||
initial_velocity_max = 0.09
|
||||
gravity = Vector3(0, 0, 0)
|
||||
scale_min = 0.025
|
||||
scale_max = 0.08
|
||||
|
||||
[sub_resource type="SphereMesh" id="SuspendedParticleMesh"]
|
||||
radius = 0.035
|
||||
height = 0.07
|
||||
|
||||
[node name="DiveWorld" type="Node3D"]
|
||||
|
||||
[node name="DiveSite" parent="." instance=ExtResource("1_site")]
|
||||
@@ -28,14 +13,6 @@ unique_name_in_owner = true
|
||||
[node name="SubmarineActor" parent="." instance=ExtResource("2_submarine")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
[node name="SuspendedParticles" type="GPUParticles3D" parent="SubmarineActor"]
|
||||
amount = 360
|
||||
lifetime = 14.0
|
||||
preprocess = 14.0
|
||||
visibility_aabb = AABB(-50, -35, -78, 100, 70, 156)
|
||||
process_material = SubResource("SuspendedMotion")
|
||||
draw_pass_1 = SubResource("SuspendedParticleMesh")
|
||||
|
||||
[node name="CockpitInterior" parent="SubmarineActor" instance=ExtResource("4_cockpit")]
|
||||
unique_name_in_owner = true
|
||||
|
||||
|
||||
Reference in new issue
Block a user