feat: add fps_blockout test map with environmental lighting and collision geometry
This commit is contained in:
@@ -1,31 +1,70 @@
|
||||
[gd_scene load_steps=10 format=3 uid="uid://93f273e01255"]
|
||||
[gd_scene load_steps=12 format=3 uid="uid://c0ab260fc1da"]
|
||||
|
||||
[ext_resource type="Script" path="res://scenes/maps/level_runtime.gd" id="1_rt"]
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_grey"]
|
||||
albedo_color = Color(0.3, 0.3, 0.35, 1)
|
||||
roughness = 0.7
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_orange"]
|
||||
albedo_color = Color(0.8, 0.4, 0.1, 1)
|
||||
roughness = 0.7
|
||||
albedo_color = Color(0.08, 0.09, 0.11, 1)
|
||||
metallic = 0.7
|
||||
roughness = 0.15
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_blue"]
|
||||
albedo_color = Color(0.1, 0.4, 0.8, 1)
|
||||
roughness = 0.7
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_dark_pit"]
|
||||
albedo_color = Color(0.1, 0.1, 0.1, 1)
|
||||
roughness = 0.7
|
||||
albedo_color = Color(0, 0.05, 0.1, 1)
|
||||
emission_enabled = true
|
||||
emission = Color(0.1, 0.6, 1.0, 1)
|
||||
emission_energy_multiplier = 3.5
|
||||
roughness = 0.4
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="StandardMaterial3D_glass"]
|
||||
albedo_color = Color(0.2, 0.8, 0.9, 0.3)
|
||||
roughness = 0.1
|
||||
albedo_color = Color(0.2, 0.8, 0.9, 0.2)
|
||||
transparency = 1
|
||||
roughness = 0.05
|
||||
metallic = 0.9
|
||||
emission_enabled = true
|
||||
emission = Color(0.1, 0.4, 0.8, 1)
|
||||
emission_energy_multiplier = 0.5
|
||||
|
||||
[sub_resource type="Shader" id="Shader_lava"]
|
||||
code = "shader_type spatial;
|
||||
uniform sampler2D noise_tex : repeat_enable;
|
||||
uniform vec4 emission_color : source_color;
|
||||
varying vec3 world_pos;
|
||||
void vertex() {
|
||||
world_pos = (MODEL_MATRIX * vec4(VERTEX, 1.0)).xyz;
|
||||
}
|
||||
void fragment() {
|
||||
vec3 blend = abs(NORMAL);
|
||||
blend /= dot(blend, vec3(1.0));
|
||||
vec2 flow = TIME * vec2(0.02, 0.05);
|
||||
vec2 uvX = world_pos.zy * 0.1 + flow;
|
||||
vec2 uvY = world_pos.xz * 0.1 + flow;
|
||||
vec2 uvZ = world_pos.xy * 0.1 + flow;
|
||||
float nX = texture(noise_tex, uvX).r;
|
||||
float nY = texture(noise_tex, uvY).r;
|
||||
float nZ = texture(noise_tex, uvZ).r;
|
||||
float n = nX * blend.x + nY * blend.y + nZ * blend.z;
|
||||
float lava = smoothstep(0.3, 0.6, n);
|
||||
ALBEDO = vec3(0.05, 0.01, 0.0);
|
||||
EMISSION = emission_color.rgb * lava * 6.0;
|
||||
}"
|
||||
|
||||
[sub_resource type="FastNoiseLite" id="FastNoiseLite_lava"]
|
||||
noise_type = 2
|
||||
frequency = 0.05
|
||||
|
||||
[sub_resource type="NoiseTexture2D" id="NoiseTexture2D_lava"]
|
||||
seamless = true
|
||||
noise = SubResource("FastNoiseLite_lava")
|
||||
|
||||
[sub_resource type="ShaderMaterial" id="StandardMaterial3D_orange"]
|
||||
shader = SubResource("Shader_lava")
|
||||
shader_parameter/emission_color = Color(1.0, 0.4, 0.0, 1)
|
||||
shader_parameter/noise_tex = SubResource("NoiseTexture2D_lava")
|
||||
|
||||
[sub_resource type="ProceduralSkyMaterial" id="ProceduralSkyMaterial_xxxx"]
|
||||
sky_top_color = Color(0.385, 0.454, 0.55, 1)
|
||||
sky_horizon_color = Color(0.646, 0.656, 0.67, 1)
|
||||
sky_top_color = Color(0.05, 0.08, 0.12, 1)
|
||||
sky_horizon_color = Color(0.15, 0.2, 0.25, 1)
|
||||
ground_bottom_color = Color(0.02, 0.03, 0.05, 1)
|
||||
ground_horizon_color = Color(0.15, 0.2, 0.25, 1)
|
||||
|
||||
[sub_resource type="Sky" id="Sky_xxxx"]
|
||||
sky_material = SubResource("ProceduralSkyMaterial_xxxx")
|
||||
@@ -33,8 +72,22 @@ sky_material = SubResource("ProceduralSkyMaterial_xxxx")
|
||||
[sub_resource type="Environment" id="Environment_xxxx"]
|
||||
background_mode = 2
|
||||
sky = SubResource("Sky_xxxx")
|
||||
tonemap_mode = 2
|
||||
ambient_light_source = 2
|
||||
ambient_light_color = Color(0.2, 0.25, 0.35, 1)
|
||||
ambient_light_energy = 1.0
|
||||
tonemap_mode = 3
|
||||
glow_enabled = true
|
||||
glow_intensity = 1.5
|
||||
glow_bloom = 0.2
|
||||
glow_hdr_threshold = 1.0
|
||||
sdfgi_enabled = true
|
||||
sdfgi_use_occlusion = true
|
||||
ssao_enabled = true
|
||||
ssil_enabled = true
|
||||
volumetric_fog_enabled = true
|
||||
volumetric_fog_density = 0.015
|
||||
volumetric_fog_albedo = Color(0.3, 0.5, 0.8, 1)
|
||||
volumetric_fog_emission = Color(0.02, 0.05, 0.1, 1)
|
||||
|
||||
[node name="MapRoot" type="CSGCombiner3D"]
|
||||
use_collision = true
|
||||
@@ -44,8 +97,10 @@ script = ExtResource("1_rt")
|
||||
environment = SubResource("Environment_xxxx")
|
||||
|
||||
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
|
||||
transform = Transform3D(0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, -0.5, 0.5, 0, 10, 0)
|
||||
transform = Transform3D(0.707107, -0.5, 0.5, 0, 0.707107, 0.707107, -0.707107, -0.5, 0.5, 0, 20, 0)
|
||||
shadow_enabled = true
|
||||
light_color = Color(0.8, 0.9, 1.0, 1)
|
||||
light_energy = 0.3
|
||||
|
||||
[node name="Spawn1" type="Marker3D" parent="." groups=["spawn_points"]]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 4, 0)
|
||||
@@ -106,22 +161,16 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, 0)
|
||||
size = Vector3(20, 2, 20)
|
||||
material = SubResource("StandardMaterial3D_grey")
|
||||
|
||||
[node name="CenterHole" type="CSGBox3D" parent="."]
|
||||
[node name="CenterDivot" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 7, 0)
|
||||
size = Vector3(16, 2, 16)
|
||||
material = SubResource("StandardMaterial3D_grey")
|
||||
operation = 2
|
||||
|
||||
[node name="CenterNeon" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, 0)
|
||||
size = Vector3(8, 4, 8)
|
||||
material = SubResource("StandardMaterial3D_dark_pit")
|
||||
operation = 2
|
||||
|
||||
[node name="LowerPit" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4, 0)
|
||||
size = Vector3(30, 10, 30)
|
||||
material = SubResource("StandardMaterial3D_dark_pit")
|
||||
operation = 2
|
||||
|
||||
[node name="LowerPitFloor" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -8, 0)
|
||||
size = Vector3(30, 2, 30)
|
||||
material = SubResource("StandardMaterial3D_dark_pit")
|
||||
size = Vector3(6, 0.5, 6)
|
||||
material = SubResource("StandardMaterial3D_blue")
|
||||
|
||||
[node name="PillarC1" type="CSGCylinder3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -8, 2, -8)
|
||||
@@ -150,40 +199,40 @@ material = SubResource("StandardMaterial3D_orange")
|
||||
[node name="BridgeN" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, -18)
|
||||
size = Vector3(6, 1, 16)
|
||||
material = SubResource("StandardMaterial3D_blue")
|
||||
material = SubResource("StandardMaterial3D_glass")
|
||||
|
||||
[node name="BridgeS" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 6, 18)
|
||||
size = Vector3(6, 1, 16)
|
||||
material = SubResource("StandardMaterial3D_blue")
|
||||
material = SubResource("StandardMaterial3D_glass")
|
||||
|
||||
[node name="BridgeE" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 18, 6, 0)
|
||||
size = Vector3(16, 1, 6)
|
||||
material = SubResource("StandardMaterial3D_blue")
|
||||
material = SubResource("StandardMaterial3D_glass")
|
||||
|
||||
[node name="BridgeW" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -18, 6, 0)
|
||||
size = Vector3(16, 1, 6)
|
||||
material = SubResource("StandardMaterial3D_blue")
|
||||
material = SubResource("StandardMaterial3D_glass")
|
||||
|
||||
[node name="GrappleAnchor1" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, -10, 20, -10)
|
||||
transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, -15, 20, -15)
|
||||
size = Vector3(2, 2, 2)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
|
||||
[node name="GrappleAnchor2" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, 10, 20, 10)
|
||||
transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, 15, 20, 15)
|
||||
size = Vector3(2, 2, 2)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
|
||||
[node name="GrappleAnchor3" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, 10, 20, -10)
|
||||
transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, 15, 20, -15)
|
||||
size = Vector3(2, 2, 2)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
|
||||
[node name="GrappleAnchor4" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, -10, 20, 10)
|
||||
transform = Transform3D(0.7071067811865476, 0, -0.7071067811865476, 0, 1, 0, 0.7071067811865476, 0, 0.7071067811865476, -15, 20, 15)
|
||||
size = Vector3(2, 2, 2)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
|
||||
@@ -207,17 +256,6 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 6, 0)
|
||||
size = Vector3(10, 1, 70)
|
||||
material = SubResource("StandardMaterial3D_grey")
|
||||
|
||||
[node name="AbyssPit" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -4, 45)
|
||||
size = Vector3(120, 10, 30)
|
||||
material = SubResource("StandardMaterial3D_dark_pit")
|
||||
operation = 2
|
||||
|
||||
[node name="AbyssFloor" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -8, 45)
|
||||
size = Vector3(120, 2, 30)
|
||||
material = SubResource("StandardMaterial3D_dark_pit")
|
||||
|
||||
[node name="WallRun1" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(0.984807753012208, 0, 0.17364817766693033, 0, 1, 0, -0.17364817766693033, 0, 0.984807753012208, -30, 8, 40)
|
||||
size = Vector3(24, 16, 2)
|
||||
@@ -343,38 +381,67 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 2, -15)
|
||||
size = Vector3(2, 4, 8)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
|
||||
[node name="CoverNE2" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 2, -12)
|
||||
size = Vector3(6, 4, 2)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
|
||||
[node name="CoverNW1" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 2, -15)
|
||||
size = Vector3(2, 4, 8)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
|
||||
[node name="CoverNW2" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 2, -12)
|
||||
size = Vector3(6, 4, 2)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
|
||||
[node name="CoverSE1" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 15, 2, 15)
|
||||
size = Vector3(2, 4, 8)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
|
||||
[node name="CoverSE2" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 12, 2, 12)
|
||||
size = Vector3(6, 4, 2)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
|
||||
[node name="CoverSW1" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 2, 15)
|
||||
size = Vector3(2, 4, 8)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
|
||||
[node name="CoverSW2" type="CSGBox3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -12, 2, 12)
|
||||
size = Vector3(6, 4, 2)
|
||||
material = SubResource("StandardMaterial3D_orange")
|
||||
[node name="LightCenter" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 15, 0)
|
||||
light_color = Color(0.2, 0.6, 1.0, 1)
|
||||
light_energy = 8.0
|
||||
omni_range = 40.0
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="LightUWW" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -20, 2, 0)
|
||||
light_color = Color(1.0, 0.4, 0.1, 1)
|
||||
light_energy = 3.0
|
||||
omni_range = 20.0
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="LightUWE" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 20, 2, 0)
|
||||
light_color = Color(1.0, 0.4, 0.1, 1)
|
||||
light_energy = 3.0
|
||||
omni_range = 20.0
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="LightTunW" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -30, 3, -45)
|
||||
light_color = Color(0.1, 0.8, 1.0, 1)
|
||||
light_energy = 2.0
|
||||
omni_range = 15.0
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="LightTunE" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 30, 3, -45)
|
||||
light_color = Color(0.1, 0.8, 1.0, 1)
|
||||
light_energy = 2.0
|
||||
omni_range = 15.0
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="LightSpawnE" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 45, 4, 0)
|
||||
light_color = Color(1.0, 1.0, 1.0, 1)
|
||||
light_energy = 1.5
|
||||
omni_range = 12.0
|
||||
shadow_enabled = true
|
||||
|
||||
[node name="LightSpawnW" type="OmniLight3D" parent="."]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -45, 4, 0)
|
||||
light_color = Color(1.0, 1.0, 1.0, 1)
|
||||
light_energy = 1.5
|
||||
omni_range = 12.0
|
||||
shadow_enabled = true
|
||||
|
||||
|
||||
Reference in New Issue
Block a user