скайбоксы, рендер воды, документация

This commit is contained in:
2026-06-27 18:33:55 +04:00
parent 579b9e10c9
commit b051012920
14 changed files with 1775 additions and 101 deletions
@@ -1,7 +1,21 @@
[gd_scene format=3 uid="uid://f1nqi4emji47"]
[ext_resource type="Script" uid="uid://yi6lawwjgocg" path="res://src/scenes/streaming/streaming_world_loader.gd" id="1_stream"]
[ext_resource type="Script" path="res://src/scenes/player/third_person_wow_controller.gd" id="2_player"]
[ext_resource type="Script" uid="uid://ltn2ko5kxvo4" path="res://src/scenes/player/third_person_wow_controller.gd" id="2_player"]
[ext_resource type="Script" uid="uid://didjth34ut0v1" path="res://src/scenes/sky/wow_sky_controller.gd" id="3_sky"]
[sub_resource type="CapsuleShape3D" id="PlayerCapsuleShape_1"]
radius = 0.45
height = 2.1
[sub_resource type="StandardMaterial3D" id="PlayerMaterial_1"]
albedo_color = Color(0.25, 0.42, 0.85, 1)
roughness = 0.65
[sub_resource type="CapsuleMesh" id="PlayerCapsuleMesh_1"]
material = SubResource("PlayerMaterial_1")
radius = 0.45
height = 2.1
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_1"]
sky_top_color = Color(0.13, 0.32, 0.62, 1)
@@ -14,20 +28,18 @@ ground_curve = 0.12
ground_energy_multiplier = 0.55
sun_angle_max = 12.0
sun_curve = 0.08
use_debanding = true
[sub_resource type="Sky" id="Sky_1"]
sky_material = SubResource("ProceduralSkyMaterial_1")
radiance_size = 3
[sub_resource type="Environment" id="Environment_1"]
background_mode = 2
sky = SubResource("Sky_1")
background_energy_multiplier = 0.9
sky = SubResource("Sky_1")
ambient_light_source = 3
ambient_light_color = Color(0.72, 0.8, 0.88, 1)
ambient_light_energy = 0.75
ambient_light_sky_contribution = 0.65
ambient_light_energy = 0.75
reflected_light_source = 2
fog_enabled = true
fog_mode = 1
@@ -36,23 +48,9 @@ fog_light_energy = 0.55
fog_sun_scatter = 0.08
fog_density = 0.00018
fog_sky_affect = 0.35
fog_depth_curve = 1.0
fog_depth_begin = 1200.0
fog_depth_end = 5200.0
[sub_resource type="StandardMaterial3D" id="PlayerMaterial_1"]
albedo_color = Color(0.25, 0.42, 0.85, 1)
roughness = 0.65
[sub_resource type="CapsuleMesh" id="PlayerCapsuleMesh_1"]
material = SubResource("PlayerMaterial_1")
radius = 0.45
height = 2.1
[sub_resource type="CapsuleShape3D" id="PlayerCapsuleShape_1"]
radius = 0.45
height = 2.1
[node name="StreamingWorld" type="Node3D" unique_id=1063159974]
script = ExtResource("1_stream")
camera_path = NodePath("ThirdPersonPlayer/CameraPivot/Camera3D")
@@ -65,7 +63,7 @@ m2_build_groups_per_tick = 1
m2_multimesh_batch_size = 64
wmo_render_group_ops_per_tick = 16
cached_tile_mesh_limit = 48
terrain_quality_mesh_cache_limit = 128
terrain_quality_mesh_cache_limit = 48
lod0_radius_chunks = 10
lod1_radius_chunks = 20
lod2_radius_chunks = 40
@@ -77,9 +75,7 @@ boundary_prefetch_threshold = 0.42
auto_position_camera = false
enable_occlusion_culling = false
terrain_full_quality_radius_tiles = 5
terrain_control_splat_primary = true
terrain_control_splat_hide_fallback = true
terrain_control_splat_hide_fallback_radius_tiles = 0
terrain_control_splat_radius_tiles = 5
max_active_terrain_control_splat_tiles = 121
terrain_control_splat_cache_finalize_ops_per_tick = 8
@@ -89,33 +85,30 @@ m2_tile_radius = 3
wmo_tile_radius = 5
m2_visibility_range = 1600.0
wmo_visibility_range = 3600.0
terrain_quality_log_enabled = true
terrain_quality_log_interval = 1.0
hitch_profiler_enabled = true
[node name="ThirdPersonPlayer" type="CharacterBody3D" parent="." unique_id=502573687]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 22666, 80, 15200)
script = ExtResource("2_player")
spawn_tile_x = 42
spawn_tile_y = 28
sprint_multiplier = 6.0
spawn_tile_x = 31
spawn_tile_y = 31
[node name="CollisionShape3D" type="CollisionShape3D" parent="ThirdPersonPlayer"]
position = Vector3(0, 1.05, 0)
[node name="CollisionShape3D" type="CollisionShape3D" parent="ThirdPersonPlayer" unique_id=1297880621]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.05, 0)
shape = SubResource("PlayerCapsuleShape_1")
[node name="Visual" type="MeshInstance3D" parent="ThirdPersonPlayer"]
position = Vector3(0, 1.05, 0)
[node name="Visual" type="MeshInstance3D" parent="ThirdPersonPlayer" unique_id=1028210492]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.05, 0)
mesh = SubResource("PlayerCapsuleMesh_1")
[node name="CameraPivot" type="Node3D" parent="ThirdPersonPlayer"]
position = Vector3(0, 1.7, 0)
[node name="CameraPivot" type="Node3D" parent="ThirdPersonPlayer" unique_id=499263249]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.7, 0)
[node name="Camera3D" type="Camera3D" parent="ThirdPersonPlayer/CameraPivot"]
position = Vector3(0, 0, 8)
[node name="Camera3D" type="Camera3D" parent="ThirdPersonPlayer/CameraPivot" unique_id=2142337971]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 8)
current = true
far = 50000.0
fov = 70.0
far = 50000.0
[node name="Sun" type="DirectionalLight3D" parent="." unique_id=1436804627]
transform = Transform3D(0.866025, -0.353553, 0.353553, 0, 0.707107, 0.707107, -0.5, -0.612372, 0.612372, 0, 0, 0)
@@ -127,3 +120,9 @@ directional_shadow_max_distance = 2200.0
[node name="WorldEnvironment" type="WorldEnvironment" parent="." unique_id=12906896]
environment = SubResource("Environment_1")
[node name="WowSkyController" type="Node" parent="." unique_id=1473026848]
script = ExtResource("3_sky")
target_path = NodePath("../ThirdPersonPlayer")
world_environment_path = NodePath("../WorldEnvironment")
sun_path = NodePath("../Sun")