From 5823317601917aa189fbdcc6e34b1eb2ceed4941 Mon Sep 17 00:00:00 2001 From: betalars Date: Wed, 21 May 2025 19:41:00 +0200 Subject: [PATCH] importing first station properly --- design/subway/subway.blend | 4 +- .../transition/first_platform.tscn | 167 ++++++++++++++---- .../transition/import/Banco.tres | 19 ++ .../transition/import/LuzTunelLarga.tres | 12 ++ .../transition/import/Material.003.tres | 7 + .../transition/import/beam_metal.tres | 7 + .../transition/import/door.tres | 6 + .../transition/import/escalator_paneling.tres | 6 + .../transition/import/escalator_rim.tres | 7 + .../transition/import/escalator_steps.tres | 16 ++ .../transition/import/firs_station.glb | 4 +- ...irs_station_SueloModular_normal.png.import | 2 +- .../transition/import/first_station.glb | 4 +- .../import/first_station.glb.import | 109 +++++++++++- .../transition/import/green_pillar.tres | 13 ++ .../transition/import/metal.tres | 7 + .../transition/import/next_room_peak.tres | 9 + .../transition/import/pipeage.001.tres | 7 + .../transition/import/pipeage.tres | 6 + .../transition/import/rails.tres | 6 + .../transition/import/signal_lights.tres | 21 +++ .../transition/import/speakers.tres | 19 ++ .../transition/import/station_metal.tres | 14 ++ .../transition/import/tactile_paving.tres | 13 ++ .../textures/LuzTunelLarga_baseColor.jpeg | 3 + .../LuzTunelLarga_baseColor.jpeg.import | 36 ++++ .../textures/LuzTunelLarga_emissive.jpeg | 3 + .../LuzTunelLarga_emissive.jpeg.import | 36 ++++ .../textures/LuzTunelLarga_emissive.jpeg~ | Bin 0 -> 31882 bytes .../textures/Metal055A_4K-PNG_Color.png | 3 + .../Metal055A_4K-PNG_Color.png.import | 36 ++++ .../textures/Metal055A_4K-PNG_NormalGL.png | 3 + .../Metal055A_4K-PNG_NormalGL.png.import | 36 ++++ .../textures/Metal055A_4K-PNG_Roughness.png | 3 + .../Metal055A_4K-PNG_Roughness.png.import | 36 ++++ .../import/textures/bench_albedo.jpg | 3 + .../import/textures/bench_albedo.jpg.import | 36 ++++ .../transition/import/textures/bench_mrao.png | 3 + .../import/textures/bench_mrao.png.import | 36 ++++ .../import/textures/bench_normal.png | 3 + .../import/textures/bench_normal.png.import | 36 ++++ .../textures/signal_lights_baseColor.jpeg | 3 + .../signal_lights_baseColor.jpeg.import | 36 ++++ .../textures/signal_lights_emissive.jpeg | 3 + .../signal_lights_emissive.jpeg.import | 36 ++++ .../import/textures/signal_lights_mrao.png | 3 + .../textures/signal_lights_mrao.png.import | 36 ++++ .../import/textures/signal_lights_normal.png | 3 + .../textures/signal_lights_normal.png.import | 36 ++++ .../import/textures/speakers_albedo.jpg | 3 + .../textures/speakers_albedo.jpg.import | 36 ++++ .../import/textures/speakers_mrao.png | 3 + .../import/textures/speakers_mrao.png.import | 36 ++++ .../import/textures/speakers_normal.png | 3 + .../textures/speakers_normal.png.import | 36 ++++ .../import/textures/station_tiles.tres | 10 +- .../import/unlit_station_tiles.tres | 16 ++ .../shaders/escalator_disp.gdshader | 50 ++++++ .../shaders/escalator_disp.gdshader.uid | 1 + .../transition/shaders/platform_foam.tres | 2 +- .../transition/shaders/stairs_albedo.png | 3 + .../shaders/stairs_albedo.png.import | 36 ++++ .../transition/shaders/stairs_normal.png | 3 + .../shaders/stairs_normal.png.import | 36 ++++ src/dev-util/stair-testing.tscn | 24 +++ src/dev-util/staircase.glb | 3 + src/dev-util/staircase.glb.import | 37 ++++ 67 files changed, 1243 insertions(+), 48 deletions(-) create mode 100644 src/base-environments/transition/import/Banco.tres create mode 100644 src/base-environments/transition/import/LuzTunelLarga.tres create mode 100644 src/base-environments/transition/import/Material.003.tres create mode 100644 src/base-environments/transition/import/beam_metal.tres create mode 100644 src/base-environments/transition/import/door.tres create mode 100644 src/base-environments/transition/import/escalator_paneling.tres create mode 100644 src/base-environments/transition/import/escalator_rim.tres create mode 100644 src/base-environments/transition/import/escalator_steps.tres create mode 100644 src/base-environments/transition/import/green_pillar.tres create mode 100644 src/base-environments/transition/import/metal.tres create mode 100644 src/base-environments/transition/import/next_room_peak.tres create mode 100644 src/base-environments/transition/import/pipeage.001.tres create mode 100644 src/base-environments/transition/import/pipeage.tres create mode 100644 src/base-environments/transition/import/rails.tres create mode 100644 src/base-environments/transition/import/signal_lights.tres create mode 100644 src/base-environments/transition/import/speakers.tres create mode 100644 src/base-environments/transition/import/station_metal.tres create mode 100644 src/base-environments/transition/import/tactile_paving.tres create mode 100644 src/base-environments/transition/import/textures/LuzTunelLarga_baseColor.jpeg create mode 100644 src/base-environments/transition/import/textures/LuzTunelLarga_baseColor.jpeg.import create mode 100644 src/base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg create mode 100644 src/base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg.import create mode 100644 src/base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg~ create mode 100644 src/base-environments/transition/import/textures/Metal055A_4K-PNG_Color.png create mode 100644 src/base-environments/transition/import/textures/Metal055A_4K-PNG_Color.png.import create mode 100644 src/base-environments/transition/import/textures/Metal055A_4K-PNG_NormalGL.png create mode 100644 src/base-environments/transition/import/textures/Metal055A_4K-PNG_NormalGL.png.import create mode 100644 src/base-environments/transition/import/textures/Metal055A_4K-PNG_Roughness.png create mode 100644 src/base-environments/transition/import/textures/Metal055A_4K-PNG_Roughness.png.import create mode 100644 src/base-environments/transition/import/textures/bench_albedo.jpg create mode 100644 src/base-environments/transition/import/textures/bench_albedo.jpg.import create mode 100644 src/base-environments/transition/import/textures/bench_mrao.png create mode 100644 src/base-environments/transition/import/textures/bench_mrao.png.import create mode 100644 src/base-environments/transition/import/textures/bench_normal.png create mode 100644 src/base-environments/transition/import/textures/bench_normal.png.import create mode 100644 src/base-environments/transition/import/textures/signal_lights_baseColor.jpeg create mode 100644 src/base-environments/transition/import/textures/signal_lights_baseColor.jpeg.import create mode 100644 src/base-environments/transition/import/textures/signal_lights_emissive.jpeg create mode 100644 src/base-environments/transition/import/textures/signal_lights_emissive.jpeg.import create mode 100644 src/base-environments/transition/import/textures/signal_lights_mrao.png create mode 100644 src/base-environments/transition/import/textures/signal_lights_mrao.png.import create mode 100644 src/base-environments/transition/import/textures/signal_lights_normal.png create mode 100644 src/base-environments/transition/import/textures/signal_lights_normal.png.import create mode 100644 src/base-environments/transition/import/textures/speakers_albedo.jpg create mode 100644 src/base-environments/transition/import/textures/speakers_albedo.jpg.import create mode 100644 src/base-environments/transition/import/textures/speakers_mrao.png create mode 100644 src/base-environments/transition/import/textures/speakers_mrao.png.import create mode 100644 src/base-environments/transition/import/textures/speakers_normal.png create mode 100644 src/base-environments/transition/import/textures/speakers_normal.png.import create mode 100644 src/base-environments/transition/import/unlit_station_tiles.tres create mode 100644 src/base-environments/transition/shaders/escalator_disp.gdshader create mode 100644 src/base-environments/transition/shaders/escalator_disp.gdshader.uid create mode 100644 src/base-environments/transition/shaders/stairs_albedo.png create mode 100644 src/base-environments/transition/shaders/stairs_albedo.png.import create mode 100644 src/base-environments/transition/shaders/stairs_normal.png create mode 100644 src/base-environments/transition/shaders/stairs_normal.png.import create mode 100644 src/dev-util/stair-testing.tscn create mode 100644 src/dev-util/staircase.glb create mode 100644 src/dev-util/staircase.glb.import diff --git a/design/subway/subway.blend b/design/subway/subway.blend index 90b78bad..547775b5 100644 --- a/design/subway/subway.blend +++ b/design/subway/subway.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:42833ec5c310dd19d5fe2d3928284d203b8958b0f94e92b28cbfe70690eb56d1 -size 326721588 +oid sha256:c014fc6dcb5c7b55eb20b56c8feef2c741a6dce8fe8c929803cce31bb726d7b5 +size 371224406 diff --git a/src/base-environments/transition/first_platform.tscn b/src/base-environments/transition/first_platform.tscn index 11c8c318..fa35e312 100644 --- a/src/base-environments/transition/first_platform.tscn +++ b/src/base-environments/transition/first_platform.tscn @@ -1,4 +1,4 @@ -[gd_scene load_steps=30 format=3 uid="uid://dgxujvk66rka6"] +[gd_scene load_steps=34 format=3 uid="uid://dgxujvk66rka6"] [ext_resource type="PackedScene" uid="uid://cb4m4oe32guqi" path="res://base-environments/transition/import/first_station.glb" id="1_yerc2"] [ext_resource type="Shader" uid="uid://sxauef61xfpx" path="res://base-environments/transition/time_sparks.gdshader" id="2_4y17u"] @@ -10,6 +10,7 @@ [ext_resource type="Texture2D" uid="uid://byovh27jwtbhh" path="res://base-environments/transition/misc/annalena_graffiti_orm.png" id="8_xh1hp"] [ext_resource type="Texture2D" uid="uid://jtr7v163pfy7" path="res://base-environments/transition/misc/blender_graffiti_albedo.png" id="9_bvylv"] [ext_resource type="Texture2D" uid="uid://cwjr0xq64hdsw" path="res://base-environments/transition/misc/blender_graffiti_orm.png" id="10_xrnct"] +[ext_resource type="Material" uid="uid://d3rfe7mryshj1" path="res://base-environments/transition/import/next_room_peak.tres" id="11_sy31e"] [sub_resource type="ViewportTexture" id="ViewportTexture_sjsoq"] viewport_path = NodePath("first_station/MeshInstance3D/SubViewport") @@ -36,21 +37,26 @@ sky_material = SubResource("ProceduralSkyMaterial_nspcl") background_mode = 2 sky = SubResource("Sky_5ahgt") reflected_light_source = 2 -tonemap_mode = 3 -tonemap_exposure = 2.0 +tonemap_mode = 2 +tonemap_exposure = 1.5 ssao_enabled = true ssil_enabled = true +sdfgi_use_occlusion = true +sdfgi_read_sky_light = false +sdfgi_energy = 0.2 glow_enabled = true glow_levels/1 = 0.2 glow_strength = 0.7 glow_mix = 1.0 glow_bloom = 0.5 glow_blend_mode = 1 -fog_enabled = true fog_light_color = Color(0.0449019, 0.147257, 0.213563, 1) fog_height = 0.25 fog_height_density = 0.5 +volumetric_fog_enabled = true +volumetric_fog_albedo = Color(0.3792, 0.60514, 0.79, 1) adjustment_enabled = true +adjustment_contrast = 1.02 [sub_resource type="ShaderMaterial" id="ShaderMaterial_4tj6b"] render_priority = 3 @@ -129,12 +135,122 @@ turbulence_influence_max = 0.05 [sub_resource type="PlaneMesh" id="PlaneMesh_8c2us"] orientation = 2 +[sub_resource type="Animation" id="Animation_irpux"] +resource_name = "trailer" +length = 10.0 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 2 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0, 1.79, 4.23333, 9.76667), +"transitions": PackedFloat32Array(1, 1, 1, 1), +"update": 0, +"values": [Vector3(0.785, 2.75, -0.535), Vector3(0.89, 1.895, -1.695), Vector3(0.82, 1.245, -2.975), Vector3(0.82, 1.11, -5.74)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:rotation") +tracks/1/interp = 2 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0.28, 2.9, 3.92, 5, 6.50333, 9.2), +"transitions": PackedFloat32Array(1, 1, 1, 1, 1, 1), +"update": 0, +"values": [Vector3(-1.0472, 0, 0), Vector3(-0.671952, 0, 0), Vector3(-0.593412, 0, 0), Vector3(-0.125664, -0.701622, 0.0785398), Vector3(-0.125664, 0.235619, -0.0523599), Vector3(0, -0.235619, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("../MeshInstance3D:material_override:emission_energy_multiplier") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(4.06, 9.98), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [1.0, 3.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../MeshInstance3D:material_override:emission") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(4.06, 10), +"transitions": PackedFloat32Array(1, 1), +"update": 0, +"values": [Color(0.0748178, 0.134808, 0.168364, 1), Color(1, 1, 1, 1)] +} + +[sub_resource type="Animation" id="Animation_dgbje"] +length = 0.001 +tracks/0/type = "value" +tracks/0/imported = false +tracks/0/enabled = true +tracks/0/path = NodePath(".:position") +tracks/0/interp = 1 +tracks/0/loop_wrap = true +tracks/0/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(0.785, 2.75, -0.535)] +} +tracks/1/type = "value" +tracks/1/imported = false +tracks/1/enabled = true +tracks/1/path = NodePath(".:rotation") +tracks/1/interp = 1 +tracks/1/loop_wrap = true +tracks/1/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Vector3(-0.671952, 0, 0)] +} +tracks/2/type = "value" +tracks/2/imported = false +tracks/2/enabled = true +tracks/2/path = NodePath("../MeshInstance3D:material_override:emission_energy_multiplier") +tracks/2/interp = 1 +tracks/2/loop_wrap = true +tracks/2/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [3.0] +} +tracks/3/type = "value" +tracks/3/imported = false +tracks/3/enabled = true +tracks/3/path = NodePath("../MeshInstance3D:material_override:emission") +tracks/3/interp = 1 +tracks/3/loop_wrap = true +tracks/3/keys = { +"times": PackedFloat32Array(0), +"transitions": PackedFloat32Array(1), +"update": 0, +"values": [Color(0.0748178, 0.134808, 0.168364, 1)] +} + +[sub_resource type="AnimationLibrary" id="AnimationLibrary_sy31e"] +_data = { +&"RESET": SubResource("Animation_dgbje"), +&"trailer": SubResource("Animation_irpux") +} + [node name="Node3D" type="Node3D"] [node name="first_station" parent="." instance=ExtResource("1_yerc2")] [node name="MeshInstance3D" type="MeshInstance3D" parent="first_station"] transform = Transform3D(0, 0, 1.46175, 0, 1.46175, 0, -1.46175, 0, 0, 0.124229, 1.13951, -12.668) +visible = false material_override = SubResource("StandardMaterial3D_cb8p6") mesh = SubResource("QuadMesh_d1dx0") @@ -168,28 +284,6 @@ spot_range = 7.0 spot_angle = 80.0 spot_angle_attenuation = 0.517633 -[node name="OmniLight3D14" type="SpotLight3D" parent="WorldEnvironment"] -transform = Transform3D(0.866025, 0, -0.5, 0.5, -4.37114e-08, 0.866025, -2.18557e-08, -1, -3.78552e-08, -8.62245, 3.50406, -5.1989) -light_color = Color(0.638582, 0.874392, 0.987309, 1) -light_size = 0.67 -light_specular = 0.0 -light_bake_mode = 1 -shadow_enabled = true -spot_range = 8.98248 -spot_angle = 80.0 -spot_angle_attenuation = 0.517633 - -[node name="OmniLight3D15" type="SpotLight3D" parent="WorldEnvironment"] -transform = Transform3D(0.866025, 0, -0.5, 0.5, -4.37114e-08, 0.866025, -2.18557e-08, -1, -3.78552e-08, -8.62245, 3.50406, -16.568) -light_color = Color(0.638582, 0.874392, 0.987309, 1) -light_size = 0.67 -light_specular = 0.0 -light_bake_mode = 1 -shadow_enabled = true -spot_range = 8.98248 -spot_angle = 80.0 -spot_angle_attenuation = 0.517633 - [node name="OmniLight3D2" type="SpotLight3D" parent="WorldEnvironment"] transform = Transform3D(1, 0, 0, 0, -4.37114e-08, 1, 0, -1, -4.37114e-08, 0.322136, 2.02551, -15.2744) light_color = Color(0.978917, 0.789534, 0.685226, 1) @@ -338,15 +432,15 @@ process_material = SubResource("ParticleProcessMaterial_hvcdc") draw_pass_1 = SubResource("QuadMesh_oo2l3") [node name="VoxelGI" type="VoxelGI" parent="."] -transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.44101, -31.7531) +transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 3.61825, -33.3675) subdiv = 2 -size = Vector3(20, 5.83698, 79.5936) +size = Vector3(20, 10.4688, 124.604) data = ExtResource("4_nmgvo") [node name="GPUParticles3D3" type="GPUParticles3D" parent="."] transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 7.18283, 0.258846, -32.3954) material_override = ExtResource("5_32vcv") -amount = 1000 +amount = 2000 lifetime = 1.5 speed_scale = 0.2 explosiveness = 0.4 @@ -360,7 +454,7 @@ draw_pass_1 = SubResource("PlaneMesh_8c2us") [node name="GPUParticles3D4" type="GPUParticles3D" parent="."] transform = Transform3D(-1, 0, 8.74228e-08, 0, 1, 0, -8.74228e-08, 0, -1, -6.80088, 0.258846, -32.3954) material_override = ExtResource("5_32vcv") -amount = 1000 +amount = 2000 lifetime = 1.5 speed_scale = 0.22 explosiveness = 0.4 @@ -384,3 +478,16 @@ size = Vector3(4, 2, 2) texture_albedo = ExtResource("9_bvylv") texture_orm = ExtResource("10_xrnct") albedo_mix = 0.92 + +[node name="Camera3D" type="Camera3D" parent="."] +transform = Transform3D(1, 0, 0, 0, 0.782608, 0.622515, 0, -0.622515, 0.782608, 0.785, 2.75, -0.535) +fov = 45.0 + +[node name="AnimationPlayer" type="AnimationPlayer" parent="Camera3D"] +libraries = { +&"": SubResource("AnimationLibrary_sy31e") +} +autoplay = "trailer" + +[node name="MeshInstance3D" type="MeshInstance3D" parent="."] +material_override = ExtResource("11_sy31e") diff --git a/src/base-environments/transition/import/Banco.tres b/src/base-environments/transition/import/Banco.tres new file mode 100644 index 00000000..5f38c249 --- /dev/null +++ b/src/base-environments/transition/import/Banco.tres @@ -0,0 +1,19 @@ +[gd_resource type="StandardMaterial3D" load_steps=4 format=3 uid="uid://424btrdxx1jn"] + +[ext_resource type="Texture2D" uid="uid://cksvg1te88d0p" path="res://base-environments/transition/import/textures/bench_albedo.jpg" id="1_coy2j"] +[ext_resource type="Texture2D" uid="uid://sl872o851j4r" path="res://base-environments/transition/import/textures/bench_mrao.png" id="2_x1do5"] +[ext_resource type="Texture2D" uid="uid://cj0uktnpx7bob" path="res://base-environments/transition/import/textures/bench_normal.png" id="3_783ur"] + +[resource] +resource_name = "Banco" +albedo_texture = ExtResource("1_coy2j") +metallic = 1.0 +metallic_texture = ExtResource("2_x1do5") +metallic_texture_channel = 2 +roughness_texture = ExtResource("2_x1do5") +roughness_texture_channel = 1 +normal_enabled = true +normal_scale = 0.5 +normal_texture = ExtResource("3_783ur") +ao_enabled = true +ao_texture = ExtResource("2_x1do5") diff --git a/src/base-environments/transition/import/LuzTunelLarga.tres b/src/base-environments/transition/import/LuzTunelLarga.tres new file mode 100644 index 00000000..1825448e --- /dev/null +++ b/src/base-environments/transition/import/LuzTunelLarga.tres @@ -0,0 +1,12 @@ +[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://ioeejfu3wmam"] + +[ext_resource type="Texture2D" uid="uid://b8fu65s22hkei" path="res://base-environments/transition/import/textures/LuzTunelLarga_baseColor.jpeg" id="1_ve7yx"] +[ext_resource type="Texture2D" uid="uid://kmdn5kbawdp1" path="res://base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg" id="2_y8hmy"] + +[resource] +resource_name = "LuzTunelLarga" +albedo_texture = ExtResource("1_ve7yx") +roughness = 0.62 +emission_enabled = true +emission_energy_multiplier = 20.0 +emission_texture = ExtResource("2_y8hmy") diff --git a/src/base-environments/transition/import/Material.003.tres b/src/base-environments/transition/import/Material.003.tres new file mode 100644 index 00000000..05a39d7f --- /dev/null +++ b/src/base-environments/transition/import/Material.003.tres @@ -0,0 +1,7 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://bqx44biexwe0l"] + +[resource] +resource_name = "Material.003" +cull_mode = 2 +albedo_color = Color(0.17721, 0.17721, 0.17721, 1) +roughness = 0.14526 diff --git a/src/base-environments/transition/import/beam_metal.tres b/src/base-environments/transition/import/beam_metal.tres new file mode 100644 index 00000000..1ddca1c1 --- /dev/null +++ b/src/base-environments/transition/import/beam_metal.tres @@ -0,0 +1,7 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://b35o1jwchmhby"] + +[resource] +resource_name = "beam_metal" +albedo_color = Color(0.279994, 0.279994, 0.279994, 1) +metallic = 1.0 +roughness = 0.690184 diff --git a/src/base-environments/transition/import/door.tres b/src/base-environments/transition/import/door.tres new file mode 100644 index 00000000..79cf0760 --- /dev/null +++ b/src/base-environments/transition/import/door.tres @@ -0,0 +1,6 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://do10ylbdyc5q0"] + +[resource] +resource_name = "door" +albedo_color = Color(0.882082, 0.839278, 0.809231, 1) +roughness = 0.5 diff --git a/src/base-environments/transition/import/escalator_paneling.tres b/src/base-environments/transition/import/escalator_paneling.tres new file mode 100644 index 00000000..f9ba1dd2 --- /dev/null +++ b/src/base-environments/transition/import/escalator_paneling.tres @@ -0,0 +1,6 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://cbw2wfs45olip"] + +[resource] +resource_name = "escalator_paneling" +albedo_color = Color(0.38386, 0.535813, 0.385396, 1) +roughness = 0.41 diff --git a/src/base-environments/transition/import/escalator_rim.tres b/src/base-environments/transition/import/escalator_rim.tres new file mode 100644 index 00000000..ca8425fd --- /dev/null +++ b/src/base-environments/transition/import/escalator_rim.tres @@ -0,0 +1,7 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://ldo63jlqd5td"] + +[resource] +resource_name = "escalator_rim" +cull_mode = 2 +albedo_color = Color(0.183538, 0.183538, 0.183538, 1) +roughness = 0.356269 diff --git a/src/base-environments/transition/import/escalator_steps.tres b/src/base-environments/transition/import/escalator_steps.tres new file mode 100644 index 00000000..4ba4423b --- /dev/null +++ b/src/base-environments/transition/import/escalator_steps.tres @@ -0,0 +1,16 @@ +[gd_resource type="ShaderMaterial" load_steps=4 format=3 uid="uid://bhvlmumjhbj2u"] + +[ext_resource type="Shader" uid="uid://i3k8blcd043t" path="res://base-environments/transition/shaders/escalator_disp.gdshader" id="1_2y5ch"] +[ext_resource type="Texture2D" uid="uid://ccgfaa71bredj" path="res://base-environments/transition/shaders/stairs_albedo.png" id="2_7sr73"] +[ext_resource type="Texture2D" uid="uid://bkakclhq1uwda" path="res://base-environments/transition/shaders/stairs_normal.png" id="3_levao"] + +[resource] +resource_name = "escalator_steps" +render_priority = 0 +shader = ExtResource("1_2y5ch") +shader_parameter/albedo_texture = ExtResource("2_7sr73") +shader_parameter/normal_map = ExtResource("3_levao") +shader_parameter/transition_point = 0.1 +shader_parameter/transition_length = 0.1 +shader_parameter/target_length = 6.0 +shader_parameter/target_height = 3.0 diff --git a/src/base-environments/transition/import/firs_station.glb b/src/base-environments/transition/import/firs_station.glb index ff5c8b34..43809cf9 100644 --- a/src/base-environments/transition/import/firs_station.glb +++ b/src/base-environments/transition/import/firs_station.glb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7faa62987a86e9ca9929ed2ed7f418d93b13f941c04d1f8181b3fb5dc251c94c -size 123675948 +oid sha256:9632dec9971a22f66ac5c66f711ccd343a37f3c99823a5bd69cd21101ba037a7 +size 6354252 diff --git a/src/base-environments/transition/import/firs_station_SueloModular_normal.png.import b/src/base-environments/transition/import/firs_station_SueloModular_normal.png.import index 86dcd603..58f06341 100644 --- a/src/base-environments/transition/import/firs_station_SueloModular_normal.png.import +++ b/src/base-environments/transition/import/firs_station_SueloModular_normal.png.import @@ -32,7 +32,7 @@ roughness/mode=1 roughness/src_normal="res://base-environments/transition/import/firs_station_SueloModular_normal.png" process/fix_alpha_border=true process/premult_alpha=false -process/normal_map_invert_y=false +process/normal_map_invert_y=true process/hdr_as_srgb=false process/hdr_clamp_exposure=false process/size_limit=0 diff --git a/src/base-environments/transition/import/first_station.glb b/src/base-environments/transition/import/first_station.glb index b790de10..654c1be3 100644 --- a/src/base-environments/transition/import/first_station.glb +++ b/src/base-environments/transition/import/first_station.glb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:161e3ab8888ded369666fdb4e3bd621d649b169b88cafa5cb86621c710a2b187 -size 16095100 +oid sha256:eb1ecb6320bb045516bcc2a8ef241b5727105da715aadacb2464344801355dd7 +size 12156416 diff --git a/src/base-environments/transition/import/first_station.glb.import b/src/base-environments/transition/import/first_station.glb.import index 3f4997cd..47fbe600 100644 --- a/src/base-environments/transition/import/first_station.glb.import +++ b/src/base-environments/transition/import/first_station.glb.import @@ -34,30 +34,86 @@ animation/import_rest_as_RESET=false import_script/path="" _subresources={ "materials": { +"Banco": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/Banco.tres" +}, "FluorescenteLuz": { "use_external/enabled": true, "use_external/path": "res://base-environments/transition/import/textures/FluorescenteLuz.tres" }, +"LuzTunelLarga": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/LuzTunelLarga.tres" +}, +"Material.003": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/Material.003.tres" +}, "ParedTunel": { "use_external/enabled": true, "use_external/path": "res://base-environments/transition/import/textures/ParedTunel.tres" }, -"Pilar": { +"beam_metal": { "use_external/enabled": true, -"use_external/path": "res://base-environments/transition/import/textures/Pilar.tres" +"use_external/path": "res://base-environments/transition/import/beam_metal.tres" }, -"platform_border": { +"door": { "use_external/enabled": true, -"use_external/path": "res://base-environments/transition/import/textures/platform_border.tres" +"use_external/path": "res://base-environments/transition/import/door.tres" +}, +"escalator_paneling": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/escalator_paneling.tres" +}, +"escalator_rim": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/escalator_rim.tres" +}, +"escalator_steps": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/escalator_steps.tres" +}, +"green_pillar": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/green_pillar.tres" +}, +"metal": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/metal.tres" +}, +"next_room_peak": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/next_room_peak.tres" +}, +"pipeage": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/pipeage.tres" +}, +"pipeage.001": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/pipeage.001.tres" +}, +"rails": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/rails.tres" }, "river_of_time": { "use_external/enabled": true, "use_external/path": "res://base-environments/transition/import/textures/river_of_time.tres" }, +"signal_lights": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/signal_lights.tres" +}, "sink": { "use_external/enabled": true, "use_external/path": "res://base-environments/transition/import/textures/sink.tres" }, +"speakers": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/speakers.tres" +}, "station_ceiling": { "use_external/enabled": true, "use_external/path": "res://base-environments/transition/import/textures/station_ceiling.tres" @@ -66,18 +122,61 @@ _subresources={ "use_external/enabled": true, "use_external/path": "res://base-environments/transition/import/textures/station_floor.tres" }, +"station_metal": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/station_metal.tres" +}, "station_tiles": { "use_external/enabled": true, "use_external/path": "res://base-environments/transition/import/textures/station_tiles.tres" +}, +"tactile_paving": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/tactile_paving.tres" +}, +"unlit_station_tiles": { +"use_external/enabled": true, +"use_external/path": "res://base-environments/transition/import/unlit_station_tiles.tres" } }, "meshes": { +"first_station_escalator_stairs": { +"generate/lightmap_uv": 0, +"generate/lods": 2, +"generate/shadow_meshes": 0, +"lods/normal_merge_angle": 60.0, +"save_to_file/enabled": false, +"save_to_file/path": "" +}, +"first_station_hind_ceiling": { +"generate/lightmap_uv": 0, +"generate/lods": 2, +"generate/shadow_meshes": 0, +"lods/normal_merge_angle": 60.0, +"save_to_file/enabled": false, +"save_to_file/path": "" +}, +"first_station_raised_ceiling": { +"generate/lightmap_uv": 0, +"generate/lods": 2, +"generate/shadow_meshes": 0, +"lods/normal_merge_angle": 60.0, +"save_to_file/enabled": false, +"save_to_file/path": "" +}, +"first_station_station_ceiling": { +"generate/lightmap_uv": 0, +"generate/lods": 2, +"generate/shadow_meshes": 0, +"lods/normal_merge_angle": 60.0, +"save_to_file/enabled": false, +"save_to_file/path": "" +}, "first_station_water": { "generate/lightmap_uv": 0, "generate/lods": 2, "generate/shadow_meshes": 0, "lods/normal_merge_angle": 60.0, -"lods/normal_split_angle": 25.0, "save_to_file/enabled": false, "save_to_file/path": "" } diff --git a/src/base-environments/transition/import/green_pillar.tres b/src/base-environments/transition/import/green_pillar.tres new file mode 100644 index 00000000..99d1d4a3 --- /dev/null +++ b/src/base-environments/transition/import/green_pillar.tres @@ -0,0 +1,13 @@ +[gd_resource type="StandardMaterial3D" load_steps=4 format=3 uid="uid://b5dojscygn3go"] + +[ext_resource type="Texture2D" uid="uid://cadnvuhd1cir1" path="res://base-environments/transition/import/textures/Pilar_baseColor.png" id="1_rcmti"] +[ext_resource type="Texture2D" uid="uid://b2jpjuonjlqtx" path="res://base-environments/transition/import/textures/Pilar_normal.png" id="2_lrh7u"] +[ext_resource type="Texture2D" uid="uid://b0t5utisiv7s6" path="res://base-environments/transition/import/firs_station_Pilar_metallicRoughness.png" id="3_bf4ls"] + +[resource] +resource_name = "green_pillar" +albedo_texture = ExtResource("1_rcmti") +roughness_texture = ExtResource("3_bf4ls") +roughness_texture_channel = 1 +normal_enabled = true +normal_texture = ExtResource("2_lrh7u") diff --git a/src/base-environments/transition/import/metal.tres b/src/base-environments/transition/import/metal.tres new file mode 100644 index 00000000..71d9eae2 --- /dev/null +++ b/src/base-environments/transition/import/metal.tres @@ -0,0 +1,7 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://2og7k6tahe8s"] + +[resource] +resource_name = "metal" +albedo_color = Color(0.906332, 0.906332, 0.906332, 1) +metallic = 1.0 +roughness = 0.334862 diff --git a/src/base-environments/transition/import/next_room_peak.tres b/src/base-environments/transition/import/next_room_peak.tres new file mode 100644 index 00000000..74472e39 --- /dev/null +++ b/src/base-environments/transition/import/next_room_peak.tres @@ -0,0 +1,9 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://d3rfe7mryshj1"] + +[resource] +resource_name = "next_room_peak" +cull_mode = 2 +albedo_color = Color(0, 0, 0, 1) +metallic = 1.0 +emission_enabled = true +emission = Color(0.0748178, 0.134808, 0.168364, 1) diff --git a/src/base-environments/transition/import/pipeage.001.tres b/src/base-environments/transition/import/pipeage.001.tres new file mode 100644 index 00000000..5bc05ac9 --- /dev/null +++ b/src/base-environments/transition/import/pipeage.001.tres @@ -0,0 +1,7 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://dm44x4w5rxejw"] + +[resource] +resource_name = "pipeage.001" +albedo_color = Color(0.501407, 0.501406, 0.501406, 1) +metallic = 1.0 +roughness = 0.49 diff --git a/src/base-environments/transition/import/pipeage.tres b/src/base-environments/transition/import/pipeage.tres new file mode 100644 index 00000000..11f14506 --- /dev/null +++ b/src/base-environments/transition/import/pipeage.tres @@ -0,0 +1,6 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://idiy0k4l0pck"] + +[resource] +resource_name = "pipeage" +metallic = 1.0 +roughness = 0.62 diff --git a/src/base-environments/transition/import/rails.tres b/src/base-environments/transition/import/rails.tres new file mode 100644 index 00000000..f4e98e9b --- /dev/null +++ b/src/base-environments/transition/import/rails.tres @@ -0,0 +1,6 @@ +[gd_resource type="StandardMaterial3D" format=3 uid="uid://br7xd223mip1g"] + +[resource] +resource_name = "rails" +albedo_color = Color(0.906332, 0.906332, 0.906332, 1) +metallic = 1.0 diff --git a/src/base-environments/transition/import/signal_lights.tres b/src/base-environments/transition/import/signal_lights.tres new file mode 100644 index 00000000..5307a71d --- /dev/null +++ b/src/base-environments/transition/import/signal_lights.tres @@ -0,0 +1,21 @@ +[gd_resource type="StandardMaterial3D" load_steps=5 format=3 uid="uid://c2ybk0gr3jbv3"] + +[ext_resource type="Texture2D" uid="uid://b6p0r3g01s1i7" path="res://base-environments/transition/import/textures/signal_lights_baseColor.jpeg" id="1_fu6hv"] +[ext_resource type="Texture2D" uid="uid://dabrwurivy2bq" path="res://base-environments/transition/import/textures/signal_lights_mrao.png" id="2_lrk4v"] +[ext_resource type="Texture2D" uid="uid://bhfwow2vqy817" path="res://base-environments/transition/import/textures/signal_lights_emissive.jpeg" id="3_k253l"] +[ext_resource type="Texture2D" uid="uid://c5lbthuwr7245" path="res://base-environments/transition/import/textures/signal_lights_normal.png" id="4_0abiq"] + +[resource] +resource_name = "signal_lights" +albedo_color = Color(1.5, 1.5, 1.5, 1) +albedo_texture = ExtResource("1_fu6hv") +metallic_texture_channel = 1 +roughness_texture = ExtResource("2_lrk4v") +roughness_texture_channel = 1 +emission_enabled = true +emission_energy_multiplier = 3.0 +emission_texture = ExtResource("3_k253l") +normal_enabled = true +normal_texture = ExtResource("4_0abiq") +ao_enabled = true +ao_texture = ExtResource("2_lrk4v") diff --git a/src/base-environments/transition/import/speakers.tres b/src/base-environments/transition/import/speakers.tres new file mode 100644 index 00000000..6b967f2d --- /dev/null +++ b/src/base-environments/transition/import/speakers.tres @@ -0,0 +1,19 @@ +[gd_resource type="StandardMaterial3D" load_steps=4 format=3 uid="uid://b18iocnscjdie"] + +[ext_resource type="Texture2D" uid="uid://beatl5guir7py" path="res://base-environments/transition/import/textures/speakers_albedo.jpg" id="1_ft6fg"] +[ext_resource type="Texture2D" uid="uid://ch1v5maxh1rmm" path="res://base-environments/transition/import/textures/speakers_mrao.png" id="2_pe06r"] +[ext_resource type="Texture2D" uid="uid://c6cvn5m0pwslq" path="res://base-environments/transition/import/textures/speakers_normal.png" id="3_df85u"] + +[resource] +resource_name = "speakers" +vertex_color_use_as_albedo = true +albedo_texture = ExtResource("1_ft6fg") +metallic = 1.0 +metallic_texture = ExtResource("2_pe06r") +metallic_texture_channel = 2 +roughness_texture = ExtResource("2_pe06r") +roughness_texture_channel = 1 +normal_enabled = true +normal_texture = ExtResource("3_df85u") +ao_enabled = true +ao_texture = ExtResource("2_pe06r") diff --git a/src/base-environments/transition/import/station_metal.tres b/src/base-environments/transition/import/station_metal.tres new file mode 100644 index 00000000..c4210ccf --- /dev/null +++ b/src/base-environments/transition/import/station_metal.tres @@ -0,0 +1,14 @@ +[gd_resource type="StandardMaterial3D" load_steps=3 format=3 uid="uid://ywkkddtxjrxj"] + +[ext_resource type="Texture2D" uid="uid://bq88blg6hp3gd" path="res://base-environments/transition/import/textures/Metal055A_4K-PNG_Color.png" id="1_dphdk"] +[ext_resource type="Texture2D" uid="uid://bltvngooxmm7i" path="res://base-environments/transition/import/textures/Metal055A_4K-PNG_NormalGL.png" id="2_gw00f"] + +[resource] +resource_name = "station_metal" +cull_mode = 2 +albedo_texture = ExtResource("1_dphdk") +metallic = 0.77 +roughness = 0.4 +roughness_texture = ExtResource("1_dphdk") +normal_enabled = true +normal_texture = ExtResource("2_gw00f") diff --git a/src/base-environments/transition/import/tactile_paving.tres b/src/base-environments/transition/import/tactile_paving.tres new file mode 100644 index 00000000..49cf9e80 --- /dev/null +++ b/src/base-environments/transition/import/tactile_paving.tres @@ -0,0 +1,13 @@ +[gd_resource type="StandardMaterial3D" load_steps=4 format=3 uid="uid://ciml57ca083bi"] + +[ext_resource type="Texture2D" uid="uid://j6v5xhiys4bu" path="res://base-environments/transition/import/firs_station_SueloModular_baseColor.jpg" id="1_fm7cl"] +[ext_resource type="Texture2D" uid="uid://bn3cdvegy2urs" path="res://base-environments/transition/import/firs_station_SueloModular_normal.png" id="2_rehj7"] +[ext_resource type="Texture2D" uid="uid://7w1qk6a0qspl" path="res://base-environments/transition/import/firs_station_Techos_Modulares_normal.png" id="3_40p3v"] + +[resource] +resource_name = "tactile_paving" +albedo_texture = ExtResource("1_fm7cl") +roughness = 0.77 +roughness_texture = ExtResource("3_40p3v") +normal_enabled = true +normal_texture = ExtResource("2_rehj7") diff --git a/src/base-environments/transition/import/textures/LuzTunelLarga_baseColor.jpeg b/src/base-environments/transition/import/textures/LuzTunelLarga_baseColor.jpeg new file mode 100644 index 00000000..cbdc61d5 --- /dev/null +++ b/src/base-environments/transition/import/textures/LuzTunelLarga_baseColor.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2758a79de384240432a3a016472ef1f529090a534b43e3f98452c4948e6feb92 +size 50907 diff --git a/src/base-environments/transition/import/textures/LuzTunelLarga_baseColor.jpeg.import b/src/base-environments/transition/import/textures/LuzTunelLarga_baseColor.jpeg.import new file mode 100644 index 00000000..8ddc7c44 --- /dev/null +++ b/src/base-environments/transition/import/textures/LuzTunelLarga_baseColor.jpeg.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://b8fu65s22hkei" +path.s3tc="res://.godot/imported/LuzTunelLarga_baseColor.jpeg-aacbbbc789a6408416d2251a70a4d032.s3tc.ctex" +path.etc2="res://.godot/imported/LuzTunelLarga_baseColor.jpeg-aacbbbc789a6408416d2251a70a4d032.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://base-environments/transition/import/textures/LuzTunelLarga_baseColor.jpeg" +dest_files=["res://.godot/imported/LuzTunelLarga_baseColor.jpeg-aacbbbc789a6408416d2251a70a4d032.s3tc.ctex", "res://.godot/imported/LuzTunelLarga_baseColor.jpeg-aacbbbc789a6408416d2251a70a4d032.etc2.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/src/base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg b/src/base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg new file mode 100644 index 00000000..8f652c6e --- /dev/null +++ b/src/base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:181091eadb3996008bdc0a81b7d0a9fa20bdddf86f361d7cebebfc8c25a2aa70 +size 32170 diff --git a/src/base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg.import b/src/base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg.import new file mode 100644 index 00000000..b6e4d528 --- /dev/null +++ b/src/base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg.import @@ -0,0 +1,36 @@ +[remap] + +importer="texture" +type="CompressedTexture2D" +uid="uid://kmdn5kbawdp1" +path.s3tc="res://.godot/imported/LuzTunelLarga_emissive.jpeg-6415bd05110f49848bfea8487daee77c.s3tc.ctex" +path.etc2="res://.godot/imported/LuzTunelLarga_emissive.jpeg-6415bd05110f49848bfea8487daee77c.etc2.ctex" +metadata={ +"imported_formats": ["s3tc_bptc", "etc2_astc"], +"vram_texture": true +} + +[deps] + +source_file="res://base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg" +dest_files=["res://.godot/imported/LuzTunelLarga_emissive.jpeg-6415bd05110f49848bfea8487daee77c.s3tc.ctex", "res://.godot/imported/LuzTunelLarga_emissive.jpeg-6415bd05110f49848bfea8487daee77c.etc2.ctex"] + +[params] + +compress/mode=2 +compress/high_quality=false +compress/lossy_quality=0.7 +compress/hdr_compression=1 +compress/normal_map=0 +compress/channel_pack=0 +mipmaps/generate=true +mipmaps/limit=-1 +roughness/mode=0 +roughness/src_normal="" +process/fix_alpha_border=true +process/premult_alpha=false +process/normal_map_invert_y=false +process/hdr_as_srgb=false +process/hdr_clamp_exposure=false +process/size_limit=0 +detect_3d/compress_to=0 diff --git a/src/base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg~ b/src/base-environments/transition/import/textures/LuzTunelLarga_emissive.jpeg~ new file mode 100644 index 0000000000000000000000000000000000000000..711272ea030822869891ad5382a2134028318ff9 GIT binary patch literal 31882 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