From 1e5428816d99251631971f03f6ada0a1cd49c98d Mon Sep 17 00:00:00 2001 From: uc-hoba Date: Tue, 2 Jun 2026 15:39:02 +0800 Subject: [PATCH] init --- .gitattributes | 156 + .gitignore | 72 + .vscode/extensions.json | 5 + .vscode/launch.json | 10 + .vscode/settings.json | 71 + Assets/Horizon Based Ambient Occlusion.meta | 9 + .../Documentation.meta | 9 + .../Documentation/User Guide.pdf | 3 + .../Documentation/User Guide.pdf.meta | 15 + .../Editor.meta | 8 + .../Editor/HBAO.Editor.asmdef | 24 + .../Editor/HBAO.Editor.asmdef.meta | 14 + .../Editor/HBAOEditor.cs | 282 + .../Editor/HBAOEditor.cs.meta | 19 + .../Editor/HBAOGaiaExtension.cs | 140 + .../Editor/HBAOGaiaExtension.cs.meta | 19 + .../Editor/Resources.meta | 9 + .../Editor/Resources/hbao.png | 3 + .../Editor/Resources/hbao.png.meta | 62 + .../Editor/Resources/icon.png | 3 + .../Editor/Resources/icon.png.meta | 108 + .../Readme.txt | 307 + .../Readme.txt.meta | 15 + .../Runtime.meta | 9 + .../Runtime/HBAO.Runtime.asmdef | 20 + .../Runtime/HBAO.Runtime.asmdef.meta | 14 + .../Runtime/HBAO.cs | 1817 +++ .../Runtime/HBAO.cs.meta | 21 + .../Horizon Based Ambient Occlusion/SRP.meta | 9 + .../SRP/URP.meta | 8 + .../SRP/URP/Editor.meta | 8 + .../URP/Editor/HBAO.Universal.Editor.asmdef | 20 + .../Editor/HBAO.Universal.Editor.asmdef.meta | 7 + .../SRP/URP/Editor/HBAOEditor.cs | 327 + .../SRP/URP/Editor/HBAOEditor.cs.meta | 11 + .../SRP/URP/Editor/Resources.meta | 8 + .../SRP/URP/Editor/Resources/hbao_urp.png | 3 + .../URP/Editor/Resources/hbao_urp.png.meta | 115 + .../SRP/URP/Runtime.meta | 8 + .../URP/Runtime/HBAO.Universal.Runtime.asmdef | 23 + .../HBAO.Universal.Runtime.asmdef.meta | 7 + .../SRP/URP/Runtime/HBAO.cs | 629 + .../SRP/URP/Runtime/HBAO.cs.meta | 11 + .../SRP/URP/Runtime/HBAORendererFeature.cs | 1574 +++ .../URP/Runtime/HBAORendererFeature.cs.meta | 13 + .../SRP/URP/Shaders.meta | 8 + .../SRP/URP/Shaders/HBAO.shader | 384 + .../SRP/URP/Shaders/HBAO.shader.meta | 9 + .../SRP/URP/Shaders/HBAO_AO.hlsl | 205 + .../SRP/URP/Shaders/HBAO_AO.hlsl.meta | 9 + .../SRP/URP/Shaders/HBAO_Blur.hlsl | 143 + .../SRP/URP/Shaders/HBAO_Blur.hlsl.meta | 9 + .../SRP/URP/Shaders/HBAO_Common.hlsl | 93 + .../SRP/URP/Shaders/HBAO_Common.hlsl.meta | 9 + .../SRP/URP/Shaders/HBAO_Composite.hlsl | 79 + .../SRP/URP/Shaders/HBAO_Composite.hlsl.meta | 9 + .../SRP/URP/Shaders/HBAO_Deinterleaving.hlsl | 70 + .../URP/Shaders/HBAO_Deinterleaving.hlsl.meta | 9 + .../SRP/URP/Shaders/HBAO_TemporalFilter.hlsl | 175 + .../URP/Shaders/HBAO_TemporalFilter.hlsl.meta | 9 + .../Shaders.meta | 9 + .../Shaders/HBAO.shader | 464 + .../Shaders/HBAO.shader.meta | 16 + .../Shaders/HBAO_AO.cginc | 204 + .../Shaders/HBAO_AO.cginc.meta | 16 + .../Shaders/HBAO_Blur.cginc | 139 + .../Shaders/HBAO_Blur.cginc.meta | 16 + .../Shaders/HBAO_Common.cginc | 67 + .../Shaders/HBAO_Common.cginc.meta | 16 + .../Shaders/HBAO_Composite.cginc | 150 + .../Shaders/HBAO_Composite.cginc.meta | 16 + .../Shaders/HBAO_Deinterleaving.cginc | 62 + .../Shaders/HBAO_Deinterleaving.cginc.meta | 16 + .../Shaders/HBAO_TemporalFilter.cginc | 171 + .../Shaders/HBAO_TemporalFilter.cginc.meta | 16 + Assets/InputSystem_Actions.inputactions | 1057 ++ Assets/InputSystem_Actions.inputactions.meta | 14 + Assets/Main.meta | 8 + Assets/Main.unity | 10077 ++++++++++++++++ Assets/Main.unity.meta | 7 + Assets/Main/Black.mat | 136 + Assets/Main/Black.mat.meta | 8 + Assets/Main/GlobalVolumeProfile.asset | 254 + Assets/Main/GlobalVolumeProfile.asset.meta | 8 + Assets/Main/Gold.mat | 137 + Assets/Main/Gold.mat.meta | 8 + Assets/Main/Ground.mat | 137 + Assets/Main/Ground.mat.meta | 8 + Assets/Main/LightingData.asset | Bin 0 -> 17800 bytes Assets/Main/LightingData.asset.meta | 8 + Assets/Main/Lit.mat | 154 + Assets/Main/Lit.mat.meta | 8 + Assets/Main/ReflectionProbe-0.exr | 3 + Assets/Main/ReflectionProbe-0.exr.meta | 117 + Assets/Main/UnityMaterialBall.fbx | 3 + Assets/Main/UnityMaterialBall.fbx.meta | 112 + Assets/Main/White.mat | 136 + Assets/Main/White.mat.meta | 8 + Assets/Scenes.meta | 8 + Assets/Scenes/SampleScene.unity | 432 + Assets/Scenes/SampleScene.unity.meta | 7 + Assets/Settings.meta | 8 + Assets/Settings/DefaultVolumeProfile.asset | 1086 ++ .../Settings/DefaultVolumeProfile.asset.meta | 8 + Assets/Settings/Mobile_RPAsset.asset | 143 + Assets/Settings/Mobile_RPAsset.asset.meta | 8 + Assets/Settings/Mobile_Renderer.asset | 52 + Assets/Settings/Mobile_Renderer.asset.meta | 8 + Assets/Settings/PC_RPAsset.asset | 143 + Assets/Settings/PC_RPAsset.asset.meta | 8 + Assets/Settings/PC_Renderer.asset | 98 + Assets/Settings/PC_Renderer.asset.meta | 8 + Assets/Settings/SampleSceneProfile.asset | 159 + Assets/Settings/SampleSceneProfile.asset.meta | 8 + ...niversalRenderPipelineGlobalSettings.asset | 433 + ...salRenderPipelineGlobalSettings.asset.meta | 8 + Packages/manifest.json | 49 + Packages/packages-lock.json | 472 + ProjectSettings/AudioManager.asset | 19 + ProjectSettings/ClusterInputManager.asset | 6 + ProjectSettings/DynamicsManager.asset | 36 + ProjectSettings/EditorBuildSettings.asset | 13 + ProjectSettings/EditorSettings.asset | 50 + ProjectSettings/GraphicsSettings.asset | 69 + ProjectSettings/InputManager.asset | 487 + ProjectSettings/MemorySettings.asset | 35 + ProjectSettings/MultiplayerManager.asset | 7 + ProjectSettings/NavMeshAreas.asset | 91 + ProjectSettings/PackageManagerSettings.asset | 43 + ProjectSettings/Physics2DSettings.asset | 56 + ProjectSettings/PresetManager.asset | 7 + ProjectSettings/ProjectSettings.asset | 943 ++ ProjectSettings/ProjectVersion.txt | 2 + ProjectSettings/QualitySettings.asset | 134 + ProjectSettings/SceneTemplateSettings.json | 121 + ProjectSettings/ShaderGraphSettings.asset | 19 + ProjectSettings/TagManager.asset | 76 + ProjectSettings/TimeManager.asset | 9 + ProjectSettings/URPProjectSettings.asset | 16 + ProjectSettings/UnityConnectSettings.asset | 40 + ProjectSettings/VFXManager.asset | 12 + ProjectSettings/VersionControlSettings.asset | 8 + ProjectSettings/XRSettings.asset | 10 + Unity-25014-ReadySetRide.slnx | 41 + 144 files changed, 26527 insertions(+) create mode 100644 .gitattributes create mode 100644 .gitignore create mode 100644 .vscode/extensions.json create mode 100644 .vscode/launch.json create mode 100644 .vscode/settings.json create mode 100644 Assets/Horizon Based Ambient Occlusion.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Documentation.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Documentation/User Guide.pdf create mode 100644 Assets/Horizon Based Ambient Occlusion/Documentation/User Guide.pdf.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor/HBAO.Editor.asmdef create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor/HBAO.Editor.asmdef.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor/HBAOEditor.cs create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor/HBAOEditor.cs.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor/HBAOGaiaExtension.cs create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor/HBAOGaiaExtension.cs.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor/Resources.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor/Resources/hbao.png create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor/Resources/hbao.png.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor/Resources/icon.png create mode 100644 Assets/Horizon Based Ambient Occlusion/Editor/Resources/icon.png.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Readme.txt create mode 100644 Assets/Horizon Based Ambient Occlusion/Readme.txt.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Runtime.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.Runtime.asmdef create mode 100644 Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.Runtime.asmdef.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.cs create mode 100644 Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.cs.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAO.Universal.Editor.asmdef create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAO.Universal.Editor.asmdef.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAOEditor.cs create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAOEditor.cs.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources/hbao_urp.png create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources/hbao_urp.png.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.Universal.Runtime.asmdef create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.Universal.Runtime.asmdef.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.cs create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.cs.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAORendererFeature.cs create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAORendererFeature.cs.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO.shader create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO.shader.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_AO.hlsl create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_AO.hlsl.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Blur.hlsl create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Blur.hlsl.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Common.hlsl create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Common.hlsl.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Composite.hlsl create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Composite.hlsl.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Deinterleaving.hlsl create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Deinterleaving.hlsl.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_TemporalFilter.hlsl create mode 100644 Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_TemporalFilter.hlsl.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO.shader create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO.shader.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_AO.cginc create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_AO.cginc.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Blur.cginc create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Blur.cginc.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Common.cginc create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Common.cginc.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Composite.cginc create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Composite.cginc.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Deinterleaving.cginc create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Deinterleaving.cginc.meta create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_TemporalFilter.cginc create mode 100644 Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_TemporalFilter.cginc.meta create mode 100644 Assets/InputSystem_Actions.inputactions create mode 100644 Assets/InputSystem_Actions.inputactions.meta create mode 100644 Assets/Main.meta create mode 100644 Assets/Main.unity create mode 100644 Assets/Main.unity.meta create mode 100644 Assets/Main/Black.mat create mode 100644 Assets/Main/Black.mat.meta create mode 100644 Assets/Main/GlobalVolumeProfile.asset create mode 100644 Assets/Main/GlobalVolumeProfile.asset.meta create mode 100644 Assets/Main/Gold.mat create mode 100644 Assets/Main/Gold.mat.meta create mode 100644 Assets/Main/Ground.mat create mode 100644 Assets/Main/Ground.mat.meta create mode 100644 Assets/Main/LightingData.asset create mode 100644 Assets/Main/LightingData.asset.meta create mode 100644 Assets/Main/Lit.mat create mode 100644 Assets/Main/Lit.mat.meta create mode 100644 Assets/Main/ReflectionProbe-0.exr create mode 100644 Assets/Main/ReflectionProbe-0.exr.meta create mode 100644 Assets/Main/UnityMaterialBall.fbx create mode 100644 Assets/Main/UnityMaterialBall.fbx.meta create mode 100644 Assets/Main/White.mat create mode 100644 Assets/Main/White.mat.meta create mode 100644 Assets/Scenes.meta create mode 100644 Assets/Scenes/SampleScene.unity create mode 100644 Assets/Scenes/SampleScene.unity.meta create mode 100644 Assets/Settings.meta create mode 100644 Assets/Settings/DefaultVolumeProfile.asset create mode 100644 Assets/Settings/DefaultVolumeProfile.asset.meta create mode 100644 Assets/Settings/Mobile_RPAsset.asset create mode 100644 Assets/Settings/Mobile_RPAsset.asset.meta create mode 100644 Assets/Settings/Mobile_Renderer.asset create mode 100644 Assets/Settings/Mobile_Renderer.asset.meta create mode 100644 Assets/Settings/PC_RPAsset.asset create mode 100644 Assets/Settings/PC_RPAsset.asset.meta create mode 100644 Assets/Settings/PC_Renderer.asset create mode 100644 Assets/Settings/PC_Renderer.asset.meta create mode 100644 Assets/Settings/SampleSceneProfile.asset create mode 100644 Assets/Settings/SampleSceneProfile.asset.meta create mode 100644 Assets/Settings/UniversalRenderPipelineGlobalSettings.asset create mode 100644 Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta create mode 100644 Packages/manifest.json create mode 100644 Packages/packages-lock.json create mode 100644 ProjectSettings/AudioManager.asset create mode 100644 ProjectSettings/ClusterInputManager.asset create mode 100644 ProjectSettings/DynamicsManager.asset create mode 100644 ProjectSettings/EditorBuildSettings.asset create mode 100644 ProjectSettings/EditorSettings.asset create mode 100644 ProjectSettings/GraphicsSettings.asset create mode 100644 ProjectSettings/InputManager.asset create mode 100644 ProjectSettings/MemorySettings.asset create mode 100644 ProjectSettings/MultiplayerManager.asset create mode 100644 ProjectSettings/NavMeshAreas.asset create mode 100644 ProjectSettings/PackageManagerSettings.asset create mode 100644 ProjectSettings/Physics2DSettings.asset create mode 100644 ProjectSettings/PresetManager.asset create mode 100644 ProjectSettings/ProjectSettings.asset create mode 100644 ProjectSettings/ProjectVersion.txt create mode 100644 ProjectSettings/QualitySettings.asset create mode 100644 ProjectSettings/SceneTemplateSettings.json create mode 100644 ProjectSettings/ShaderGraphSettings.asset create mode 100644 ProjectSettings/TagManager.asset create mode 100644 ProjectSettings/TimeManager.asset create mode 100644 ProjectSettings/URPProjectSettings.asset create mode 100644 ProjectSettings/UnityConnectSettings.asset create mode 100644 ProjectSettings/VFXManager.asset create mode 100644 ProjectSettings/VersionControlSettings.asset create mode 100644 ProjectSettings/XRSettings.asset create mode 100644 Unity-25014-ReadySetRide.slnx diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..768f116 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,156 @@ +# Define macros (only works in top-level gitattributes files) +[attr]lfs filter=lfs diff=lfs merge=lfs -text +[attr]unity-yaml merge=unityyamlmerge eol=lf linguist-language=yaml + +# Optionally collapse Unity-generated files on GitHub diffs +# [attr]unity-yaml merge=unityyamlmerge text linguist-language=yaml linguist-generated + +# Unity files +*.cginc text +*.compute text linguist-language=hlsl +*.cs text diff=csharp +*.raytrace text linguist-language=hlsl +*.shader text + +# Unity JSON files +*.asmdef text linguist-language=json +*.asmref text linguist-language=json +*.index text linguist-language=json +*.inputactions text linguist-language=json +*.shadergraph text linguist-language=json +*.shadersubgraph text linguist-language=json + +# Unity UI Toolkit files +*.tss text diff=css linguist-language=css +*.uss text diff=css linguist-language=css +*.uxml text linguist-language=xml linguist-detectable + +# Unity YAML +*.anim unity-yaml +*.asset unity-yaml +*.brush unity-yaml +*.controller unity-yaml +*.flare unity-yaml +*.fontsettings unity-yaml +*.giparams unity-yaml +*.guiskin unity-yaml +*.lighting unity-yaml +*.mask unity-yaml +*.mat unity-yaml +*.meta unity-yaml +*.mixer unity-yaml +*.overrideController unity-yaml +*.playable unity-yaml +*.prefab unity-yaml +*.preset unity-yaml +*.renderTexture unity-yaml +*.scenetemplate unity-yaml +*.shadervariants unity-yaml +*.signal unity-yaml +*.spriteatlas unity-yaml +*.spriteatlasv2 unity-yaml +*.terrainlayer unity-yaml +*.unity unity-yaml + +# "physic" for 3D but "physics" for 2D +*.physicMaterial unity-yaml +*.physicsMaterial2D unity-yaml + +# Exclude third-party plugins from GitHub stats +Assets/Plugins/** linguist-vendored + +# Unity LFS +*.cubemap lfs +*.unitypackage lfs + +# 3D models +*.3dm lfs +*.3ds lfs +*.blend lfs +*.c4d lfs +*.collada lfs +*.dae lfs +*.dxf lfs +*.FBX lfs +*.fbx lfs +*.jas lfs +*.lws lfs +*.lxo lfs +*.ma lfs +*.max lfs +*.mb lfs +*.obj lfs +*.ply lfs +*.skp lfs +*.stl lfs +*.ztl lfs + +# Audio +*.aif lfs +*.aiff lfs +*.it lfs +*.mod lfs +*.mp3 lfs +*.ogg lfs +*.s3m lfs +*.wav lfs +*.xm lfs + +# Video +*.asf lfs +*.avi lfs +*.flv lfs +*.mov lfs +*.mp4 lfs +*.mpeg lfs +*.mpg lfs +*.ogv lfs +*.wmv lfs + +# Images +*.bmp lfs +*.exr lfs +*.gif lfs +*.hdr lfs +*.iff lfs +*.jpeg lfs +*.jpg lfs +*.pict lfs +*.png lfs +*.psd lfs +*.tga lfs +*.tif lfs +*.tiff lfs +*.webp lfs + +# Compressed Archive +*.7z lfs +*.bz2 lfs +*.gz lfs +*.rar lfs +*.tar lfs +*.zip lfs + +# Compiled Dynamic Library +*.dll lfs +*.pdb lfs +*.so lfs + +# Fonts +*.otf lfs +*.ttf lfs + +# Executable/Installer +*.apk lfs +*.exe lfs + +# Documents +*.pdf lfs + +# ETC +*.a lfs +*.reason lfs +*.rns lfs + +# Spine export file for Unity +*.skel.bytes lfs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..58cbc82 --- /dev/null +++ b/.gitignore @@ -0,0 +1,72 @@ +# This .gitignore file should be placed at the root of your Unity project directory +# +# Get latest from https://github.com/github/gitignore/blob/main/Unity.gitignore +# +/[Ll]ibrary/ +/[Tt]emp/ +/[Oo]bj/ +/[Bb]uild/ +/[Bb]uilds/ +/[Ll]ogs/ +/[Uu]ser[Ss]ettings/ + +# MemoryCaptures can get excessive in size. +# They also could contain extremely sensitive data +/[Mm]emoryCaptures/ + +# Recordings can get excessive in size +/[Rr]ecordings/ + +# Uncomment this line if you wish to ignore the asset store tools plugin +# /[Aa]ssets/AssetStoreTools* + +# Autogenerated Jetbrains Rider plugin +/[Aa]ssets/Plugins/Editor/JetBrains* + +# Visual Studio cache directory +.vs/ + +# Gradle cache directory +.gradle/ + +# Autogenerated VS/MD/Consulo solution and project files +ExportedObj/ +.consulo/ +*.csproj +*.unityproj +*.sln +*.suo +*.tmp +*.user +*.userprefs +*.pidb +*.booproj +*.svd +*.pdb +*.mdb +*.opendb +*.VC.db + +# Unity3D generated meta files +*.pidb.meta +*.pdb.meta +*.mdb.meta + +# Unity3D generated file on crash reports +sysinfo.txt + +# Builds +*.apk +*.aab +*.unitypackage +*.app + +# Crashlytics generated file +crashlytics-build.properties + +# Packed Addressables +/[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* + +# Temporary auto-generated Android Assets +/[Aa]ssets/[Ss]treamingAssets/aa.meta +/[Aa]ssets/[Ss]treamingAssets/aa/* diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 0000000..ddb6ff8 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,5 @@ +{ + "recommendations": [ + "visualstudiotoolsforunity.vstuc" + ] +} diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..da60e25 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,10 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "Attach to Unity", + "type": "vstuc", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..058ba2a --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,71 @@ +{ + "files.exclude": { + "**/.DS_Store": true, + "**/.git": true, + "**/.vs": true, + "**/.gitmodules": true, + "**/.vsconfig": true, + "**/*.booproj": true, + "**/*.pidb": true, + "**/*.suo": true, + "**/*.user": true, + "**/*.userprefs": true, + "**/*.unityproj": true, + "**/*.dll": true, + "**/*.exe": true, + "**/*.pdf": true, + "**/*.mid": true, + "**/*.midi": true, + "**/*.wav": true, + "**/*.gif": true, + "**/*.ico": true, + "**/*.jpg": true, + "**/*.jpeg": true, + "**/*.png": true, + "**/*.psd": true, + "**/*.tga": true, + "**/*.tif": true, + "**/*.tiff": true, + "**/*.3ds": true, + "**/*.3DS": true, + "**/*.fbx": true, + "**/*.FBX": true, + "**/*.lxo": true, + "**/*.LXO": true, + "**/*.ma": true, + "**/*.MA": true, + "**/*.obj": true, + "**/*.OBJ": true, + "**/*.asset": true, + "**/*.cubemap": true, + "**/*.flare": true, + "**/*.mat": true, + "**/*.meta": true, + "**/*.prefab": true, + "**/*.unity": true, + "build/": true, + "Build/": true, + "Library/": true, + "library/": true, + "obj/": true, + "Obj/": true, + "Logs/": true, + "logs/": true, + "ProjectSettings/": true, + "UserSettings/": true, + "temp/": true, + "Temp/": true + }, + "files.associations": { + "*.asset": "yaml", + "*.meta": "yaml", + "*.prefab": "yaml", + "*.unity": "yaml", + }, + "explorer.fileNesting.enabled": true, + "explorer.fileNesting.patterns": { + "*.sln": "*.csproj", + "*.slnx": "*.csproj" + }, + "dotnet.defaultSolution": "Unity-25014-ReadySetRide.slnx" +} \ No newline at end of file diff --git a/Assets/Horizon Based Ambient Occlusion.meta b/Assets/Horizon Based Ambient Occlusion.meta new file mode 100644 index 0000000..05aebdf --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1e2cc9e9ad4f108458033887c97bb038 +folderAsset: yes +timeCreated: 1487248984 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/Documentation.meta b/Assets/Horizon Based Ambient Occlusion/Documentation.meta new file mode 100644 index 0000000..9361df7 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Documentation.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9869ea90af1da7949848b63dddb25d26 +folderAsset: yes +timeCreated: 1467127598 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/Documentation/User Guide.pdf b/Assets/Horizon Based Ambient Occlusion/Documentation/User Guide.pdf new file mode 100644 index 0000000..0caac43 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Documentation/User Guide.pdf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b77c14f6e6961102776f2a9d6d58049c318c649ebe8cdac4ac9b28feb15583f6 +size 931890 diff --git a/Assets/Horizon Based Ambient Occlusion/Documentation/User Guide.pdf.meta b/Assets/Horizon Based Ambient Occlusion/Documentation/User Guide.pdf.meta new file mode 100644 index 0000000..800f483 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Documentation/User Guide.pdf.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 061da04314aaba248977f5671e799370 +timeCreated: 1467127598 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Documentation/User Guide.pdf + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Editor.meta b/Assets/Horizon Based Ambient Occlusion/Editor.meta new file mode 100644 index 0000000..0c00a20 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 478a5a24ad1152f43ad164da3759717b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/Editor/HBAO.Editor.asmdef b/Assets/Horizon Based Ambient Occlusion/Editor/HBAO.Editor.asmdef new file mode 100644 index 0000000..06bfd64 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor/HBAO.Editor.asmdef @@ -0,0 +1,24 @@ +{ + "name": "HBAO.Editor", + "rootNamespace": "", + "references": [ + "GUID:b83dc51897666cb44bdfbf9671f74e85" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "Unity", + "expression": "2020.3.13", + "define": "UNITY_2020_3_13_OR_NEWER" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Horizon Based Ambient Occlusion/Editor/HBAO.Editor.asmdef.meta b/Assets/Horizon Based Ambient Occlusion/Editor/HBAO.Editor.asmdef.meta new file mode 100644 index 0000000..aabda63 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor/HBAO.Editor.asmdef.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: bbd7cb83004dde543aac62cbce764d58 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Editor/HBAO.Editor.asmdef + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Editor/HBAOEditor.cs b/Assets/Horizon Based Ambient Occlusion/Editor/HBAOEditor.cs new file mode 100644 index 0000000..26d0cc1 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor/HBAOEditor.cs @@ -0,0 +1,282 @@ +using UnityEngine; +using UnityEditor; +using UnityEditor.Rendering; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; + +namespace HorizonBasedAmbientOcclusion +{ + [CustomEditor(typeof(HBAO))] + public class HBAOEditor : Editor + { + private HBAO m_HBAO; + private Texture2D m_HBAOTex; + private GUIStyle m_SettingsGroupStyle; + private GUIStyle m_TitleLabelStyle; + private int m_SelectedPreset; + // settings group + private Dictionary> m_GroupFields; + private readonly Dictionary m_Presets = new Dictionary() + { + { 0, HBAO.Preset.Normal }, + { 1, HBAO.Preset.FastPerformance }, + { 2, HBAO.Preset.FastestPerformance }, + { 3, HBAO.Preset.Custom }, + { 4, HBAO.Preset.HighQuality }, + { 5, HBAO.Preset.HighestQuality } + }; + + + void OnEnable() + { + m_HBAO = (HBAO)target; + m_HBAOTex = Resources.Load("hbao"); + + m_GroupFields = new Dictionary>(); + + var settingsGroups = typeof(HBAO).GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance) + .Where(x => x.GetCustomAttributes(typeof(HBAO.SettingsGroup), false).Any()); + foreach (var group in settingsGroups) + { + foreach (var setting in group.FieldType.GetFields(BindingFlags.Instance | BindingFlags.Public)) + { + if (!m_GroupFields.ContainsKey(group)) + m_GroupFields[group] = new List(); + + var property = serializedObject.FindProperty(group.Name + "." + setting.Name); + if (property != null) + m_GroupFields[group].Add(property); + } + } + + m_SelectedPreset = m_Presets.Values.ToList().IndexOf(m_HBAO.GetCurrentPreset()); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + SetStyles(); + + EditorGUILayout.BeginVertical(); + { + // header + GUILayout.Space(10.0f); + GUILayout.Label(m_HBAOTex, m_TitleLabelStyle, GUILayout.ExpandWidth(true)); + + //if (m_HBAO.GetComponents()[0] != m_HBAO) + //{ + //GUILayout.Space(6.0f); + //EditorGUILayout.HelpBox("This Post FX should be one of the first in your effect stack", MessageType.Info); + //} + + Event e = Event.current; + + // settings groups + foreach (var group in m_GroupFields) + { + var groupProperty = serializedObject.FindProperty(group.Key.Name); + if (groupProperty == null) + continue; + + GUILayout.Space(6.0f); + Rect rect = GUILayoutUtility.GetRect(16f, 22f, m_SettingsGroupStyle); + GUI.Box(rect, ObjectNames.NicifyVariableName(groupProperty.displayName), m_SettingsGroupStyle); + if (e.type == EventType.MouseDown && rect.Contains(e.mousePosition)) + { + groupProperty.isExpanded = !groupProperty.isExpanded; + e.Use(); + } + + if (!groupProperty.isExpanded) + continue; + + // presets is a special case + if (group.Key.FieldType == typeof(HBAO.Presets)) + { + GUILayout.Space(6.0f); + m_SelectedPreset = GUILayout.SelectionGrid(m_SelectedPreset, m_Presets.Values.Select(x => ObjectNames.NicifyVariableName(x.ToString())).ToArray(), 3); + GUILayout.Space(6.0f); + if (GUILayout.Button("Apply Preset")) + { + Undo.RecordObject(target, "Apply Preset"); + m_HBAO.ApplyPreset(m_Presets[m_SelectedPreset]); + EditorUtility.SetDirty(target); + if (!EditorApplication.isPlaying) + { + UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEngine.SceneManagement.SceneManager.GetActiveScene()); + } + } + } + + foreach (var field in group.Value) + { + // hide real presets + if (group.Key.FieldType == typeof(HBAO.Presets)) + continue; + + // hide resolution when deinterleaved HBAO is on + if (group.Key.FieldType == typeof(HBAO.GeneralSettings) && field.name == "resolution") + { + if (m_HBAO.GetDeinterleaving() != HBAO.Deinterleaving.Disabled) + { + continue; + } + } + // hide noise type when deinterleaved HBAO is on + else if (group.Key.FieldType == typeof(HBAO.GeneralSettings) && field.name == "noiseType") + { + if (m_HBAO.GetDeinterleaving() != HBAO.Deinterleaving.Disabled) + { + continue; + } + } + // hide useMultiBounce setting in BeforeReflections integration stage + else if (group.Key.FieldType == typeof(HBAO.AOSettings) && field.name == "useMultiBounce") + { + if (m_HBAO.GetPipelineStage() == HBAO.PipelineStage.BeforeReflections) + { + continue; + } + } + // hide multiBounceInfluence setting when not used + else if (group.Key.FieldType == typeof(HBAO.AOSettings) && field.name == "multiBounceInfluence") + { + if (m_HBAO.GetPipelineStage() == HBAO.PipelineStage.BeforeReflections || !m_HBAO.UseMultiBounce()) + { + continue; + } + } + // warn about distance falloff greater than max distance + else if (group.Key.FieldType == typeof(HBAO.AOSettings) && field.name == "perPixelNormals") + { + if (m_HBAO.GetAoDistanceFalloff() > m_HBAO.GetAoMaxDistance()) + { + GUILayout.Space(6.0f); + EditorGUILayout.HelpBox("Distance Falloff shoudn't be greater than Max Distance.", MessageType.Warning); + } + } + // warn about motion vectors not supported + else if (group.Key.FieldType == typeof(HBAO.TemporalFilterSettings) && field.name == "enabled") + { + // For platforms not supporting motion vectors texture + // https://docs.unity3d.com/ScriptReference/DepthTextureMode.MotionVectors.html + if (!SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RGHalf)) + { + GUILayout.Space(6.0f); + EditorGUILayout.HelpBox("Motion vectors not supported on this platform...", MessageType.Warning); + + if (m_HBAO.IsTemporalFilterEnabled()) + m_HBAO.EnableTemporalFilter(false); + } + else + { + if (IsVrRunning()) + { + GUILayout.Space(6.0f); + EditorGUILayout.HelpBox("Not supported yet in VR...", MessageType.Warning); + + if (m_HBAO.IsTemporalFilterEnabled()) + m_HBAO.EnableTemporalFilter(false); + } + } + } + // warn about color bleeding not supported in VR + MSAA prior to 2020.3.13 + else if (group.Key.FieldType == typeof(HBAO.ColorBleedingSettings) && field.name == "enabled") + { +#if !UNITY_2020_3_13_OR_NEWER + if (m_HBAO.IsColorBleedingEnabled() && IsVrRunning()) + { + GUILayout.Space(6.0f); + EditorGUILayout.HelpBox("Unity 2020.3.13+ required when using VR + MSAA and color bleeding.", MessageType.Warning); + } +#endif + } + // hide albedoMultiplier when not in deferred + else if (group.Key.FieldType == typeof(HBAO.ColorBleedingSettings) && field.name == "albedoMultiplier") + { + if (m_HBAO.GetPipelineStage() == HBAO.PipelineStage.BeforeImageEffectsOpaque) + continue; + } + + EditorGUILayout.BeginHorizontal(); + GUILayout.Space(12.0f); + EditorGUILayout.PropertyField(field); + EditorGUILayout.EndHorizontal(); + } + } + } + EditorGUILayout.EndVertical(); + + serializedObject.ApplyModifiedProperties(); + } + + private void SetStyles() + { + // set banner label style + m_TitleLabelStyle = new GUIStyle(GUI.skin.label); + m_TitleLabelStyle.alignment = TextAnchor.MiddleCenter; + m_TitleLabelStyle.contentOffset = new Vector2(0f, 0f); + + // get shuriken module title style + GUIStyle skurikenModuleTitleStyle = "ShurikenModuleTitle"; + + // clone it as to not interfere with the original, and adjust it + m_SettingsGroupStyle = new GUIStyle(skurikenModuleTitleStyle); + m_SettingsGroupStyle.font = (new GUIStyle("Label")).font; + m_SettingsGroupStyle.fontStyle = FontStyle.Bold; + m_SettingsGroupStyle.border = new RectOffset(15, 7, 4, 4); + m_SettingsGroupStyle.fixedHeight = 22; + m_SettingsGroupStyle.contentOffset = new Vector2(10f, -2f); + } + + List displays = new List(); + + private bool IsVrRunning() + { + bool vrIsRunning = false; + displays.Clear(); + SubsystemManager.GetSubsystems(displays); + foreach (var displaySubsystem in displays) + { + if (displaySubsystem.running) + { + vrIsRunning = true; + break; + } + } + + return vrIsRunning; + } + + [CustomPropertyDrawer(typeof(HBAO.MinMaxSliderAttribute))] + public class MinMaxSliderDrawer : PropertyDrawer + { + + public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) + { + + if (property.propertyType == SerializedPropertyType.Vector2) + { + Vector2 range = property.vector2Value; + float min = range.x; + float max = range.y; + var attr = attribute as HBAO.MinMaxSliderAttribute; + EditorGUI.BeginChangeCheck(); + EditorGUI.MinMaxSlider(position, label, ref min, ref max, attr.min, attr.max); + if (EditorGUI.EndChangeCheck()) + { + range.x = min; + range.y = max; + property.vector2Value = range; + } + } + else + { + EditorGUI.LabelField(position, label, "Use only with Vector2"); + } + } + } + } +} diff --git a/Assets/Horizon Based Ambient Occlusion/Editor/HBAOEditor.cs.meta b/Assets/Horizon Based Ambient Occlusion/Editor/HBAOEditor.cs.meta new file mode 100644 index 0000000..47d8ded --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor/HBAOEditor.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: c11bfebf2cb67334d8e543d164ef0cb0 +timeCreated: 1478884394 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Editor/HBAOEditor.cs + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Editor/HBAOGaiaExtension.cs b/Assets/Horizon Based Ambient Occlusion/Editor/HBAOGaiaExtension.cs new file mode 100644 index 0000000..eb5f48c --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor/HBAOGaiaExtension.cs @@ -0,0 +1,140 @@ +#if GAIA_PRESENT && UNITY_EDITOR + +using HorizonBasedAmbientOcclusion; +using UnityEditor; +using UnityEngine; + +namespace Gaia.GX.MichaelJimenez +{ + public class HBAOGaiaExtension : MonoBehaviour + { +#region Generic informational methods + + /// + /// Returns the publisher name if provided. + /// This will override the publisher name in the namespace ie Gaia.GX.PublisherName + /// + /// Publisher name + public static string GetPublisherName() + { + return "Michael Jimenez"; + } + + /// + /// Returns the package name if provided + /// This will override the package name in the class name ie public class PackageName. + /// + /// Package name + public static string GetPackageName() + { + return "Horizon Based Ambient Occlusion"; + } + +#endregion + +#region Methods exposed by Gaia as buttons must be prefixed with GX_ + + public static void GX_About() + { + EditorUtility.DisplayDialog("About Horizon Based Ambient Occlusion ", "HBAO is a post processing image effect to use in order to add realism to your scenes. It helps accentuating small surface details and reproduce light attenuation due to occlusion.\n\nNote: This Post FX should be the first in your effect stack.", "OK"); + } + + public static void GX_Presets_FastestPerformance() + { + HBAO hbao = StackPostFXOnTop(); + if (hbao != null) + { + hbao.ApplyPreset(HBAO.Preset.FastestPerformance); + MarkDirty(hbao); + } + } + + public static void GX_Presets_FastPerformance() + { + HBAO hbao = StackPostFXOnTop(); + if (hbao != null) + { + hbao.ApplyPreset(HBAO.Preset.FastPerformance); + MarkDirty(hbao); + } + } + + public static void GX_Presets_Normal() + { + HBAO hbao = StackPostFXOnTop(); + if (hbao != null) + { + hbao.ApplyPreset(HBAO.Preset.Normal); + MarkDirty(hbao); + } + } + + public static void GX_Presets_HighQuality() + { + HBAO hbao = StackPostFXOnTop(); + if (hbao != null) + { + hbao.ApplyPreset(HBAO.Preset.HighQuality); + MarkDirty(hbao); + } + } + + + public static void GX_Presets_HighestQuality() + { + HBAO hbao = StackPostFXOnTop(); + if (hbao != null) + { + hbao.ApplyPreset(HBAO.Preset.HighestQuality); + MarkDirty(hbao); + } + } + +#endregion + +#region Helper methods + + private static HBAO StackPostFXOnTop() + { + Camera camera = Camera.main; + if (camera == null) + { + camera = FindObjectOfType(); + } + if (camera == null) + { + EditorUtility.DisplayDialog("OOPS!", "Could not find camera to add camera effects to. Please add a camera to your scene.", "OK"); + return null; + } + + // add HBAO to camera + HBAO hbao = camera.GetComponent(); + if (hbao != null) + { + DestroyImmediate(hbao); + } + hbao = camera.gameObject.AddComponent(); + + // stack it on top + while (camera.GetComponents()[0] != hbao) + { + UnityEditorInternal.ComponentUtility.MoveComponentUp(hbao); + } + + return hbao; + } + + private static void MarkDirty(HBAO hbao) + { + EditorUtility.SetDirty(hbao); + if (!EditorApplication.isPlaying) + { + UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEngine.SceneManagement.SceneManager.GetActiveScene()); + } + } + +#endregion + } +} + +#endif diff --git a/Assets/Horizon Based Ambient Occlusion/Editor/HBAOGaiaExtension.cs.meta b/Assets/Horizon Based Ambient Occlusion/Editor/HBAOGaiaExtension.cs.meta new file mode 100644 index 0000000..9df3495 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor/HBAOGaiaExtension.cs.meta @@ -0,0 +1,19 @@ +fileFormatVersion: 2 +guid: 50df544c23aafa84584188552d7a8cd5 +timeCreated: 1462456119 +licenseType: Store +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Editor/HBAOGaiaExtension.cs + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Editor/Resources.meta b/Assets/Horizon Based Ambient Occlusion/Editor/Resources.meta new file mode 100644 index 0000000..bf1922e --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor/Resources.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fff65aff3cee6c44183cf61a6df77cac +folderAsset: yes +timeCreated: 1463304680 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/Editor/Resources/hbao.png b/Assets/Horizon Based Ambient Occlusion/Editor/Resources/hbao.png new file mode 100644 index 0000000..ddcd86d --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor/Resources/hbao.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c61855b2735564a800e507312fac5d6e1b9c2e1c6ee93c9012293480eda821e +size 8563 diff --git a/Assets/Horizon Based Ambient Occlusion/Editor/Resources/hbao.png.meta b/Assets/Horizon Based Ambient Occlusion/Editor/Resources/hbao.png.meta new file mode 100644 index 0000000..919ff07 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor/Resources/hbao.png.meta @@ -0,0 +1,62 @@ +fileFormatVersion: 2 +guid: 363f071b5e3670a43ba62ba5322fc4d6 +timeCreated: 1463304735 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: 1 + mipBias: -1 + wrapMode: 1 + nPOTScale: 0 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 1 + textureType: 2 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Editor/Resources/hbao.png + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Editor/Resources/icon.png b/Assets/Horizon Based Ambient Occlusion/Editor/Resources/icon.png new file mode 100644 index 0000000..241fb24 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor/Resources/icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71bd1cd6e06c9c0aa61f1d68bd93d154318e7b0d8c532af7cdfbac445d44e4b9 +size 8823 diff --git a/Assets/Horizon Based Ambient Occlusion/Editor/Resources/icon.png.meta b/Assets/Horizon Based Ambient Occlusion/Editor/Resources/icon.png.meta new file mode 100644 index 0000000..c20f0d3 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Editor/Resources/icon.png.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 6daa87e2aaa1bb04d930ca4b4bc926a7 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -100 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 2 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - serializedVersion: 2 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: ea6ccb6043e0b05449baf0ac8d87f817 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Editor/Resources/icon.png + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Readme.txt b/Assets/Horizon Based Ambient Occlusion/Readme.txt new file mode 100644 index 0000000..9c1df1b --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Readme.txt @@ -0,0 +1,307 @@ + +Horizon Based Ambient Occlusion (HBAO) is a post processing image effect to use +in order to add realism to your scenes. It helps accentuating small surface +details and reproduce light attenuation due to occlusion. + +HBAO delivers more accurate AO compared to the other SSAO solutions +available on the asset store, and this without any compromise on performances. + +This algorithm is highly optimized to use minimal GPU time and offers the best +quality to performance ratio. + + +----------------------------------------------------------------------------- +Usage +----------------------------------------------------------------------------- + +In order to use this image effect, just add HBAO compoment to your main camera. +For this you can drag the HBAO.cs script on your camera or select it from the +Add Component menu (Image Effects/HBAO). + +In most scenarios, using medium quality with a medium blur will yield very good +results. + +Depending if you are targetting high performances vs beautiful AO you can use +the following settings: + - high performances: low quality with wide blur + - normal : medium quality with medium blur + - fine ao: high quality with narrow blur + +For even more performances you can use half resolution AO, but it generally +introduces some objectionable flickering when the camera is in movement. + +Using color bleeding is heavier on performances as it requires additional color +sampling. The normal color bleeding saturation to use is 1. + +Important notice: +The placement of the HBAO component in your post FX stack is really important! +It should theoretically be the first effect in the chain meaning it should be +placed on top. + +Shader Model 3.0 compatible hardware is required. + + +----------------------------------------------------------------------------- +Forum thread & support +----------------------------------------------------------------------------- + +Link to the forum thread: +http://forum.unity3d.com/threads/horizon-based-ambient-occlusion-hbao-image-effect.387374/ + +For any support request, please drop me an email at jimmikaelkael@gmail.com + + +----------------------------------------------------------------------------- +Changelog +----------------------------------------------------------------------------- + +3.7 + - Fix compile error on Unity 6.4 (URP) + - Fix for HBAO usage as default profile (URP) + - Fix pass inputs (normal prepass not required in deferred) and xr eyecount (URP) + - Fix editor behavior with Lit AO (URP) + - Fix usage of worldspace normals for URP 10.10+ + +3.6.1 + - Fix compile error on Unity 6.3 + +3.6 + - Added RenderGraph support (URP) + +3.5.5 + - Fix for Unity 2023.3 (URP & HDRP, no RenderGraph support yet) + +3.5.4 + - Fixed broken LitAO (URP) + +3.5.3 + - Fixed right eye issue with Quest (Builtin) + - Fixed editor warning (URP) + +3.5.2 + - Fixed compatibility with Unity 2023.2 (all pipelines) + +3.5.1 + - Fixed dynamic resolution artefacts (URP and Builtin) + - Fixed blur uv delta incorrect in some cases + - Fixed warnings + +3.5 + - Standard pipeline: added VR SPI support + - Standard pipeline: fix compile error when built-in VR module is disabled + - Reduced number of shader variants (all pipelines) + - URP/HDRP: fixed VR SPI projection issue + - HDRP: fixed issue with R16G16B16A16 and R32G32B32A32 buffer formats + +3.4.12 + - Standard pipeline: fixed composite bug with MSAA and transparent objects + - HDRP: fix doubled properties in 2022.2 + +3.4.11 + - Fixed bleeding occlusion on screen edges + +3.4.10 + - Fixed bug with orthographic projection + - Reduced number of shader variants + - URP: fixed wrong camera view normals on URP versions 10 and 11 + +3.4.9 + - HDRP: fixed AO shifting issue + +3.4.8 + - HDRP: fixed VR SPI + - URP: prevent color bleeding to be used along with LitAO mode + - URP: warn about 2021.2+ required for motion vectors (temporal filter) + +3.4.7 + - Fixed temporal filter issues on URP (use BufferedRTHandleSystem) + - Fixed obsolete hasAdvancedMode field on HDRP + - Added min/max range for multibounce setting on HDRP + +3.4.6 + - Fixed temporal filtering ghosting issue on URP + +3.4.5 + - Added rendering path option in URP to fix issues with LitAO+Deferred + - Fixed scene rendered black in URP12 with LitAO and opaque texture enabled + +3.4.4 + - Fixed temporal filtering issue when using camera normals on URP + +3.4.3 + - Fixed wrong camera view normals on URP + +3.4.2 + - Enable temporal filtering on URP (URP12+, Unity 2021.2+) + +3.4.1 + - Fixed Deinterleaving per frame GC allocation on URP + +3.4 + - Added LitAO on URP (requires URP 10.0.0 or newer) + +3.3.4 + - Fixed VR Single Pass on URP + +3.3.3 + - Fixed VR on Standard Render Pipeline + +3.3.2 + - Added support for URP 12.0.0 + +3.3.1 + - Added support for upcoming URP 10.0.0 (support view normals) + +3.3 + - Added VR support to Standard Render Pipeline HBAO + +3.2.1 + - Added assembly definitions for editor scripts + +3.2 + - Fixed colorbleeding white color bleed beyond max distance + - Switched HBAO for URP to Post Process VolumeComponent + +3.1 + - Added HDRP support + - Added more settings helper methods + - Added namespaces for each render pipelines variants + - Use 16bit floating point texture format for noise when platform supports it + - Fixed wrong albedoMultipier setter method + +3.0 + - Rewritten scripts/shaders code for Unity 2019.1+ + - Added scene view effect + - Added temporal filtering + - Added interleaved gradient and spatial distribution noises + - Added possibility to stack AO components (both Standard and Universal Render Pipeline) + - Added UI for Universal Render Pipeline AO setting assets + - Fixed wrong RenderTextureFormat for color bleeding + - Fixed memory leaks + - Improved number of compiled shader variants + +2.9 + - Fixed URP version shader keywords problem resulting in blackscreen in builds + - Fixed URP support on OpenGLES2 graphic API + - Fixed PS4 compilation error + - Fixed orthographic camera support on OpenGL, OpenGLES2 and OpenGLES3 graphic APIs + - Fixed AO consistency on various resolutions (render scale, dynamic resolution) + - Fixed incorrect view normals sampling at half resolution + - Allowed use of local shader keywords instead of global keywords + - Removed obsolete random noise, downsampled blur and quarter AO resolution + +2.8 + - Added URP support + +2.7.2 + - Fixed deprecated editor API + +2.7.1 + - Fixed obsolete scripting API + - Added view normals debug display + +2.7 + - Added multibounce approximation feature to replace older luminance influence setting + - Improved AO intensity response + - Improved blur + - Fixed RGB colormask on composite passes + +2.6 + - Fixed emission not cancelling AO in deferred occlusion + - Added color bleeding emissive masking + - Fixed VR Single Pass support in Unity 2017.2 + +2.5 + - Added offscreen samples contribution setting + - Improved color bleeding performance + +2.4 + - Added support for Single Pass Stereo Rendering + +2.3 + - Fixed Camera.hdr obsolete warning in Unity 5.6 + - Fixed inconsistent line endings warning in HBAO.shader + +2.2 + - HBAO_Integrated: adjusted to avoid any per frame GC allocation + - Increased Max Radius Pixels limits to be compliant with 4K resolution + - Prefixed radius Slider control variable type with namespace to avoid potential ambiguity + +2.1 + - Fixed orthographic camera support with Deinterleaving in Unity 5.5+ + +2.0 + - Added a rendering pipeline integrated HBAO component (HBAO_Integrated.cs) + - Fixed orthographic camera support in Unity 5.5+ + +1.8 + - Fixed bad rendering path detection in builds + - Explicitely declared _NoiseTex as shader property + +1.7 + - Added downsampled blur setting + - Added quarter resolution setting + - Improved samples distribution (Mersenne Twister) + - Fixed black line artifacts in half resolution AO using reconstructed normals + - Fixed SV_Target semantics to the proper case + - Fixed ambiguous lerp in HBAO fragment + +1.6 + - Added Reconstruct as a per pixel normals option + - Simplified a few lerps in HBAO shader + - Removed sliders for max distance and falloff distance so as to remove bounds + +1.5 + - Added deinterleaving which gives performances gain for large radiuses and HD/UltraHD resolutions + - Fixed luminance influence not handled correctly in debug views + +1.4.3 + - Improved overall performances + - Added support for orthographic camera projection + +1.4.2 + - Added per pixel normals setting (GBuffer or Camera) + - Added Max Distance and Distance Falloff settings + - Fixed AO step size, allowing to get more interesting contact occlusion + - Moved initialization to OnEnable instead of Start + - Avoid to modify GUI.Label style directly as to not mess up the stats window + - Renamed "Show Type" setting to "Display Mode" + +1.4.1 + - Fix editor error when applying a preset in play mode + +1.4 + - Added new user friendly UI & some presets + - Fixed luminance influence not showing in AO only views + - Fixed vanishing AO bug in while in editor + +1.3.4 + - Integrate with Gaia as an extension + +1.3.3 + - Added AO base color setting + - Fix leaked noise texture + - Fix demo scene + +1.3.2: + - Fix bad rendering path detection in unity editor with camera on "Use Player Settings" + - Limit the maximum radius in pixels to address the close-up objects performance issue + - Added an albedo contribution and multiplier for the color bleeding feature in deferred shading + - Increased intensity upper bound (useful for dark environment) + +1.3.1: + - Improved color bleeding performances + - Fix NPE when adding the HBAO component to a camera for the 1st time + +1.3: + - Improved performances + - Improved compatibility (now compiles on every platforms, targetting shader model 3.0) + - Improved settings (there are less settings, but they are more user-friendly) + +1.2: + - Added Color Beeding feature + - Fixed artifacts on cutout materials in forward rendering + +1.1: + - Improved blur + - Added another noise type diff --git a/Assets/Horizon Based Ambient Occlusion/Readme.txt.meta b/Assets/Horizon Based Ambient Occlusion/Readme.txt.meta new file mode 100644 index 0000000..656b53e --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Readme.txt.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 5ea4d0d9dc9d11941b341f03453fd6d3 +timeCreated: 1453642158 +licenseType: Store +TextScriptImporter: + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Readme.txt + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Runtime.meta b/Assets/Horizon Based Ambient Occlusion/Runtime.meta new file mode 100644 index 0000000..9cbfbd7 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Runtime.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6b4762034a7dbee44a7dfa37d2418bf2 +folderAsset: yes +timeCreated: 1455959812 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.Runtime.asmdef b/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.Runtime.asmdef new file mode 100644 index 0000000..05539cc --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.Runtime.asmdef @@ -0,0 +1,20 @@ +{ + "name": "HBAO.Runtime", + "rootNamespace": "", + "references": [], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.modules.vr", + "expression": "1.0.0", + "define": "ENABLE_VR_MODULE" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.Runtime.asmdef.meta b/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.Runtime.asmdef.meta new file mode 100644 index 0000000..d41f984 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.Runtime.asmdef.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: b83dc51897666cb44bdfbf9671f74e85 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.Runtime.asmdef + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.cs b/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.cs new file mode 100644 index 0000000..abd0393 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.cs @@ -0,0 +1,1817 @@ +using UnityEngine; +using UnityEngine.Rendering; +#if ENABLE_VR_MODULE && ENABLE_VR +using XRSettings = UnityEngine.XR.XRSettings; +#endif +#if UNITY_EDITOR +using UnityEditor; +#endif +using System; +using System.Collections.Generic; + +namespace HorizonBasedAmbientOcclusion +{ + [ExecuteInEditMode, ImageEffectAllowedInSceneView, AddComponentMenu("Image Effects/HBAO")] + [RequireComponent(typeof(Camera))] + public class HBAO : MonoBehaviour + { + public enum Preset + { + FastestPerformance, + FastPerformance, + Normal, + HighQuality, + HighestQuality, + Custom + } + + public enum PipelineStage + { + BeforeImageEffectsOpaque, + AfterLighting, + BeforeReflections + } + + public enum Quality + { + Lowest, + Low, + Medium, + High, + Highest + } + + public enum Resolution + { + Full, + Half + } + + public enum NoiseType + { + Dither, + InterleavedGradientNoise, + SpatialDistribution + } + + public enum Deinterleaving + { + Disabled, + x4 + } + + public enum DebugMode + { + Disabled, + AOOnly, + ColorBleedingOnly, + SplitWithoutAOAndWithAO, + SplitWithAOAndAOOnly, + SplitWithoutAOAndAOOnly, + ViewNormals + } + + public enum BlurType + { + None, + Narrow, + Medium, + Wide, + ExtraWide + } + + public enum PerPixelNormals + { + GBuffer, + Camera, + Reconstruct + } + + public enum VarianceClipping + { + Disabled, + _4Tap, + _8Tap + } + + public Shader hbaoShader; + + [Serializable] + public struct Presets + { + public Preset preset; + + public static Presets defaults + { + get + { + return new Presets + { + preset = Preset.Normal + }; + } + } + } + + [Serializable] + public struct GeneralSettings + { + [Tooltip("The stage the AO is injected into the rendering pipeline.")] + [Space(6)] + public PipelineStage pipelineStage; + + [Tooltip("The quality of the AO.")] + [Space(10)] + public Quality quality; + + [Tooltip("The deinterleaving factor.")] + public Deinterleaving deinterleaving; + + [Tooltip("The resolution at which the AO is calculated.")] + public Resolution resolution; + + [Tooltip("The type of noise to use.")] + [Space(10)] + public NoiseType noiseType; + + [Tooltip("The debug mode actually displayed on screen.")] + [Space(10)] + public DebugMode debugMode; + + public static GeneralSettings defaults + { + get + { + return new GeneralSettings + { + pipelineStage = PipelineStage.BeforeImageEffectsOpaque, + quality = Quality.Medium, + deinterleaving = Deinterleaving.Disabled, + resolution = Resolution.Full, + noiseType = NoiseType.Dither, + debugMode = DebugMode.Disabled + }; + } + } + } + + [Serializable] + public struct AOSettings + { + [Tooltip("AO radius: this is the distance outside which occluders are ignored.")] + [Space(6), Range(0.25f, 5f)] + public float radius; + + [Tooltip("Maximum radius in pixels: this prevents the radius to grow too much with close-up " + + "object and impact on performances.")] + [Range(16, 256)] + public float maxRadiusPixels; + + [Tooltip("For low-tessellated geometry, occlusion variations tend to appear at creases and " + + "ridges, which betray the underlying tessellation. To remove these artifacts, we use " + + "an angle bias parameter which restricts the hemisphere.")] + [Range(0, 0.5f)] + public float bias; + + [Tooltip("This value allows to scale up the ambient occlusion values.")] + [Range(0, 4)] + public float intensity; + + [Tooltip("Enable/disable MultiBounce approximation.")] + public bool useMultiBounce; + + [Tooltip("MultiBounce approximation influence.")] + [Range(0, 1)] + public float multiBounceInfluence; + + [Tooltip("The amount of AO offscreen samples are contributing.")] + [Range(0, 1)] + public float offscreenSamplesContribution; + + [Tooltip("The max distance to display AO.")] + [Space(10)] + public float maxDistance; + + [Tooltip("The distance before max distance at which AO start to decrease.")] + public float distanceFalloff; + + [Tooltip("The type of per pixel normals to use.")] + [Space(10)] + public PerPixelNormals perPixelNormals; + + [Tooltip("This setting allow you to set the base color if the AO, the alpha channel value is unused.")] + [Space(10)] + public Color baseColor; + + public static AOSettings defaults + { + get + { + return new AOSettings + { + radius = 0.8f, + maxRadiusPixels = 128f, + bias = 0.05f, + intensity = 1f, + useMultiBounce = false, + multiBounceInfluence = 1f, + offscreenSamplesContribution = 0f, + maxDistance = 150f, + distanceFalloff = 50f, + perPixelNormals = PerPixelNormals.GBuffer, + baseColor = Color.black + }; + } + } + } + + [Serializable] + public struct TemporalFilterSettings + { + [Space(6)] + public bool enabled; + + [Tooltip("The type of variance clipping to use.")] + public VarianceClipping varianceClipping; + + public static TemporalFilterSettings defaults + { + get + { + return new TemporalFilterSettings + { + enabled = false, + varianceClipping = VarianceClipping._4Tap + }; + } + } + } + + [Serializable] + public struct BlurSettings + { + [Tooltip("The type of blur to use.")] + [Space(6)] + public BlurType type; + + [Tooltip("This parameter controls the depth-dependent weight of the bilateral filter, to " + + "avoid bleeding across edges. A zero sharpness is a pure Gaussian blur. Increasing " + + "the blur sharpness removes bleeding by using lower weights for samples with large " + + "depth delta from the current pixel.")] + [Space(10), Range(0, 16)] + public float sharpness; + + public static BlurSettings defaults + { + get + { + return new BlurSettings + { + type = BlurType.Medium, + sharpness = 8f + }; + } + } + } + + [Serializable] + public struct ColorBleedingSettings + { + [Space(6)] + public bool enabled; + + [Tooltip("This value allows to control the saturation of the color bleeding.")] + [Space(10), Range(0, 4)] + public float saturation; + + [Tooltip("This value allows to scale the contribution of the color bleeding samples.")] + [Range(0, 32)] + public float albedoMultiplier; + + [Tooltip("Use masking on emissive pixels")] + [Range(0, 1)] + public float brightnessMask; + + [Tooltip("Brightness level where masking starts/ends")] + [MinMaxSlider(0, 2)] + public Vector2 brightnessMaskRange; + + public static ColorBleedingSettings defaults + { + get + { + return new ColorBleedingSettings + { + enabled = false, + saturation = 1f, + albedoMultiplier = 4f, + brightnessMask = 1f, + brightnessMaskRange = new Vector2(0.0f, 0.5f) + }; + } + } + } + + [AttributeUsage(AttributeTargets.Field)] + public class SettingsGroup : Attribute { } + + [SerializeField, SettingsGroup] + private Presets m_Presets = Presets.defaults; + public Presets presets + { + get { return m_Presets; } + set { m_Presets = value; } + } + + [SerializeField, SettingsGroup] + private GeneralSettings m_GeneralSettings = GeneralSettings.defaults; + public GeneralSettings generalSettings + { + get { return m_GeneralSettings; } + set { m_GeneralSettings = value; } + } + + [SerializeField, SettingsGroup] + private AOSettings m_AOSettings = AOSettings.defaults; + public AOSettings aoSettings + { + get { return m_AOSettings; } + set { m_AOSettings = value; } + } + + [SerializeField, SettingsGroup] + private TemporalFilterSettings m_TemporalFilterSettings = TemporalFilterSettings.defaults; + public TemporalFilterSettings temporalFilterSettings + { + get { return m_TemporalFilterSettings; } + set { m_TemporalFilterSettings = value; } + } + + [SerializeField, SettingsGroup] + private BlurSettings m_BlurSettings = BlurSettings.defaults; + public BlurSettings blurSettings + { + get { return m_BlurSettings; } + set { m_BlurSettings = value; } + } + + [SerializeField, SettingsGroup] + private ColorBleedingSettings m_ColorBleedingSettings = ColorBleedingSettings.defaults; + public ColorBleedingSettings colorBleedingSettings + { + get { return m_ColorBleedingSettings; } + set { m_ColorBleedingSettings = value; } + } + + public class MinMaxSliderAttribute : PropertyAttribute + { + public readonly float max; + public readonly float min; + + public MinMaxSliderAttribute(float min, float max) + { + this.min = min; + this.max = max; + } + } + + public Preset GetCurrentPreset() + { + return m_Presets.preset; + } + + public void ApplyPreset(Preset preset) + { + if (preset == Preset.Custom) + { + m_Presets.preset = preset; + return; + } + + var debugMode = generalSettings.debugMode; + + m_GeneralSettings = GeneralSettings.defaults; + m_AOSettings = AOSettings.defaults; + m_ColorBleedingSettings = ColorBleedingSettings.defaults; + m_BlurSettings = BlurSettings.defaults; + + SetDebugMode(debugMode); + + switch (preset) + { + case Preset.FastestPerformance: + SetQuality(Quality.Lowest); + SetAoRadius(0.5f); + SetAoMaxRadiusPixels(64.0f); + SetBlurType(BlurType.ExtraWide); + break; + case Preset.FastPerformance: + SetQuality(Quality.Low); + SetAoRadius(0.5f); + SetAoMaxRadiusPixels(64.0f); + SetBlurType(BlurType.Wide); + break; + case Preset.HighQuality: + SetQuality(Quality.High); + SetAoRadius(1.0f); + break; + case Preset.HighestQuality: + SetQuality(Quality.Highest); + SetAoRadius(1.2f); + SetAoMaxRadiusPixels(256.0f); + SetBlurType(BlurType.Narrow); + break; + case Preset.Normal: + default: + break; + } + + m_Presets.preset = preset; + } + + public PipelineStage GetPipelineStage() + { + return m_GeneralSettings.pipelineStage; + } + + public void SetPipelineStage(PipelineStage pipelineStage) + { + m_GeneralSettings.pipelineStage = pipelineStage; + } + + public Quality GetQuality() + { + return m_GeneralSettings.quality; + } + + public void SetQuality(Quality quality) + { + m_GeneralSettings.quality = quality; + } + + public Deinterleaving GetDeinterleaving() + { + return m_GeneralSettings.deinterleaving; + } + + public void SetDeinterleaving(Deinterleaving deinterleaving) + { + m_GeneralSettings.deinterleaving = deinterleaving; + } + + public Resolution GetResolution() + { + return m_GeneralSettings.resolution; + } + + public void SetResolution(Resolution resolution) + { + m_GeneralSettings.resolution = resolution; + } + + public NoiseType GetNoiseType() + { + return m_GeneralSettings.noiseType; + } + + public void SetNoiseType(NoiseType noiseType) + { + m_GeneralSettings.noiseType = noiseType; + } + + public DebugMode GetDebugMode() + { + return m_GeneralSettings.debugMode; + } + + public void SetDebugMode(DebugMode debugMode) + { + m_GeneralSettings.debugMode = debugMode; + } + + public float GetAoRadius() + { + return m_AOSettings.radius; + } + + public void SetAoRadius(float radius) + { + m_AOSettings.radius = Mathf.Clamp(radius, 0.25f, 5); + } + + public float GetAoMaxRadiusPixels() + { + return m_AOSettings.maxRadiusPixels; + } + + public void SetAoMaxRadiusPixels(float maxRadiusPixels) + { + m_AOSettings.maxRadiusPixels = Mathf.Clamp(maxRadiusPixels, 16, 256); + } + + public float GetAoBias() + { + return m_AOSettings.bias; + } + + public void SetAoBias(float bias) + { + m_AOSettings.bias = Mathf.Clamp(bias, 0, 0.5f); + } + + public float GetAoOffscreenSamplesContribution() + { + return m_AOSettings.offscreenSamplesContribution; + } + + public void SetAoOffscreenSamplesContribution(float contribution) + { + m_AOSettings.offscreenSamplesContribution = Mathf.Clamp01(contribution); + } + + public float GetAoMaxDistance() + { + return m_AOSettings.maxDistance; + } + + public void SetAoMaxDistance(float maxDistance) + { + m_AOSettings.maxDistance = maxDistance; + } + + public float GetAoDistanceFalloff() + { + return m_AOSettings.distanceFalloff; + } + + public void SetAoDistanceFalloff(float distanceFalloff) + { + m_AOSettings.distanceFalloff = distanceFalloff; + } + + public PerPixelNormals GetAoPerPixelNormals() + { + return m_AOSettings.perPixelNormals; + } + + public void SetAoPerPixelNormals(PerPixelNormals perPixelNormals) + { + m_AOSettings.perPixelNormals = perPixelNormals; + } + + public Color GetAoColor() + { + return m_AOSettings.baseColor; + } + + public void SetAoColor(Color color) + { + m_AOSettings.baseColor = color; + } + + public float GetAoIntensity() + { + return m_AOSettings.intensity; + } + + public void SetAoIntensity(float intensity) + { + m_AOSettings.intensity = Mathf.Clamp(intensity, 0, 4); + } + + public bool UseMultiBounce() + { + return m_AOSettings.useMultiBounce; + } + + public void EnableMultiBounce(bool enabled = true) + { + m_AOSettings.useMultiBounce = enabled; + } + + public float GetAoMultiBounceInfluence() + { + return m_AOSettings.multiBounceInfluence; + } + + public void SetAoMultiBounceInfluence(float multiBounceInfluence) + { + m_AOSettings.multiBounceInfluence = Mathf.Clamp01(multiBounceInfluence); + } + + public bool IsTemporalFilterEnabled() + { + return m_TemporalFilterSettings.enabled; + } + + public void EnableTemporalFilter(bool enabled = true) + { + m_TemporalFilterSettings.enabled = enabled; + } + + public VarianceClipping GetTemporalFilterVarianceClipping() + { + return m_TemporalFilterSettings.varianceClipping; + } + + public void SetTemporalFilterVarianceClipping(VarianceClipping varianceClipping) + { + m_TemporalFilterSettings.varianceClipping = varianceClipping; + } + + public BlurType GetBlurType() + { + return m_BlurSettings.type; + } + + public void SetBlurType(BlurType blurType) + { + m_BlurSettings.type = blurType; + } + + public float GetBlurSharpness() + { + return m_BlurSettings.sharpness; + } + + public void SetBlurSharpness(float sharpness) + { + m_BlurSettings.sharpness = Mathf.Clamp(sharpness, 0, 16); + } + + public bool IsColorBleedingEnabled() + { + return m_ColorBleedingSettings.enabled; + } + + public void EnableColorBleeding(bool enabled = true) + { + m_ColorBleedingSettings.enabled = enabled; + } + + public float GetColorBleedingSaturation() + { + return m_ColorBleedingSettings.saturation; + } + + public void SetColorBleedingSaturation(float saturation) + { + m_ColorBleedingSettings.saturation = Mathf.Clamp(saturation, 0, 4); + } + + public float GetColorBleedingAlbedoMultiplier() + { + return m_ColorBleedingSettings.albedoMultiplier; + } + + public void SetColorBleedingAlbedoMultiplier(float albedoMultiplier) + { + m_ColorBleedingSettings.albedoMultiplier = Mathf.Clamp(albedoMultiplier, 0, 32); + } + + public float GetColorBleedingBrightnessMask() + { + return m_ColorBleedingSettings.brightnessMask; + } + + public void SetColorBleedingBrightnessMask(float brightnessMask) + { + m_ColorBleedingSettings.brightnessMask = Mathf.Clamp01(brightnessMask); + } + + public Vector2 GetColorBleedingBrightnessMaskRange() + { + return m_ColorBleedingSettings.brightnessMaskRange; + } + + public void SetColorBleedingBrightnessMaskRange(Vector2 brightnessMaskRange) + { + brightnessMaskRange.x = Mathf.Clamp(brightnessMaskRange.x, 0, 2); + brightnessMaskRange.y = Mathf.Clamp(brightnessMaskRange.y, 0, 2); + brightnessMaskRange.x = Mathf.Min(brightnessMaskRange.x, brightnessMaskRange.y); + m_ColorBleedingSettings.brightnessMaskRange = brightnessMaskRange; + } + + private static class Pass + { + public const int AO = 0; + public const int AO_Deinterleaved = 1; + + public const int Deinterleave_Depth = 2; + public const int Deinterleave_Normals = 3; + public const int Atlas_AO_Deinterleaved = 4; + public const int Reinterleave_AO = 5; + + public const int Blur = 6; + + public const int Temporal_Filter = 7; + + public const int Copy = 8; + + public const int Composite = 9; + public const int Composite_AfterLighting = 10; + public const int Composite_BeforeReflections = 11; + public const int Composite_BlendAO = 12; + public const int Composite_BlendCB = 13; + + public const int Debug_ViewNormals = 14; + } + + private static class ShaderProperties + { + public static int mainTex; + public static int hbaoTex; + public static int tempTex; + public static int tempTex2; + public static int noiseTex; + public static int depthTex; + public static int normalsTex; + public static int[] depthSliceTex; + public static int[] normalsSliceTex; + public static int[] aoSliceTex; + public static int[] deinterleaveOffset; + public static int atlasOffset; + public static int jitter; + public static int uvTransform; + public static int inputTexelSize; + public static int aoTexelSize; + public static int deinterleavedAOTexelSize; + public static int reinterleavedAOTexelSize; + public static int uvToView; + //public static int worldToCameraMatrix; + public static int targetScale; + public static int radius; + public static int maxRadiusPixels; + public static int negInvRadius2; + public static int angleBias; + public static int aoMultiplier; + public static int intensity; + public static int multiBounceInfluence; + public static int offscreenSamplesContrib; + public static int maxDistance; + public static int distanceFalloff; + public static int baseColor; + public static int colorBleedSaturation; + public static int albedoMultiplier; + public static int colorBleedBrightnessMask; + public static int colorBleedBrightnessMaskRange; + public static int blurDeltaUV; + public static int blurSharpness; + public static int temporalParams; + + static ShaderProperties() + { + mainTex = Shader.PropertyToID("_MainTex"); + hbaoTex = Shader.PropertyToID("_HBAOTex"); + tempTex = Shader.PropertyToID("_TempTex"); + tempTex2 = Shader.PropertyToID("_TempTex2"); + noiseTex = Shader.PropertyToID("_NoiseTex"); + depthTex = Shader.PropertyToID("_DepthTex"); + normalsTex = Shader.PropertyToID("_NormalsTex"); + depthSliceTex = new int[4 * 4]; + normalsSliceTex = new int[4 * 4]; + aoSliceTex = new int[4 * 4]; + for (int i = 0; i < 4 * 4; i++) + { + depthSliceTex[i] = Shader.PropertyToID("_DepthSliceTex" + i); + normalsSliceTex[i] = Shader.PropertyToID("_NormalsSliceTex" + i); + aoSliceTex[i] = Shader.PropertyToID("_AOSliceTex" + i); + } + deinterleaveOffset = new int[] { + Shader.PropertyToID("_Deinterleave_Offset00"), + Shader.PropertyToID("_Deinterleave_Offset10"), + Shader.PropertyToID("_Deinterleave_Offset01"), + Shader.PropertyToID("_Deinterleave_Offset11") + }; + atlasOffset = Shader.PropertyToID("_AtlasOffset"); + jitter = Shader.PropertyToID("_Jitter"); + uvTransform = Shader.PropertyToID("_UVTransform"); + inputTexelSize = Shader.PropertyToID("_Input_TexelSize"); + aoTexelSize = Shader.PropertyToID("_AO_TexelSize"); + deinterleavedAOTexelSize = Shader.PropertyToID("_DeinterleavedAO_TexelSize"); + reinterleavedAOTexelSize = Shader.PropertyToID("_ReinterleavedAO_TexelSize"); + uvToView = Shader.PropertyToID("_UVToView"); + //worldToCameraMatrix = Shader.PropertyToID("_WorldToCameraMatrix"); + targetScale = Shader.PropertyToID("_TargetScale"); + radius = Shader.PropertyToID("_Radius"); + maxRadiusPixels = Shader.PropertyToID("_MaxRadiusPixels"); + negInvRadius2 = Shader.PropertyToID("_NegInvRadius2"); + angleBias = Shader.PropertyToID("_AngleBias"); + aoMultiplier = Shader.PropertyToID("_AOmultiplier"); + intensity = Shader.PropertyToID("_Intensity"); + multiBounceInfluence = Shader.PropertyToID("_MultiBounceInfluence"); + offscreenSamplesContrib = Shader.PropertyToID("_OffscreenSamplesContrib"); + maxDistance = Shader.PropertyToID("_MaxDistance"); + distanceFalloff = Shader.PropertyToID("_DistanceFalloff"); + baseColor = Shader.PropertyToID("_BaseColor"); + colorBleedSaturation = Shader.PropertyToID("_ColorBleedSaturation"); + albedoMultiplier = Shader.PropertyToID("_AlbedoMultiplier"); + colorBleedBrightnessMask = Shader.PropertyToID("_ColorBleedBrightnessMask"); + colorBleedBrightnessMaskRange = Shader.PropertyToID("_ColorBleedBrightnessMaskRange"); + blurDeltaUV = Shader.PropertyToID("_BlurDeltaUV"); + blurSharpness = Shader.PropertyToID("_BlurSharpness"); + temporalParams = Shader.PropertyToID("_TemporalParams"); + } + + public static string GetOrthographicOrDeferredKeyword(bool orthographic, GeneralSettings settings) + { + // need to check that integrationStage is not BeforeImageEffectOpaque as Gbuffer0 is not available in this case + return orthographic ? "ORTHOGRAPHIC_PROJECTION" : settings.pipelineStage != PipelineStage.BeforeImageEffectsOpaque ? "DEFERRED_SHADING" : "__"; + } + + public static string GetQualityKeyword(GeneralSettings settings) + { + switch (settings.quality) + { + case Quality.Lowest: + return "QUALITY_LOWEST"; + case Quality.Low: + return "QUALITY_LOW"; + case Quality.Medium: + return "QUALITY_MEDIUM"; + case Quality.High: + return "QUALITY_HIGH"; + case Quality.Highest: + return "QUALITY_HIGHEST"; + default: + return "QUALITY_MEDIUM"; + } + } + + public static string GetNoiseKeyword(GeneralSettings settings) + { + switch (settings.noiseType) + { + case NoiseType.InterleavedGradientNoise: + return "INTERLEAVED_GRADIENT_NOISE"; + case NoiseType.Dither: + case NoiseType.SpatialDistribution: + default: + return "__"; + } + } + + public static string GetDeinterleavingKeyword(GeneralSettings settings) + { + switch (settings.deinterleaving) + { + case Deinterleaving.x4: + return "DEINTERLEAVED"; + case Deinterleaving.Disabled: + default: + return "__"; + } + } + + public static string GetDebugKeyword(GeneralSettings settings) + { + switch (settings.debugMode) + { + case DebugMode.AOOnly: + return "DEBUG_AO"; + case DebugMode.ColorBleedingOnly: + return "DEBUG_COLORBLEEDING"; + case DebugMode.SplitWithoutAOAndWithAO: + return "DEBUG_NOAO_AO"; + case DebugMode.SplitWithAOAndAOOnly: + return "DEBUG_AO_AOONLY"; + case DebugMode.SplitWithoutAOAndAOOnly: + return "DEBUG_NOAO_AOONLY"; + case DebugMode.Disabled: + default: + return "__"; + } + } + + public static string GetMultibounceKeyword(AOSettings settings) + { + return settings.useMultiBounce ? "MULTIBOUNCE" : "__"; + } + + public static string GetOffscreenSamplesContributionKeyword(AOSettings settings) + { + return settings.offscreenSamplesContribution > 0 ? "OFFSCREEN_SAMPLES_CONTRIBUTION" : "__"; + } + + public static string GetPerPixelNormalsKeyword(AOSettings settings) + { + switch (settings.perPixelNormals) + { + case PerPixelNormals.Camera: + return "NORMALS_CAMERA"; + case PerPixelNormals.Reconstruct: + return "NORMALS_RECONSTRUCT"; + case PerPixelNormals.GBuffer: + default: + return "__"; + } + } + + public static string GetBlurRadiusKeyword(BlurSettings settings) + { + switch (settings.type) + { + case BlurType.Narrow: + return "BLUR_RADIUS_2"; + case BlurType.Medium: + return "BLUR_RADIUS_3"; + case BlurType.Wide: + return "BLUR_RADIUS_4"; + case BlurType.ExtraWide: + return "BLUR_RADIUS_5"; + case BlurType.None: + default: + return "BLUR_RADIUS_3"; + } + } + + public static string GetVarianceClippingKeyword(TemporalFilterSettings settings) + { + switch (settings.varianceClipping) + { + case VarianceClipping._4Tap: + return "VARIANCE_CLIPPING_4TAP"; + case VarianceClipping._8Tap: + return "VARIANCE_CLIPPING_8TAP"; + case VarianceClipping.Disabled: + default: + return "__"; + } + } + + public static string GetColorBleedingKeyword(ColorBleedingSettings settings) + { + return settings.enabled ? "COLOR_BLEEDING" : "__"; + } + + public static string GetLightingLogEncodedKeyword(bool hdr) + { + return hdr ? "__" : "LIGHTING_LOG_ENCODED"; + } + } + + public enum StereoRenderingMode + { + MultiPass, + SinglePassInstanced + }; + + private static class MersenneTwister + { + // Mersenne-Twister random numbers in [0,1). + public static float[] Numbers = new float[] { + //0.463937f,0.340042f,0.223035f,0.468465f,0.322224f,0.979269f,0.031798f,0.973392f,0.778313f,0.456168f,0.258593f,0.330083f,0.387332f,0.380117f,0.179842f,0.910755f, + //0.511623f,0.092933f,0.180794f,0.620153f,0.101348f,0.556342f,0.642479f,0.442008f,0.215115f,0.475218f,0.157357f,0.568868f,0.501241f,0.629229f,0.699218f,0.707733f + 0.556725f,0.005520f,0.708315f,0.583199f,0.236644f,0.992380f,0.981091f,0.119804f,0.510866f,0.560499f,0.961497f,0.557862f,0.539955f,0.332871f,0.417807f,0.920779f, + 0.730747f,0.076690f,0.008562f,0.660104f,0.428921f,0.511342f,0.587871f,0.906406f,0.437980f,0.620309f,0.062196f,0.119485f,0.235646f,0.795892f,0.044437f,0.617311f + }; + } + + private static readonly Vector2[] s_jitter = new Vector2[4 * 4]; + private static readonly float[] s_temporalRotations = { 60.0f, 300.0f, 180.0f, 240.0f, 120.0f, 0.0f }; + private static readonly float[] s_temporalOffsets = { 0.0f, 0.5f, 0.25f, 0.75f }; + + private Material material { get; set; } + private Camera hbaoCamera { get; set; } + private CommandBuffer cmdBuffer { get; set; } + private int width { get; set; } + private int height { get; set; } + private bool stereoActive { get; set; } + private int xrActiveEye { get; set; } + private StereoRenderingMode stereoRenderingMode { get; set; } + private int screenWidth { get; set; } + private int screenHeight { get; set; } + private int aoWidth { get; set; } + private int aoHeight { get; set; } + private int reinterleavedAoWidth { get; set; } + private int reinterleavedAoHeight { get; set; } + private int deinterleavedAoWidth { get; set; } + private int deinterleavedAoHeight { get; set; } + private int frameCount { get; set; } + private bool motionVectorsSupported { get; set; } + private RenderTexture aoHistoryBuffer { get; set; } + private RenderTexture colorBleedingHistoryBuffer { get; set; } + private Texture2D noiseTex { get; set; } + + private Mesh fullscreenTriangle + { + get + { + if (m_FullscreenTriangle != null) + return m_FullscreenTriangle; + + m_FullscreenTriangle = new Mesh { name = "Fullscreen Triangle" }; + + // Because we have to support older platforms (GLES2/3, DX9 etc) we can't do all of + // this directly in the vertex shader using vertex ids :( + m_FullscreenTriangle.SetVertices(new List + { + new Vector3(-1f, -1f, 0f), + new Vector3(-1f, 3f, 0f), + new Vector3( 3f, -1f, 0f) + }); + m_FullscreenTriangle.SetIndices(new[] { 0, 1, 2 }, MeshTopology.Triangles, 0, false); + m_FullscreenTriangle.UploadMeshData(false); + + return m_FullscreenTriangle; + } + } + + private CameraEvent cameraEvent + { + get + { + // Forces BeforeImageEffectsOpaque as soon as normal display mode isn't used, + // the component still display its integration stage but we force it here to ensure + // all debug modes display correctly. + if (generalSettings.debugMode != DebugMode.Disabled) + return CameraEvent.BeforeImageEffectsOpaque; + + switch (generalSettings.pipelineStage) + { + case PipelineStage.BeforeReflections: + return CameraEvent.BeforeReflections; + case PipelineStage.AfterLighting: + return CameraEvent.AfterLighting; + case PipelineStage.BeforeImageEffectsOpaque: + default: + return CameraEvent.BeforeImageEffectsOpaque; + } + } + } + + private bool isCommandBufferDirty + { + get + { + if (m_IsCommandBufferDirty || m_PreviousPipelineStage != generalSettings.pipelineStage || m_PreviousResolution != generalSettings.resolution || + m_PreviousDebugMode != generalSettings.debugMode || m_PreviousAllowHDR != hbaoCamera.allowHDR || m_PreviousWidth != width || m_PreviousHeight != height || + m_PreviousDeinterleaving != generalSettings.deinterleaving || m_PreviousBlurAmount != blurSettings.type || m_PreviousUseMultibounce != aoSettings.useMultiBounce || + m_PreviousColorBleedingEnabled != colorBleedingSettings.enabled || m_PreviousTemporalFilterEnabled != temporalFilterSettings.enabled || + m_PreviousRenderingPath != hbaoCamera.actualRenderingPath) + { + m_PreviousPipelineStage = generalSettings.pipelineStage; + m_PreviousResolution = generalSettings.resolution; + m_PreviousDebugMode = generalSettings.debugMode; + m_PreviousAllowHDR = hbaoCamera.allowHDR; + m_PreviousWidth = width; + m_PreviousHeight = height; + m_PreviousDeinterleaving = generalSettings.deinterleaving; + m_PreviousBlurAmount = blurSettings.type; + m_PreviousUseMultibounce = aoSettings.useMultiBounce; + m_PreviousColorBleedingEnabled = colorBleedingSettings.enabled; + m_PreviousTemporalFilterEnabled = temporalFilterSettings.enabled; + m_PreviousRenderingPath = hbaoCamera.actualRenderingPath; + + return true; + } + + return false; + } + set + { + m_IsCommandBufferDirty = value; + } + } + + private bool isHistoryBufferDirty + { + get + { + if (aoHistoryBuffer == null || (colorBleedingSettings.enabled && colorBleedingHistoryBuffer == null) || + m_PreviousTemporalFilterEnabled != temporalFilterSettings.enabled || + m_PreviousResolution != generalSettings.resolution || + m_PreviousColorBleedingEnabled != colorBleedingSettings.enabled || + m_PrevStereoRenderingMode != stereoRenderingMode) + { + m_PreviousTemporalFilterEnabled = temporalFilterSettings.enabled; + m_PreviousResolution = generalSettings.resolution; + m_PreviousColorBleedingEnabled = colorBleedingSettings.enabled; + m_PrevStereoRenderingMode = stereoRenderingMode; + + return true; + } + + return false; + } + } + + private static RenderTextureFormat defaultHDRRenderTextureFormat + { + get + { +#if UNITY_ANDROID || UNITY_IPHONE || UNITY_TVOS || UNITY_SWITCH || UNITY_EDITOR + RenderTextureFormat format = RenderTextureFormat.RGB111110Float; +#if UNITY_EDITOR + var target = EditorUserBuildSettings.activeBuildTarget; + if (target != BuildTarget.Android && target != BuildTarget.iOS && target != BuildTarget.tvOS && target != BuildTarget.Switch) + return RenderTextureFormat.DefaultHDR; +#endif // UNITY_EDITOR + if (SystemInfo.SupportsRenderTextureFormat(format)) + return format; +#endif // UNITY_ANDROID || UNITY_IPHONE || UNITY_TVOS || UNITY_SWITCH || UNITY_EDITOR + return RenderTextureFormat.DefaultHDR; + } + } + + private RenderTextureFormat sourceFormat { get { return hbaoCamera.allowHDR ? defaultHDRRenderTextureFormat : RenderTextureFormat.Default; } } + //private static RenderTextureFormat colorFormat { get { return SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGB64) ? RenderTextureFormat.ARGB64 : RenderTextureFormat.ARGB32; } } + private static RenderTextureFormat colorFormat { get { return SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGBHalf) ? RenderTextureFormat.ARGBHalf : RenderTextureFormat.Default; } } + private static RenderTextureFormat depthFormat { get { return SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RFloat) ? RenderTextureFormat.RFloat : RenderTextureFormat.RHalf; } } + private static RenderTextureFormat normalsFormat { get { return SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGB2101010) ? RenderTextureFormat.ARGB2101010 : RenderTextureFormat.Default; } } + private static bool isLinearColorSpace { get { return QualitySettings.activeColorSpace == ColorSpace.Linear; } } + private bool renderingInSceneView { get { return hbaoCamera.cameraType == CameraType.SceneView; } } + + private RenderTextureDescriptor m_sourceDescriptor; + private string[] m_ShaderKeywords; + private Vector4[] m_UVToViewPerEye = new Vector4[2]; + private float[] m_RadiusPerEye = new float[2]; + private bool m_IsCommandBufferDirty; + private Mesh m_FullscreenTriangle; + private PipelineStage? m_PreviousPipelineStage; + private Resolution? m_PreviousResolution; + private Deinterleaving? m_PreviousDeinterleaving; + private DebugMode? m_PreviousDebugMode; + private NoiseType? m_PreviousNoiseType; + private BlurType? m_PreviousBlurAmount; + private int m_PreviousWidth; + private int m_PreviousHeight; + private bool m_PreviousAllowHDR; + private bool m_PreviousUseMultibounce; + private bool m_PreviousColorBleedingEnabled; + private bool m_PreviousTemporalFilterEnabled; + private RenderingPath m_PreviousRenderingPath; + private StereoRenderingMode m_PrevStereoRenderingMode; + + + void OnEnable() + { + if (!SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.Depth)) + { + Debug.LogWarning("HBAO shader is not supported on this platform."); + this.enabled = false; + return; + } + + if (hbaoShader == null) hbaoShader = Shader.Find("Hidden/HBAO"); + if (hbaoShader == null) + { + Debug.LogError("HBAO shader was not found..."); + return; + } + + if (!hbaoShader.isSupported) + { + Debug.LogWarning("HBAO shader is not supported on this platform."); + this.enabled = false; + return; + } + + Initialize(); + } + + void OnDisable() + { + ClearCommandBuffer(cmdBuffer); + + ReleaseHistoryBuffers(); + + if (material != null) + DestroyImmediate(material); + if (noiseTex != null) + DestroyImmediate(noiseTex); + if (fullscreenTriangle != null) + DestroyImmediate(fullscreenTriangle); + } + + void OnPreRender() + { + if (hbaoShader == null || hbaoCamera == null) return; + + FetchRenderParameters(); + CheckParameters(); + UpdateMaterialProperties(); + UpdateShaderKeywords(); + + if (isCommandBufferDirty) + { + ClearCommandBuffer(cmdBuffer); + BuildCommandBuffer(cmdBuffer, cameraEvent); + hbaoCamera.AddCommandBuffer(cameraEvent, cmdBuffer); + isCommandBufferDirty = false; + } + } + + void OnPostRender() + { + frameCount++; + } + + void OnValidate() + { + if (hbaoShader == null || hbaoCamera == null) return; + + CheckParameters(); + } + + private void Initialize() + { + m_sourceDescriptor = new RenderTextureDescriptor(0, 0); + + hbaoCamera = GetComponent(); + hbaoCamera.forceIntoRenderTexture = true; + + material = new Material(hbaoShader); + material.hideFlags = HideFlags.HideAndDontSave; + + // For platforms not supporting motion vectors texture + // https://docs.unity3d.com/ScriptReference/DepthTextureMode.MotionVectors.html + motionVectorsSupported = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RGHalf); + + cmdBuffer = new CommandBuffer { name = "HBAO" }; + isCommandBufferDirty = true; + } + + private void FetchRenderParameters() + { +#if !UNITY_SWITCH && ENABLE_VR_MODULE && ENABLE_VR + if (hbaoCamera.stereoEnabled) + { + var xrDesc = XRSettings.eyeTextureDesc; + stereoRenderingMode = StereoRenderingMode.MultiPass; + +#if UNITY_STANDALONE || UNITY_EDITOR || UNITY_PS4 || UNITY_PS5 || UNITY_ANDROID + if (xrDesc.dimension == TextureDimension.Tex2DArray) + stereoRenderingMode = StereoRenderingMode.SinglePassInstanced; +#endif + + width = xrDesc.width; + height = xrDesc.height; + m_sourceDescriptor = xrDesc; + xrActiveEye = (int)hbaoCamera.stereoActiveEye; + screenWidth = XRSettings.eyeTextureWidth; + screenHeight = XRSettings.eyeTextureHeight; + stereoActive = true; + } + else +#endif + { + width = hbaoCamera.pixelWidth; + height = hbaoCamera.pixelHeight; + m_sourceDescriptor.width = width; + m_sourceDescriptor.height = height; + xrActiveEye = 0; + screenWidth = width; + screenHeight = height; + stereoActive = false; + } + + var downsamplingFactor = generalSettings.resolution == Resolution.Full ? 1 : generalSettings.deinterleaving == Deinterleaving.Disabled ? 2 : 1; + if (downsamplingFactor > 1) + { + aoWidth = (width + width % 2) / downsamplingFactor; + aoHeight = (height + height % 2) / downsamplingFactor; + } + else + { + aoWidth = width; + aoHeight = height; + } + + reinterleavedAoWidth = width + (width % 4 == 0 ? 0 : 4 - (width % 4)); + reinterleavedAoHeight = height + (height % 4 == 0 ? 0 : 4 - (height % 4)); + deinterleavedAoWidth = reinterleavedAoWidth / 4; + deinterleavedAoHeight = reinterleavedAoHeight / 4; + } + + private void AllocateHistoryBuffers() + { + ReleaseHistoryBuffers(); + + aoHistoryBuffer = GetScreenSpaceRT(widthOverride: aoWidth, heightOverride: aoHeight, colorFormat: colorFormat, readWrite: RenderTextureReadWrite.Linear); + if (colorBleedingSettings.enabled) + colorBleedingHistoryBuffer = GetScreenSpaceRT(widthOverride: aoWidth, heightOverride: aoHeight, colorFormat: colorFormat, readWrite: RenderTextureReadWrite.Linear); + + // Clear history buffers to default + var lastActive = RenderTexture.active; + RenderTexture.active = aoHistoryBuffer; + GL.Clear(false, true, Color.white); + if (colorBleedingSettings.enabled) + { + RenderTexture.active = colorBleedingHistoryBuffer; + GL.Clear(false, true, new Color(0, 0, 0, 1)); + } + RenderTexture.active = lastActive; + + frameCount = 0; + } + + private void ReleaseHistoryBuffers() + { + if (aoHistoryBuffer != null) + aoHistoryBuffer.Release(); + + if (colorBleedingHistoryBuffer != null) + colorBleedingHistoryBuffer.Release(); + } + + private void ClearCommandBuffer(CommandBuffer cmd) + { + if (cmd != null) + { + if (hbaoCamera != null) + { + hbaoCamera.RemoveCommandBuffer(CameraEvent.BeforeImageEffectsOpaque, cmd); + hbaoCamera.RemoveCommandBuffer(CameraEvent.AfterLighting, cmd); + hbaoCamera.RemoveCommandBuffer(CameraEvent.BeforeReflections, cmd); + } + cmd.Clear(); + } + } + + private void BuildCommandBuffer(CommandBuffer cmd, CameraEvent cameraEvent) + { + // AO + if (generalSettings.deinterleaving == Deinterleaving.Disabled) + { + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.hbaoTex, widthOverride: aoWidth, heightOverride: aoHeight, colorFormat: colorFormat, readWrite: RenderTextureReadWrite.Linear); + AO(cmd); + } + else + { + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.hbaoTex, widthOverride: reinterleavedAoWidth, heightOverride: reinterleavedAoHeight, colorFormat: colorFormat, readWrite: RenderTextureReadWrite.Linear); + DeinterleavedAO(cmd); + } + + // Blur + Blur(cmd); + + // Temporal Filter + TemporalFilter(cmd); + + // Composite + Composite(cmd, cameraEvent); + + ReleaseTemporaryRT(cmd, ShaderProperties.hbaoTex); + + //Debug.Log("CommandBuffer has been rebuilt"); + } + + private void AO(CommandBuffer cmd) + { + BlitFullscreenTriangleWithClear(cmd, BuiltinRenderTextureType.CameraTarget, ShaderProperties.hbaoTex, material, new Color(0, 0, 0, 1), Pass.AO); + } + + private void DeinterleavedAO(CommandBuffer cmd) + { + // Deinterleave depth & normals (4x4) + for (int i = 0; i < 4; i++) + { + var rtsDepth = new RenderTargetIdentifier[] { + ShaderProperties.depthSliceTex[(i << 2) + 0], + ShaderProperties.depthSliceTex[(i << 2) + 1], + ShaderProperties.depthSliceTex[(i << 2) + 2], + ShaderProperties.depthSliceTex[(i << 2) + 3] + }; + var rtsNormals = new RenderTargetIdentifier[] { + ShaderProperties.normalsSliceTex[(i << 2) + 0], + ShaderProperties.normalsSliceTex[(i << 2) + 1], + ShaderProperties.normalsSliceTex[(i << 2) + 2], + ShaderProperties.normalsSliceTex[(i << 2) + 3] + }; + + int offsetX = (i & 1) << 1; int offsetY = (i >> 1) << 1; + cmd.SetGlobalVector(ShaderProperties.deinterleaveOffset[0], new Vector2(offsetX + 0, offsetY + 0)); + cmd.SetGlobalVector(ShaderProperties.deinterleaveOffset[1], new Vector2(offsetX + 1, offsetY + 0)); + cmd.SetGlobalVector(ShaderProperties.deinterleaveOffset[2], new Vector2(offsetX + 0, offsetY + 1)); + cmd.SetGlobalVector(ShaderProperties.deinterleaveOffset[3], new Vector2(offsetX + 1, offsetY + 1)); + for (int j = 0; j < 4; j++) + { + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.depthSliceTex[j + 4 * i], widthOverride: deinterleavedAoWidth, heightOverride: deinterleavedAoHeight, colorFormat: depthFormat, readWrite: RenderTextureReadWrite.Linear, filter: FilterMode.Point); + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.normalsSliceTex[j + 4 * i], widthOverride: deinterleavedAoWidth, heightOverride: deinterleavedAoHeight, colorFormat: normalsFormat, readWrite: RenderTextureReadWrite.Linear, filter: FilterMode.Point); + } + BlitFullscreenTriangle(cmd, BuiltinRenderTextureType.CameraTarget, rtsDepth, material, Pass.Deinterleave_Depth); // outputs 4 render textures + BlitFullscreenTriangle(cmd, BuiltinRenderTextureType.CameraTarget, rtsNormals, material, Pass.Deinterleave_Normals); // outputs 4 render textures + } + + // AO on each layer + for (int i = 0; i < 4 * 4; i++) + { + cmd.SetGlobalTexture(ShaderProperties.depthTex, ShaderProperties.depthSliceTex[i]); + cmd.SetGlobalTexture(ShaderProperties.normalsTex, ShaderProperties.normalsSliceTex[i]); + cmd.SetGlobalVector(ShaderProperties.jitter, s_jitter[i]); + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.aoSliceTex[i], widthOverride: deinterleavedAoWidth, heightOverride: deinterleavedAoHeight, colorFormat: colorFormat, readWrite: RenderTextureReadWrite.Linear, filter: FilterMode.Point); + BlitFullscreenTriangleWithClear(cmd, BuiltinRenderTextureType.CameraTarget, ShaderProperties.aoSliceTex[i], material, new Color(0, 0, 0, 1), Pass.AO_Deinterleaved); // ao + ReleaseTemporaryRT(cmd, ShaderProperties.depthSliceTex[i]); + ReleaseTemporaryRT(cmd, ShaderProperties.normalsSliceTex[i]); + } + + // Atlas Deinterleaved AO, 4x4 + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.tempTex, widthOverride: reinterleavedAoWidth, heightOverride: reinterleavedAoHeight, colorFormat: colorFormat, readWrite: RenderTextureReadWrite.Linear); + for (int i = 0; i < 4 * 4; i++) + { + cmd.SetGlobalVector(ShaderProperties.atlasOffset, new Vector2(((i & 1) + (((i & 7) >> 2) << 1)) * deinterleavedAoWidth, (((i & 3) >> 1) + ((i >> 3) << 1)) * deinterleavedAoHeight)); + BlitFullscreenTriangle(cmd, ShaderProperties.aoSliceTex[i], ShaderProperties.tempTex, material, Pass.Atlas_AO_Deinterleaved); // atlassing + ReleaseTemporaryRT(cmd, ShaderProperties.aoSliceTex[i]); + } + + // Reinterleave AO + ApplyFlip(cmd); + BlitFullscreenTriangle(cmd, ShaderProperties.tempTex, ShaderProperties.hbaoTex, material, Pass.Reinterleave_AO); // reinterleave + ReleaseTemporaryRT(cmd, ShaderProperties.tempTex); + } + + private void Blur(CommandBuffer cmd) + { + if (blurSettings.type != BlurType.None) + { + float width = aoWidth; + float height = aoHeight; + if (hbaoCamera.allowDynamicResolution) + { + width *= ScalableBufferManager.widthScaleFactor; + height *= ScalableBufferManager.heightScaleFactor; + } + + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.tempTex, widthOverride: aoWidth, heightOverride: aoHeight, colorFormat: colorFormat, readWrite: RenderTextureReadWrite.Linear); + cmd.SetGlobalVector(ShaderProperties.blurDeltaUV, new Vector2(1f / width, 0)); + BlitFullscreenTriangle(cmd, ShaderProperties.hbaoTex, ShaderProperties.tempTex, material, Pass.Blur); // blur X + cmd.SetGlobalVector(ShaderProperties.blurDeltaUV, new Vector2(0, 1f / height)); + BlitFullscreenTriangle(cmd, ShaderProperties.tempTex, ShaderProperties.hbaoTex, material, Pass.Blur); // blur Y + ReleaseTemporaryRT(cmd, ShaderProperties.tempTex); + } + } + + private void TemporalFilter(CommandBuffer cmd) + { + if (isHistoryBufferDirty && temporalFilterSettings.enabled) + AllocateHistoryBuffers(); + + if (temporalFilterSettings.enabled && !renderingInSceneView) + { + if (colorBleedingSettings.enabled) + { + // For Color Bleeding we have 2 history buffers to fill so there are 2 render targets. + // AO is still contained in Color Bleeding history buffer (alpha channel) so that we + // can use it as a render texture for the composite pass. + var rts = new RenderTargetIdentifier[] { + aoHistoryBuffer, + colorBleedingHistoryBuffer + }; + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.tempTex, widthOverride: aoWidth, heightOverride: aoHeight, colorFormat: colorFormat, readWrite: RenderTextureReadWrite.Linear); + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.tempTex2, widthOverride: aoWidth, heightOverride: aoHeight, colorFormat: colorFormat, readWrite: RenderTextureReadWrite.Linear); + BlitFullscreenTriangle(cmd, aoHistoryBuffer, ShaderProperties.tempTex2, material, Pass.Copy); + BlitFullscreenTriangle(cmd, colorBleedingHistoryBuffer, ShaderProperties.tempTex, material, Pass.Copy); + BlitFullscreenTriangle(cmd, ShaderProperties.tempTex2, rts, material, Pass.Temporal_Filter); + ReleaseTemporaryRT(cmd, ShaderProperties.tempTex); + ReleaseTemporaryRT(cmd, ShaderProperties.tempTex2); + cmd.SetGlobalTexture(ShaderProperties.hbaoTex, colorBleedingHistoryBuffer); + } + else + { + // AO history buffer contains ao in aplha channel so we can just use history as + // a render texture for the composite pass. + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.tempTex, widthOverride: aoWidth, heightOverride: aoHeight, colorFormat: colorFormat, readWrite: RenderTextureReadWrite.Linear); + BlitFullscreenTriangle(cmd, aoHistoryBuffer, ShaderProperties.tempTex, material, Pass.Copy); + BlitFullscreenTriangle(cmd, ShaderProperties.tempTex, aoHistoryBuffer, material, Pass.Temporal_Filter); + ReleaseTemporaryRT(cmd, ShaderProperties.tempTex); + cmd.SetGlobalTexture(ShaderProperties.hbaoTex, aoHistoryBuffer); + } + } + } + + private void Composite(CommandBuffer cmd, CameraEvent cameraEvent) + { + if (generalSettings.debugMode == DebugMode.Disabled) + { + if (cameraEvent == CameraEvent.BeforeReflections) + CompositeBeforeReflections(cmd); + else if (cameraEvent == CameraEvent.AfterLighting) + CompositeAfterLighting(cmd); + else // if (BeforeImageEffectsOpaque) + CompositeBeforeImageEffectsOpaque(cmd); + } + else // debug mode + CompositeDebug(cmd, generalSettings.debugMode == DebugMode.ViewNormals ? Pass.Debug_ViewNormals : Pass.Composite); + } + + // Cases of BeforeReflections & AfterLighting + // If using HDR there’s no separate rendertarget being created for Emission+lighting buffer (RT3); + // instead the rendertarget that the Camera renders into (that is, the one that is passed to the image effects) is used as RT3. + // If non-HDR GBuffer3 texture is available. HDR uses ARGBHalf, non-HDR uses ARGB2101010 + // Emission + lighting buffer(RT3) is logarithmically encoded to provide greater dynamic range than is usually possible with + // an ARGB32 texture, when the Camera is not using HDR. + // https://docs.unity3d.com/Manual/RenderTech-DeferredShading.html + + private void CompositeBeforeReflections(CommandBuffer cmd) + { + var hdr = hbaoCamera.allowHDR; + var rts = new RenderTargetIdentifier[] { + BuiltinRenderTextureType.GBuffer0, // Albedo, Occ + hdr ? BuiltinRenderTextureType.CameraTarget : BuiltinRenderTextureType.GBuffer3 // Ambient + }; + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.tempTex, colorFormat: RenderTextureFormat.ARGB32); + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.tempTex2, colorFormat: hdr ? RenderTextureFormat.ARGBHalf : RenderTextureFormat.ARGB2101010); + BlitFullscreenTriangle(cmd, rts[0], ShaderProperties.tempTex, material, Pass.Copy); + BlitFullscreenTriangle(cmd, rts[1], ShaderProperties.tempTex2, material, Pass.Copy); + BlitFullscreenTriangle(cmd, ShaderProperties.tempTex2, rts, material, Pass.Composite_BeforeReflections); + ReleaseTemporaryRT(cmd, ShaderProperties.tempTex); + ReleaseTemporaryRT(cmd, ShaderProperties.tempTex2); + } + + private void CompositeAfterLighting(CommandBuffer cmd) + { + var hdr = hbaoCamera.allowHDR; + var rt3 = hdr ? BuiltinRenderTextureType.CameraTarget : BuiltinRenderTextureType.GBuffer3; + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.tempTex, colorFormat: hdr ? RenderTextureFormat.ARGBHalf : RenderTextureFormat.ARGB2101010); + BlitFullscreenTriangle(cmd, rt3, ShaderProperties.tempTex, material, Pass.Copy); + BlitFullscreenTriangle(cmd, ShaderProperties.tempTex, rt3, material, Pass.Composite_AfterLighting); + ReleaseTemporaryRT(cmd, ShaderProperties.tempTex); + } + + private void CompositeBeforeImageEffectsOpaque(CommandBuffer cmd) + { + if (aoSettings.useMultiBounce) + { + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.tempTex, colorFormat: sourceFormat); + if (stereoActive && hbaoCamera.actualRenderingPath != RenderingPath.DeferredShading) + cmd.Blit(BuiltinRenderTextureType.CameraTarget, ShaderProperties.tempTex); + else + BlitFullscreenTriangle(cmd, BuiltinRenderTextureType.CameraTarget, ShaderProperties.tempTex, material, Pass.Copy); + } + + ApplyFlip(cmd, SystemInfo.graphicsUVStartsAtTop); + BlitFullscreenTriangle(cmd, aoSettings.useMultiBounce ? (RenderTargetIdentifier)ShaderProperties.tempTex : BuiltinRenderTextureType.None, BuiltinRenderTextureType.CameraTarget, material, Pass.Composite_BlendAO); + if (colorBleedingSettings.enabled) + BlitFullscreenTriangle(cmd, BuiltinRenderTextureType.None, BuiltinRenderTextureType.CameraTarget, material, Pass.Composite_BlendCB); + + if (aoSettings.useMultiBounce) + ReleaseTemporaryRT(cmd, ShaderProperties.tempTex); + } + + private void CompositeDebug(CommandBuffer cmd, int finalPassId = Pass.Composite) + { + GetScreenSpaceTemporaryRT(cmd, ShaderProperties.tempTex, colorFormat: sourceFormat); + if (stereoActive && hbaoCamera.actualRenderingPath != RenderingPath.DeferredShading) + cmd.Blit(BuiltinRenderTextureType.CameraTarget, ShaderProperties.tempTex); + else + BlitFullscreenTriangle(cmd, BuiltinRenderTextureType.CameraTarget, ShaderProperties.tempTex, material, Pass.Copy); + ApplyFlip(cmd, SystemInfo.graphicsUVStartsAtTop); + BlitFullscreenTriangle(cmd, ShaderProperties.tempTex, BuiltinRenderTextureType.CameraTarget, material, finalPassId); + ReleaseTemporaryRT(cmd, ShaderProperties.tempTex); + } + + private void UpdateMaterialProperties() + { + int eyeCount = stereoActive && stereoRenderingMode == StereoRenderingMode.SinglePassInstanced && !renderingInSceneView ? 2 : 1; + for (int viewIndex = 0; viewIndex < eyeCount; viewIndex++) + { + var projMatrix = viewIndex == 0 ? hbaoCamera.projectionMatrix : hbaoCamera.GetStereoProjectionMatrix(Camera.StereoscopicEye.Right); + float invTanHalfFOVxAR = projMatrix.m00; // m00 => 1.0f / (tanHalfFOV * aspectRatio) + float invTanHalfFOV = projMatrix.m11; // m11 => 1.0f / tanHalfFOV + m_UVToViewPerEye[viewIndex == 0 ? xrActiveEye : viewIndex] = new Vector4(2.0f / invTanHalfFOVxAR, -2.0f / invTanHalfFOV, -1.0f / invTanHalfFOVxAR, 1.0f / invTanHalfFOV); + m_RadiusPerEye[viewIndex == 0 ? xrActiveEye : viewIndex] = aoSettings.radius * 0.5f * (screenHeight / (generalSettings.deinterleaving == Deinterleaving.x4 ? 4 : 1) / (2.0f / invTanHalfFOV)); + } + + //float tanHalfFovY = Mathf.Tan(0.5f * hbaoCamera.fieldOfView * Mathf.Deg2Rad); + //float invFocalLenX = 1.0f / (1.0f / tanHalfFovY * (screenHeight / (float)screenWidth)); + //float invFocalLenY = 1.0f / (1.0f / tanHalfFovY); + float maxRadInPixels = Mathf.Max(16, aoSettings.maxRadiusPixels * Mathf.Sqrt((screenWidth * screenHeight) / (1080.0f * 1920.0f))); + maxRadInPixels /= (generalSettings.deinterleaving == Deinterleaving.x4 ? 4 : 1); + + var targetScale = generalSettings.deinterleaving == Deinterleaving.x4 ? + new Vector4(reinterleavedAoWidth / (float)width, reinterleavedAoHeight / (float)height, 1.0f / (reinterleavedAoWidth / (float)width), 1.0f / (reinterleavedAoHeight / (float)height)) : + generalSettings.resolution == Resolution.Half /*&& aoSettings.perPixelNormals == PerPixelNormals.Reconstruct*/ ? + new Vector4((width + 0.5f) / width, (height + 0.5f) / height, 1f, 1f) : + Vector4.one; + + material.SetTexture(ShaderProperties.noiseTex, noiseTex); + material.SetVector(ShaderProperties.inputTexelSize, new Vector4(1f / width, 1f / height, width, height)); + if (hbaoCamera.allowDynamicResolution) + material.SetVector(ShaderProperties.aoTexelSize, new Vector4(1f / (aoWidth * ScalableBufferManager.widthScaleFactor), 1f / (aoHeight * ScalableBufferManager.heightScaleFactor), aoWidth * ScalableBufferManager.widthScaleFactor, aoHeight * ScalableBufferManager.heightScaleFactor)); + else + material.SetVector(ShaderProperties.aoTexelSize, new Vector4(1f / aoWidth, 1f / aoHeight, aoWidth, aoHeight)); + material.SetVector(ShaderProperties.deinterleavedAOTexelSize, new Vector4(1.0f / deinterleavedAoWidth, 1.0f / deinterleavedAoHeight, deinterleavedAoWidth, deinterleavedAoHeight)); + material.SetVector(ShaderProperties.reinterleavedAOTexelSize, new Vector4(1f / reinterleavedAoWidth, 1f / reinterleavedAoHeight, reinterleavedAoWidth, reinterleavedAoHeight)); + material.SetVector(ShaderProperties.targetScale, targetScale); + //material.SetVector(ShaderProperties.uvToView, new Vector4(2.0f * invFocalLenX, -2.0f * invFocalLenY, -1.0f * invFocalLenX, 1.0f * invFocalLenY)); + material.SetVectorArray(ShaderProperties.uvToView, m_UVToViewPerEye); + //material.SetMatrix(ShaderProperties.worldToCameraMatrix, hbaoCamera.worldToCameraMatrix); + //material.SetFloat(ShaderProperties.radius, aoSettings.radius * 0.5f * ((screenHeight / (generalSettings.deinterleaving == Deinterleaving.x4 ? 4 : 1)) / (tanHalfFovY * 2.0f))); + //material.SetFloat(ShaderProperties.radius, aoSettings.radius * 0.5f * ((screenHeight / (generalSettings.deinterleaving == Deinterleaving.x4 ? 4 : 1)) / (invFocalLenY * 2.0f))); + material.SetFloatArray(ShaderProperties.radius, m_RadiusPerEye); + material.SetFloat(ShaderProperties.maxRadiusPixels, maxRadInPixels); + material.SetFloat(ShaderProperties.negInvRadius2, -1.0f / (aoSettings.radius * aoSettings.radius)); + material.SetFloat(ShaderProperties.angleBias, aoSettings.bias); + material.SetFloat(ShaderProperties.aoMultiplier, 2.0f * (1.0f / (1.0f - aoSettings.bias))); + material.SetFloat(ShaderProperties.intensity, isLinearColorSpace ? aoSettings.intensity : aoSettings.intensity * 0.454545454545455f); + material.SetColor(ShaderProperties.baseColor, aoSettings.baseColor); + material.SetFloat(ShaderProperties.multiBounceInfluence, aoSettings.multiBounceInfluence); + material.SetFloat(ShaderProperties.offscreenSamplesContrib, aoSettings.offscreenSamplesContribution); + material.SetFloat(ShaderProperties.maxDistance, aoSettings.maxDistance); + material.SetFloat(ShaderProperties.distanceFalloff, aoSettings.distanceFalloff); + material.SetFloat(ShaderProperties.blurSharpness, blurSettings.sharpness); + material.SetFloat(ShaderProperties.colorBleedSaturation, colorBleedingSettings.saturation); + material.SetFloat(ShaderProperties.albedoMultiplier, colorBleedingSettings.albedoMultiplier); + material.SetFloat(ShaderProperties.colorBleedBrightnessMask, colorBleedingSettings.brightnessMask); + material.SetVector(ShaderProperties.colorBleedBrightnessMaskRange, AdjustBrightnessMaskToGammaSpace(new Vector2(Mathf.Pow(colorBleedingSettings.brightnessMaskRange.x, 3), Mathf.Pow(colorBleedingSettings.brightnessMaskRange.y, 3)))); + material.SetVector(ShaderProperties.temporalParams, temporalFilterSettings.enabled && !renderingInSceneView ? new Vector2(s_temporalRotations[frameCount % 6] / 360.0f, s_temporalOffsets[frameCount % 4]) : Vector2.zero); + } + + private void UpdateShaderKeywords() + { + if (m_ShaderKeywords == null || m_ShaderKeywords.Length != 12) m_ShaderKeywords = new string[12]; + + m_ShaderKeywords[0] = ShaderProperties.GetOrthographicOrDeferredKeyword(hbaoCamera.orthographic, generalSettings); + m_ShaderKeywords[1] = ShaderProperties.GetQualityKeyword(generalSettings); + m_ShaderKeywords[2] = ShaderProperties.GetNoiseKeyword(generalSettings); + m_ShaderKeywords[3] = ShaderProperties.GetDeinterleavingKeyword(generalSettings); + m_ShaderKeywords[4] = ShaderProperties.GetDebugKeyword(generalSettings); + m_ShaderKeywords[5] = ShaderProperties.GetMultibounceKeyword(aoSettings); + m_ShaderKeywords[6] = ShaderProperties.GetOffscreenSamplesContributionKeyword(aoSettings); + m_ShaderKeywords[7] = ShaderProperties.GetPerPixelNormalsKeyword(aoSettings); + m_ShaderKeywords[8] = ShaderProperties.GetBlurRadiusKeyword(blurSettings); + m_ShaderKeywords[9] = ShaderProperties.GetVarianceClippingKeyword(temporalFilterSettings); + m_ShaderKeywords[10] = ShaderProperties.GetColorBleedingKeyword(colorBleedingSettings); + m_ShaderKeywords[11] = ShaderProperties.GetLightingLogEncodedKeyword(hbaoCamera.allowHDR); + + material.shaderKeywords = m_ShaderKeywords; + } + + private void CheckParameters() + { + // Camera textures + hbaoCamera.depthTextureMode |= DepthTextureMode.Depth; + if (aoSettings.perPixelNormals == PerPixelNormals.Camera) + hbaoCamera.depthTextureMode |= DepthTextureMode.DepthNormals; + if (temporalFilterSettings.enabled) + hbaoCamera.depthTextureMode |= DepthTextureMode.MotionVectors; + + // Settings to force + if (hbaoCamera.actualRenderingPath != RenderingPath.DeferredShading && aoSettings.perPixelNormals == PerPixelNormals.GBuffer) + SetAoPerPixelNormals(PerPixelNormals.Camera); + + if (generalSettings.deinterleaving != Deinterleaving.Disabled && SystemInfo.supportedRenderTargetCount < 4) + SetDeinterleaving(Deinterleaving.Disabled); + + if (generalSettings.pipelineStage != PipelineStage.BeforeImageEffectsOpaque && hbaoCamera.actualRenderingPath != RenderingPath.DeferredShading) + SetPipelineStage(PipelineStage.BeforeImageEffectsOpaque); + + if (generalSettings.pipelineStage != PipelineStage.BeforeImageEffectsOpaque && aoSettings.perPixelNormals == PerPixelNormals.Camera) + SetAoPerPixelNormals(PerPixelNormals.GBuffer); + + if (stereoActive && hbaoCamera.actualRenderingPath != RenderingPath.DeferredShading && aoSettings.perPixelNormals != PerPixelNormals.Reconstruct) + SetAoPerPixelNormals(PerPixelNormals.Reconstruct); + + if (temporalFilterSettings.enabled && !motionVectorsSupported) + EnableTemporalFilter(false); + + if (colorBleedingSettings.enabled && temporalFilterSettings.enabled && SystemInfo.supportedRenderTargetCount < 2) + EnableTemporalFilter(false); + + // Noise texture + if (noiseTex == null || m_PreviousNoiseType != generalSettings.noiseType) + { + if (noiseTex != null) DestroyImmediate(noiseTex); + + CreateNoiseTexture(); + + m_PreviousNoiseType = generalSettings.noiseType; + } + } + + private RenderTextureDescriptor GetDefaultDescriptor(int depthBufferBits = 0, RenderTextureFormat colorFormat = RenderTextureFormat.Default, RenderTextureReadWrite readWrite = RenderTextureReadWrite.Default) + { + var modifiedDesc = new RenderTextureDescriptor(m_sourceDescriptor.width, m_sourceDescriptor.height, + m_sourceDescriptor.colorFormat, depthBufferBits); + modifiedDesc.dimension = m_sourceDescriptor.dimension; + modifiedDesc.volumeDepth = m_sourceDescriptor.volumeDepth; + modifiedDesc.vrUsage = m_sourceDescriptor.vrUsage; + modifiedDesc.msaaSamples = m_sourceDescriptor.msaaSamples; + modifiedDesc.memoryless = m_sourceDescriptor.memoryless; + + modifiedDesc.useMipMap = m_sourceDescriptor.useMipMap; + modifiedDesc.autoGenerateMips = m_sourceDescriptor.autoGenerateMips; + modifiedDesc.enableRandomWrite = m_sourceDescriptor.enableRandomWrite; + modifiedDesc.shadowSamplingMode = m_sourceDescriptor.shadowSamplingMode; + + if (hbaoCamera.allowDynamicResolution) + modifiedDesc.useDynamicScale = true; + + if (colorFormat != RenderTextureFormat.Default) + modifiedDesc.colorFormat = colorFormat; + + if (readWrite == RenderTextureReadWrite.sRGB) + modifiedDesc.sRGB = true; + else if (readWrite == RenderTextureReadWrite.Linear) + modifiedDesc.sRGB = false; + else if (readWrite == RenderTextureReadWrite.Default) + modifiedDesc.sRGB = isLinearColorSpace; + + return modifiedDesc; + } + + private RenderTexture GetScreenSpaceRT(int depthBufferBits = 0, RenderTextureFormat colorFormat = RenderTextureFormat.Default, RenderTextureReadWrite readWrite = RenderTextureReadWrite.Default, + FilterMode filter = FilterMode.Bilinear, int widthOverride = 0, int heightOverride = 0) + { + var desc = GetDefaultDescriptor(depthBufferBits, colorFormat, readWrite); + if (widthOverride > 0) + desc.width = widthOverride; + if (heightOverride > 0) + desc.height = heightOverride; + + var rt = new RenderTexture(desc); + rt.filterMode = filter; + return rt; + } + + private void GetScreenSpaceTemporaryRT(CommandBuffer cmd, int nameID, + int depthBufferBits = 0, RenderTextureFormat colorFormat = RenderTextureFormat.Default, RenderTextureReadWrite readWrite = RenderTextureReadWrite.Default, + FilterMode filter = FilterMode.Bilinear, int widthOverride = 0, int heightOverride = 0) + { + var desc = GetDefaultDescriptor(depthBufferBits, colorFormat, readWrite); + if (widthOverride > 0) + desc.width = widthOverride; + if (heightOverride > 0) + desc.height = heightOverride; + + cmd.GetTemporaryRT(nameID, desc, filter); + } + + private void ReleaseTemporaryRT(CommandBuffer cmd, int nameID) + { + cmd.ReleaseTemporaryRT(nameID); + } + + private void BlitFullscreenTriangle(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier destination, Material material, int pass = 0) + { + cmd.SetGlobalTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(destination, 0, CubemapFace.Unknown, -1); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, pass); + } + + private void BlitFullscreenTriangle(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier[] destinations, Material material, int pass = 0) + { + cmd.SetGlobalTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(destinations, destinations[0], 0, CubemapFace.Unknown, -1); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, pass); + } + + private void BlitFullscreenTriangleWithClear(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier destination, Material material, Color clearColor, int pass = 0) + { + cmd.SetGlobalTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(destination, 0, CubemapFace.Unknown, -1); + cmd.ClearRenderTarget(false, true, clearColor); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, pass); + } + + private static void ApplyFlip(CommandBuffer cmd, bool flip = true) + { + if (flip) + cmd.SetGlobalVector(ShaderProperties.uvTransform, new Vector4(1f, -1f, 0f, 1f)); + else + cmd.SetGlobalVector(ShaderProperties.uvTransform, new Vector4(1f, 1f, 0f, 0f)); + } + + private static Vector2 AdjustBrightnessMaskToGammaSpace(Vector2 v) + { + return isLinearColorSpace ? v : ToGammaSpace(v); + } + + private static float ToGammaSpace(float v) + { + return Mathf.Pow(v, 0.454545454545455f); + } + + private static Vector2 ToGammaSpace(Vector2 v) + { + return new Vector2(ToGammaSpace(v.x), ToGammaSpace(v.y)); + } + + private void CreateNoiseTexture() + { + noiseTex = new Texture2D(4, 4, SystemInfo.SupportsTextureFormat(TextureFormat.RGHalf) ? TextureFormat.RGHalf : TextureFormat.RGB24, false, true); + noiseTex.filterMode = FilterMode.Point; + noiseTex.wrapMode = TextureWrapMode.Repeat; + int z = 0; + for (int x = 0; x < 4; ++x) + { + for (int y = 0; y < 4; ++y) + { + float r1 = generalSettings.noiseType != NoiseType.Dither ? 0.25f * (0.0625f * ((x + y & 3) << 2) + (x & 3)) : MersenneTwister.Numbers[z++]; + float r2 = generalSettings.noiseType != NoiseType.Dither ? 0.25f * ((y - x) & 3) : MersenneTwister.Numbers[z++]; + Color color = new Color(r1, r2, 0); + noiseTex.SetPixel(x, y, color); + } + } + noiseTex.Apply(); + + for (int i = 0, j = 0; i < s_jitter.Length; ++i) + { + float r1 = MersenneTwister.Numbers[j++]; + float r2 = MersenneTwister.Numbers[j++]; + s_jitter[i] = new Vector2(r1, r2); + } + } + } +} diff --git a/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.cs.meta b/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.cs.meta new file mode 100644 index 0000000..3f38d59 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.cs.meta @@ -0,0 +1,21 @@ +fileFormatVersion: 2 +guid: e1580e32f765c994b86a57bb3c49fe75 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - noiseTex: {instanceID: 0} + - quadMesh: {instanceID: 0} + - hbaoShader: {fileID: 4800000, guid: 7b834eafaedd0d842bb05a969d9d14bd, type: 3} + executionOrder: 0 + icon: {fileID: 2800000, guid: 6daa87e2aaa1bb04d930ca4b4bc926a7, type: 3} + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Runtime/HBAO.cs + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/SRP.meta b/Assets/Horizon Based Ambient Occlusion/SRP.meta new file mode 100644 index 0000000..4d695dc --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b9eaca9eab5e52347a811cead6015f6f +folderAsset: yes +timeCreated: 1582907081 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP.meta new file mode 100644 index 0000000..6f6ed41 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4c2f710d028e8644b9e7012d3657c785 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor.meta new file mode 100644 index 0000000..ccf8aaf --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a82bfeb39ff8ba5459ceb4eb8d655938 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAO.Universal.Editor.asmdef b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAO.Universal.Editor.asmdef new file mode 100644 index 0000000..b34bf56 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAO.Universal.Editor.asmdef @@ -0,0 +1,20 @@ +{ + "name": "HBAO.Universal.Editor", + "rootNamespace": "", + "references": [ + "GUID:09d385cb911270749b709e1bb48e9ea1", + "GUID:df380645f10b7bc4b97d4f5eb6303d95", + "GUID:3eae0364be2026648bf74846acb8a731" + ], + "includePlatforms": [ + "Editor" + ], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAO.Universal.Editor.asmdef.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAO.Universal.Editor.asmdef.meta new file mode 100644 index 0000000..a0d5694 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAO.Universal.Editor.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: f352a4e1c986a0b4e8661cfff9c14881 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAOEditor.cs b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAOEditor.cs new file mode 100644 index 0000000..d31e1f6 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAOEditor.cs @@ -0,0 +1,327 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Reflection; +using UnityEditor; +using UnityEditor.Rendering; +using UnityEngine; +using UnityEngine.Rendering; + +namespace HorizonBasedAmbientOcclusion.Universal +{ +#if UNITY_2022_2_OR_NEWER + [CustomEditor(typeof(HBAO), true)] +#else + [VolumeComponentEditor(typeof(HBAO))] +#endif + public class HBAOEditor : VolumeComponentEditor + { + private HBAO m_HBAO; + private Texture2D m_HBAOTex; + private GUIStyle m_SettingsGroupStyle; + private GUIStyle m_TitleLabelStyle; + private int m_SelectedPreset; + private PropertyFetcher m_PropertyFetcher; + + // settings group + private Dictionary> m_GroupFields; + private readonly Dictionary m_Presets = new Dictionary() + { + { 0, HBAO.Preset.Normal }, + { 1, HBAO.Preset.FastPerformance }, + { 2, HBAO.Preset.FastestPerformance }, + { 3, HBAO.Preset.Custom }, + { 4, HBAO.Preset.HighQuality }, + { 5, HBAO.Preset.HighestQuality } + }; + +#if UNITY_2021_2_OR_NEWER + public override bool hasAdditionalProperties => false; +#else + public override bool hasAdvancedMode => false; +#endif + + public override void OnEnable() + { + base.OnEnable(); + + m_HBAO = (HBAO)target; + m_HBAOTex = Resources.Load("hbao_urp"); + + //var o = new PropertyFetcher(serializedObject); + m_PropertyFetcher = new PropertyFetcher(serializedObject); + m_GroupFields = new Dictionary>(); + + var settings = m_HBAO.GetType().GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance) + .Where(t => t.FieldType.IsSubclassOf(typeof(VolumeParameter))) + .Where(t => (t.IsPublic && t.GetCustomAttributes(typeof(NonSerializedAttribute), false).Length == 0) || + (t.GetCustomAttributes(typeof(SerializeField), false).Length > 0)) + .Where(t => t.GetCustomAttributes(typeof(HideInInspector), false).Length == 0) + .Where(t => t.GetCustomAttributes(typeof(HBAO.SettingsGroup), false).Any()); + foreach (var setting in settings) + { + //Debug.Log("setting name: " + setting.Name); + + foreach (var attr in setting.GetCustomAttributes(typeof(HBAO.SettingsGroup)) as IEnumerable) + { + if (!m_GroupFields.ContainsKey(attr)) + m_GroupFields[attr] = new List(); + + m_GroupFields[attr].Add(setting); + } + } + + m_SelectedPreset = m_Presets.Values.ToList().IndexOf(m_HBAO.GetCurrentPreset()); + } + + public override void OnInspectorGUI() + { + SetStyles(); + + EditorGUILayout.BeginVertical(); + { + // header + GUILayout.Space(10.0f); + GUILayout.Label(m_HBAOTex, m_TitleLabelStyle, GUILayout.ExpandWidth(true)); + + //if (m_HBAO.GetComponents()[0] != m_HBAO) + //{ + //GUILayout.Space(6.0f); + //EditorGUILayout.HelpBox("This Post FX should be one of the first in your effect stack", MessageType.Info); + //} + + Event e = Event.current; + + // settings groups + foreach (var group in m_GroupFields) + { + GUILayout.Space(6.0f); + Rect rect = GUILayoutUtility.GetRect(16f, 22f, m_SettingsGroupStyle); + GUI.Box(rect, ObjectNames.NicifyVariableName(group.Key.GetType().Name), m_SettingsGroupStyle); + if (e.type == EventType.MouseDown && rect.Contains(e.mousePosition)) + { + group.Key.isExpanded = !group.Key.isExpanded; + e.Use(); + } + + if (!group.Key.isExpanded) + continue; + + // presets is a special case + if (group.Key.GetType() == typeof(HBAO.Presets)) + { + GUILayout.Space(6.0f); + m_SelectedPreset = GUILayout.SelectionGrid(m_SelectedPreset, m_Presets.Values.Select(x => ObjectNames.NicifyVariableName(x.ToString())).ToArray(), 3); + GUILayout.Space(6.0f); + if (GUILayout.Button("Apply Preset")) + { + Undo.RecordObject(target, "Apply Preset"); + m_HBAO.ApplyPreset(m_Presets[m_SelectedPreset]); + EditorUtility.SetDirty(target); + /*if (!EditorApplication.isPlaying) + { + UnityEditor.SceneManagement.EditorSceneManager.MarkSceneDirty(UnityEngine.SceneManagement.SceneManager.GetActiveScene()); + }*/ + } + + continue; + } + + foreach (var field in group.Value) + { + // warn about URP10+ required when mode is LitAO + if (group.Key.GetType() == typeof(HBAO.GeneralSettings) && field.Name == "renderingPath") + { +#if UNITY_2021_2_OR_NEWER + if (m_HBAO.mode.overrideState && m_HBAO.mode.value != HBAO.Mode.LitAO) + { + continue; // hides rendering path settings when not LitAO + } +#else + continue; // hides rendering path before URP12 +#endif + } + + // hide resolution when deinterleaved HBAO is on + if (group.Key.GetType() == typeof(HBAO.GeneralSettings) && field.Name == "resolution") + { + if (m_HBAO.deinterleaving.overrideState && m_HBAO.GetDeinterleaving() != HBAO.Deinterleaving.Disabled) + { + continue; + } + } + // hide noise type when deinterleaved HBAO is on + else if (group.Key.GetType() == typeof(HBAO.GeneralSettings) && field.Name == "noiseType") + { + if (m_HBAO.deinterleaving.overrideState && m_HBAO.GetDeinterleaving() != HBAO.Deinterleaving.Disabled) + { + continue; + } + } + // hide useMultiBounce setting when mode is LitAO + else if (group.Key.GetType() == typeof(HBAO.AOSettings) && field.Name == "useMultiBounce") + { + if (!m_HBAO.mode.overrideState || m_HBAO.mode.value == HBAO.Mode.LitAO) + { + continue; + } + } + // hide multiBounceInfluence setting when not used or when mode is LitAO + else if (group.Key.GetType() == typeof(HBAO.AOSettings) && field.Name == "multiBounceInfluence") + { + if (!m_HBAO.useMultiBounce.overrideState || !m_HBAO.UseMultiBounce() || + (!m_HBAO.mode.overrideState || m_HBAO.mode.value == HBAO.Mode.LitAO)) + { + continue; + } + } + // hide directLightingStrength setting when mode is normal + else if (group.Key.GetType() == typeof(HBAO.AOSettings) && field.Name == "directLightingStrength") + { + if (m_HBAO.mode.overrideState && m_HBAO.mode.value == HBAO.Mode.Normal) + { + continue; + } + } + // warn about distance falloff greater than max distance + else if (group.Key.GetType() == typeof(HBAO.AOSettings) && field.Name == "perPixelNormals") + { + if ((m_HBAO.distanceFalloff.overrideState || m_HBAO.maxDistance.overrideState) && m_HBAO.GetAoDistanceFalloff() > m_HBAO.GetAoMaxDistance()) + { + GUILayout.Space(6.0f); + EditorGUILayout.HelpBox("Distance Falloff shoudn't be greater than Max Distance.", MessageType.Warning); + } + } + // warn about motion vectors not supported + else if (group.Key.GetType() == typeof(HBAO.TemporalFilterSettings) && field.Name == "temporalFilterEnabled") + { + // For platforms not supporting motion vectors texture + // https://docs.unity3d.com/ScriptReference/DepthTextureMode.MotionVectors.html + if (!SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RGHalf)) + { + GUILayout.Space(6.0f); + EditorGUILayout.HelpBox("Motion vectors not supported on this platform...", MessageType.Warning); + + if (m_HBAO.IsTemporalFilterEnabled()) + m_HBAO.EnableTemporalFilter(false); + } + else + { +#if !UNITY_2021_2_OR_NEWER + GUILayout.Space(6.0f); + EditorGUILayout.HelpBox("Requires proper motion vectors support available in 2021.2+", MessageType.Warning); + + if (m_HBAO.IsTemporalFilterEnabled()) + m_HBAO.EnableTemporalFilter(false); +#else + if (IsVrRunning()) + { + GUILayout.Space(6.0f); + EditorGUILayout.HelpBox("Not supported yet in VR...", MessageType.Warning); + + if (m_HBAO.IsTemporalFilterEnabled()) + m_HBAO.EnableTemporalFilter(false); + } +#endif + } + } + // warn about color bleeding not supported when doing LitAO + else if (group.Key.GetType() == typeof(HBAO.ColorBleedingSettings) && field.Name == "colorBleedingEnabled") + { + if (!m_HBAO.mode.overrideState || m_HBAO.mode.value == HBAO.Mode.LitAO) + { + GUILayout.Space(6.0f); + EditorGUILayout.HelpBox("Color bleeding can't be used in LitAO mode as AO is being injected into the lighting.", MessageType.Warning); + + if (m_HBAO.IsColorBleedingEnabled()) + m_HBAO.EnableColorBleeding(false); + } + } + + var parameter = Unpack(m_PropertyFetcher.Find(field.Name)); + var displayName = parameter.displayName; + var hasDisplayName = field.GetCustomAttributes(typeof(HBAO.ParameterDisplayName)).Any(); + if (hasDisplayName) + { + var displayNameAttribute = field.GetCustomAttributes(typeof(HBAO.ParameterDisplayName)).First() as HBAO.ParameterDisplayName; + displayName = displayNameAttribute.name; + } + + PropertyField(parameter, new GUIContent(displayName)); + } + + GUILayout.Space(6.0f); + } + } + EditorGUILayout.EndVertical(); + } + + private void SetStyles() + { + // set banner label style + m_TitleLabelStyle = new GUIStyle(GUI.skin.label); + m_TitleLabelStyle.alignment = TextAnchor.MiddleCenter; + m_TitleLabelStyle.contentOffset = new Vector2(0f, 0f); + + // get shuriken module title style + GUIStyle skurikenModuleTitleStyle = "ShurikenModuleTitle"; + + // clone it as to not interfere with the original, and adjust it + m_SettingsGroupStyle = new GUIStyle(skurikenModuleTitleStyle); + m_SettingsGroupStyle.font = (new GUIStyle("Label")).font; + m_SettingsGroupStyle.fontStyle = FontStyle.Bold; + m_SettingsGroupStyle.border = new RectOffset(15, 7, 4, 4); + m_SettingsGroupStyle.fixedHeight = 22; + m_SettingsGroupStyle.contentOffset = new Vector2(10f, -2f); + } + + List displays = new List(); + + private bool IsVrRunning() + { + bool vrIsRunning = false; + displays.Clear(); + SubsystemManager.GetSubsystems(displays); + foreach (var displaySubsystem in displays) + { + if (displaySubsystem.running) + { + vrIsRunning = true; + break; + } + } + + return vrIsRunning; + } + + [VolumeParameterDrawer(typeof(HBAO.MinMaxFloatParameter))] + public class MaxFloatParameterDrawer : VolumeParameterDrawer + { + public override bool OnGUI(SerializedDataParameter parameter, GUIContent title) + { + if (parameter.value.propertyType == SerializedPropertyType.Vector2) + { + var o = parameter.GetObjectRef(); + var range = o.value; + float x = range.x; + float y = range.y; + + EditorGUI.BeginChangeCheck(); + EditorGUILayout.MinMaxSlider(title, ref x, ref y, o.min, o.max); + if (EditorGUI.EndChangeCheck()) + { + range.x = x; + range.y = y; + o.SetValue(new HBAO.MinMaxFloatParameter(range, o.min, o.max)); + } + return true; + } + else + { + EditorGUILayout.LabelField(title, "Use only with Vector2"); + return false; + } + } + } + } +} diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAOEditor.cs.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAOEditor.cs.meta new file mode 100644 index 0000000..f11400e --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/HBAOEditor.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e055f53efc7d248489d6579ce7685547 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources.meta new file mode 100644 index 0000000..02949c2 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2ad43aa805fd6dd44a59e307ed9aa4bc +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources/hbao_urp.png b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources/hbao_urp.png new file mode 100644 index 0000000..b939917 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources/hbao_urp.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d959bb0d5fdf2696a8841515e51a9d68214601cd40f70407bfe69c92667ab7dc +size 8881 diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources/hbao_urp.png.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources/hbao_urp.png.meta new file mode 100644 index 0000000..d1eb3e9 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Editor/Resources/hbao_urp.png.meta @@ -0,0 +1,115 @@ +fileFormatVersion: 2 +guid: ef156e8079ba9474aa9c13a37223ef49 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 10 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: 1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 2 + textureShape: 1 + singleChannelComponent: 0 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: WebGL + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime.meta new file mode 100644 index 0000000..9686f3f --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1f906a4e3c3820d4a9e15a21943c91ed +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.Universal.Runtime.asmdef b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.Universal.Runtime.asmdef new file mode 100644 index 0000000..cf34d9f --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.Universal.Runtime.asmdef @@ -0,0 +1,23 @@ +{ + "name": "HBAO.Universal.Runtime", + "rootNamespace": "", + "references": [ + "GUID:df380645f10b7bc4b97d4f5eb6303d95", + "GUID:15fc0a57446b3144c949da3e2b9737a9" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [ + { + "name": "com.unity.modules.vr", + "expression": "1.0.0", + "define": "ENABLE_VR_MODULE" + } + ], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.Universal.Runtime.asmdef.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.Universal.Runtime.asmdef.meta new file mode 100644 index 0000000..9df0d61 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.Universal.Runtime.asmdef.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 09d385cb911270749b709e1bb48e9ea1 +AssemblyDefinitionImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.cs b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.cs new file mode 100644 index 0000000..4f42ff3 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.cs @@ -0,0 +1,629 @@ +using System; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.Rendering.Universal; + +namespace HorizonBasedAmbientOcclusion.Universal +{ + [Serializable, VolumeComponentMenu("Lighting/HBAO")] + public class HBAO : VolumeComponent, IPostProcessComponent + { + public enum Preset + { + FastestPerformance, + FastPerformance, + Normal, + HighQuality, + HighestQuality, + Custom + } + + public enum Mode + { + Normal, + LitAO + } + + public enum RenderingPath + { + Forward, + Deferred + } + + public enum Quality + { + Lowest, + Low, + Medium, + High, + Highest + } + + public enum Resolution + { + Full, + Half + } + + public enum NoiseType + { + Dither, + InterleavedGradientNoise, + SpatialDistribution + } + + public enum Deinterleaving + { + Disabled, + x4 + } + + public enum DebugMode + { + Disabled, + AOOnly, + ColorBleedingOnly, + SplitWithoutAOAndWithAO, + SplitWithAOAndAOOnly, + SplitWithoutAOAndAOOnly, + ViewNormals + } + + public enum BlurType + { + None, + Narrow, + Medium, + Wide, + ExtraWide + } + + public enum PerPixelNormals + { + Reconstruct2Samples, + Reconstruct4Samples, + Camera + } + + public enum VarianceClipping + { + Disabled, + _4Tap, + _8Tap + } + + [Serializable] + public sealed class PresetParameter : VolumeParameter + { + public PresetParameter(Preset value, bool overrideState = false) + : base(value, overrideState) { } + } + + [Serializable] + public sealed class ModeParameter : VolumeParameter + { + public ModeParameter(Mode value, bool overrideState = false) + : base(value, overrideState) { } + } + + [Serializable] + public sealed class RenderingPathParameter : VolumeParameter + { + public RenderingPathParameter(RenderingPath value, bool overrideState = false) + : base(value, overrideState) { } + } + + [Serializable] + public sealed class QualityParameter : VolumeParameter + { + public QualityParameter(Quality value, bool overrideState = false) + : base(value, overrideState) { } + } + + [Serializable] + public sealed class DeinterleavingParameter : VolumeParameter + { + public DeinterleavingParameter(Deinterleaving value, bool overrideState = false) + : base(value, overrideState) { } + } + + [Serializable] + public sealed class ResolutionParameter : VolumeParameter + { + public ResolutionParameter(Resolution value, bool overrideState = false) + : base(value, overrideState) { } + } + + [Serializable] + public sealed class NoiseTypeParameter : VolumeParameter + { + public NoiseTypeParameter(NoiseType value, bool overrideState = false) + : base(value, overrideState) { } + } + + [Serializable] + public sealed class DebugModeParameter : VolumeParameter + { + public DebugModeParameter(DebugMode value, bool overrideState = false) + : base(value, overrideState) { } + } + + [Serializable] + public sealed class PerPixelNormalsParameter : VolumeParameter + { + public PerPixelNormalsParameter(PerPixelNormals value, bool overrideState = false) + : base(value, overrideState) { } + } + + [Serializable] + public sealed class VarianceClippingParameter : VolumeParameter + { + public VarianceClippingParameter(VarianceClipping value, bool overrideState = false) + : base(value, overrideState) { } + } + + [Serializable] + public sealed class BlurTypeParameter : VolumeParameter + { + public BlurTypeParameter(BlurType value, bool overrideState = false) + : base(value, overrideState) { } + } + + [Serializable] + public sealed class MinMaxFloatParameter : VolumeParameter + { + public float min; + public float max; + + public MinMaxFloatParameter(Vector2 value, float min, float max, bool overrideState = false) + : base(value, overrideState) + { + this.min = min; + this.max = max; + } + } + + [AttributeUsage(AttributeTargets.Field)] + public class SettingsGroup : Attribute + { + public bool isExpanded = true; + } + + [AttributeUsage(AttributeTargets.Field)] + public class ParameterDisplayName : Attribute + { + public string name; + + public ParameterDisplayName(string name) + { + this.name = name; + } + } + + public class Presets : SettingsGroup { } + public class GeneralSettings : SettingsGroup { } + public class AOSettings : SettingsGroup { } + public class TemporalFilterSettings : SettingsGroup { } + public class BlurSettings : SettingsGroup { } + public class ColorBleedingSettings : SettingsGroup { } + + [Presets] + public PresetParameter preset = new PresetParameter(Preset.Normal); + + [Tooltip("The mode of the AO.")] + [GeneralSettings, Space(6)] + public ModeParameter mode = new ModeParameter(Mode.LitAO); + [Tooltip("The rendering path used for AO. Temporary settings as for now rendering path is internal to renderer settings.")] + [GeneralSettings, Space(6)] + public RenderingPathParameter renderingPath = new RenderingPathParameter(RenderingPath.Forward); + [Tooltip("The quality of the AO.")] + [GeneralSettings, Space(6)] + public QualityParameter quality = new QualityParameter(Quality.Medium); + [Tooltip("The deinterleaving factor.")] + [GeneralSettings] + public DeinterleavingParameter deinterleaving = new DeinterleavingParameter(Deinterleaving.Disabled); + [Tooltip("The resolution at which the AO is calculated.")] + [GeneralSettings] + public ResolutionParameter resolution = new ResolutionParameter(Resolution.Full); + [Tooltip("The type of noise to use.")] + [GeneralSettings, Space(10)] + public NoiseTypeParameter noiseType = new NoiseTypeParameter(NoiseType.Dither); + [Tooltip("The debug mode actually displayed on screen.")] + [GeneralSettings, Space(10)] + public DebugModeParameter debugMode = new DebugModeParameter(DebugMode.Disabled); + + [Tooltip("AO radius: this is the distance outside which occluders are ignored.")] + [AOSettings, Space(6)] + public ClampedFloatParameter radius = new ClampedFloatParameter(0.8f, 0.25f, 5f); + [Tooltip("Maximum radius in pixels: this prevents the radius to grow too much with close-up " + + "object and impact on performances.")] + [AOSettings] + public ClampedFloatParameter maxRadiusPixels = new ClampedFloatParameter(128f, 16f, 256f); + [Tooltip("For low-tessellated geometry, occlusion variations tend to appear at creases and " + + "ridges, which betray the underlying tessellation. To remove these artifacts, we use " + + "an angle bias parameter which restricts the hemisphere.")] + [AOSettings] + public ClampedFloatParameter bias = new ClampedFloatParameter(0.05f, 0f, 0.5f); + [Tooltip("This value allows to scale up the ambient occlusion values.")] + [AOSettings] + public ClampedFloatParameter intensity = new ClampedFloatParameter(0f, 0, 4f); + [Tooltip("Enable/disable MultiBounce approximation.")] + [AOSettings] + public BoolParameter useMultiBounce = new BoolParameter(false); + [Tooltip("MultiBounce approximation influence.")] + [AOSettings] + public ClampedFloatParameter multiBounceInfluence = new ClampedFloatParameter(1f, 0f, 1f); + [Tooltip("How much AO affect direct lighting.")] + [AOSettings] + public ClampedFloatParameter directLightingStrength = new ClampedFloatParameter(0.25f, 0, 1f); + [Tooltip("The amount of AO offscreen samples are contributing.")] + [AOSettings] + public ClampedFloatParameter offscreenSamplesContribution = new ClampedFloatParameter(0f, 0f, 1f); + [Tooltip("The max distance to display AO.")] + [AOSettings, Space(10)] + public FloatParameter maxDistance = new FloatParameter(150f); + [Tooltip("The distance before max distance at which AO start to decrease.")] + [AOSettings] + public FloatParameter distanceFalloff = new FloatParameter(50f); + [Tooltip("The type of per pixel normals to use.")] + [AOSettings, Space(10)] + public PerPixelNormalsParameter perPixelNormals = new PerPixelNormalsParameter(PerPixelNormals.Camera); + [Tooltip("This setting allow you to set the base color if the AO, the alpha channel value is unused.")] + [AOSettings, Space(10)] + public ColorParameter baseColor = new ColorParameter(Color.black); + + [TemporalFilterSettings, ParameterDisplayName("Enabled"), Space(6)] + public BoolParameter temporalFilterEnabled = new BoolParameter(false); + [Tooltip("The type of variance clipping to use.")] + [TemporalFilterSettings] + public VarianceClippingParameter varianceClipping = new VarianceClippingParameter(VarianceClipping._4Tap); + + [Tooltip("The type of blur to use.")] + [BlurSettings, ParameterDisplayName("Type"), Space(6)] + public BlurTypeParameter blurType = new BlurTypeParameter(BlurType.Medium); + + [Tooltip("This parameter controls the depth-dependent weight of the bilateral filter, to " + + "avoid bleeding across edges. A zero sharpness is a pure Gaussian blur. Increasing " + + "the blur sharpness removes bleeding by using lower weights for samples with large " + + "depth delta from the current pixel.")] + [BlurSettings, Space(10)] + public ClampedFloatParameter sharpness = new ClampedFloatParameter(8f, 0f, 16f); + + [ColorBleedingSettings, ParameterDisplayName("Enabled"), Space(6)] + public BoolParameter colorBleedingEnabled = new BoolParameter(false); + [Tooltip("This value allows to control the saturation of the color bleeding.")] + [ColorBleedingSettings, Space(10)] + public ClampedFloatParameter saturation = new ClampedFloatParameter(1f, 0f, 4f); + [Tooltip("Use masking on emissive pixels")] + [ColorBleedingSettings] + public ClampedFloatParameter brightnessMask = new ClampedFloatParameter(1f, 0f, 1f); + [Tooltip("Brightness level where masking starts/ends")] + [ColorBleedingSettings] + public MinMaxFloatParameter brightnessMaskRange = new MinMaxFloatParameter(new Vector2(0f, 0.5f), 0f, 2f); + + [Obsolete("This is deprecated method, please use SetAoIntensity instead.")] + public void EnableHBAO(bool enable) + { + intensity.overrideState = enable; + } + + public Preset GetCurrentPreset() + { + return preset.value; + } + + public void ApplyPreset(Preset preset) + { + if (preset == Preset.Custom) + { + this.preset.Override(preset); + return; + } + + var actualDebugMode = debugMode.value; + var actualDebugModeOverride = debugMode.overrideState; + SetAllOverridesTo(false); + debugMode.overrideState = actualDebugModeOverride; + debugMode.value = actualDebugMode; + + switch (preset) + { + case Preset.FastestPerformance: + SetQuality(Quality.Lowest); + SetAoRadius(0.5f); + SetAoMaxRadiusPixels(64.0f); + SetBlurType(BlurType.ExtraWide); + break; + case Preset.FastPerformance: + SetQuality(Quality.Low); + SetAoRadius(0.5f); + SetAoMaxRadiusPixels(64.0f); + SetBlurType(BlurType.Wide); + break; + case Preset.HighQuality: + SetQuality(Quality.High); + SetAoRadius(1.0f); + break; + case Preset.HighestQuality: + SetQuality(Quality.Highest); + SetAoRadius(1.2f); + SetAoMaxRadiusPixels(256.0f); + SetBlurType(BlurType.Narrow); + break; + case Preset.Normal: + default: + break; + } + + this.preset.Override(preset); + } + + public Mode GetMode() + { + return mode.value; + } + + public void SetMode(Mode mode) + { + this.mode.Override(mode); + } + + public RenderingPath GetRenderingPath() + { + return renderingPath.value; + } + + public void SetRenderingPath(RenderingPath renderingPath) + { + this.renderingPath.Override(renderingPath); + } + + public Quality GetQuality() + { + return quality.value; + } + + public void SetQuality(Quality quality) + { + this.quality.Override(quality); + } + + public Deinterleaving GetDeinterleaving() + { + return deinterleaving.value; + } + + public void SetDeinterleaving(Deinterleaving deinterleaving) + { + this.deinterleaving.Override(deinterleaving); + } + + public Resolution GetResolution() + { + return resolution.value; + } + + public void SetResolution(Resolution resolution) + { + this.resolution.Override(resolution); + } + + public NoiseType GetNoiseType() + { + return noiseType.value; + } + + public void SetNoiseType(NoiseType noiseType) + { + this.noiseType.Override(noiseType); + } + + public DebugMode GetDebugMode() + { + return debugMode.value; + } + + public void SetDebugMode(DebugMode debugMode) + { + this.debugMode.Override(debugMode); + } + + public float GetAoRadius() + { + return radius.value; + } + + public void SetAoRadius(float radius) + { + this.radius.Override(Mathf.Clamp(radius, this.radius.min, this.radius.max)); + } + + public float GetAoMaxRadiusPixels() + { + return maxRadiusPixels.value; + } + + public void SetAoMaxRadiusPixels(float maxRadiusPixels) + { + this.maxRadiusPixels.Override(Mathf.Clamp(maxRadiusPixels, this.maxRadiusPixels.min, this.maxRadiusPixels.max)); + } + + public float GetAoBias() + { + return bias.value; + } + + public void SetAoBias(float bias) + { + this.bias.Override(Mathf.Clamp(bias, this.bias.min, this.bias.max)); + } + + public float GetAoOffscreenSamplesContribution() + { + return offscreenSamplesContribution.value; + } + + public void SetAoOffscreenSamplesContribution(float offscreenSamplesContribution) + { + this.offscreenSamplesContribution.Override(Mathf.Clamp(offscreenSamplesContribution, this.offscreenSamplesContribution.min, this.offscreenSamplesContribution.max)); + } + + public float GetAoMaxDistance() + { + return maxDistance.value; + } + + public void SetAoMaxDistance(float maxDistance) + { + this.maxDistance.Override(maxDistance); + } + + public float GetAoDistanceFalloff() + { + return distanceFalloff.value; + } + + public void SetAoDistanceFalloff(float distanceFalloff) + { + this.distanceFalloff.Override(distanceFalloff); + } + + public PerPixelNormals GetAoPerPixelNormals() + { + return perPixelNormals.value; + } + + public void SetAoPerPixelNormals(PerPixelNormals perPixelNormals) + { + this.perPixelNormals.Override(perPixelNormals); + } + + public Color GetAoColor() + { + return baseColor.value; + } + + public void SetAoColor(Color baseColor) + { + this.baseColor.Override(baseColor); + } + + public float GetAoIntensity() + { + return intensity.value; + } + + public void SetAoIntensity(float intensity) + { + this.intensity.Override(Mathf.Clamp(intensity, this.intensity.min, this.intensity.max)); + } + + public bool UseMultiBounce() + { + return useMultiBounce.value; + } + + public void EnableMultiBounce(bool enabled = true) + { + useMultiBounce.Override(enabled); + } + + public float GetAoMultiBounceInfluence() + { + return multiBounceInfluence.value; + } + + public void SetAoMultiBounceInfluence(float multiBounceInfluence) + { + this.multiBounceInfluence.Override(Mathf.Clamp(multiBounceInfluence, this.multiBounceInfluence.min, this.multiBounceInfluence.max)); + } + + public bool IsTemporalFilterEnabled() + { + return temporalFilterEnabled.value; + } + + public void EnableTemporalFilter(bool enabled = true) + { + temporalFilterEnabled.Override(enabled); + } + + public VarianceClipping GetTemporalFilterVarianceClipping() + { + return varianceClipping.value; + } + + public void SetTemporalFilterVarianceClipping(VarianceClipping varianceClipping) + { + this.varianceClipping.Override(varianceClipping); + } + + public BlurType GetBlurType() + { + return blurType.value; + } + + public void SetBlurType(BlurType blurType) + { + this.blurType.Override(blurType); + } + + public float GetBlurSharpness() + { + return sharpness.value; + } + + public void SetBlurSharpness(float sharpness) + { + this.sharpness.Override(Mathf.Clamp(sharpness, this.sharpness.min, this.sharpness.max)); + } + + public bool IsColorBleedingEnabled() + { + return colorBleedingEnabled.value; + } + + public void EnableColorBleeding(bool enabled = true) + { + colorBleedingEnabled.Override(enabled); + } + + public float GetColorBleedingSaturation() + { + return saturation.value; + } + + public void SetColorBleedingSaturation(float saturation) + { + this.saturation.Override(Mathf.Clamp(saturation, this.saturation.min, this.saturation.max)); + } + + public float GetColorBleedingBrightnessMask() + { + return brightnessMask.value; + } + + public void SetColorBleedingBrightnessMask(float brightnessMask) + { + this.brightnessMask.Override(Mathf.Clamp(brightnessMask, this.brightnessMask.min, this.brightnessMask.max)); + } + + public Vector2 GetColorBleedingBrightnessMaskRange() + { + return brightnessMaskRange.value; + } + + public void SetColorBleedingBrightnessMaskRange(Vector2 brightnessMaskRange) + { + brightnessMaskRange.x = Mathf.Clamp(brightnessMaskRange.x, this.brightnessMaskRange.min, this.brightnessMaskRange.max); + brightnessMaskRange.y = Mathf.Clamp(brightnessMaskRange.y, this.brightnessMaskRange.min, this.brightnessMaskRange.max); + brightnessMaskRange.x = Mathf.Min(brightnessMaskRange.x, brightnessMaskRange.y); + this.brightnessMaskRange.Override(brightnessMaskRange); + } + + public bool IsActive() => intensity.value > 0; + + [Obsolete("Unused. #from(2023.1)")] + public bool IsTileCompatible() => true; + } +} diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.cs.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.cs.meta new file mode 100644 index 0000000..b6cea38 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAO.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 90fbf49926625114084d7e0c0cffe8d1 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAORendererFeature.cs b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAORendererFeature.cs new file mode 100644 index 0000000..7f5c8af --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAORendererFeature.cs @@ -0,0 +1,1574 @@ +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Experimental.Rendering; +using UnityEngine.Rendering; +#if UNITY_2023_3_OR_NEWER +using UnityEngine.Rendering.RenderGraphModule; +#endif +using UnityEngine.Rendering.Universal; +#if ENABLE_VR_MODULE && ENABLE_VR +using XRSettings = UnityEngine.XR.XRSettings; +#endif + +namespace HorizonBasedAmbientOcclusion.Universal +{ + public class HBAORendererFeature : ScriptableRendererFeature + { + private class HBAORenderPass : ScriptableRenderPass + { + private HBAO hbao; + +#if UNITY_2023_3_OR_NEWER + // Holds the data needed for the render pass. + private class PassData + { + public Material Material { get; set; } + public RenderTextureDescriptor TargetDescriptor { get; set; } + public RenderTextureDescriptor AOTextureDescriptor { get; set; } + public TextureHandle CameraDepthTexture { get; set; } + public TextureHandle SourceTexture { get; set; } + public TextureHandle AOTexture { get; set; } + public TextureHandle TempTexture { get; set; } + public TextureHandle DestinationTexture { get; set; } + public CameraHistoryBuffers HistoryBuffers { get; set; } + public RenderTargetIdentifier[] TemporalFilterRenderTargets { get; set; } + public Mesh FullscreenTriangle { get; set; } + public MaterialPropertyBlock MaterialProperties { get; set; } + public bool UseLitAO { get; set; } + public bool UseColorBleeding { get; set; } + public bool UseBlur { get; set; } + public bool UseTemporalFilter { get; set; } + public float DirectLightingStrength { get; set; } + public bool ShowDebug { get; set; } + public bool ShowViewNormals { get; set; } + public bool RenderingInSceneView { get; set; } + } +#endif + + private static class Pass + { + public const int AO = 0; + public const int AO_Deinterleaved = 1; + + public const int Deinterleave_Depth = 2; + public const int Deinterleave_Normals = 3; + public const int Atlas_AO_Deinterleaved = 4; + public const int Reinterleave_AO = 5; + + public const int Blur = 6; + + public const int Temporal_Filter = 7; + + public const int Copy = 8; + + public const int Composite = 9; + + public const int Debug_ViewNormals = 10; + } + + private static class ShaderProperties + { + public static int mainTex; + public static int inputTex; + public static int hbaoTex; + public static int tempTex; + public static int tempTex2; + public static int noiseTex; + public static int depthTex; + public static int normalsTex; + public static int ssaoTex; + public static int[] depthSliceTex; + public static int[] normalsSliceTex; + public static int[] aoSliceTex; + public static int[] deinterleaveOffset; + public static int atlasOffset; + public static int jitter; + public static int uvTransform; + public static int inputTexelSize; + public static int aoTexelSize; + public static int deinterleavedAOTexelSize; + public static int reinterleavedAOTexelSize; + public static int uvToView; + //public static int worldToCameraMatrix; + public static int targetScale; + public static int radius; + public static int maxRadiusPixels; + public static int negInvRadius2; + public static int angleBias; + public static int aoMultiplier; + public static int intensity; + public static int multiBounceInfluence; + public static int offscreenSamplesContrib; + public static int maxDistance; + public static int distanceFalloff; + public static int baseColor; + public static int colorBleedSaturation; + public static int albedoMultiplier; + public static int colorBleedBrightnessMask; + public static int colorBleedBrightnessMaskRange; + public static int blurDeltaUV; + public static int blurSharpness; + public static int temporalParams; + public static int historyBufferRTHandleScale; + public static int cameraDepthTexture; + public static int screenSpaceOcclusionTexture; + public static int screenSpaceOcclusionParam; +#if UNITY_2023_3_OR_NEWER + public static GlobalKeyword screenSpaceOcclusionKeyword; +#endif + + static ShaderProperties() + { + mainTex = Shader.PropertyToID("_MainTex"); + inputTex = Shader.PropertyToID("_InputTex"); + hbaoTex = Shader.PropertyToID("_HBAOTex"); + tempTex = Shader.PropertyToID("_TempTex"); + tempTex2 = Shader.PropertyToID("_TempTex2"); + noiseTex = Shader.PropertyToID("_NoiseTex"); + depthTex = Shader.PropertyToID("_DepthTex"); + normalsTex = Shader.PropertyToID("_NormalsTex"); + ssaoTex = Shader.PropertyToID("_SSAOTex"); + depthSliceTex = new int[4 * 4]; + normalsSliceTex = new int[4 * 4]; + aoSliceTex = new int[4 * 4]; + for (int i = 0; i < 4 * 4; i++) + { + depthSliceTex[i] = Shader.PropertyToID("_DepthSliceTex" + i); + normalsSliceTex[i] = Shader.PropertyToID("_NormalsSliceTex" + i); + aoSliceTex[i] = Shader.PropertyToID("_AOSliceTex" + i); + } + deinterleaveOffset = new int[] { + Shader.PropertyToID("_Deinterleave_Offset00"), + Shader.PropertyToID("_Deinterleave_Offset10"), + Shader.PropertyToID("_Deinterleave_Offset01"), + Shader.PropertyToID("_Deinterleave_Offset11") + }; + atlasOffset = Shader.PropertyToID("_AtlasOffset"); + jitter = Shader.PropertyToID("_Jitter"); + uvTransform = Shader.PropertyToID("_UVTransform"); + inputTexelSize = Shader.PropertyToID("_Input_TexelSize"); + aoTexelSize = Shader.PropertyToID("_AO_TexelSize"); + deinterleavedAOTexelSize = Shader.PropertyToID("_DeinterleavedAO_TexelSize"); + reinterleavedAOTexelSize = Shader.PropertyToID("_ReinterleavedAO_TexelSize"); + uvToView = Shader.PropertyToID("_UVToView"); + //worldToCameraMatrix = Shader.PropertyToID("_WorldToCameraMatrix"); + targetScale = Shader.PropertyToID("_TargetScale"); + radius = Shader.PropertyToID("_Radius"); + maxRadiusPixels = Shader.PropertyToID("_MaxRadiusPixels"); + negInvRadius2 = Shader.PropertyToID("_NegInvRadius2"); + angleBias = Shader.PropertyToID("_AngleBias"); + aoMultiplier = Shader.PropertyToID("_AOmultiplier"); + intensity = Shader.PropertyToID("_Intensity"); + multiBounceInfluence = Shader.PropertyToID("_MultiBounceInfluence"); + offscreenSamplesContrib = Shader.PropertyToID("_OffscreenSamplesContrib"); + maxDistance = Shader.PropertyToID("_MaxDistance"); + distanceFalloff = Shader.PropertyToID("_DistanceFalloff"); + baseColor = Shader.PropertyToID("_BaseColor"); + colorBleedSaturation = Shader.PropertyToID("_ColorBleedSaturation"); + albedoMultiplier = Shader.PropertyToID("_AlbedoMultiplier"); + colorBleedBrightnessMask = Shader.PropertyToID("_ColorBleedBrightnessMask"); + colorBleedBrightnessMaskRange = Shader.PropertyToID("_ColorBleedBrightnessMaskRange"); + blurDeltaUV = Shader.PropertyToID("_BlurDeltaUV"); + blurSharpness = Shader.PropertyToID("_BlurSharpness"); + temporalParams = Shader.PropertyToID("_TemporalParams"); + historyBufferRTHandleScale = Shader.PropertyToID("_HistoryBuffer_RTHandleScale"); + cameraDepthTexture = Shader.PropertyToID("_CameraDepthTexture"); + screenSpaceOcclusionTexture = Shader.PropertyToID("_ScreenSpaceOcclusionTexture"); + screenSpaceOcclusionParam = Shader.PropertyToID("_AmbientOcclusionParam"); +#if UNITY_2023_3_OR_NEWER + screenSpaceOcclusionKeyword = GlobalKeyword.Create(ShaderKeywordStrings.ScreenSpaceOcclusion); +#endif + } + + public static string GetOrthographicProjectionKeyword(bool orthographic) + { + return orthographic ? "ORTHOGRAPHIC_PROJECTION" : "__"; + } + + public static string GetQualityKeyword(HBAO.Quality quality) + { + switch (quality) + { + case HBAO.Quality.Lowest: + return "QUALITY_LOWEST"; + case HBAO.Quality.Low: + return "QUALITY_LOW"; + case HBAO.Quality.Medium: + return "QUALITY_MEDIUM"; + case HBAO.Quality.High: + return "QUALITY_HIGH"; + case HBAO.Quality.Highest: + return "QUALITY_HIGHEST"; + default: + return "QUALITY_MEDIUM"; + } + } + + public static string GetNoiseKeyword(HBAO.NoiseType noiseType) + { + switch (noiseType) + { + case HBAO.NoiseType.InterleavedGradientNoise: + return "INTERLEAVED_GRADIENT_NOISE"; + case HBAO.NoiseType.Dither: + case HBAO.NoiseType.SpatialDistribution: + default: + return "__"; + } + } + + public static string GetDeinterleavingKeyword(HBAO.Deinterleaving deinterleaving) + { + switch (deinterleaving) + { + case HBAO.Deinterleaving.x4: + return "DEINTERLEAVED"; + case HBAO.Deinterleaving.Disabled: + default: + return "__"; + } + } + + public static string GetDebugKeyword(HBAO.DebugMode debugMode) + { + switch (debugMode) + { + case HBAO.DebugMode.AOOnly: + return "DEBUG_AO"; + case HBAO.DebugMode.ColorBleedingOnly: + return "DEBUG_COLORBLEEDING"; + case HBAO.DebugMode.SplitWithoutAOAndWithAO: + return "DEBUG_NOAO_AO"; + case HBAO.DebugMode.SplitWithAOAndAOOnly: + return "DEBUG_AO_AOONLY"; + case HBAO.DebugMode.SplitWithoutAOAndAOOnly: + return "DEBUG_NOAO_AOONLY"; + case HBAO.DebugMode.Disabled: + default: + return "__"; + } + } + + public static string GetMultibounceKeyword(bool useMultiBounce, bool litAoModeEnabled) + { + return useMultiBounce && !litAoModeEnabled ? "MULTIBOUNCE" : "__"; + } + + public static string GetOffscreenSamplesContributionKeyword(float offscreenSamplesContribution) + { + return offscreenSamplesContribution > 0 ? "OFFSCREEN_SAMPLES_CONTRIBUTION" : "__"; + } + + public static string GetPerPixelNormalsKeyword(HBAO.PerPixelNormals perPixelNormals) + { + switch (perPixelNormals) + { + case HBAO.PerPixelNormals.Reconstruct4Samples: + return "NORMALS_RECONSTRUCT4"; + case HBAO.PerPixelNormals.Reconstruct2Samples: + return "NORMALS_RECONSTRUCT2"; + case HBAO.PerPixelNormals.Camera: + default: + return "__"; + } + } + + public static string GetBlurRadiusKeyword(HBAO.BlurType blurType) + { + switch (blurType) + { + case HBAO.BlurType.Narrow: + return "BLUR_RADIUS_2"; + case HBAO.BlurType.Medium: + return "BLUR_RADIUS_3"; + case HBAO.BlurType.Wide: + return "BLUR_RADIUS_4"; + case HBAO.BlurType.ExtraWide: + return "BLUR_RADIUS_5"; + case HBAO.BlurType.None: + default: + return "BLUR_RADIUS_3"; + } + } + + public static string GetVarianceClippingKeyword(HBAO.VarianceClipping varianceClipping) + { + switch (varianceClipping) + { + case HBAO.VarianceClipping._4Tap: + return "VARIANCE_CLIPPING_4TAP"; + case HBAO.VarianceClipping._8Tap: + return "VARIANCE_CLIPPING_8TAP"; + case HBAO.VarianceClipping.Disabled: + default: + return "__"; + } + } + + public static string GetColorBleedingKeyword(bool colorBleedingEnabled, bool litAoModeEnabled) + { + return colorBleedingEnabled && !litAoModeEnabled ? "COLOR_BLEEDING" : "__"; + } + + public static string GetModeKeyword(HBAO.Mode mode) + { + return mode == HBAO.Mode.LitAO ? "LIT_AO" : "__"; + } + } + + private static class MersenneTwister + { + // Mersenne-Twister random numbers in [0,1). + public static readonly float[] Numbers = new float[] { + //0.463937f,0.340042f,0.223035f,0.468465f,0.322224f,0.979269f,0.031798f,0.973392f,0.778313f,0.456168f,0.258593f,0.330083f,0.387332f,0.380117f,0.179842f,0.910755f, + //0.511623f,0.092933f,0.180794f,0.620153f,0.101348f,0.556342f,0.642479f,0.442008f,0.215115f,0.475218f,0.157357f,0.568868f,0.501241f,0.629229f,0.699218f,0.707733f + 0.556725f,0.005520f,0.708315f,0.583199f,0.236644f,0.992380f,0.981091f,0.119804f,0.510866f,0.560499f,0.961497f,0.557862f,0.539955f,0.332871f,0.417807f,0.920779f, + 0.730747f,0.076690f,0.008562f,0.660104f,0.428921f,0.511342f,0.587871f,0.906406f,0.437980f,0.620309f,0.062196f,0.119485f,0.235646f,0.795892f,0.044437f,0.617311f + }; + } + + private class CameraHistoryBuffers + { + public Camera camera { get; set; } + public BufferedRTHandleSystem historyRTSystem { get; set; } + public int frameCount { get; set; } + public int lastRenderedFrame { get; set; } + } + + private enum HistoryBufferType + { + AmbientOcclusion, + ColorBleeding + } + + private static readonly Vector2[] s_jitter = new Vector2[4 * 4]; + private static readonly float[] s_temporalRotations = { 60.0f, 300.0f, 180.0f, 240.0f, 120.0f, 0.0f }; + private static readonly float[] s_temporalOffsets = { 0.0f, 0.5f, 0.25f, 0.75f }; + + private Material material { get; set; } + private RenderTargetIdentifier source { get; set; } + private CameraData cameraData { get; set; } + private RenderTextureDescriptor sourceDesc { get; set; } + private RenderTextureDescriptor aoDesc { get; set; } + private RenderTextureDescriptor deinterleavedDepthDesc { get; set; } + private RenderTextureDescriptor deinterleavedNormalsDesc { get; set; } + private RenderTextureDescriptor deinterleavedAoDesc { get; set; } + private RenderTextureDescriptor reinterleavedAoDesc { get; set; } + private RenderTextureDescriptor ssaoDesc { get; set; } + private RenderTextureFormat colorFormat { get; set; } + private RenderTextureFormat ssaoFormat { get; set; } + private GraphicsFormat graphicsColorFormat { get; set; } + private GraphicsFormat graphicsDepthFormat { get; set; } + private GraphicsFormat graphicsNormalsFormat { get; set; } + private RenderTextureFormat depthFormat { get; set; } + private RenderTextureFormat normalsFormat { get; set; } + private bool motionVectorsSupported { get; set; } + private Texture2D noiseTex { get; set; } + private static bool isLinearColorSpace => QualitySettings.activeColorSpace == ColorSpace.Linear; + private bool renderingInSceneView => cameraData.camera.cameraType == CameraType.SceneView; + + private Mesh fullscreenTriangle + { + get + { + if (m_FullscreenTriangle) + return m_FullscreenTriangle; + + m_FullscreenTriangle = new Mesh { name = "Fullscreen Triangle" }; + + // Because we have to support older platforms (GLES2/3, DX9 etc) we can't do all of + // this directly in the vertex shader using vertex ids :( + m_FullscreenTriangle.SetVertices(new List + { + new Vector3(-1f, -1f, 0f), + new Vector3(-1f, 3f, 0f), + new Vector3( 3f, -1f, 0f) + }); + m_FullscreenTriangle.SetIndices(new[] { 0, 1, 2 }, MeshTopology.Triangles, 0, false); + m_FullscreenTriangle.UploadMeshData(false); + + return m_FullscreenTriangle; + } + } + + private MaterialPropertyBlock materialPropertyBlock + { + get + { + if (m_MaterialPropertyBlock != null) + return m_MaterialPropertyBlock; + + m_MaterialPropertyBlock = new MaterialPropertyBlock(); + + return m_MaterialPropertyBlock; + } + } + + private Mesh m_FullscreenTriangle; + private MaterialPropertyBlock m_MaterialPropertyBlock; + private HBAO.Resolution? m_PreviousResolution; + private HBAO.NoiseType? m_PreviousNoiseType; + private bool m_PreviousColorBleedingEnabled; +#if ENABLE_VR_MODULE && ENABLE_VR + private XRSettings.StereoRenderingMode m_PrevStereoRenderingMode; +#endif + private string[] m_ShaderKeywords; + private RenderTargetIdentifier[] m_RtsDepth = new RenderTargetIdentifier[4]; + private RenderTargetIdentifier[] m_RtsNormals = new RenderTargetIdentifier[4]; + private RenderTargetIdentifier[] m_RtsTemporalFilter = new RenderTargetIdentifier[2]; + private List m_CameraHistoryBuffers = new List(); + private Vector4[] m_UVToViewPerEye = new Vector4[2]; + private float[] m_RadiusPerEye = new float[2]; + private ProfilingSampler m_ProfilingSampler = new ProfilingSampler("HBAO"); + + + public void FillSupportedRenderTextureFormats() + { + colorFormat = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGBHalf) ? RenderTextureFormat.ARGBHalf : RenderTextureFormat.Default; + ssaoFormat = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.R8) ? RenderTextureFormat.R8 : RenderTextureFormat.ARGB32; + graphicsColorFormat = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGBHalf) ? GraphicsFormat.R16G16B16A16_SFloat : GraphicsFormat.R8G8B8A8_SRGB; + graphicsDepthFormat = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RFloat) ? GraphicsFormat.R32_SFloat : GraphicsFormat.R16_SFloat; + graphicsNormalsFormat = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGB2101010) ? GraphicsFormat.A2R10G10B10_UNormPack32 : GraphicsFormat.R8G8B8A8_SRGB; + depthFormat = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RFloat) ? RenderTextureFormat.RFloat : RenderTextureFormat.RHalf; + normalsFormat = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGB2101010) ? RenderTextureFormat.ARGB2101010 : RenderTextureFormat.Default; + motionVectorsSupported = SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.RGHalf); + } + + public void Setup(Shader shader, ScriptableRenderer renderer, RenderingData renderingData) + { + if (material == null) material = CoreUtils.CreateEngineMaterial(shader); + + //--- + FetchVolumeComponent(); + + var passInput = ScriptableRenderPassInput.Depth; +#if UNITY_2021_2_OR_NEWER + if (hbao.renderingPath.value == HBAO.RenderingPath.Forward && hbao.perPixelNormals.value == HBAO.PerPixelNormals.Camera) + passInput |= ScriptableRenderPassInput.Normal; + if (hbao.temporalFilterEnabled.value) + passInput |= ScriptableRenderPassInput.Motion; +#else + if (hbao.perPixelNormals.value == HBAO.PerPixelNormals.Camera) + passInput |= ScriptableRenderPassInput.Normal; +#endif + ConfigureInput(passInput); + +#if UNITY_2021_2_OR_NEWER +#if !UNITY_2023_3_OR_NEWER + ConfigureColorStoreAction(RenderBufferStoreAction.DontCare); +#endif + + // Configures where the render pass should be injected. + // Rendering after PrePasses is usually correct except when depth priming is in play: + // then we rely on a depth resolve taking place after the PrePasses in order to have it ready for SSAO. + // Hence we set the event to RenderPassEvent.AfterRenderingPrePasses + 1 at the earliest. + renderPassEvent = hbao.debugMode.value == HBAO.DebugMode.Disabled ? + hbao.mode.value == HBAO.Mode.LitAO ? + hbao.renderingPath.value == HBAO.RenderingPath.Deferred ? RenderPassEvent.AfterRenderingGbuffer : RenderPassEvent.AfterRenderingPrePasses + 1 : + RenderPassEvent.BeforeRenderingTransparents : RenderPassEvent.AfterRenderingTransparents; +#else + // Configures where the render pass should be injected. + // Rendering after PrePasses is usually correct except when depth priming is in play: + // then we rely on a depth resolve taking place after the PrePasses in order to have it ready for SSAO. + // Hence we set the event to RenderPassEvent.AfterRenderingPrePasses + 1 at the earliest. + renderPassEvent = hbao.debugMode.value == HBAO.DebugMode.Disabled ? + hbao.mode.value == HBAO.Mode.LitAO ? RenderPassEvent.AfterRenderingPrePasses + 1 : RenderPassEvent.BeforeRenderingTransparents : + RenderPassEvent.AfterRenderingTransparents; +#endif + } + +#if !UNITY_6000_4_OR_NEWER +#if UNITY_2023_3_OR_NEWER + [System.Obsolete] +#endif + public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) + { + //source = new RenderTargetIdentifier("_CameraColorTexture"); +#if UNITY_2022_1_OR_NEWER + source = renderingData.cameraData.renderer.cameraColorTargetHandle; +#else + source = renderingData.cameraData.renderer.cameraColorTarget; +#endif + cameraData = renderingData.cameraData; + + /* + FetchVolumeComponent(); + + var passInput = ScriptableRenderPassInput.Depth; + if (hbao.perPixelNormals.value == HBAO.PerPixelNormals.Camera) + passInput |= ScriptableRenderPassInput.Normal; +#if UNITY_2021_2_OR_NEWER + if (hbao.temporalFilterEnabled.value) + passInput |= ScriptableRenderPassInput.Motion; +#endif + ConfigureInput(passInput); + +#if UNITY_2021_2_OR_NEWER + ConfigureColorStoreAction(RenderBufferStoreAction.DontCare); + + // Configures where the render pass should be injected. + // Rendering after PrePasses is usually correct except when depth priming is in play: + // then we rely on a depth resolve taking place after the PrePasses in order to have it ready for SSAO. + // Hence we set the event to RenderPassEvent.AfterRenderingPrePasses + 1 at the earliest. + renderPassEvent = hbao.debugMode.value == HBAO.DebugMode.Disabled ? + hbao.mode.value == HBAO.Mode.LitAO ? + hbao.renderingPath.value == HBAO.RenderingPath.Deferred ? RenderPassEvent.AfterRenderingGbuffer : RenderPassEvent.AfterRenderingPrePasses + 1 : + RenderPassEvent.BeforeRenderingTransparents : RenderPassEvent.AfterRenderingTransparents; +#else + // Configures where the render pass should be injected. + // Rendering after PrePasses is usually correct except when depth priming is in play: + // then we rely on a depth resolve taking place after the PrePasses in order to have it ready for SSAO. + // Hence we set the event to RenderPassEvent.AfterRenderingPrePasses + 1 at the earliest. + renderPassEvent = hbao.debugMode.value == HBAO.DebugMode.Disabled ? + hbao.mode.value == HBAO.Mode.LitAO ? RenderPassEvent.AfterRenderingPrePasses + 1 : RenderPassEvent.BeforeRenderingTransparents : + RenderPassEvent.AfterRenderingTransparents; +#endif + */ + } + + // This method is called before executing the render pass. + // It can be used to configure render targets and their clear state. Also to create temporary render target textures. + // When empty this render pass will render to the active camera render target. + // You should never call CommandBuffer.SetRenderTarget. Instead call ConfigureTarget and ConfigureClear. + // The render pipeline will ensure target setup and clearing happens in an performance manner. +#if UNITY_2023_3_OR_NEWER + [System.Obsolete] +#endif + public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) + { + if (!material) return; + + FetchVolumeComponent(); + + if (!hbao.IsActive()) return; + + FetchRenderParameters(cameraTextureDescriptor); + CheckParameters(); + UpdateMaterialProperties(); + UpdateShaderKeywords(); + } + + // Here you can implement the rendering logic. + // Use ScriptableRenderContext to issue drawing commands or execute command buffers + // https://docs.unity3d.com/ScriptReference/Rendering.ScriptableRenderContext.html + // You don't have to call ScriptableRenderContext.submit, the render pipeline will call it at specific points in the pipeline. +#if UNITY_2023_3_OR_NEWER + [System.Obsolete] +#endif + public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) + { + if (!material) + { + Debug.LogError("HBAO material has not been correctly initialized..."); + return; + } + + if (!hbao.IsActive()) return; + +#if UNITY_2021_2_OR_NEWER + var historyBuffers = GetCurrentCameraHistoryBuffers(); + historyBuffers?.historyRTSystem.SwapAndSetReferenceSize(aoDesc.width, aoDesc.height); +#else + var historyBuffers = null as CameraHistoryBuffers; +#endif + + var cmd = CommandBufferPool.Get("HBAO"); + + if (hbao.mode.value == HBAO.Mode.LitAO) + { + CoreUtils.SetKeyword(cmd, ShaderKeywordStrings.ScreenSpaceOcclusion, true); + + cmd.GetTemporaryRT(ShaderProperties.ssaoTex, aoDesc, FilterMode.Bilinear); + } + else + { + cmd.GetTemporaryRT(ShaderProperties.inputTex, sourceDesc, FilterMode.Point); + + // Source copy + CopySource(cmd); + } + + // AO + cmd.SetGlobalVector(ShaderProperties.temporalParams, historyBuffers != null ? new Vector2(s_temporalRotations[historyBuffers.frameCount % 6] / 360.0f, s_temporalOffsets[historyBuffers.frameCount % 4]) : Vector2.zero); + if (hbao.deinterleaving.value == HBAO.Deinterleaving.Disabled) + { + cmd.GetTemporaryRT(ShaderProperties.hbaoTex, aoDesc, FilterMode.Bilinear); + AO(cmd); + } + else + { + cmd.GetTemporaryRT(ShaderProperties.hbaoTex, reinterleavedAoDesc, FilterMode.Bilinear); + DeinterleavedAO(cmd); + } + + // Blur + Blur(cmd); + + // Temporal Filter + TemporalFilter(cmd, historyBuffers); + + // Composite + Composite(cmd); + + cmd.ReleaseTemporaryRT(ShaderProperties.hbaoTex); + if (hbao.mode.value != HBAO.Mode.LitAO) cmd.ReleaseTemporaryRT(ShaderProperties.inputTex); + + context.ExecuteCommandBuffer(cmd); + + CommandBufferPool.Release(cmd); + } +#endif + +#if UNITY_2023_3_OR_NEWER + // The RecordRenderGraph function will define the Setup and Rendering functions for our render pass. + // In the Setup we will configure resources such as which textures it reads from and what render textures + // it writes to. The Rendering delegate will contain the rendering code that will execute in the render + // graph execution step. + public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) + { + if (!material || !hbao.IsActive()) return; + + + UniversalResourceData resourceData = frameData.Get(); + UniversalCameraData universalCameraData = frameData.Get(); + + + FetchRenderParameters(universalCameraData.cameraTargetDescriptor); + CheckParameters(); + UpdateMaterialPropertiesRG(universalCameraData); + UpdateShaderKeywordsRG(universalCameraData); + + + var historyBuffers = GetCurrentCameraHistoryBuffersRG(universalCameraData); + historyBuffers?.historyRTSystem.SwapAndSetReferenceSize(aoDesc.width, aoDesc.height); + + + using (var builder = renderGraph.AddUnsafePass("HBAO Pass", out var passData, m_ProfilingSampler)) + { + // Shader keyword changes are considered as global state modifications + builder.AllowGlobalStateModification(true); + builder.AllowPassCulling(false); + + TextureHandle cameraDepthTexture = hbao.renderingPath.value == HBAO.RenderingPath.Deferred ? resourceData.activeDepthTexture : resourceData.cameraDepthTexture; + TextureHandle cameraNormalsTexture = resourceData.cameraNormalsTexture; + TextureHandle motionVectorsTexture = resourceData.motionVectorColor; + + // source texture is the active color buffer + TextureHandle sourceTexture = resourceData.activeColorTexture; + + // descriptor that match the size and format of the pipeline color buffer. + RenderTextureDescriptor targetDesc = universalCameraData.cameraTargetDescriptor; + targetDesc.depthBufferBits = 0; // we don't need the depth buffer + targetDesc.msaaSamples = 1; + + bool passUsesCameraNormals = hbao.perPixelNormals.value == HBAO.PerPixelNormals.Camera; + bool passUsesMotionVectors = hbao.temporalFilterEnabled.value; + bool passUsesLitAO = hbao.mode.value == HBAO.Mode.LitAO; + bool passUsesBlur = hbao.blurType.value != HBAO.BlurType.None; + bool passUsesTemporalFilter = hbao.temporalFilterEnabled.value; + bool passUsesColorBleeding = hbao.colorBleedingEnabled.value; + bool passShowDebug = hbao.debugMode.value != HBAO.DebugMode.Disabled; + + // fill up the passData with the data needed by the pass + passData.Material = material; + passData.TargetDescriptor = targetDesc; + passData.AOTextureDescriptor = aoDesc; + passData.CameraDepthTexture = cameraDepthTexture; + passData.SourceTexture = sourceTexture; + passData.AOTexture = UniversalRenderer.CreateRenderGraphTexture(renderGraph, aoDesc, "_HBAO_AOTexture0", false, FilterMode.Bilinear); + passData.TempTexture = passUsesBlur ? UniversalRenderer.CreateRenderGraphTexture(renderGraph, aoDesc, "_HBAO_AOTexture1", false, FilterMode.Bilinear) : TextureHandle.nullHandle; + passData.DestinationTexture = passUsesLitAO && !passShowDebug ? + UniversalRenderer.CreateRenderGraphTexture(renderGraph, ssaoDesc, "_ScreenSpaceOcclusionTexture", false, FilterMode.Bilinear) : + UniversalRenderer.CreateRenderGraphTexture(renderGraph, targetDesc, "_ScreenSpaceOcclusionTexture", false, FilterMode.Bilinear); + passData.HistoryBuffers = historyBuffers; + passData.TemporalFilterRenderTargets = m_RtsTemporalFilter; + passData.FullscreenTriangle = fullscreenTriangle; + passData.MaterialProperties = materialPropertyBlock; + passData.UseLitAO = passUsesLitAO; + passData.UseColorBleeding = passUsesColorBleeding; + passData.UseBlur = passUsesBlur; + passData.UseTemporalFilter = passUsesTemporalFilter; + passData.DirectLightingStrength = hbao.directLightingStrength.value; + passData.ShowDebug = passShowDebug; + passData.ShowViewNormals = hbao.debugMode.value == HBAO.DebugMode.ViewNormals; + passData.RenderingInSceneView = universalCameraData.camera.cameraType == CameraType.SceneView; + + // declare the textures used in this pass + builder.UseTexture(cameraDepthTexture, AccessFlags.Read); + if (passUsesCameraNormals) + builder.UseTexture(cameraNormalsTexture, AccessFlags.Read); + if (passUsesMotionVectors) + builder.UseTexture(motionVectorsTexture, AccessFlags.Read); + builder.UseTexture(passData.SourceTexture, passUsesLitAO && !passShowDebug ? AccessFlags.Read : AccessFlags.ReadWrite); + builder.UseTexture(passData.AOTexture, AccessFlags.ReadWrite); + if (passData.TempTexture.IsValid()) + builder.UseTexture(passData.TempTexture, AccessFlags.ReadWrite); + builder.UseTexture(passData.DestinationTexture, passUsesLitAO && !passShowDebug ? AccessFlags.Write : AccessFlags.ReadWrite); + + // for litAO make SSAO texture global after this pass + if (passUsesLitAO && !passShowDebug) + { + //resourceData.ssaoTexture = passData.DestinationTexture; + builder.SetGlobalTextureAfterPass(passData.DestinationTexture, ShaderProperties.screenSpaceOcclusionTexture); + } + + builder.SetRenderFunc((PassData data, UnsafeGraphContext context) => ExecutePass(data, context)); + } + } + + // ExecutePass is the render function for each of the blit render graph recordings. This is good + // practice to avoid using variables outside of the lambda it is called from. + // It is static to avoid using member variables which could cause unintended behaviour. + private static void ExecutePass(PassData data, UnsafeGraphContext rgContext) + { + var cmd = CommandBufferHelpers.GetNativeCommandBuffer(rgContext.cmd); + //var mpb = rgContext.renderGraphPool.GetTempMaterialPropertyBlock(); // allocate GC, replaced by custom solution below + var mpb = data.MaterialProperties; + + mpb.SetTexture(ShaderProperties.cameraDepthTexture, data.CameraDepthTexture); // is it really required? + + if (!data.UseLitAO || data.ShowDebug) + BlitFullscreenTriangle(cmd, data.SourceTexture, data.DestinationTexture, data.Material, data.FullscreenTriangle, Pass.Copy, mpb); + + // AO + mpb.SetVector(ShaderProperties.temporalParams, data.HistoryBuffers != null ? new Vector2(s_temporalRotations[data.HistoryBuffers.frameCount % 6] / 360.0f, s_temporalOffsets[data.HistoryBuffers.frameCount % 4]) : Vector2.zero); + BlitFullscreenTriangleWithClear(cmd, data.SourceTexture, data.AOTexture, data.Material, new Color(0, 0, 0, 1), data.FullscreenTriangle, Pass.AO, mpb); + + // blur + if (data.UseBlur) + { + float width = data.AOTextureDescriptor.width; + float height = data.AOTextureDescriptor.height; + if (data.TargetDescriptor.useDynamicScale) + { + width *= ScalableBufferManager.widthScaleFactor; + height *= ScalableBufferManager.heightScaleFactor; + } + + mpb.SetVector(ShaderProperties.blurDeltaUV, new Vector2(1f / width, 0)); + BlitFullscreenTriangle(cmd, data.AOTexture, data.TempTexture, data.Material, data.FullscreenTriangle, Pass.Blur, mpb); + + mpb.SetVector(ShaderProperties.blurDeltaUV, new Vector2(0, 1f / height)); + BlitFullscreenTriangle(cmd, data.TempTexture, data.AOTexture, data.Material, data.FullscreenTriangle, Pass.Blur, mpb); + } + + mpb.SetTexture(ShaderProperties.hbaoTex, data.AOTexture); + + // temporal filter + if (data.UseTemporalFilter && !data.RenderingInSceneView && data.HistoryBuffers != null) + { + mpb.SetVector(ShaderProperties.historyBufferRTHandleScale, data.HistoryBuffers.historyRTSystem.rtHandleProperties.rtHandleScale); + + if (data.HistoryBuffers.frameCount == 0) + { + // buffers were just allocated this frame, clear them (previous frame RT) + RenderTargetIdentifier aoRenderTargetIdentifier = new RenderTargetIdentifier(data.HistoryBuffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.AmbientOcclusion, 1), 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices); + cmd.SetRenderTarget(aoRenderTargetIdentifier, RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store); + cmd.ClearRenderTarget(false, true, Color.white); + if (data.UseColorBleeding) + { + RenderTargetIdentifier cbRenderTargetIdentifier = new RenderTargetIdentifier(data.HistoryBuffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.ColorBleeding, 1), 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices); + cmd.SetRenderTarget(cbRenderTargetIdentifier, RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store); + cmd.ClearRenderTarget(false, true, new Color(0, 0, 0, 1)); + } + } + + var viewportRect = new Rect(Vector2.zero, data.HistoryBuffers.historyRTSystem.rtHandleProperties.currentViewportSize); + + if (data.UseColorBleeding) + { + // For Color Bleeding we have 2 history buffers to fill so there are 2 render targets. + // AO is still contained in Color Bleeding history buffer (alpha channel) so that we + // can use it as a render texture for the composite pass. + var currentFrameAORT = data.HistoryBuffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.AmbientOcclusion, 0); + var currentFrameCBRT = data.HistoryBuffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.ColorBleeding, 0); + var previousFrameAORT = data.HistoryBuffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.AmbientOcclusion, 1); + var previousFrameCBRT = data.HistoryBuffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.ColorBleeding, 1); + data.TemporalFilterRenderTargets[0] = currentFrameAORT; + data.TemporalFilterRenderTargets[1] = currentFrameCBRT; + //cmd.SetViewProjectionMatrices(Matrix4x4.identity, Matrix4x4.identity); + mpb.SetTexture(ShaderProperties.tempTex, previousFrameCBRT); + BlitFullscreenTriangle(cmd, previousFrameAORT, data.TemporalFilterRenderTargets, viewportRect, data.Material, data.FullscreenTriangle, Pass.Temporal_Filter, mpb); + //cmd.SetViewProjectionMatrices(cameraData.camera.worldToCameraMatrix, cameraData.camera.projectionMatrix); + + mpb.SetTexture(ShaderProperties.hbaoTex, currentFrameCBRT); + } + else + { + // AO history buffer contains ao in aplha channel so we can just use history as + // a render texture for the composite pass. + var currentFrameRT = data.HistoryBuffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.AmbientOcclusion, 0); + var previousFrameRT = data.HistoryBuffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.AmbientOcclusion, 1); + BlitFullscreenTriangle(cmd, previousFrameRT, currentFrameRT, viewportRect, data.Material, data.FullscreenTriangle, Pass.Temporal_Filter, mpb); + + mpb.SetTexture(ShaderProperties.hbaoTex, currentFrameRT); + } + + // increment buffers frameCount for next frame, track last buffer use + data.HistoryBuffers.frameCount++; + data.HistoryBuffers.lastRenderedFrame = Time.frameCount; + } + else + mpb.SetVector(ShaderProperties.historyBufferRTHandleScale, Vector4.one); + + // composite + if (data.UseLitAO && !data.ShowDebug) + { + BlitFullscreenTriangle(cmd, data.SourceTexture, data.DestinationTexture, data.Material, data.FullscreenTriangle, Pass.Composite, mpb); + + // set global ambient occlusion keyword and param so that it is used by lit shaders + cmd.SetKeyword(ShaderProperties.screenSpaceOcclusionKeyword, true); + cmd.SetGlobalVector(ShaderProperties.screenSpaceOcclusionParam, new Vector4(1f, 0f, 0f, data.DirectLightingStrength)); + } + else + BlitFullscreenTriangle(cmd, data.DestinationTexture, data.SourceTexture, data.Material, data.FullscreenTriangle, data.ShowViewNormals ? Pass.Debug_ViewNormals : Pass.Composite, mpb); + } +#endif + + /// Cleanup any allocated resources that were created during the execution of this render pass. + public override void FrameCleanup(CommandBuffer cmd) + { + if (hbao.mode.value == HBAO.Mode.LitAO) + { + cmd.ReleaseTemporaryRT(ShaderProperties.ssaoTex); // TODO: should not be called with RenderGraph rendering + +#if UNITY_2023_3_OR_NEWER + cmd.SetKeyword(ShaderProperties.screenSpaceOcclusionKeyword, false); +#else + CoreUtils.SetKeyword(cmd, ShaderKeywordStrings.ScreenSpaceOcclusion, false); +#endif + } + + // we release any camera history buffers that has not rendered for more than 1 frames + for (var i = m_CameraHistoryBuffers.Count - 1; i >= 0; i--) + { + var buffers = m_CameraHistoryBuffers[i]; + if (Time.frameCount - buffers.lastRenderedFrame > 1) + { + ReleaseCameraHistoryBuffers(ref buffers); + } + } + } + + public void Cleanup() + { + for (var i = m_CameraHistoryBuffers.Count - 1; i >= 0; i--) + { + var buffers = m_CameraHistoryBuffers[i]; + ReleaseCameraHistoryBuffers(ref buffers); + } + + CoreUtils.Destroy(material); + CoreUtils.Destroy(noiseTex); + } + + private void FetchVolumeComponent() + { + if (!hbao) + hbao = VolumeManager.instance.stack.GetComponent(); + } + + private void FetchRenderParameters(RenderTextureDescriptor cameraTextureDesc) + { + cameraTextureDesc.msaaSamples = 1; + cameraTextureDesc.depthBufferBits = 0; + sourceDesc = cameraTextureDesc; + + var width = cameraTextureDesc.width; + var height = cameraTextureDesc.height; + var downsamplingFactor = hbao.resolution.value == HBAO.Resolution.Full ? 1 : hbao.deinterleaving.value == HBAO.Deinterleaving.Disabled ? 2 : 1; + if (downsamplingFactor > 1) + { + width = (width + width % 2) / downsamplingFactor; + height = (height + height % 2) / downsamplingFactor; + } + + aoDesc = GetStereoCompatibleDescriptor(width, height, format: colorFormat, readWrite: RenderTextureReadWrite.Linear); + ssaoDesc = GetStereoCompatibleDescriptor(width, height, format: ssaoFormat, readWrite: RenderTextureReadWrite.Linear); + + if (hbao.deinterleaving.value != HBAO.Deinterleaving.Disabled) + { + var reinterleavedWidth = cameraTextureDesc.width + (cameraTextureDesc.width % 4 == 0 ? 0 : 4 - (cameraTextureDesc.width % 4)); + var reinterleavedHeight = cameraTextureDesc.height + (cameraTextureDesc.height % 4 == 0 ? 0 : 4 - (cameraTextureDesc.height % 4)); + var deinterleavedWidth = reinterleavedWidth / 4; + var deinterleavedHeight = reinterleavedHeight / 4; + + deinterleavedDepthDesc = GetStereoCompatibleDescriptor(deinterleavedWidth, deinterleavedHeight, format: depthFormat, readWrite: RenderTextureReadWrite.Linear); + deinterleavedNormalsDesc = GetStereoCompatibleDescriptor(deinterleavedWidth, deinterleavedHeight, format: normalsFormat, readWrite: RenderTextureReadWrite.Linear); + deinterleavedAoDesc = GetStereoCompatibleDescriptor(deinterleavedWidth, deinterleavedHeight, format: colorFormat, readWrite: RenderTextureReadWrite.Linear); + reinterleavedAoDesc = GetStereoCompatibleDescriptor(reinterleavedWidth, reinterleavedHeight, format: colorFormat, readWrite: RenderTextureReadWrite.Linear); + } + } + + private RTHandle HistoryBufferAllocator(RTHandleSystem rtHandleSystem, int frameIndex) + { + var texDimension = TextureDimension.Tex2D; + var sliceCount = 1; +#if ENABLE_VR_MODULE && ENABLE_VR + if (XRSettings.enabled && XRSettings.stereoRenderingMode == XRSettings.StereoRenderingMode.SinglePassInstanced) + { + texDimension = TextureDimension.Tex2DArray; + sliceCount = 2; + } +#endif + return rtHandleSystem.Alloc(Vector2.one, colorFormat: graphicsColorFormat, useDynamicScale: true, name: "HBAO_HistoryBuffer_" + frameIndex, dimension: texDimension, slices: sliceCount); + //return rtHandleSystem.Alloc(scaleFactor: Vector2.one, slices: TextureXR.slices, colorFormat: graphicsColorFormat, dimension: TextureXR.dimension, useDynamicScale: true, name: "HBAO_HistoryBuffer_" + frameIndex); + } + + private void AllocCameraHistoryBuffers(ref CameraHistoryBuffers buffers) + { + buffers = new CameraHistoryBuffers + { + camera = cameraData.camera, + frameCount = 0, + historyRTSystem = new BufferedRTHandleSystem() // https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@12.0/manual/rthandle-system-using.html + }; + buffers.historyRTSystem.AllocBuffer((int)HistoryBufferType.AmbientOcclusion, HistoryBufferAllocator, 2); + if (hbao.colorBleedingEnabled.value) + buffers.historyRTSystem.AllocBuffer((int)HistoryBufferType.ColorBleeding, HistoryBufferAllocator, 2); + + m_CameraHistoryBuffers.Add(buffers); + } + +#if UNITY_2023_3_OR_NEWER + private void AllocCameraHistoryBuffersRG(UniversalCameraData cameraData, ref CameraHistoryBuffers buffers) + { + buffers = new CameraHistoryBuffers + { + camera = cameraData.camera, + frameCount = 0, + historyRTSystem = new BufferedRTHandleSystem() // https://docs.unity3d.com/Packages/com.unity.render-pipelines.core@12.0/manual/rthandle-system-using.html + }; + buffers.historyRTSystem.AllocBuffer((int)HistoryBufferType.AmbientOcclusion, HistoryBufferAllocator, 2); + if (hbao.colorBleedingEnabled.value) + buffers.historyRTSystem.AllocBuffer((int)HistoryBufferType.ColorBleeding, HistoryBufferAllocator, 2); + + m_CameraHistoryBuffers.Add(buffers); + } +#endif + + private void ReleaseCameraHistoryBuffers(ref CameraHistoryBuffers buffers) + { + buffers.historyRTSystem.ReleaseAll(); + buffers.historyRTSystem.Dispose(); + + m_CameraHistoryBuffers.Remove(buffers); + + buffers = null; + } + + private CameraHistoryBuffers GetCurrentCameraHistoryBuffers() + { + CameraHistoryBuffers buffers = null; + if (hbao.temporalFilterEnabled.value && !renderingInSceneView) + { + for (var i = 0; i < m_CameraHistoryBuffers.Count; i++) + { + if (m_CameraHistoryBuffers[i].camera == cameraData.camera) + { + buffers = m_CameraHistoryBuffers[i]; + break; + } + } + + if ((m_PreviousColorBleedingEnabled != hbao.colorBleedingEnabled.value || +#if ENABLE_VR_MODULE && ENABLE_VR + m_PrevStereoRenderingMode != XRSettings.stereoRenderingMode || +#endif + m_PreviousResolution != hbao.resolution.value) + && buffers != null) + { + ReleaseCameraHistoryBuffers(ref buffers); + m_PreviousColorBleedingEnabled = hbao.colorBleedingEnabled.value; + m_PreviousResolution = hbao.resolution.value; +#if ENABLE_VR_MODULE && ENABLE_VR + m_PrevStereoRenderingMode = XRSettings.stereoRenderingMode; +#endif + } + + if (buffers == null) + AllocCameraHistoryBuffers(ref buffers); + } + + return buffers; + } + +#if UNITY_2023_3_OR_NEWER + private CameraHistoryBuffers GetCurrentCameraHistoryBuffersRG(UniversalCameraData cameraData) + { + CameraHistoryBuffers buffers = null; + if (hbao.temporalFilterEnabled.value && cameraData.cameraType != CameraType.SceneView) + { + for (var i = 0; i < m_CameraHistoryBuffers.Count; i++) + { + if (m_CameraHistoryBuffers[i].camera == cameraData.camera) + { + buffers = m_CameraHistoryBuffers[i]; + break; + } + } + + if ((m_PreviousColorBleedingEnabled != hbao.colorBleedingEnabled.value || +#if ENABLE_VR_MODULE && ENABLE_VR + m_PrevStereoRenderingMode != XRSettings.stereoRenderingMode || +#endif + m_PreviousResolution != hbao.resolution.value) + && buffers != null) + { + ReleaseCameraHistoryBuffers(ref buffers); + m_PreviousColorBleedingEnabled = hbao.colorBleedingEnabled.value; + m_PreviousResolution = hbao.resolution.value; +#if ENABLE_VR_MODULE && ENABLE_VR + m_PrevStereoRenderingMode = XRSettings.stereoRenderingMode; +#endif + } + + if (buffers == null) + AllocCameraHistoryBuffersRG(cameraData, ref buffers); + } + + return buffers; + } +#endif + + private void CopySource(CommandBuffer cmd) + { + BlitFullscreenTriangle(cmd, source, ShaderProperties.inputTex, material, fullscreenTriangle, Pass.Copy); + } + + private void AO(CommandBuffer cmd) + { + BlitFullscreenTriangleWithClear(cmd, hbao.mode.value == HBAO.Mode.LitAO ? source : ShaderProperties.inputTex, ShaderProperties.hbaoTex, material, new Color(0, 0, 0, 1), fullscreenTriangle, Pass.AO); + } + + private void DeinterleavedAO(CommandBuffer cmd) + { + // Deinterleave depth & normals (4x4) + //cmd.SetViewProjectionMatrices(Matrix4x4.identity, Matrix4x4.identity); + for (int i = 0; i < 4; i++) + { + m_RtsDepth[0] = ShaderProperties.depthSliceTex[(i << 2) + 0]; + m_RtsDepth[1] = ShaderProperties.depthSliceTex[(i << 2) + 1]; + m_RtsDepth[2] = ShaderProperties.depthSliceTex[(i << 2) + 2]; + m_RtsDepth[3] = ShaderProperties.depthSliceTex[(i << 2) + 3]; + m_RtsNormals[0] = ShaderProperties.normalsSliceTex[(i << 2) + 0]; + m_RtsNormals[1] = ShaderProperties.normalsSliceTex[(i << 2) + 1]; + m_RtsNormals[2] = ShaderProperties.normalsSliceTex[(i << 2) + 2]; + m_RtsNormals[3] = ShaderProperties.normalsSliceTex[(i << 2) + 3]; + + int offsetX = (i & 1) << 1; int offsetY = (i >> 1) << 1; + cmd.SetGlobalVector(ShaderProperties.deinterleaveOffset[0], new Vector2(offsetX + 0, offsetY + 0)); + cmd.SetGlobalVector(ShaderProperties.deinterleaveOffset[1], new Vector2(offsetX + 1, offsetY + 0)); + cmd.SetGlobalVector(ShaderProperties.deinterleaveOffset[2], new Vector2(offsetX + 0, offsetY + 1)); + cmd.SetGlobalVector(ShaderProperties.deinterleaveOffset[3], new Vector2(offsetX + 1, offsetY + 1)); + for (int j = 0; j < 4; j++) + { + cmd.GetTemporaryRT(ShaderProperties.depthSliceTex[j + 4 * i], deinterleavedDepthDesc, FilterMode.Point); + cmd.GetTemporaryRT(ShaderProperties.normalsSliceTex[j + 4 * i], deinterleavedNormalsDesc, FilterMode.Point); + } + BlitFullscreenTriangle(cmd, BuiltinRenderTextureType.CameraTarget, m_RtsDepth, material, fullscreenTriangle, Pass.Deinterleave_Depth); // outputs 4 render textures + BlitFullscreenTriangle(cmd, BuiltinRenderTextureType.CameraTarget, m_RtsNormals, material, fullscreenTriangle, Pass.Deinterleave_Normals); // outputs 4 render textures + } + //cmd.SetViewProjectionMatrices(cameraData.camera.worldToCameraMatrix, cameraData.camera.projectionMatrix); + + // AO on each layer + for (int i = 0; i < 4 * 4; i++) + { + cmd.SetGlobalTexture(ShaderProperties.depthTex, ShaderProperties.depthSliceTex[i]); + cmd.SetGlobalTexture(ShaderProperties.normalsTex, ShaderProperties.normalsSliceTex[i]); + cmd.SetGlobalVector(ShaderProperties.jitter, s_jitter[i]); + cmd.GetTemporaryRT(ShaderProperties.aoSliceTex[i], deinterleavedAoDesc, FilterMode.Point); + BlitFullscreenTriangleWithClear(cmd, hbao.mode.value == HBAO.Mode.LitAO ? source : ShaderProperties.inputTex, ShaderProperties.aoSliceTex[i], material, new Color(0, 0, 0, 1), fullscreenTriangle, Pass.AO_Deinterleaved); // ao + cmd.ReleaseTemporaryRT(ShaderProperties.depthSliceTex[i]); + cmd.ReleaseTemporaryRT(ShaderProperties.normalsSliceTex[i]); + } + + // Atlas Deinterleaved AO, 4x4 + cmd.GetTemporaryRT(ShaderProperties.tempTex, reinterleavedAoDesc, FilterMode.Point); + for (int i = 0; i < 4 * 4; i++) + { + cmd.SetGlobalVector(ShaderProperties.atlasOffset, new Vector2(((i & 1) + (((i & 7) >> 2) << 1)) * deinterleavedAoDesc.width, (((i & 3) >> 1) + ((i >> 3) << 1)) * deinterleavedAoDesc.height)); + BlitFullscreenTriangle(cmd, ShaderProperties.aoSliceTex[i], ShaderProperties.tempTex, material, fullscreenTriangle, Pass.Atlas_AO_Deinterleaved); // atlassing + cmd.ReleaseTemporaryRT(ShaderProperties.aoSliceTex[i]); + } + + // Reinterleave AO + BlitFullscreenTriangle(cmd, ShaderProperties.tempTex, ShaderProperties.hbaoTex, material, fullscreenTriangle, Pass.Reinterleave_AO); // reinterleave + cmd.ReleaseTemporaryRT(ShaderProperties.tempTex); + } + + private void Blur(CommandBuffer cmd) + { + if (hbao.blurType.value != HBAO.BlurType.None) + { + float width = aoDesc.width; + float height = aoDesc.height; + if (sourceDesc.useDynamicScale) + { + width *= ScalableBufferManager.widthScaleFactor; + height *= ScalableBufferManager.heightScaleFactor; + } + + cmd.GetTemporaryRT(ShaderProperties.tempTex, aoDesc, FilterMode.Bilinear); + cmd.SetGlobalVector(ShaderProperties.blurDeltaUV, new Vector2(1f / width, 0)); + BlitFullscreenTriangle(cmd, ShaderProperties.hbaoTex, ShaderProperties.tempTex, material, fullscreenTriangle, Pass.Blur); + cmd.SetGlobalVector(ShaderProperties.blurDeltaUV, new Vector2(0, 1f / height)); + BlitFullscreenTriangle(cmd, ShaderProperties.tempTex, ShaderProperties.hbaoTex, material, fullscreenTriangle, Pass.Blur); + cmd.ReleaseTemporaryRT(ShaderProperties.tempTex); + } + } + + private void TemporalFilter(CommandBuffer cmd, CameraHistoryBuffers buffers) + { + if (hbao.temporalFilterEnabled.value && !renderingInSceneView && buffers != null) + { + cmd.SetGlobalVector(ShaderProperties.historyBufferRTHandleScale, buffers.historyRTSystem.rtHandleProperties.rtHandleScale); + + if (buffers.frameCount == 0) + { + // buffers were just allocated this frame, clear them (previous frame RT) + cmd.SetRenderTarget(buffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.AmbientOcclusion, 1), 0, CubemapFace.Unknown, -1); + cmd.ClearRenderTarget(false, true, Color.white); + if (hbao.colorBleedingEnabled.value) + { + cmd.SetRenderTarget(buffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.ColorBleeding, 1), 0, CubemapFace.Unknown, -1); + cmd.ClearRenderTarget(false, true, new Color(0, 0, 0, 1)); + } + } + + var viewportRect = new Rect(Vector2.zero, buffers.historyRTSystem.rtHandleProperties.currentViewportSize); + + if (hbao.colorBleedingEnabled.value) + { + // For Color Bleeding we have 2 history buffers to fill so there are 2 render targets. + // AO is still contained in Color Bleeding history buffer (alpha channel) so that we + // can use it as a render texture for the composite pass. + var currentFrameAORT = buffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.AmbientOcclusion, 0); + var currentFrameCBRT = buffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.ColorBleeding, 0); + var previousFrameAORT = buffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.AmbientOcclusion, 1); + var previousFrameCBRT = buffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.ColorBleeding, 1); + var rts = new RenderTargetIdentifier[] { + currentFrameAORT, + currentFrameCBRT + }; + //cmd.SetViewProjectionMatrices(Matrix4x4.identity, Matrix4x4.identity); + cmd.SetGlobalTexture(ShaderProperties.tempTex, previousFrameCBRT); + BlitFullscreenTriangle(cmd, previousFrameAORT, rts, viewportRect, material, fullscreenTriangle, Pass.Temporal_Filter); + //cmd.SetViewProjectionMatrices(cameraData.camera.worldToCameraMatrix, cameraData.camera.projectionMatrix); + cmd.SetGlobalTexture(ShaderProperties.hbaoTex, currentFrameCBRT); + } + else + { + // AO history buffer contains ao in aplha channel so we can just use history as + // a render texture for the composite pass. + var currentFrameRT = buffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.AmbientOcclusion, 0); + var previousFrameRT = buffers.historyRTSystem.GetFrameRT((int)HistoryBufferType.AmbientOcclusion, 1); + BlitFullscreenTriangle(cmd, previousFrameRT, currentFrameRT, viewportRect, material, fullscreenTriangle, Pass.Temporal_Filter); + cmd.SetGlobalTexture(ShaderProperties.hbaoTex, currentFrameRT); + } + + // increment buffers frameCount for next frame, track last buffer use + buffers.frameCount++; + buffers.lastRenderedFrame = Time.frameCount; + } + else + cmd.SetGlobalVector(ShaderProperties.historyBufferRTHandleScale, Vector4.one); + } + + private void Composite(CommandBuffer cmd) + { + BlitFullscreenTriangle(cmd, + hbao.mode.value == HBAO.Mode.LitAO ? source : ShaderProperties.inputTex, + hbao.mode.value == HBAO.Mode.LitAO && hbao.debugMode.value == HBAO.DebugMode.Disabled ? ShaderProperties.ssaoTex : source, + material, fullscreenTriangle, + hbao.debugMode.value == HBAO.DebugMode.ViewNormals ? Pass.Debug_ViewNormals : Pass.Composite + ); + + if (hbao.mode.value == HBAO.Mode.LitAO) + { + cmd.SetGlobalTexture("_ScreenSpaceOcclusionTexture", ShaderProperties.ssaoTex); + cmd.SetGlobalVector("_AmbientOcclusionParam", new Vector4(1f, 0f, 0f, hbao.directLightingStrength.value)); + } + } + + private void UpdateMaterialProperties() + { + var sourceWidth = cameraData.cameraTargetDescriptor.width; + var sourceHeight = cameraData.cameraTargetDescriptor.height; + +#if ENABLE_VR_MODULE && ENABLE_VR + int eyeCount = XRSettings.enabled && XRSettings.stereoRenderingMode == XRSettings.StereoRenderingMode.SinglePassInstanced && !renderingInSceneView ? 2 : 1; +#else + int eyeCount = 1; +#endif + for (int viewIndex = 0; viewIndex < eyeCount; viewIndex++) + { + var projMatrix = cameraData.GetProjectionMatrix(viewIndex); + float invTanHalfFOVxAR = projMatrix.m00; // m00 => 1.0f / (tanHalfFOV * aspectRatio) + float invTanHalfFOV = projMatrix.m11; // m11 => 1.0f / tanHalfFOV + m_UVToViewPerEye[viewIndex] = new Vector4(2.0f / invTanHalfFOVxAR, -2.0f / invTanHalfFOV, -1.0f / invTanHalfFOVxAR, 1.0f / invTanHalfFOV); + m_RadiusPerEye[viewIndex] = hbao.radius.value * 0.5f * (sourceHeight / (hbao.deinterleaving.value == HBAO.Deinterleaving.x4 ? 4 : 1) / (2.0f / invTanHalfFOV)); + } + + //float tanHalfFovY = Mathf.Tan(0.5f * cameraData.camera.fieldOfView * Mathf.Deg2Rad); + //float invFocalLenX = 1.0f / (1.0f / tanHalfFovY * (sourceHeight / (float)sourceWidth)); + //float invFocalLenY = 1.0f / (1.0f / tanHalfFovY); + float maxRadInPixels = Mathf.Max(16, hbao.maxRadiusPixels.value * Mathf.Sqrt(sourceWidth * sourceHeight / (1080.0f * 1920.0f))); + maxRadInPixels /= hbao.deinterleaving.value == HBAO.Deinterleaving.x4 ? 4 : 1; + + var targetScale = hbao.deinterleaving.value == HBAO.Deinterleaving.x4 ? + new Vector4(reinterleavedAoDesc.width / (float)sourceWidth, reinterleavedAoDesc.height / (float)sourceHeight, 1.0f / (reinterleavedAoDesc.width / (float)sourceWidth), 1.0f / (reinterleavedAoDesc.height / (float)sourceHeight)) : + hbao.resolution.value == HBAO.Resolution.Half /*&& (settings.perPixelNormals.value == HBAO.PerPixelNormals.Reconstruct2Samples || settings.perPixelNormals.value == HBAO.PerPixelNormals.Reconstruct4Samples)*/ ? + new Vector4((sourceWidth + 0.5f) / sourceWidth, (sourceHeight + 0.5f) / sourceHeight, 1f, 1f) : + Vector4.one; + + material.SetTexture(ShaderProperties.noiseTex, noiseTex); + material.SetVector(ShaderProperties.inputTexelSize, new Vector4(1f / sourceWidth, 1f / sourceHeight, sourceWidth, sourceHeight)); + if (sourceDesc.useDynamicScale) + material.SetVector(ShaderProperties.aoTexelSize, new Vector4(1f / (aoDesc.width * ScalableBufferManager.widthScaleFactor), 1f / (aoDesc.height * ScalableBufferManager.heightScaleFactor), aoDesc.width * ScalableBufferManager.widthScaleFactor, aoDesc.height * ScalableBufferManager.heightScaleFactor)); + else + material.SetVector(ShaderProperties.aoTexelSize, new Vector4(1f / aoDesc.width, 1f / aoDesc.height, aoDesc.width, aoDesc.height)); + material.SetVector(ShaderProperties.deinterleavedAOTexelSize, new Vector4(1.0f / deinterleavedAoDesc.width, 1.0f / deinterleavedAoDesc.height, deinterleavedAoDesc.width, deinterleavedAoDesc.height)); + material.SetVector(ShaderProperties.reinterleavedAOTexelSize, new Vector4(1f / reinterleavedAoDesc.width, 1f / reinterleavedAoDesc.height, reinterleavedAoDesc.width, reinterleavedAoDesc.height)); + material.SetVector(ShaderProperties.targetScale, targetScale); + //material.SetVector(ShaderProperties.uvToView, new Vector4(2.0f * invFocalLenX, -2.0f * invFocalLenY, -1.0f * invFocalLenX, 1.0f * invFocalLenY)); + material.SetVectorArray(ShaderProperties.uvToView, m_UVToViewPerEye); + //material.SetMatrix(ShaderProperties.worldToCameraMatrix, cameraData.camera.worldToCameraMatrix); + //material.SetFloat(ShaderProperties.radius, hbao.radius.value * 0.5f * ((sourceHeight / (hbao.deinterleaving.value == HBAO.Deinterleaving.x4 ? 4 : 1)) / (tanHalfFovY * 2.0f))); + //material.SetFloat(ShaderProperties.radius, hbao.radius.value * 0.5f * ((sourceHeight / (hbao.deinterleaving.value == HBAO.Deinterleaving.x4 ? 4 : 1)) / (invFocalLenY * 2.0f))); + material.SetFloatArray(ShaderProperties.radius, m_RadiusPerEye); + material.SetFloat(ShaderProperties.maxRadiusPixels, maxRadInPixels); + material.SetFloat(ShaderProperties.negInvRadius2, -1.0f / (hbao.radius.value * hbao.radius.value)); + material.SetFloat(ShaderProperties.angleBias, hbao.bias.value); + material.SetFloat(ShaderProperties.aoMultiplier, 2.0f * (1.0f / (1.0f - hbao.bias.value))); + material.SetFloat(ShaderProperties.intensity, isLinearColorSpace ? hbao.intensity.value : hbao.intensity.value * 0.454545454545455f); + material.SetFloat(ShaderProperties.multiBounceInfluence, hbao.multiBounceInfluence.value); + material.SetFloat(ShaderProperties.offscreenSamplesContrib, hbao.offscreenSamplesContribution.value); + material.SetFloat(ShaderProperties.maxDistance, hbao.maxDistance.value); + material.SetFloat(ShaderProperties.distanceFalloff, hbao.distanceFalloff.value); + material.SetColor(ShaderProperties.baseColor, hbao.baseColor.value); + material.SetFloat(ShaderProperties.blurSharpness, hbao.sharpness.value); + material.SetFloat(ShaderProperties.colorBleedSaturation, hbao.saturation.value); + material.SetFloat(ShaderProperties.colorBleedBrightnessMask, hbao.brightnessMask.value); + material.SetVector(ShaderProperties.colorBleedBrightnessMaskRange, AdjustBrightnessMaskToGammaSpace(new Vector2(Mathf.Pow(hbao.brightnessMaskRange.value.x, 3), Mathf.Pow(hbao.brightnessMaskRange.value.y, 3)))); + } + +#if UNITY_2023_3_OR_NEWER + private void UpdateMaterialPropertiesRG(UniversalCameraData cameraData) + { + var sourceWidth = cameraData.cameraTargetDescriptor.width; + var sourceHeight = cameraData.cameraTargetDescriptor.height; + +#if ENABLE_VR_MODULE && ENABLE_VR + int eyeCount = cameraData.xr.enabled && cameraData.xr.singlePassEnabled && !(cameraData.cameraType == CameraType.SceneView) ? cameraData.xr.viewCount : 1; +#else + int eyeCount = 1; +#endif + for (int viewIndex = 0; viewIndex < eyeCount; viewIndex++) + { + var projMatrix = cameraData.GetProjectionMatrix(viewIndex); + float invTanHalfFOVxAR = projMatrix.m00; // m00 => 1.0f / (tanHalfFOV * aspectRatio) + float invTanHalfFOV = projMatrix.m11; // m11 => 1.0f / tanHalfFOV + m_UVToViewPerEye[viewIndex] = new Vector4(2.0f / invTanHalfFOVxAR, -2.0f / invTanHalfFOV, -1.0f / invTanHalfFOVxAR, 1.0f / invTanHalfFOV); + m_RadiusPerEye[viewIndex] = hbao.radius.value * 0.5f * (sourceHeight / (hbao.deinterleaving.value == HBAO.Deinterleaving.x4 ? 4 : 1) / (2.0f / invTanHalfFOV)); + } + + //float tanHalfFovY = Mathf.Tan(0.5f * cameraData.camera.fieldOfView * Mathf.Deg2Rad); + //float invFocalLenX = 1.0f / (1.0f / tanHalfFovY * (sourceHeight / (float)sourceWidth)); + //float invFocalLenY = 1.0f / (1.0f / tanHalfFovY); + float maxRadInPixels = Mathf.Max(16, hbao.maxRadiusPixels.value * Mathf.Sqrt(sourceWidth * sourceHeight / (1080.0f * 1920.0f))); + maxRadInPixels /= hbao.deinterleaving.value == HBAO.Deinterleaving.x4 ? 4 : 1; + + var targetScale = hbao.deinterleaving.value == HBAO.Deinterleaving.x4 ? + new Vector4(reinterleavedAoDesc.width / (float)sourceWidth, reinterleavedAoDesc.height / (float)sourceHeight, 1.0f / (reinterleavedAoDesc.width / (float)sourceWidth), 1.0f / (reinterleavedAoDesc.height / (float)sourceHeight)) : + hbao.resolution.value == HBAO.Resolution.Half /*&& (settings.perPixelNormals.value == HBAO.PerPixelNormals.Reconstruct2Samples || settings.perPixelNormals.value == HBAO.PerPixelNormals.Reconstruct4Samples)*/ ? + new Vector4((sourceWidth + 0.5f) / sourceWidth, (sourceHeight + 0.5f) / sourceHeight, 1f, 1f) : + Vector4.one; + + material.SetTexture(ShaderProperties.noiseTex, noiseTex); + material.SetVector(ShaderProperties.inputTexelSize, new Vector4(1f / sourceWidth, 1f / sourceHeight, sourceWidth, sourceHeight)); + if (sourceDesc.useDynamicScale) + material.SetVector(ShaderProperties.aoTexelSize, new Vector4(1f / (aoDesc.width * ScalableBufferManager.widthScaleFactor), 1f / (aoDesc.height * ScalableBufferManager.heightScaleFactor), aoDesc.width * ScalableBufferManager.widthScaleFactor, aoDesc.height * ScalableBufferManager.heightScaleFactor)); + else + material.SetVector(ShaderProperties.aoTexelSize, new Vector4(1f / aoDesc.width, 1f / aoDesc.height, aoDesc.width, aoDesc.height)); + material.SetVector(ShaderProperties.deinterleavedAOTexelSize, new Vector4(1.0f / deinterleavedAoDesc.width, 1.0f / deinterleavedAoDesc.height, deinterleavedAoDesc.width, deinterleavedAoDesc.height)); + material.SetVector(ShaderProperties.reinterleavedAOTexelSize, new Vector4(1f / reinterleavedAoDesc.width, 1f / reinterleavedAoDesc.height, reinterleavedAoDesc.width, reinterleavedAoDesc.height)); + material.SetVector(ShaderProperties.targetScale, targetScale); + //material.SetVector(ShaderProperties.uvToView, new Vector4(2.0f * invFocalLenX, -2.0f * invFocalLenY, -1.0f * invFocalLenX, 1.0f * invFocalLenY)); + material.SetVectorArray(ShaderProperties.uvToView, m_UVToViewPerEye); + //material.SetMatrix(ShaderProperties.worldToCameraMatrix, cameraData.camera.worldToCameraMatrix); + //material.SetFloat(ShaderProperties.radius, hbao.radius.value * 0.5f * ((sourceHeight / (hbao.deinterleaving.value == HBAO.Deinterleaving.x4 ? 4 : 1)) / (tanHalfFovY * 2.0f))); + //material.SetFloat(ShaderProperties.radius, hbao.radius.value * 0.5f * ((sourceHeight / (hbao.deinterleaving.value == HBAO.Deinterleaving.x4 ? 4 : 1)) / (invFocalLenY * 2.0f))); + material.SetFloatArray(ShaderProperties.radius, m_RadiusPerEye); + material.SetFloat(ShaderProperties.maxRadiusPixels, maxRadInPixels); + material.SetFloat(ShaderProperties.negInvRadius2, -1.0f / (hbao.radius.value * hbao.radius.value)); + material.SetFloat(ShaderProperties.angleBias, hbao.bias.value); + material.SetFloat(ShaderProperties.aoMultiplier, 2.0f * (1.0f / (1.0f - hbao.bias.value))); + material.SetFloat(ShaderProperties.intensity, isLinearColorSpace ? hbao.intensity.value : hbao.intensity.value * 0.454545454545455f); + material.SetFloat(ShaderProperties.multiBounceInfluence, hbao.multiBounceInfluence.value); + material.SetFloat(ShaderProperties.offscreenSamplesContrib, hbao.offscreenSamplesContribution.value); + material.SetFloat(ShaderProperties.maxDistance, hbao.maxDistance.value); + material.SetFloat(ShaderProperties.distanceFalloff, hbao.distanceFalloff.value); + material.SetColor(ShaderProperties.baseColor, hbao.baseColor.value); + material.SetFloat(ShaderProperties.blurSharpness, hbao.sharpness.value); + material.SetFloat(ShaderProperties.colorBleedSaturation, hbao.saturation.value); + material.SetFloat(ShaderProperties.colorBleedBrightnessMask, hbao.brightnessMask.value); + material.SetVector(ShaderProperties.colorBleedBrightnessMaskRange, AdjustBrightnessMaskToGammaSpace(new Vector2(Mathf.Pow(hbao.brightnessMaskRange.value.x, 3), Mathf.Pow(hbao.brightnessMaskRange.value.y, 3)))); + } +#endif + + private void UpdateShaderKeywords() + { + if (m_ShaderKeywords == null || m_ShaderKeywords.Length != 12) m_ShaderKeywords = new string[12]; + + m_ShaderKeywords[0] = ShaderProperties.GetOrthographicProjectionKeyword(cameraData.camera.orthographic); + m_ShaderKeywords[1] = ShaderProperties.GetQualityKeyword(hbao.quality.value); + m_ShaderKeywords[2] = ShaderProperties.GetNoiseKeyword(hbao.noiseType.value); + m_ShaderKeywords[3] = ShaderProperties.GetDeinterleavingKeyword(hbao.deinterleaving.value); + m_ShaderKeywords[4] = ShaderProperties.GetDebugKeyword(hbao.debugMode.value); + m_ShaderKeywords[5] = ShaderProperties.GetMultibounceKeyword(hbao.useMultiBounce.value, hbao.mode.value == HBAO.Mode.LitAO); + m_ShaderKeywords[6] = ShaderProperties.GetOffscreenSamplesContributionKeyword(hbao.offscreenSamplesContribution.value); + m_ShaderKeywords[7] = ShaderProperties.GetPerPixelNormalsKeyword(hbao.perPixelNormals.value); + m_ShaderKeywords[8] = ShaderProperties.GetBlurRadiusKeyword(hbao.blurType.value); + m_ShaderKeywords[9] = ShaderProperties.GetVarianceClippingKeyword(hbao.varianceClipping.value); + m_ShaderKeywords[10] = ShaderProperties.GetColorBleedingKeyword(hbao.colorBleedingEnabled.value, hbao.mode.value == HBAO.Mode.LitAO); + m_ShaderKeywords[11] = ShaderProperties.GetModeKeyword(hbao.mode.value); + + material.shaderKeywords = m_ShaderKeywords; + } + +#if UNITY_2023_3_OR_NEWER + private void UpdateShaderKeywordsRG(UniversalCameraData cameraData) + { + if (m_ShaderKeywords == null || m_ShaderKeywords.Length != 12) m_ShaderKeywords = new string[12]; + + m_ShaderKeywords[0] = ShaderProperties.GetOrthographicProjectionKeyword(cameraData.camera.orthographic); + m_ShaderKeywords[1] = ShaderProperties.GetQualityKeyword(hbao.quality.value); + m_ShaderKeywords[2] = ShaderProperties.GetNoiseKeyword(hbao.noiseType.value); + m_ShaderKeywords[3] = ShaderProperties.GetDeinterleavingKeyword(hbao.deinterleaving.value); + m_ShaderKeywords[4] = ShaderProperties.GetDebugKeyword(hbao.debugMode.value); + m_ShaderKeywords[5] = ShaderProperties.GetMultibounceKeyword(hbao.useMultiBounce.value, hbao.mode.value == HBAO.Mode.LitAO); + m_ShaderKeywords[6] = ShaderProperties.GetOffscreenSamplesContributionKeyword(hbao.offscreenSamplesContribution.value); + m_ShaderKeywords[7] = ShaderProperties.GetPerPixelNormalsKeyword(hbao.perPixelNormals.value); + m_ShaderKeywords[8] = ShaderProperties.GetBlurRadiusKeyword(hbao.blurType.value); + m_ShaderKeywords[9] = ShaderProperties.GetVarianceClippingKeyword(hbao.varianceClipping.value); + m_ShaderKeywords[10] = ShaderProperties.GetColorBleedingKeyword(hbao.colorBleedingEnabled.value, hbao.mode.value == HBAO.Mode.LitAO); + m_ShaderKeywords[11] = ShaderProperties.GetModeKeyword(hbao.mode.value); + + material.shaderKeywords = m_ShaderKeywords; + } +#endif + + private void CheckParameters() + { + if (hbao.deinterleaving.value != HBAO.Deinterleaving.Disabled && SystemInfo.supportedRenderTargetCount < 4) + hbao.SetDeinterleaving(HBAO.Deinterleaving.Disabled); + + if (hbao.temporalFilterEnabled.value && !motionVectorsSupported) + hbao.EnableTemporalFilter(false); + + if (hbao.colorBleedingEnabled.value && hbao.temporalFilterEnabled.value && SystemInfo.supportedRenderTargetCount < 2) + hbao.EnableTemporalFilter(false); + + if (hbao.colorBleedingEnabled.value && hbao.mode.value == HBAO.Mode.LitAO) + hbao.EnableColorBleeding(false); + + // Noise texture + if (noiseTex == null || m_PreviousNoiseType != hbao.noiseType.value) + { + CoreUtils.Destroy(noiseTex); + + CreateNoiseTexture(); + + m_PreviousNoiseType = hbao.noiseType.value; + } + } + + private RenderTextureDescriptor GetStereoCompatibleDescriptor(int width, int height, RenderTextureFormat format = RenderTextureFormat.Default, int depthBufferBits = 0, RenderTextureReadWrite readWrite = RenderTextureReadWrite.Default) + { + // Inherit the VR setup from the camera descriptor + var desc = sourceDesc; + desc.depthBufferBits = depthBufferBits; + desc.msaaSamples = 1; + desc.width = width; + desc.height = height; + desc.colorFormat = format; + + if (readWrite == RenderTextureReadWrite.sRGB) + desc.sRGB = true; + else if (readWrite == RenderTextureReadWrite.Linear) + desc.sRGB = false; + else if (readWrite == RenderTextureReadWrite.Default) + desc.sRGB = isLinearColorSpace; + + return desc; + } + + private static void BlitFullscreenTriangle(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier destination, Material material, Mesh fullscreenTriangle, int passIndex = 0) + { + cmd.SetGlobalTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(destination, 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, passIndex); + } + + private static void BlitFullscreenTriangle(CommandBuffer cmd, RenderTexture source, RenderTargetIdentifier destination, Material material, Mesh fullscreenTriangle, int passIndex, MaterialPropertyBlock properties) + { + properties.SetTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(new RenderTargetIdentifier(destination, 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices), RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, passIndex, properties); + } + + private static void BlitFullscreenTriangle(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier destination, Rect viewportRect, Material material, Mesh fullscreenTriangle, int passIndex = 0) + { + cmd.SetGlobalTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(destination, 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices); + cmd.SetViewport(viewportRect); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, passIndex); + } + + private static void BlitFullscreenTriangle(CommandBuffer cmd, RenderTexture source, RenderTargetIdentifier destination, Rect viewportRect, Material material, Mesh fullscreenTriangle, int passIndex, MaterialPropertyBlock properties) + { + properties.SetTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(new RenderTargetIdentifier(destination, 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices), RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store); + cmd.SetViewport(viewportRect); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, passIndex, properties); + } + + private static void BlitFullscreenTriangle(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier[] destinations, Material material, Mesh fullscreenTriangle, int passIndex = 0) + { + cmd.SetGlobalTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(destinations, destinations[0], 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, passIndex); + } + + private static void BlitFullscreenTriangle(CommandBuffer cmd, RenderTexture source, RenderTargetIdentifier[] destinations, Material material, Mesh fullscreenTriangle, int passIndex, MaterialPropertyBlock properties) + { + properties.SetTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(destinations, destinations[0], 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, passIndex, properties); + } + + private static void BlitFullscreenTriangle(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier[] destinations, Rect viewportRect, Material material, Mesh fullscreenTriangle, int passIndex = 0) + { + cmd.SetGlobalTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(destinations, destinations[0], 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices); + cmd.SetViewport(viewportRect); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, passIndex); + } + + private static void BlitFullscreenTriangle(CommandBuffer cmd, RenderTexture source, RenderTargetIdentifier[] destinations, Rect viewportRect, Material material, Mesh fullscreenTriangle, int passIndex, MaterialPropertyBlock properties) + { + properties.SetTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(destinations, destinations[0], 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices); + cmd.SetViewport(viewportRect); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, passIndex, properties); + } + + private static void BlitFullscreenTriangleWithClear(CommandBuffer cmd, RenderTargetIdentifier source, RenderTargetIdentifier destination, Material material, Color clearColor, Mesh fullscreenTriangle, int passIndex = 0) + { + cmd.SetGlobalTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(destination, 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices); + cmd.ClearRenderTarget(false, true, clearColor); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, passIndex); + } + + private static void BlitFullscreenTriangleWithClear(CommandBuffer cmd, RenderTexture source, RenderTargetIdentifier destination, Material material, Color clearColor, Mesh fullscreenTriangle, int passIndex, MaterialPropertyBlock properties) + { + properties.SetTexture(ShaderProperties.mainTex, source); + cmd.SetRenderTarget(new RenderTargetIdentifier(destination, 0, CubemapFace.Unknown, RenderTargetIdentifier.AllDepthSlices), RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store); + cmd.ClearRenderTarget(false, true, clearColor); + cmd.DrawMesh(fullscreenTriangle, Matrix4x4.identity, material, 0, passIndex, properties); + } + + private Vector2 AdjustBrightnessMaskToGammaSpace(Vector2 v) + { + return isLinearColorSpace ? v : ToGammaSpace(v); + } + + private float ToGammaSpace(float v) + { + return Mathf.Pow(v, 0.454545454545455f); + } + + private Vector2 ToGammaSpace(Vector2 v) + { + return new Vector2(ToGammaSpace(v.x), ToGammaSpace(v.y)); + } + + private void CreateNoiseTexture() + { + noiseTex = new Texture2D(4, 4, SystemInfo.SupportsTextureFormat(TextureFormat.RGHalf) ? TextureFormat.RGHalf : TextureFormat.RGB24, false, true); + noiseTex.filterMode = FilterMode.Point; + noiseTex.wrapMode = TextureWrapMode.Repeat; + int z = 0; + for (int x = 0; x < 4; ++x) + { + for (int y = 0; y < 4; ++y) + { + float r1 = hbao.noiseType.value != HBAO.NoiseType.Dither ? 0.25f * (0.0625f * ((x + y & 3) << 2) + (x & 3)) : MersenneTwister.Numbers[z++]; + float r2 = hbao.noiseType.value != HBAO.NoiseType.Dither ? 0.25f * ((y - x) & 3) : MersenneTwister.Numbers[z++]; + Color color = new Color(r1, r2, 0); + noiseTex.SetPixel(x, y, color); + } + } + noiseTex.Apply(); + + for (int i = 0, j = 0; i < s_jitter.Length; ++i) + { + float r1 = MersenneTwister.Numbers[j++]; + float r2 = MersenneTwister.Numbers[j++]; + s_jitter[i] = new Vector2(r1, r2); + } + } + } + + [SerializeField, HideInInspector] + private Shader shader; + private HBAORenderPass m_HBAORenderPass; + + + void OnDisable() + { + m_HBAORenderPass?.Cleanup(); + } + + public override void Create() + { + if (!isActive) + { + m_HBAORenderPass?.Cleanup(); + m_HBAORenderPass = null; + return; + } + + m_HBAORenderPass = new HBAORenderPass(); + m_HBAORenderPass.FillSupportedRenderTextureFormats(); + } + + protected override void Dispose(bool disposing) + { + m_HBAORenderPass?.Cleanup(); + m_HBAORenderPass = null; + } + + // Here you can inject one or multiple render passes in the renderer. + // This method is called when setting up the renderer once per-camera. + public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) + { + shader = Shader.Find("Hidden/Universal Render Pipeline/HBAO"); + if (!shader) + { + Debug.LogError("HBAO shader was not found. Please ensure it compiles correctly"); + return; + } + + if (m_HBAORenderPass == null) + Create(); + + if (m_HBAORenderPass == null || !renderingData.cameraData.postProcessEnabled) return; + + m_HBAORenderPass.Setup(shader, renderer, renderingData); + renderer.EnqueuePass(m_HBAORenderPass); + } + } +} diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAORendererFeature.cs.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAORendererFeature.cs.meta new file mode 100644 index 0000000..2c84c51 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Runtime/HBAORendererFeature.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: f7c2c2c3c19808149a4d3454e1019255 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - settings: {fileID: 11400000, guid: 68dde9df85a05a54fbc92e3b6f3a8c42, type: 2} + - hbaoShader: {fileID: 4800000, guid: bf610497676b34e4dbe0f14fe3fe311c, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders.meta new file mode 100644 index 0000000..a2dea7d --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 39ee3648c2c58684590305025db692f6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO.shader b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO.shader new file mode 100644 index 0000000..236e4ac --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO.shader @@ -0,0 +1,384 @@ +Shader "Hidden/Universal Render Pipeline/HBAO" +{ + Properties + { + _MainTex("", any) = "" {} + _HBAOTex("", any) = "" {} + _TempTex("", any) = "" {} + _NoiseTex("", 2D) = "" {} + _DepthTex("", any) = "" {} + _NormalsTex("", any) = "" {} + } + + HLSLINCLUDE + + #pragma target 3.0 + #pragma prefer_hlslcc gles + #pragma exclude_renderers d3d11_9x + #pragma editor_sync_compilation + //#pragma enable_d3d11_debug_symbols + + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" + #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" + #if UNITY_VERSION >= 202330 + #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/GlobalSamplers.hlsl" + #endif + + TEXTURE2D_X(_MainTex); + TEXTURE2D_X(_HBAOTex); + TEXTURE2D_X(_TempTex); + TEXTURE2D_X(_DepthTex); + TEXTURE2D_X(_NormalsTex); + //TEXTURE2D_X(_CameraNormalsTexture); + TEXTURE2D_X(_MotionVectorTexture); + TEXTURE2D(_NoiseTex); + #if !(UNITY_VERSION >= 202330) + SAMPLER(sampler_LinearClamp); + SAMPLER(sampler_PointRepeat); + SAMPLER(sampler_PointClamp); + #endif + + float4 _HistoryBuffer_RTHandleScale; + + CBUFFER_START(FrequentlyUpdatedUniforms) + float4 _Input_TexelSize; + float4 _AO_TexelSize; + float4 _DeinterleavedAO_TexelSize; + float4 _ReinterleavedAO_TexelSize; + float4 _TargetScale; + float4 _UVToView[2]; + //float4x4 _WorldToCameraMatrix; + float _Radius[2]; + float _MaxRadiusPixels; + float _NegInvRadius2; + float _AngleBias; + float _AOmultiplier; + float _Intensity; + half4 _BaseColor; + float _MultiBounceInfluence; + float _OffscreenSamplesContrib; + float _MaxDistance; + float _DistanceFalloff; + float _BlurSharpness; + float _ColorBleedSaturation; + float _ColorBleedBrightnessMask; + float2 _ColorBleedBrightnessMaskRange; + float2 _TemporalParams; + CBUFFER_END + + CBUFFER_START(PerPassUpdatedUniforms) + float2 _BlurDeltaUV; + CBUFFER_END + + CBUFFER_START(PerPassUpdatedDeinterleavingUniforms) + float2 _Deinterleave_Offset00; + float2 _Deinterleave_Offset10; + float2 _Deinterleave_Offset01; + float2 _Deinterleave_Offset11; + float2 _AtlasOffset; + float2 _Jitter; + CBUFFER_END + + struct Attributes + { + float4 positionOS : POSITION; + + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct Varyings + { + float4 positionCS : SV_POSITION; + float2 uv : TEXCOORD0; + + UNITY_VERTEX_OUTPUT_STEREO + }; + + float2 TransformTriangleVertexToUV(float2 vertex) + { + float2 uv = (vertex + 1.0) * 0.5; + return uv; + } + + Varyings Vert(Attributes input) + { + Varyings output; + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + //output.positionCS = TransformObjectToHClip(input.positionOS.xyz); + // Note: The pass is setup with a mesh already in CS + // Therefore, we can just output vertex position + output.positionCS = float4(input.positionOS.xy, 0.0, 1.0); + output.uv = TransformTriangleVertexToUV(input.positionOS.xy); + #if UNITY_UV_STARTS_AT_TOP + output.uv = output.uv * float2(1.0, -1.0) + float2(0.0, 1.0); + #endif + return output; + } + + Varyings Vert_Atlas(Attributes input) + { + Varyings output; + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + //float3 pos = input.positionOS.xyz; + //pos.xy = pos.xy * (_DeinterleavedAO_TexelSize.zw / _ReinterleavedAO_TexelSize.zw) + _AtlasOffset * _ReinterleavedAO_TexelSize.xy; + //output.positionCS = TransformObjectToHClip(pos); + output.positionCS = float4((input.positionOS.xy + float2(-3.0, 1.0)) * (_DeinterleavedAO_TexelSize.zw / _ReinterleavedAO_TexelSize.zw) + 2.0 * _AtlasOffset * _ReinterleavedAO_TexelSize.xy, 0.0, 1.0); + output.uv = TransformTriangleVertexToUV(input.positionOS.xy); + + // flip triangle upside down + output.positionCS.y = 1 - output.positionCS.y; + return output; + } + + ENDHLSL + + SubShader + { + Tags { "RenderType" = "Opaque" "RenderPipeline" = "UniversalPipeline" } + LOD 100 + ZWrite Off ZTest Always Blend Off Cull Off + + Pass // 0 + { + Name "HBAO - AO" + + HLSLPROGRAM + #pragma multi_compile_local_fragment __ ORTHOGRAPHIC_PROJECTION + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment __ OFFSCREEN_SAMPLES_CONTRIBUTION + #pragma multi_compile_local_fragment __ NORMALS_RECONSTRUCT2 NORMALS_RECONSTRUCT4 + #pragma multi_compile_local_fragment __ INTERLEAVED_GRADIENT_NOISE + #pragma multi_compile_local_fragment QUALITY_LOWEST QUALITY_LOW QUALITY_MEDIUM QUALITY_HIGH QUALITY_HIGHEST + #pragma multi_compile_fragment __ _GBUFFER_NORMALS_OCT // support octahedron endoded normals + + #if QUALITY_LOWEST + #define DIRECTIONS 3 + #define STEPS 2 + #elif QUALITY_LOW + #define DIRECTIONS 4 + #define STEPS 3 + #elif QUALITY_MEDIUM + #define DIRECTIONS 6 + #define STEPS 4 + #elif QUALITY_HIGH + #define DIRECTIONS 8 + #define STEPS 4 + #elif QUALITY_HIGHEST + #define DIRECTIONS 8 + #define STEPS 6 + #else + #define DIRECTIONS 1 + #define STEPS 1 + #endif + + #pragma vertex Vert + #pragma fragment AO_Frag + + #include "HBAO_AO.hlsl" + ENDHLSL + } + + Pass // 1 + { + Name "HBAO - AO Deinterleaved" + + HLSLPROGRAM + #pragma multi_compile_local_fragment __ ORTHOGRAPHIC_PROJECTION + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment __ OFFSCREEN_SAMPLES_CONTRIBUTION + #pragma multi_compile_local_fragment QUALITY_LOWEST QUALITY_LOW QUALITY_MEDIUM QUALITY_HIGH QUALITY_HIGHEST + + #if QUALITY_LOWEST + #define DIRECTIONS 3 + #define STEPS 2 + #elif QUALITY_LOW + #define DIRECTIONS 4 + #define STEPS 3 + #elif QUALITY_MEDIUM + #define DIRECTIONS 6 + #define STEPS 4 + #elif QUALITY_HIGH + #define DIRECTIONS 8 + #define STEPS 4 + #elif QUALITY_HIGHEST + #define DIRECTIONS 8 + #define STEPS 6 + #else + #define DIRECTIONS 1 + #define STEPS 1 + #endif + + #define DEINTERLEAVED + + #pragma vertex Vert + #pragma fragment AO_Frag + + #include "HBAO_AO.hlsl" + ENDHLSL + } + + // 2 + Pass { + Name "HBAO - Deinterleave Depth" + + HLSLPROGRAM + #pragma vertex Vert + #pragma fragment DeinterleaveDepth_Frag + + #include "HBAO_Deinterleaving.hlsl" + ENDHLSL + } + + // 3 + Pass { + Name "HBAO - Deinterleave Normals" + + HLSLPROGRAM + #pragma multi_compile_local_fragment __ ORTHOGRAPHIC_PROJECTION + #pragma multi_compile_local_fragment __ NORMALS_RECONSTRUCT2 NORMALS_RECONSTRUCT4 + #pragma multi_compile_fragment __ _GBUFFER_NORMALS_OCT // support octahedron endoded normals + + #pragma vertex Vert + #pragma fragment DeinterleaveNormals_Frag + + #include "HBAO_Deinterleaving.hlsl" + ENDHLSL + } + + // 4 + Pass { + Name "HBAO - Atlas Deinterleaved AO" + + HLSLPROGRAM + #pragma vertex Vert_Atlas + #pragma fragment Frag + + half4 Frag(Varyings input) : SV_Target + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + float2 uv = UnityStereoTransformScreenSpaceTex(input.uv); + return SAMPLE_TEXTURE2D_X(_MainTex, sampler_PointClamp, uv); + } + ENDHLSL + } + + // 5 + Pass { + Name "HBAO - Reinterleave AO" + + HLSLPROGRAM + #pragma vertex Vert + #pragma fragment ReinterleaveAO_Frag + + #include "HBAO_Deinterleaving.hlsl" + ENDHLSL + } + + Pass // 6 + { + Name "HBAO - Blur" + + HLSLPROGRAM + #pragma multi_compile_local_fragment __ ORTHOGRAPHIC_PROJECTION + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment BLUR_RADIUS_2 BLUR_RADIUS_3 BLUR_RADIUS_4 BLUR_RADIUS_5 + + #if BLUR_RADIUS_2 + #define KERNEL_RADIUS 2 + #elif BLUR_RADIUS_3 + #define KERNEL_RADIUS 3 + #elif BLUR_RADIUS_4 + #define KERNEL_RADIUS 4 + #elif BLUR_RADIUS_5 + #define KERNEL_RADIUS 5 + #else + #define KERNEL_RADIUS 0 + #endif + + #pragma vertex Vert + #pragma fragment Blur_Frag + + #include "HBAO_Blur.hlsl" + ENDHLSL + } + + Pass // 7 + { + Name "HBAO - Temporal Filter" + + HLSLPROGRAM + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment __ VARIANCE_CLIPPING_4TAP VARIANCE_CLIPPING_8TAP + + #pragma vertex Vert + #pragma fragment TemporalFilter_Frag + + #include "HBAO_TemporalFilter.hlsl" + ENDHLSL + } + + Pass // 8 + { + Name "HBAO - Copy" + + HLSLPROGRAM + #pragma vertex Vert + #pragma fragment Frag + + half4 Frag(Varyings input) : SV_Target + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + float2 uv = UnityStereoTransformScreenSpaceTex(input.uv); + return SAMPLE_TEXTURE2D_X(_MainTex, sampler_LinearClamp, uv); + } + ENDHLSL + } + + Pass // 9 + { + Name "HBAO - Composite" + + ColorMask RGB + + HLSLPROGRAM + #pragma multi_compile_local_fragment __ LIT_AO + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment __ MULTIBOUNCE + #pragma multi_compile_local_fragment __ DEBUG_AO DEBUG_COLORBLEEDING DEBUG_NOAO_AO DEBUG_AO_AOONLY DEBUG_NOAO_AOONLY + + #pragma vertex Vert + #pragma fragment Composite_Frag + + #include "HBAO_Composite.hlsl" + ENDHLSL + } + + Pass // 10 + { + Name "HBAO - Debug ViewNormals" + + ColorMask RGB + + HLSLPROGRAM + #pragma multi_compile_local_fragment __ ORTHOGRAPHIC_PROJECTION + #pragma multi_compile_local_fragment __ NORMALS_RECONSTRUCT2 NORMALS_RECONSTRUCT4 + #pragma multi_compile_fragment __ _GBUFFER_NORMALS_OCT // support octahedron endoded normals + + #pragma vertex Vert + #pragma fragment AO_Frag + + #define DIRECTIONS 1 + #define STEPS 1 + #define DEBUG_VIEWNORMALS + + #include "HBAO_AO.hlsl" + ENDHLSL + } + } + + Fallback Off +} diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO.shader.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO.shader.meta new file mode 100644 index 0000000..c979c4a --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bf610497676b34e4dbe0f14fe3fe311c +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_AO.hlsl b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_AO.hlsl new file mode 100644 index 0000000..0845ef3 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_AO.hlsl @@ -0,0 +1,205 @@ +//---------------------------------------------------------------------------------- +// +// Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//---------------------------------------------------------------------------------- + +#ifndef HBAO_AO_INCLUDED +#define HBAO_AO_INCLUDED + +#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" +#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Macros.hlsl" +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" +#include "HBAO_Common.hlsl" + +inline float3 FetchLayerViewPos(float2 uv) { + uv = clamp(uv, 0, 1 - _Input_TexelSize.xy * 0.5); // uv guard + float depth = LinearizeDepth(SAMPLE_TEXTURE2D_X(_DepthTex, sampler_PointClamp, uv).r); +#if ORTHOGRAPHIC_PROJECTION + return float3((uv * _UVToView[unity_StereoEyeIndex].xy + _UVToView[unity_StereoEyeIndex].zw), depth); +#else + return float3((uv * _UVToView[unity_StereoEyeIndex].xy + _UVToView[unity_StereoEyeIndex].zw) * depth, depth); +#endif +} + +inline float Falloff(float distanceSquare) { + // 1 scalar mad instruction + return distanceSquare * _NegInvRadius2 + 1.0; +} + +inline float ComputeAO(float3 P, float3 N, float3 S) { + float3 V = S - P; + float VdotV = dot(V, V); + float NdotV = dot(N, V) * rsqrt(VdotV); + + // Use saturate(x) instead of max(x,0.f) because that is faster on Kepler + return saturate(NdotV - _AngleBias) * saturate(Falloff(VdotV)); +} + +inline float2 RotateDirections(float2 dir, float2 rot) { + return float2(dir.x * rot.x - dir.y * rot.y, + dir.x * rot.y + dir.y * rot.x); +} + +inline float InterleavedGradientNoise(float2 screenPos) { + // http://www.iryoku.com/downloads/Next-Generation-Post-Processing-in-Call-of-Duty-Advanced-Warfare-v18.pptx (slide 123) + float3 magic = float3(0.06711056, 0.00583715, 52.9829189); + return frac(magic.z * frac(dot(screenPos, magic.xy))); +} + +inline float2 FetchNoise(float2 screenPos) { + #if INTERLEAVED_GRADIENT_NOISE + // Use Jorge Jimenez's IGN noise and GTAO spatial offsets distribution + // https://blog.selfshadow.com/publications/s2016-shading-course/activision/s2016_pbs_activision_occlusion.pdf (slide 93) + return float2(InterleavedGradientNoise(screenPos), SAMPLE_TEXTURE2D(_NoiseTex, sampler_PointRepeat, screenPos / 4.0).g); + #else + // (cos(alpha), sin(alpha), jitter) + return SAMPLE_TEXTURE2D(_NoiseTex, sampler_PointRepeat, screenPos / 4.0).rg; + #endif +} + +float4 AO_Frag(Varyings input) : SV_Target +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + float2 uv = UnityStereoTransformScreenSpaceTex(input.uv); + //uint2 positionSS = input.uv * _ScreenSize.xy; + + #ifdef DEINTERLEAVED + float3 P = FetchLayerViewPos(uv); + #else + float3 P = FetchViewPos(uv); + #endif + + #ifndef DEBUG_VIEWNORMALS + clip(_MaxDistance - P.z); + #endif + + #if ORTHOGRAPHIC_PROJECTION + float stepSize = min(_Radius[unity_StereoEyeIndex], _MaxRadiusPixels) / (STEPS + 1.0); + #else + float stepSize = min((_Radius[unity_StereoEyeIndex] / P.z), _MaxRadiusPixels) / (STEPS + 1.0); + #endif + + #ifdef DEINTERLEAVED + float3 N = SAMPLE_TEXTURE2D_X(_NormalsTex, sampler_PointClamp, uv).rgb * 2.0 - 1.0; + float2 rand = _Jitter; // angle, jitter + #else + float3 N = FetchViewNormals(uv, _AO_TexelSize.xy, P); + //float2 rand = FetchNoise(positionSS); + //float2 rand = FetchNoise(input.positionCS.xy); + float2 rand = FetchNoise(uv * _AO_TexelSize.zw); + #endif + + const float alpha = 2.0 * PI / DIRECTIONS; + float ao = 0; + + #if COLOR_BLEEDING + static float2 cbUVs[DIRECTIONS * STEPS]; + static float cbContribs[DIRECTIONS * STEPS]; + #endif + + UNITY_UNROLL + for (int d = 0; d < DIRECTIONS; ++d) { + float angle = alpha * (float(d) + rand.x + _TemporalParams.x); + + // Compute normalized 2D direction + float cosA, sinA; + sincos(angle, sinA, cosA); + float2 direction = float2(cosA, sinA); + + // Jitter starting sample within the first step + float rayPixels = (frac(rand.y + _TemporalParams.y) * stepSize + 1.0); + + UNITY_UNROLL + for (int s = 0; s < STEPS; ++s) { + + #ifdef DEINTERLEAVED + float2 snappedUV = round(rayPixels * direction) * _DeinterleavedAO_TexelSize.xy + uv; + float3 S = FetchLayerViewPos(snappedUV); + #else + float2 snappedUV = round(rayPixels * direction) * _Input_TexelSize.xy + uv; + float3 S = FetchViewPos(snappedUV); + #endif + + rayPixels += stepSize; + + float contrib = ComputeAO(P, N, S); + #if OFFSCREEN_SAMPLES_CONTRIBUTION + float2 offscreenAmount = _OffscreenSamplesContrib * (snappedUV - saturate(snappedUV) != 0 ? 1 : 0); + contrib = max(contrib, offscreenAmount.x); + contrib = max(contrib, offscreenAmount.y); + #endif + ao += contrib; + + #if COLOR_BLEEDING + int sampleIdx = d * s; + cbUVs[sampleIdx] = snappedUV; + cbContribs[sampleIdx] = contrib; + #endif + } + } + + #ifdef DEBUG_VIEWNORMALS + return float4(N * 0.5 + 0.5, 1); + #else + + #if COLOR_BLEEDING + half3 col = half3(0, 0, 0); + UNITY_UNROLL + for (int s = 0; s < DIRECTIONS * STEPS; s += 2) { + half3 emission = SAMPLE_TEXTURE2D_X_LOD(_MainTex, sampler_LinearClamp, cbUVs[s], 0).rgb; + half average = (emission.x + emission.y + emission.z) / 3; + half scaledAverage = saturate((average - _ColorBleedBrightnessMaskRange.x) / (_ColorBleedBrightnessMaskRange.y - _ColorBleedBrightnessMaskRange.x + 1e-6)); + half maskMultiplier = 1 - (scaledAverage * _ColorBleedBrightnessMask); + col += emission * cbContribs[s] * maskMultiplier; + } + float4 aoOutput = float4(col, ao); + #else + float aoOutput = ao; + #endif + + // apply bias multiplier + aoOutput *= (_AOmultiplier / (STEPS * DIRECTIONS)); + + float fallOffStart = _MaxDistance - _DistanceFalloff; + float distFactor = saturate((P.z - fallOffStart) / (_MaxDistance - fallOffStart)); + + #if COLOR_BLEEDING + //aoOutput.rgb = saturate(1 - lerp(dot(aoOutput.rgb, 0.333).xxx, aoOutput.rgb, _ColorBleedSaturation)); + aoOutput.rgb = saturate(lerp(dot(aoOutput.rgb, 0.333).xxx, aoOutput.rgb, _ColorBleedSaturation)); + aoOutput = lerp(saturate(float4(aoOutput.rgb, 1 - aoOutput.a)), float4(0, 0, 0, 1), distFactor); + return aoOutput; + #else + aoOutput = lerp(saturate(1 - aoOutput), 1, distFactor); + return float4(EncodeFloatRG(saturate(P.z * (1.0 / _ProjectionParams.z))), 1.0, aoOutput); + #endif + + #endif // DEBUG_VIEWNORMALS +} + +#endif // HBAO_AO_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_AO.hlsl.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_AO.hlsl.meta new file mode 100644 index 0000000..2c68d73 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_AO.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 1361d098ef86d6c41a6a6c41e84c33a4 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Blur.hlsl b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Blur.hlsl new file mode 100644 index 0000000..9a6f166 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Blur.hlsl @@ -0,0 +1,143 @@ +//---------------------------------------------------------------------------------- +// +// Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//---------------------------------------------------------------------------------- + +#ifndef HBAO_BLUR_INCLUDED +#define HBAO_BLUR_INCLUDED + +#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" +#include "HBAO_Common.hlsl" + +#if COLOR_BLEEDING + +inline void FetchAoAndDepth(float2 uv, inout half4 ao, inout float depth) { + ao = SAMPLE_TEXTURE2D_X_LOD(_MainTex, sampler_PointClamp, uv, 0); + depth = LinearizeDepth(FetchRawDepth(uv)); +} + +inline float CrossBilateralWeight(float r, float d, float d0) { + const float BlurSigma = (float)KERNEL_RADIUS * 0.5; + const float BlurFalloff = 1.0 / (2.0*BlurSigma*BlurSigma); + + float dz = (d0 - d) * _BlurSharpness; + return exp2(-r*r*BlurFalloff - dz*dz); +} + +inline void ProcessSample(float4 ao, float z, float r, float d0, inout half4 totalAO, inout float totalW) { + float w = CrossBilateralWeight(r, d0, z); + totalW += w; + totalAO += w * ao; +} + +inline void ProcessRadius(float2 uv0, float2 deltaUV, float d0, inout half4 totalAO, inout float totalW) { + half4 ao; + float z; + float2 uv; + UNITY_UNROLL + for (int r = 1; r <= KERNEL_RADIUS; r++) { + uv = uv0 + r * deltaUV; + FetchAoAndDepth(uv, ao, z); + ProcessSample(ao, z, r, d0, totalAO, totalW); + } +} + +inline half4 ComputeBlur(float2 uv0, float2 deltaUV) { + half4 totalAO; + float depth; + FetchAoAndDepth(uv0, totalAO, depth); + float totalW = 1.0; + + ProcessRadius(uv0, -deltaUV, depth, totalAO, totalW); + ProcessRadius(uv0, deltaUV, depth, totalAO, totalW); + + totalAO /= totalW; + return totalAO; +} + +#else + +inline void FetchAoAndDepth(float2 uv, inout half ao, inout float2 depth) { + float3 aod = SAMPLE_TEXTURE2D_X_LOD(_MainTex, sampler_PointClamp, uv, 0).rga; + ao = aod.z; + depth = aod.xy; +} + +inline float CrossBilateralWeight(float r, float d, float d0) { + const float BlurSigma = (float)KERNEL_RADIUS * 0.5; + const float BlurFalloff = 1.0 / (2.0*BlurSigma*BlurSigma); + + float dz = (d0 - d) * _ProjectionParams.z * _BlurSharpness; + return exp2(-r*r*BlurFalloff - dz*dz); +} + +inline void ProcessSample(float2 aoz, float r, float d0, inout half totalAO, inout float totalW) { + float w = CrossBilateralWeight(r, d0, aoz.y); + totalW += w; + totalAO += w * aoz.x; +} + +inline void ProcessRadius(float2 uv0, float2 deltaUV, float d0, inout half totalAO, inout float totalW) { + half ao; + float z; + float2 d, uv; + UNITY_UNROLL + for (int r = 1; r <= KERNEL_RADIUS; r++) { + uv = uv0 + r * deltaUV; + FetchAoAndDepth(uv, ao, d); + z = DecodeFloatRG(d); + ProcessSample(float2(ao, z), r, d0, totalAO, totalW); + } +} + +inline float4 ComputeBlur(float2 uv0, float2 deltaUV) { + half totalAO; + float2 depth; + FetchAoAndDepth(uv0, totalAO, depth); + float d0 = DecodeFloatRG(depth); + float totalW = 1.0; + + ProcessRadius(uv0, -deltaUV, d0, totalAO, totalW); + ProcessRadius(uv0, deltaUV, d0, totalAO, totalW); + + totalAO /= totalW; + return float4(depth, 1.0, totalAO); +} +#endif // COLOR_BLEEDING + +float4 Blur_Frag(Varyings input) : SV_Target +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + float2 uv = UnityStereoTransformScreenSpaceTex(input.uv); + + return ComputeBlur(uv, _BlurDeltaUV); +} + +#endif // HBAO_BLUR_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Blur.hlsl.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Blur.hlsl.meta new file mode 100644 index 0000000..8795429 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Blur.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 88f16f7670609254aa357e3d46e3dffe +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Common.hlsl b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Common.hlsl new file mode 100644 index 0000000..2ae5202 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Common.hlsl @@ -0,0 +1,93 @@ +#ifndef HBAO_COMMON_INCLUDED +#define HBAO_COMMON_INCLUDED + +#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" +#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/SpaceTransforms.hlsl" +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl" +#if VERSION_GREATER_EQUAL(10, 0) +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareNormalsTexture.hlsl" +#endif + +inline float FetchRawDepth(float2 uv) { + return SampleSceneDepth(uv * _TargetScale.xy); +} + +inline float LinearizeDepth(float depth) { + // References: https://docs.unity3d.com/Manual/SL-PlatformDifferences.html +#if ORTHOGRAPHIC_PROJECTION +#if UNITY_REVERSED_Z + depth = 1 - depth; +#endif // UNITY_REVERSED_Z + float linearDepth = _ProjectionParams.y + depth * (_ProjectionParams.z - _ProjectionParams.y); // near + depth * (far - near) +#else + float linearDepth = LinearEyeDepth(depth, _ZBufferParams); +#endif // ORTHOGRAPHIC_PROJECTION + return linearDepth; +} + +inline float3 FetchViewPos(float2 uv) { + uv = clamp(uv, 0, 1 - _Input_TexelSize.xy * 0.5); // uv guard + float depth = LinearizeDepth(FetchRawDepth(uv)); +#if ORTHOGRAPHIC_PROJECTION + return float3((uv * _UVToView[unity_StereoEyeIndex].xy + _UVToView[unity_StereoEyeIndex].zw), depth); +#else + return float3((uv * _UVToView[unity_StereoEyeIndex].xy + _UVToView[unity_StereoEyeIndex].zw) * depth, depth); +#endif +} + +inline float3 MinDiff(float3 P, float3 Pr, float3 Pl) { + float3 V1 = Pr - P; + float3 V2 = P - Pl; + return (dot(V1, V1) < dot(V2, V2)) ? V1 : V2; +} + +inline float3 FetchViewNormals(float2 uv, float2 delta, float3 P) { +#if NORMALS_RECONSTRUCT4 + float3 Pr, Pl, Pt, Pb; + Pr = FetchViewPos(uv + float2(delta.x, 0)); + Pl = FetchViewPos(uv + float2(-delta.x, 0)); + Pt = FetchViewPos(uv + float2(0, delta.y)); + Pb = FetchViewPos(uv + float2(0, -delta.y)); + float3 N = normalize(cross(MinDiff(P, Pr, Pl), MinDiff(P, Pt, Pb))); +#elif NORMALS_RECONSTRUCT2 + float3 Pr, Pt; + Pr = FetchViewPos(uv + float2(delta.x, 0)); + Pt = FetchViewPos(uv + float2(0, delta.y)); + float3 N = normalize(cross(Pt - P, P - Pr)); +#else +#if VERSION_GREATER_EQUAL(10, 0) + float3 N = SampleSceneNormals(uv * _TargetScale.xy); +#if VERSION_GREATER_EQUAL(10, 10) // Universal pipeline 10.10.1(2020.3.49f1) uses world space normals already, as per customer feedback + N = normalize(TransformWorldToViewDir(N)); // normals are worldspace, convert to viewspace + N = float3(N.x, -N.yz); +#else + N = float3(N.x, -N.y, N.z); +#endif +#else + float3 N = float3(0, 0, 0); +#endif +#endif + return N; +} + +inline float3 FetchViewNormals(float2 uv, float2 delta) { + + float3 P = FetchViewPos(uv); + return FetchViewNormals(uv, delta, P); +} + +// https://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + +inline float2 EncodeFloatRG(float v) { + float2 enc = float2(1.0, 255.0) * v; + enc = frac(enc); + enc.x -= enc.y * (1.0 / 255.0); + return enc; +} + +inline float DecodeFloatRG(float2 rg) { + return dot(rg, float2(1.0, 1 / 255.0)); +} + +#endif // HBAO_COMMON_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Common.hlsl.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Common.hlsl.meta new file mode 100644 index 0000000..0b08b8b --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Common.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c9db0967d4ddb8d4da2fc53a15906f15 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Composite.hlsl b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Composite.hlsl new file mode 100644 index 0000000..5788761 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Composite.hlsl @@ -0,0 +1,79 @@ +#ifndef HBAO_COMPOSITE_INCLUDED +#define HBAO_COMPOSITE_INCLUDED + +#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" +#include "HBAO_Common.hlsl" + +inline half4 FetchOcclusion(float2 uv) { + uv *= _HistoryBuffer_RTHandleScale.xy; + return SAMPLE_TEXTURE2D_X(_HBAOTex, sampler_LinearClamp, uv * _TargetScale.zw); +} + +inline half4 FetchSceneColor(float2 uv) { + //return LOAD_TEXTURE2D_X(_MainTex, positionSS); // load not supported on GLES2 + return SAMPLE_TEXTURE2D_X(_MainTex, sampler_PointClamp, uv); +} + +inline half3 MultiBounceAO(float visibility, half3 albedo) { + half3 a = 2.0404 * albedo - 0.3324; + half3 b = -4.7951 * albedo + 0.6417; + half3 c = 2.7552 * albedo + 0.6903; + + float x = visibility; + return max(x, ((x * a + b) * x + c) * x); +} + +float4 Composite_Frag(Varyings input) : SV_Target +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + //uint2 positionSS = input.uv * _ScreenSize.xy; + float2 uv = UnityStereoTransformScreenSpaceTex(input.uv); + + half4 ao = FetchOcclusion(uv); + + ao.a = saturate(pow(abs(ao.a), _Intensity)); + + #if LIT_AO + half3 aoColor = ao.aaa; + half4 col = ao.aaaa; + #else + half3 aoColor = lerp(_BaseColor.rgb, half3(1.0, 1.0, 1.0), ao.a); + half4 col = FetchSceneColor(uv); + + #if MULTIBOUNCE + aoColor = lerp(aoColor, MultiBounceAO(ao.a, lerp(col.rgb, _BaseColor.rgb, _BaseColor.rgb)), _MultiBounceInfluence); + #endif + + col.rgb *= aoColor; + + #if COLOR_BLEEDING + //col.rgb += 1 - ao.rgb; + col.rgb += ao.rgb; + #endif + #endif // LIT_AO + + #if DEBUG_AO + col.rgb = aoColor; + #elif DEBUG_COLORBLEEDING && COLOR_BLEEDING + //col.rgb = 1 - ao.rgb; + col.rgb = ao.rgb; + #elif DEBUG_NOAO_AO || DEBUG_AO_AOONLY || DEBUG_NOAO_AOONLY + if (uv.x <= 0.4985) { + #if DEBUG_NOAO_AO || DEBUG_NOAO_AOONLY + col = FetchSceneColor(uv); + #endif // DEBUG_NOAO_AO || DEBUG_NOAO_AOONLY + return col; + } + if (uv.x > 0.4985 && uv.x < 0.5015) { + return half4(0, 0, 0, 1); + } + #if DEBUG_AO_AOONLY || DEBUG_NOAO_AOONLY + col.rgb = aoColor; + #endif // DEBUG_AO_AOONLY) || DEBUG_NOAO_AOONLY + #endif // DEBUG_AO + return col; +} + +#endif // HBAO_COMPOSITE_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Composite.hlsl.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Composite.hlsl.meta new file mode 100644 index 0000000..216ef63 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Composite.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5724686e7ad5fff4cb8cc1ad5529cd06 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Deinterleaving.hlsl b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Deinterleaving.hlsl new file mode 100644 index 0000000..4fa06fd --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Deinterleaving.hlsl @@ -0,0 +1,70 @@ +#ifndef HBAO_DEINTERLEAVING_INCLUDED +#define HBAO_DEINTERLEAVING_INCLUDED + +#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" +#include "HBAO_Common.hlsl" + +struct DeinterleavedOutput { + float4 Z00 : SV_Target0; + float4 Z10 : SV_Target1; + float4 Z01 : SV_Target2; + float4 Z11 : SV_Target3; +}; + +DeinterleavedOutput DeinterleaveDepth_Frag(Varyings input) +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + DeinterleavedOutput o; + + float2 uv = UnityStereoTransformScreenSpaceTex(input.uv); + + float2 pos = floor(uv * _DeinterleavedAO_TexelSize.zw) * 4.0; + float2 uv00 = (pos + _Deinterleave_Offset00 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv10 = (pos + _Deinterleave_Offset10 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv01 = (pos + _Deinterleave_Offset01 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv11 = (pos + _Deinterleave_Offset11 + 0.5) * _ReinterleavedAO_TexelSize.xy; + + o.Z00 = FetchRawDepth(uv00).rrrr; + o.Z10 = FetchRawDepth(uv10).rrrr; + o.Z01 = FetchRawDepth(uv01).rrrr; + o.Z11 = FetchRawDepth(uv11).rrrr; + return o; +} + +DeinterleavedOutput DeinterleaveNormals_Frag(Varyings input) +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + DeinterleavedOutput o; + + float2 uv = UnityStereoTransformScreenSpaceTex(input.uv); + + float2 pos = floor(uv * _DeinterleavedAO_TexelSize.zw) * 4.0; + float2 uv00 = (pos + _Deinterleave_Offset00 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv10 = (pos + _Deinterleave_Offset10 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv01 = (pos + _Deinterleave_Offset01 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv11 = (pos + _Deinterleave_Offset11 + 0.5) * _ReinterleavedAO_TexelSize.xy; + + o.Z00 = float4(FetchViewNormals(uv00, _ReinterleavedAO_TexelSize.xy) * 0.5 + 0.5, 0); + o.Z10 = float4(FetchViewNormals(uv10, _ReinterleavedAO_TexelSize.xy) * 0.5 + 0.5, 0); + o.Z01 = float4(FetchViewNormals(uv01, _ReinterleavedAO_TexelSize.xy) * 0.5 + 0.5, 0); + o.Z11 = float4(FetchViewNormals(uv11, _ReinterleavedAO_TexelSize.xy) * 0.5 + 0.5, 0); + + return o; +} + +half4 ReinterleaveAO_Frag(Varyings input) : SV_Target +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + float2 uv = UnityStereoTransformScreenSpaceTex(input.uv); + + float2 offset = fmod(floor(uv * _ReinterleavedAO_TexelSize.zw), 4.0); + uv = (floor(uv * _DeinterleavedAO_TexelSize.zw) + (offset * _DeinterleavedAO_TexelSize.zw) + 0.5) * _ReinterleavedAO_TexelSize.xy; + + return SAMPLE_TEXTURE2D_X(_MainTex, sampler_LinearClamp, uv); +} + +#endif // HBAO_DEINTERLEAVING_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Deinterleaving.hlsl.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Deinterleaving.hlsl.meta new file mode 100644 index 0000000..b13bd5b --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_Deinterleaving.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 713016b17f006794a883de31a276c28e +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_TemporalFilter.hlsl b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_TemporalFilter.hlsl new file mode 100644 index 0000000..76e2628 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_TemporalFilter.hlsl @@ -0,0 +1,175 @@ +#ifndef HBAO_TEMPORALFILTER_INCLUDED +#define HBAO_TEMPORALFILTER_INCLUDED + +#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl" +#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" +#include "HBAO_Common.hlsl" + +struct HistoryOutput { + float4 aoHistory : SV_Target0; + #if COLOR_BLEEDING + half4 colorBleedingHistory : SV_Target1; + #endif +}; + +#if COLOR_BLEEDING +#define CTYPE half4 +#else +#define CTYPE half +#endif + +inline void FetchAoAndDepth(float2 uv, inout CTYPE ao, inout float2 depth) { + #if COLOR_BLEEDING + ao = SAMPLE_TEXTURE2D_X(_HBAOTex, sampler_PointClamp, uv); + depth = EncodeFloatRG(saturate(LinearizeDepth(FetchRawDepth(uv)) * (1.0 / _ProjectionParams.z))); + #else + float3 aod = SAMPLE_TEXTURE2D_X(_HBAOTex, sampler_PointClamp, uv).rga; + ao = aod.z; + depth = aod.xy; + #endif +} + +inline float2 FetchMotionVectors(float2 uv) { + return SAMPLE_TEXTURE2D_X(_MotionVectorTexture, sampler_PointClamp, uv * _TargetScale.xy).rg; +} + +inline float4 FetchAoHistory(float2 uv) { + return SAMPLE_TEXTURE2D_X(_MainTex, sampler_LinearClamp, uv * _HistoryBuffer_RTHandleScale.zw); +} + +inline half4 FetchColorBleedingHistory(float2 uv) { + return SAMPLE_TEXTURE2D_X(_TempTex, sampler_LinearClamp, uv * _HistoryBuffer_RTHandleScale.zw); +} + +inline CTYPE FetchNeighbor(float2 uv, float2 offset) { + #if COLOR_BLEEDING + return SAMPLE_TEXTURE2D_X(_HBAOTex, sampler_PointClamp, uv + _AO_TexelSize.xy * offset); + #else + return SAMPLE_TEXTURE2D_X(_HBAOTex, sampler_PointClamp, uv + _AO_TexelSize.xy * offset).a; + #endif +} + +inline half DisocclusionTest(float2 uvm1, float2 depth, float2 depthm1) { + + // disocclusion test + // https://developer.nvidia.com/sites/default/files/akamai/gamedev/files/gdc12/GDC12_Bavoil_Stable_SSAO_In_BF3_With_STF.pdf (Page 19) + float z = DecodeFloatRG(depth); + float zm1 = DecodeFloatRG(depthm1); + // for fetching zi-1, use clamp-to-border to discard out-of-frame data, with borderZ = 0.f + // https://developer.nvidia.com/sites/default/files/akamai/gamedev/files/gdc12/GDC12_Bavoil_Stable_SSAO_In_BF3_With_STF.pdf (Page 39) + // if (uvm1.x < 0 || uvm1.y < 0 || uvm1.x > 1 || uvm1.y > 1) zm1 = 0; + // if (uvm1.x < 0 || uvm1.y < 0 || uvm1.x > 1 || uvm1.y > 1) => dot(step(half4(uvm1, 1, 1), half4(0, 0, uvm1)), 1) is 1 if out-of-frame, so + zm1 *= 1.0 - dot(step(float4(uvm1, 1, 1), float4(0, 0, uvm1)), 1); + // relaxed disocclusion test: abs(1.0 - (z / zm1)) > 0.1 => 10% + // float disocclusion = max(sign(abs(1.0 - (z / zm1)) - 0.1), 0.0); + float disocclusion = abs(1.0 - (z / zm1)) > 0.1; + + return disocclusion; +} + +inline CTYPE VarianceClipping(float2 uv, CTYPE ao, CTYPE aom1, float velocityWeight) { + + // neighborhood clamping + // http://twvideo01.ubm-us.net/o1/vault/gdc2016/Presentations/Pedersen_LasseJonFuglsang_TemporalReprojectionAntiAliasing.pdf // (pages 26-28) + // superseded by variance clipping + // http://developer.download.nvidia.com/gameworks/events/GDC2016/msalvi_temporal_supersampling.pdf (page 23-29) + #if VARIANCE_CLIPPING_4TAP + CTYPE cT = FetchNeighbor(uv, float2(0, 1)); + CTYPE cR = FetchNeighbor(uv, float2(1, 0)); + CTYPE cB = FetchNeighbor(uv, float2(0, -1)); + CTYPE cL = FetchNeighbor(uv, float2(-1, 0)); + // compute 1st and 2nd color moments + CTYPE m1 = ao + cT + cR + cB + cL; + CTYPE m2 = ao * ao + cT * cT + cR * cR + cB * cB + cL * cL; + // aabb from mean u and variance sigma2 + CTYPE mu = m1 / 5.0; + CTYPE sigma = sqrt(m2 / 5.0 - mu * mu); + + #elif VARIANCE_CLIPPING_8TAP + CTYPE cTL = FetchNeighbor(uv, float2(-1, 1)); + CTYPE cT = FetchNeighbor(uv, float2(0, 1)); + CTYPE cTR = FetchNeighbor(uv, float2(1, 1)); + CTYPE cR = FetchNeighbor(uv, float2(1, 0)); + CTYPE cBR = FetchNeighbor(uv, float2(1, -1)); + CTYPE cB = FetchNeighbor(uv, float2(0, -1)); + CTYPE cBL = FetchNeighbor(uv, float2(-1, -1)); + CTYPE cL = FetchNeighbor(uv, float2(-1, 0)); + // compute 1st and 2nd color moments + CTYPE m1 = ao + cTL + cT + cTR + cR + cBR + cB + cBL + cL; + CTYPE m2 = ao * ao + cTL * cTL + cT * cT + cTR * cTR + cR * cR + cBR * cBR + cB * cB + cBL * cBL + cL * cL; + // aabb from mean u and variance sigma2 + CTYPE mu = m1 / 9.0; + CTYPE sigma = sqrt(m2 / 9.0 - mu * mu); + #endif + + #if VARIANCE_CLIPPING_4TAP || VARIANCE_CLIPPING_8TAP + float gamma = lerp(75.0, 0.75, velocityWeight); // scale down sigma for reduced ghosting + CTYPE cmin = mu - gamma * sigma; + CTYPE cmax = mu + gamma * sigma; + + // clipping + return clamp(aom1, cmin, cmax); + #else + return aom1; + #endif +} + +HistoryOutput TemporalFilter_Frag(Varyings input) +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + float2 uv = UnityStereoTransformScreenSpaceTex(input.uv); + + // fetch current frame data + CTYPE ao; float2 depth; + FetchAoAndDepth(uv, ao, depth); + + // fetch motion vectors, calculate previous frame uv + float2 mv = FetchMotionVectors(uv); + float2 uvm1 = uv - mv.xy; + float mvl = length(mv); + + // fetch history + float4 aoHistory = FetchAoHistory(uvm1); + #if COLOR_BLEEDING + half4 colorBleedingHistory = FetchColorBleedingHistory(uvm1); + CTYPE aom1 = colorBleedingHistory; + #else + CTYPE aom1 = aoHistory.w; + #endif + float2 depthm1 = aoHistory.xy; + float mvlm1 = aoHistory.z; + + // velocity weight + float velocityWeight = saturate(abs(mvl - mvlm1) * 300.0); + + // do disocclusion test + half disocclusion = DisocclusionTest(uvm1, depth, depthm1); + + // apply velocity weight and disocclusion + #if COLOR_BLEEDING + aom1.a = aom1.a + saturate(dot(float2(velocityWeight, disocclusion), 1.0)) * (ao.a - aom1.a); + #else + aom1 = aom1 + saturate(dot(float2(velocityWeight, disocclusion), 1.0)) * (ao - aom1); + #endif + + // do variance clipping + aom1 = VarianceClipping(uv, ao, aom1, velocityWeight); + + // exponential accumulation buffer + // http://www.klayge.org/material/4_11/Filmic%20SMAA%20v7.pdf (page 54) + // http://developer.download.nvidia.com/gameworks/events/GDC2016/msalvi_temporal_supersampling.pdf (page 13) + ao = aom1 + 0.1 * (ao - aom1); + + HistoryOutput o; + #if COLOR_BLEEDING + o.aoHistory = float4(depth, mvl, ao.a); + o.colorBleedingHistory = ao; + #else + o.aoHistory = float4(depth, mvl, ao); + #endif + + return o; +} + +#endif // HBAO_TEMPORALFILTER_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_TemporalFilter.hlsl.meta b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_TemporalFilter.hlsl.meta new file mode 100644 index 0000000..79f7a18 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/SRP/URP/Shaders/HBAO_TemporalFilter.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bbf71e1c97b8d654da3f7646050e713e +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders.meta b/Assets/Horizon Based Ambient Occlusion/Shaders.meta new file mode 100644 index 0000000..29d3173 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a4a5705f6447808468fca071356bd185 +folderAsset: yes +timeCreated: 1455959813 +licenseType: Store +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO.shader b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO.shader new file mode 100644 index 0000000..bdb0e82 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO.shader @@ -0,0 +1,464 @@ +Shader "Hidden/HBAO" +{ + Properties { + _MainTex ("", any) = "" {} + _HBAOTex ("", any) = "" {} + _TempTex("", any) = "" {} + _NoiseTex("", 2D) = "" {} + _DepthTex("", any) = "" {} + _NormalsTex("", any) = "" {} + } + + CGINCLUDE + + #pragma target 3.0 + #pragma editor_sync_compilation + + #include "UnityCG.cginc" + + UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex); + UNITY_DECLARE_SCREENSPACE_TEXTURE(_HBAOTex); + UNITY_DECLARE_SCREENSPACE_TEXTURE(_TempTex); + UNITY_DECLARE_SCREENSPACE_TEXTURE(_CameraDepthNormalsTexture); + UNITY_DECLARE_SCREENSPACE_TEXTURE(_CameraGBufferTexture0); // diffuse color (RGB), occlusion (A) + UNITY_DECLARE_SCREENSPACE_TEXTURE(_CameraGBufferTexture2); // normal (rgb), --unused-- (a) + UNITY_DECLARE_SCREENSPACE_TEXTURE(_CameraMotionVectorsTexture); + UNITY_DECLARE_SCREENSPACE_TEXTURE(_NormalsTex); + UNITY_DECLARE_TEX2D(_NoiseTex); + + UNITY_DECLARE_DEPTH_TEXTURE(_CameraDepthTexture); + UNITY_DECLARE_DEPTH_TEXTURE(_DepthTex); + + CBUFFER_START(FrequentlyUpdatedUniforms) + float4 _Input_TexelSize; + float4 _AO_TexelSize; + float4 _DeinterleavedAO_TexelSize; + float4 _ReinterleavedAO_TexelSize; + float4 _TargetScale; + float4 _UVToView[2]; + //float4x4 _WorldToCameraMatrix; + float _Radius[2]; + float _MaxRadiusPixels; + float _NegInvRadius2; + float _AngleBias; + float _AOmultiplier; + float _Intensity; + half4 _BaseColor; + float _MultiBounceInfluence; + float _OffscreenSamplesContrib; + float _MaxDistance; + float _DistanceFalloff; + float _BlurSharpness; + float _ColorBleedSaturation; + float _AlbedoMultiplier; + float _ColorBleedBrightnessMask; + float2 _ColorBleedBrightnessMaskRange; + float2 _TemporalParams; + CBUFFER_END + + CBUFFER_START(PerPassUpdatedUniforms) + float4 _UVTransform; + float2 _BlurDeltaUV; + CBUFFER_END + + CBUFFER_START(PerPassUpdatedDeinterleavingUniforms) + float2 _Deinterleave_Offset00; + float2 _Deinterleave_Offset10; + float2 _Deinterleave_Offset01; + float2 _Deinterleave_Offset11; + float2 _AtlasOffset; + float2 _Jitter; + CBUFFER_END + + struct Attributes + { + float3 vertex : POSITION; + + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct Varyings + { + float4 vertex : SV_POSITION; + float2 uv : TEXCOORD0; + //float2 uvStereo : TEXCOORD1; + //#if STEREO_INSTANCING_ENABLED + //uint stereoTargetEyeIndex : SV_RenderTargetArrayIndex; + //#endif + + UNITY_VERTEX_OUTPUT_STEREO + }; + + float2 TransformTriangleVertexToUV(float2 vertex) + { + float2 uv = (vertex + 1.0) * 0.5; + return uv; + } + + Varyings Vert_Default(Attributes input) + { + Varyings o; + + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_OUTPUT(Varyings, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + o.vertex = float4(input.vertex.xy, 0.0, 1.0); + o.uv = TransformTriangleVertexToUV(input.vertex.xy); + + #if UNITY_UV_STARTS_AT_TOP + o.uv = o.uv * float2(1.0, -1.0) + float2(0.0, 1.0); + #endif + + //o.uvStereo = TransformStereoScreenSpaceTex(o.uv, 1.0); + o.uv = TransformStereoScreenSpaceTex(o.uv, 1.0); + + return o; + } + + Varyings Vert_Atlas(Attributes input) + { + Varyings o; + + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_OUTPUT(Varyings, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + o.vertex = float4((input.vertex.xy + float2(-3.0, 1.0)) * (_DeinterleavedAO_TexelSize.zw / _ReinterleavedAO_TexelSize.zw) + 2.0 * _AtlasOffset * _ReinterleavedAO_TexelSize.xy, 0.0, 1.0); + o.uv = TransformTriangleVertexToUV(input.vertex.xy); + + // flip triangle upside down + o.vertex.y = 1 - o.vertex.y; + + //o.uvStereo = TransformStereoScreenSpaceTex(o.uv, 1.0); + o.uv = TransformStereoScreenSpaceTex(o.uv, 1.0); + + return o; + } + + Varyings Vert_UVTransform(Attributes input) + { + Varyings o; + + UNITY_SETUP_INSTANCE_ID(input); + UNITY_INITIALIZE_OUTPUT(Varyings, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + o.vertex = float4(input.vertex.xy, 0.0, 1.0); + o.uv = TransformTriangleVertexToUV(input.vertex.xy) * _UVTransform.xy + _UVTransform.zw; + + //o.uvStereo = TransformStereoScreenSpaceTex(o.uv, 1.0); + o.uv = TransformStereoScreenSpaceTex(o.uv, 1.0); + + //#if STEREO_INSTANCING_ENABLED + //o.stereoTargetEyeIndex = (uint)_DepthSlice; + //#endif + + return o; + } + + ENDCG + + SubShader { + LOD 100 + ZTest Always Cull Off ZWrite Off + + // 0 + Pass { + Name "HBAO - AO" + + CGPROGRAM + #pragma multi_compile_local_fragment __ DEFERRED_SHADING ORTHOGRAPHIC_PROJECTION + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment __ OFFSCREEN_SAMPLES_CONTRIBUTION + #pragma multi_compile_local_fragment __ NORMALS_CAMERA NORMALS_RECONSTRUCT + #pragma multi_compile_local_fragment __ INTERLEAVED_GRADIENT_NOISE + #pragma multi_compile_local_fragment QUALITY_LOWEST QUALITY_LOW QUALITY_MEDIUM QUALITY_HIGH QUALITY_HIGHEST + + #if QUALITY_LOWEST + #define DIRECTIONS 3 + #define STEPS 2 + #elif QUALITY_LOW + #define DIRECTIONS 4 + #define STEPS 3 + #elif QUALITY_MEDIUM + #define DIRECTIONS 6 + #define STEPS 4 + #elif QUALITY_HIGH + #define DIRECTIONS 8 + #define STEPS 4 + #elif QUALITY_HIGHEST + #define DIRECTIONS 8 + #define STEPS 6 + #else + #define DIRECTIONS 1 + #define STEPS 1 + #endif + + #pragma vertex Vert_Default + #pragma fragment AO_Frag + + #include "HBAO_AO.cginc" + ENDCG + } + + // 1 + Pass { + Name "HBAO - AO Deinterleaved" + + CGPROGRAM + #pragma multi_compile_local_fragment __ DEFERRED_SHADING ORTHOGRAPHIC_PROJECTION + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment __ OFFSCREEN_SAMPLES_CONTRIBUTION + #pragma multi_compile_local_fragment QUALITY_LOWEST QUALITY_LOW QUALITY_MEDIUM QUALITY_HIGH QUALITY_HIGHEST + + #if QUALITY_LOWEST + #define DIRECTIONS 3 + #define STEPS 2 + #elif QUALITY_LOW + #define DIRECTIONS 4 + #define STEPS 3 + #elif QUALITY_MEDIUM + #define DIRECTIONS 6 + #define STEPS 4 + #elif QUALITY_HIGH + #define DIRECTIONS 8 + #define STEPS 4 + #elif QUALITY_HIGHEST + #define DIRECTIONS 8 + #define STEPS 6 + #else + #define DIRECTIONS 1 + #define STEPS 1 + #endif + + #define DEINTERLEAVED + + #pragma vertex Vert_Default + #pragma fragment AO_Frag + + #include "HBAO_AO.cginc" + ENDCG + } + + // 2 + Pass { + Name "HBAO - Deinterleave Depth" + + CGPROGRAM + #pragma vertex Vert_Default + #pragma fragment DeinterleaveDepth_Frag + + #include "HBAO_Deinterleaving.cginc" + ENDCG + } + + // 3 + Pass { + Name "HBAO - Deinterleave Normals" + + CGPROGRAM + #pragma multi_compile_local_fragment __ ORTHOGRAPHIC_PROJECTION + #pragma multi_compile_local_fragment __ NORMALS_CAMERA NORMALS_RECONSTRUCT + + #pragma vertex Vert_Default + #pragma fragment DeinterleaveNormals_Frag + + #include "HBAO_Deinterleaving.cginc" + ENDCG + } + + // 4 + Pass { + Name "HBAO - Atlas Deinterleaved AO" + + CGPROGRAM + #pragma vertex Vert_Atlas + #pragma fragment Frag + + half4 Frag(Varyings input) : SV_Target + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, input.uv); + } + ENDCG + } + + // 5 + Pass { + Name "HBAO - Reinterleave AO" + + CGPROGRAM + #pragma vertex Vert_UVTransform + #pragma fragment ReinterleaveAO_Frag + + #include "HBAO_Deinterleaving.cginc" + ENDCG + } + + // 6 + Pass { + Name "HBAO - Blur" + + CGPROGRAM + #pragma multi_compile_local_fragment __ ORTHOGRAPHIC_PROJECTION + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment BLUR_RADIUS_2 BLUR_RADIUS_3 BLUR_RADIUS_4 BLUR_RADIUS_5 + + #if BLUR_RADIUS_2 + #define KERNEL_RADIUS 2 + #elif BLUR_RADIUS_3 + #define KERNEL_RADIUS 3 + #elif BLUR_RADIUS_4 + #define KERNEL_RADIUS 4 + #elif BLUR_RADIUS_5 + #define KERNEL_RADIUS 5 + #else + #define KERNEL_RADIUS 0 + #endif + + #pragma vertex Vert_Default + #pragma fragment Blur_Frag + + #include "HBAO_Blur.cginc" + ENDCG + } + + // 7 + Pass { + Name "HBAO - Temporal Filter" + + CGPROGRAM + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment __ VARIANCE_CLIPPING_4TAP VARIANCE_CLIPPING_8TAP + + #pragma vertex Vert_Default + #pragma fragment TemporalFilter_Frag + + #include "HBAO_TemporalFilter.cginc" + ENDCG + } + + // 8 + Pass { + Name "HBAO - Copy" + + CGPROGRAM + #pragma vertex Vert_Default + #pragma fragment Frag + + half4 Frag(Varyings input) : SV_Target + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, input.uv); + } + ENDCG + } + + // 9 + Pass { + Name "HBAO - Composite" + + ColorMask RGB + + CGPROGRAM + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment __ MULTIBOUNCE + #pragma multi_compile_local_fragment __ DEBUG_AO DEBUG_COLORBLEEDING DEBUG_NOAO_AO DEBUG_AO_AOONLY DEBUG_NOAO_AOONLY + + #pragma vertex Vert_UVTransform + #pragma fragment Composite_Frag + + #include "HBAO_Composite.cginc" + ENDCG + } + + // 10 + Pass { + Name "HBAO - Composite AfterLighting" + + CGPROGRAM + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment __ MULTIBOUNCE + #pragma multi_compile_local_fragment __ LIGHTING_LOG_ENCODED + + #pragma vertex Vert_Default + #pragma fragment Composite_Frag + + #include "HBAO_Composite.cginc" + ENDCG + } + + // 11 + Pass { + Name "HBAO - Composite BeforeReflections" + + CGPROGRAM + #pragma multi_compile_local_fragment __ COLOR_BLEEDING + #pragma multi_compile_local_fragment __ LIGHTING_LOG_ENCODED + + #pragma vertex Vert_Default + #pragma fragment Composite_Lit_Frag + + #include "HBAO_Composite.cginc" + ENDCG + } + + // 12 + Pass { + Name "HBAO - Composite BlendAO" + + ColorMask RGB + Blend Zero SrcColor + + CGPROGRAM + #pragma multi_compile_local_fragment __ MULTIBOUNCE + + #pragma vertex Vert_UVTransform + #pragma fragment Composite_Frag_BlendAO + + #include "HBAO_Composite.cginc" + ENDCG + } + + // 13 + Pass { + Name "HBAO - Composite BlendCB" + + ColorMask RGB + Blend One One + + CGPROGRAM + + #pragma vertex Vert_UVTransform + #pragma fragment Composite_Frag_BlendCB + + #include "HBAO_Composite.cginc" + ENDCG + } + + // 14 + Pass { + Name "HBAO - Debug ViewNormals" + + ColorMask RGB + + CGPROGRAM + #pragma multi_compile_local_fragment __ ORTHOGRAPHIC_PROJECTION + #pragma multi_compile_local_fragment __ NORMALS_CAMERA NORMALS_RECONSTRUCT + + #pragma vertex Vert_UVTransform + #pragma fragment AO_Frag + + #define DIRECTIONS 1 + #define STEPS 1 + #define DEBUG_VIEWNORMALS + #include "HBAO_AO.cginc" + ENDCG + } + } + + FallBack off +} diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO.shader.meta b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO.shader.meta new file mode 100644 index 0000000..b617502 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO.shader.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 7b834eafaedd0d842bb05a969d9d14bd +timeCreated: 1453645791 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Shaders/HBAO.shader + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_AO.cginc b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_AO.cginc new file mode 100644 index 0000000..f617349 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_AO.cginc @@ -0,0 +1,204 @@ +//---------------------------------------------------------------------------------- +// +// Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//---------------------------------------------------------------------------------- + +#ifndef HBAO_AO_INCLUDED +#define HBAO_AO_INCLUDED + +#include "UnityCG.cginc" +#include "HBAO_Common.cginc" + +inline float3 FetchLayerViewPos(float2 uv) { + uv = clamp(uv, 0, 1 - _Input_TexelSize.xy * 0.5); // uv guard + float depth = LinearizeDepth(SAMPLE_DEPTH_TEXTURE(_DepthTex, uv)); + #if ORTHOGRAPHIC_PROJECTION + return float3((uv * _UVToView[unity_StereoEyeIndex].xy + _UVToView[unity_StereoEyeIndex].zw), depth); + #else + return float3((uv * _UVToView[unity_StereoEyeIndex].xy + _UVToView[unity_StereoEyeIndex].zw) * depth, depth); + #endif +} + +inline float Falloff(float distanceSquare) { + // 1 scalar mad instruction + return distanceSquare * _NegInvRadius2 + 1.0; +} + +inline float ComputeAO(float3 P, float3 N, float3 S) { + float3 V = S - P; + float VdotV = dot(V, V); + float NdotV = dot(N, V) * rsqrt(VdotV); + + // Use saturate(x) instead of max(x,0.f) because that is faster on Kepler + return saturate(NdotV - _AngleBias) * saturate(Falloff(VdotV)); +} + +inline float2 RotateDirections(float2 dir, float2 rot) { + return float2(dir.x * rot.x - dir.y * rot.y, + dir.x * rot.y + dir.y * rot.x); +} + +inline float InterleavedGradientNoise(float2 screenPos) { + // http://www.iryoku.com/downloads/Next-Generation-Post-Processing-in-Call-of-Duty-Advanced-Warfare-v18.pptx (slide 123) + float3 magic = float3(0.06711056, 0.00583715, 52.9829189); + return frac(magic.z * frac(dot(screenPos, magic.xy))); +} + +inline float2 FetchNoise(float2 screenPos) { + #if INTERLEAVED_GRADIENT_NOISE + // Use Jorge Jimenez's IGN noise and GTAO spatial offsets distribution + // https://blog.selfshadow.com/publications/s2016-shading-course/activision/s2016_pbs_activision_occlusion.pdf (slide 93) + return float2(InterleavedGradientNoise(screenPos), UNITY_SAMPLE_TEX2D(_NoiseTex, screenPos / 4.0).g); + #else + // (cos(alpha), sin(alpha), jitter) + return UNITY_SAMPLE_TEX2D(_NoiseTex, screenPos / 4.0).rg; + #endif +} + +float4 AO_Frag(Varyings input) : SV_Target +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + #ifdef DEINTERLEAVED + float3 P = FetchLayerViewPos(input.uv); + #else + float3 P = FetchViewPos(input.uv); + #endif + + #ifndef DEBUG_VIEWNORMALS + clip(_MaxDistance - P.z); + #endif + + #if ORTHOGRAPHIC_PROJECTION + float stepSize = min(_Radius[unity_StereoEyeIndex], _MaxRadiusPixels) / (STEPS + 1.0); + #else + float stepSize = min((_Radius[unity_StereoEyeIndex] / P.z), _MaxRadiusPixels) / (STEPS + 1.0); + #endif + + #ifdef DEINTERLEAVED + float3 N = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_NormalsTex, input.uv).rgb * 2.0 - 1.0; + float2 rand = _Jitter; // angle, jitter + #else + float3 N = FetchViewNormals(input.uv, _AO_TexelSize.xy, P); + float2 rand = FetchNoise(input.uv * _AO_TexelSize.zw); // angle, jitter + #endif + + const float alpha = 2.0 * UNITY_PI / DIRECTIONS; + float ao = 0; + + #if COLOR_BLEEDING + static float2 cbUVs[DIRECTIONS * STEPS]; + static float cbContribs[DIRECTIONS * STEPS]; + #endif + + UNITY_UNROLL + for (int d = 0; d < DIRECTIONS; ++d) { + float angle = alpha * (float(d) + rand.x + _TemporalParams.x); + + // Compute normalized 2D direction + float cosA, sinA; + sincos(angle, sinA, cosA); + float2 direction = float2(cosA, sinA); + + // Jitter starting sample within the first step + float rayPixels = (frac(rand.y + _TemporalParams.y) * stepSize + 1.0); + + UNITY_UNROLL + for (int s = 0; s < STEPS; ++s) { + + #ifdef DEINTERLEAVED + float2 snappedUV = round(rayPixels * direction) * _DeinterleavedAO_TexelSize.xy + input.uv; + float3 S = FetchLayerViewPos(snappedUV); + #else + float2 snappedUV = round(rayPixels * direction) * _Input_TexelSize.xy + input.uv; + float3 S = FetchViewPos(snappedUV); + #endif + rayPixels += stepSize; + + float contrib = ComputeAO(P, N, S); + + #if OFFSCREEN_SAMPLES_CONTRIBUTION + float2 offscreenAmount = _OffscreenSamplesContrib * (snappedUV - saturate(snappedUV) != 0 ? 1 : 0); + contrib = max(contrib, offscreenAmount.x); + contrib = max(contrib, offscreenAmount.y); + #endif + ao += contrib; + + #if COLOR_BLEEDING + int sampleIdx = d * s; + cbUVs[sampleIdx] = snappedUV; + cbContribs[sampleIdx] = contrib; + #endif + } + } + + #ifdef DEBUG_VIEWNORMALS + N = float3(N.x, -N.y, N.z); + return float4(N * 0.5 + 0.5, 1); + #else + + #if COLOR_BLEEDING + half3 col = half3(0, 0, 0); + UNITY_UNROLL + for (int s = 0; s < DIRECTIONS * STEPS; s += 2) { + half3 emission = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, cbUVs[s]).rgb; + half average = (emission.x + emission.y + emission.z) / 3; + half scaledAverage = saturate((average - _ColorBleedBrightnessMaskRange.x) / (_ColorBleedBrightnessMaskRange.y - _ColorBleedBrightnessMaskRange.x + 1e-6)); + half maskMultiplier = 1 - (scaledAverage * _ColorBleedBrightnessMask); + col += emission * cbContribs[s] * maskMultiplier; + } + #if DEFERRED_SHADING + half3 albedo = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_CameraGBufferTexture0, input.uv).rgb * 0.8 + 0.2; + albedo *= _AlbedoMultiplier; + #else + half3 albedo = half3(1, 1, 1); + #endif + float4 aoOutput = float4(col, ao); + #else + float aoOutput = ao; + #endif + + // apply bias multiplier + aoOutput *= (_AOmultiplier / (STEPS * DIRECTIONS)); + + float fallOffStart = _MaxDistance - _DistanceFalloff; + float distFactor = saturate((P.z - fallOffStart) / (_MaxDistance - fallOffStart)); + + #if COLOR_BLEEDING + //aoOutput.rgb = saturate(1 - lerp(dot(aoOutput.rgb, 0.333).xxx, aoOutput.rgb * albedo, _ColorBleedSaturation)); + aoOutput.rgb = saturate(lerp(dot(aoOutput.rgb, 0.333).xxx, aoOutput.rgb * albedo, _ColorBleedSaturation)); + aoOutput = lerp(saturate(float4(aoOutput.rgb, 1 - aoOutput.a)), float4(0, 0, 0, 1), distFactor); + return aoOutput; + #else + aoOutput = lerp(saturate(1 - aoOutput), 1, distFactor); + return float4(EncodeFloatRG(saturate(P.z * (1.0 / _ProjectionParams.z))), 1.0, aoOutput); + #endif + + #endif // DEBUG_VIEWNORMALS +} +#endif // HBAO_AO_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_AO.cginc.meta b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_AO.cginc.meta new file mode 100644 index 0000000..15d60b4 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_AO.cginc.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: aa7be86dd68319442ac4a9c85bb21c81 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_AO.cginc + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Blur.cginc b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Blur.cginc new file mode 100644 index 0000000..1b1fb13 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Blur.cginc @@ -0,0 +1,139 @@ +//---------------------------------------------------------------------------------- +// +// Copyright (c) 2014, NVIDIA CORPORATION. All rights reserved. +// +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions +// are met: +// * Redistributions of source code must retain the above copyright +// notice, this list of conditions and the following disclaimer. +// * Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// * Neither the name of NVIDIA CORPORATION nor the names of its +// contributors may be used to endorse or promote products derived +// from this software without specific prior written permission. +// +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY +// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY +// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +//---------------------------------------------------------------------------------- + +#ifndef HBAO_BLUR_INCLUDED +#define HBAO_BLUR_INCLUDED + +#include "HBAO_Common.cginc" + +#if COLOR_BLEEDING + +inline void FetchAoAndDepth(float2 uv, inout half4 ao, inout float depth) { + ao = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, uv); + depth = LinearizeDepth(FetchRawDepth(uv)); +} + +inline float CrossBilateralWeight(float r, float d, float d0) { + const float BlurSigma = (float)KERNEL_RADIUS * 0.5; + const float BlurFalloff = 1.0 / (2.0*BlurSigma*BlurSigma); + + float dz = (d0 - d) * _BlurSharpness; + return exp2(-r*r*BlurFalloff - dz*dz); +} + +inline void ProcessSample(float4 ao, float z, float r, float d0, inout half4 totalAO, inout float totalW) { + float w = CrossBilateralWeight(r, d0, z); + totalW += w; + totalAO += w * ao; +} + +inline void ProcessRadius(float2 uv0, float2 deltaUV, float d0, inout half4 totalAO, inout float totalW) { + half4 ao; + float z; + float2 uv; + UNITY_UNROLL + for (int r = 1; r <= KERNEL_RADIUS; r++) { + uv = uv0 + r * deltaUV; + FetchAoAndDepth(uv, ao, z); + ProcessSample(ao, z, r, d0, totalAO, totalW); + } +} + +inline half4 ComputeBlur(float2 uv0, float2 deltaUV) { + half4 totalAO; + float depth; + FetchAoAndDepth(uv0, totalAO, depth); + float totalW = 1.0; + + ProcessRadius(uv0, -deltaUV, depth, totalAO, totalW); + ProcessRadius(uv0, deltaUV, depth, totalAO, totalW); + + totalAO /= totalW; + return totalAO; +} + +#else + +inline void FetchAoAndDepth(float2 uv, inout half ao, inout float2 depth) { + float3 aod = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, uv).rga; + ao = aod.z; + depth = aod.xy; +} + +inline float CrossBilateralWeight(float r, float d, float d0) { + const float BlurSigma = (float)KERNEL_RADIUS * 0.5; + const float BlurFalloff = 1.0 / (2.0*BlurSigma*BlurSigma); + + float dz = (d0 - d) * _ProjectionParams.z * _BlurSharpness; + return exp2(-r*r*BlurFalloff - dz*dz); +} + +inline void ProcessSample(float2 aoz, float r, float d0, inout half totalAO, inout float totalW) { + float w = CrossBilateralWeight(r, d0, aoz.y); + totalW += w; + totalAO += w * aoz.x; +} + +inline void ProcessRadius(float2 uv0, float2 deltaUV, float d0, inout half totalAO, inout float totalW) { + half ao; + float z; + float2 d, uv; + UNITY_UNROLL + for (int r = 1; r <= KERNEL_RADIUS; r++) { + uv = uv0 + r * deltaUV; + FetchAoAndDepth(uv, ao, d); + z = DecodeFloatRG(d); + ProcessSample(float2(ao, z), r, d0, totalAO, totalW); + } +} + +inline float4 ComputeBlur(float2 uv0, float2 deltaUV) { + half totalAO; + float2 depth; + FetchAoAndDepth(uv0, totalAO, depth); + float d0 = DecodeFloatRG(depth); + float totalW = 1.0; + + ProcessRadius(uv0, -deltaUV, d0, totalAO, totalW); + ProcessRadius(uv0, deltaUV, d0, totalAO, totalW); + + totalAO /= totalW; + return float4(depth, 1.0, totalAO); +} +#endif // COLOR_BLEEDING + +float4 Blur_Frag(Varyings input) : SV_Target +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + return ComputeBlur(input.uv, _BlurDeltaUV); +} + +#endif // HBAO_BLUR_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Blur.cginc.meta b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Blur.cginc.meta new file mode 100644 index 0000000..259abb8 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Blur.cginc.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 6fd3fc8e7b174414084ef2a2f3ce7cc0 +timeCreated: 1453540070 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Blur.cginc + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Common.cginc b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Common.cginc new file mode 100644 index 0000000..280e9fa --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Common.cginc @@ -0,0 +1,67 @@ +#ifndef HBAO_COMMON_INCLUDED +#define HBAO_COMMON_INCLUDED + +#include "UnityCG.cginc" + +inline float FetchRawDepth(float2 uv) { + return SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, uv * _TargetScale.xy); +} + +inline float LinearizeDepth(float depth) { + // References: https://docs.unity3d.com/Manual/SL-PlatformDifferences.html +#if ORTHOGRAPHIC_PROJECTION +#if UNITY_REVERSED_Z + depth = 1 - depth; +#endif // UNITY_REVERSED_Z + float linearDepth = _ProjectionParams.y + depth * (_ProjectionParams.z - _ProjectionParams.y); // near + depth * (far - near) +#else + float linearDepth = LinearEyeDepth(depth); +#endif // ORTHOGRAPHIC_PROJECTION + return linearDepth; +} + +inline float3 FetchViewPos(float2 uv) { + uv = clamp(uv, 0, 1 - _Input_TexelSize.xy * 0.5); // uv guard + float depth = LinearizeDepth(FetchRawDepth(uv)); +#if ORTHOGRAPHIC_PROJECTION + return float3((uv * _UVToView[unity_StereoEyeIndex].xy + _UVToView[unity_StereoEyeIndex].zw), depth); +#else + return float3((uv * _UVToView[unity_StereoEyeIndex].xy + _UVToView[unity_StereoEyeIndex].zw) * depth, depth); +#endif +} + +inline float3 MinDiff(float3 P, float3 Pr, float3 Pl) { + float3 V1 = Pr - P; + float3 V2 = P - Pl; + return (dot(V1, V1) < dot(V2, V2)) ? V1 : V2; +} + +inline float3 FetchViewNormals(float2 uv, float2 delta, float3 P) { + #if NORMALS_RECONSTRUCT + float3 Pr, Pl, Pt, Pb; + Pr = FetchViewPos(uv + float2(delta.x, 0)); + Pl = FetchViewPos(uv + float2(-delta.x, 0)); + Pt = FetchViewPos(uv + float2(0, delta.y)); + Pb = FetchViewPos(uv + float2(0, -delta.y)); + float3 N = normalize(cross(MinDiff(P, Pr, Pl), MinDiff(P, Pt, Pb))); + #else + #if NORMALS_CAMERA + float3 N = DecodeViewNormalStereo(UNITY_SAMPLE_SCREENSPACE_TEXTURE(_CameraDepthNormalsTexture, uv * _TargetScale.xy)); + #else + float3 N = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_CameraGBufferTexture2, uv * _TargetScale.xy).rgb * 2.0 - 1.0; + //N = mul((float3x3)_WorldToCameraMatrix, N); + N = mul((float3x3)UNITY_MATRIX_V, N); + #endif // NORMALS_CAMERA + N = float3(N.x, -N.yz); + #endif // NORMALS_RECONSTRUCT + + return N; +} + +inline float3 FetchViewNormals(float2 uv, float2 delta) { + + float3 P = FetchViewPos(uv); + return FetchViewNormals(uv, delta, P); +} + +#endif // HBAO_COMMON_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Common.cginc.meta b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Common.cginc.meta new file mode 100644 index 0000000..fa8bb4f --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Common.cginc.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: bd898bf629326454b8b704ad339d0312 +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Common.cginc + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Composite.cginc b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Composite.cginc new file mode 100644 index 0000000..cfcc9fe --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Composite.cginc @@ -0,0 +1,150 @@ +#ifndef HBAO_COMPOSITE_INCLUDED +#define HBAO_COMPOSITE_INCLUDED + +#include "UnityCG.cginc" +#include "HBAO_Common.cginc" + +inline half4 FetchOcclusion(float2 uv) { + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_HBAOTex, uv * _TargetScale.zw); +} + +inline half4 FetchSceneColor(float2 uv) { + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, uv); +} + +inline half4 FetchGBuffer0(float2 uv) { + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_TempTex, uv); +} + +inline half4 FetchGBuffer3(float2 uv) { + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, uv); +} + +inline half3 MultiBounceAO(float visibility, half3 albedo) { + half3 a = 2.0404 * albedo - 0.3324; + half3 b = -4.7951 * albedo + 0.6417; + half3 c = 2.7552 * albedo + 0.6903; + + float x = visibility; + return max(x, ((x * a + b) * x + c) * x); +} + +half4 Composite_Frag(Varyings input) : SV_Target +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + //uint2 positionSS = input.uv * _ScreenSize.xy; + + half4 ao = FetchOcclusion(input.uv); + + ao.a = saturate(pow(abs(ao.a), _Intensity)); + half3 aoColor = lerp(_BaseColor.rgb, half3(1.0, 1.0, 1.0), ao.a); + + half4 col = FetchSceneColor(input.uv); + + #if LIGHTING_LOG_ENCODED + col.rgb = -log2(col.rgb); + #endif + + #if MULTIBOUNCE + aoColor = lerp(aoColor, MultiBounceAO(ao.a, lerp(col.rgb, _BaseColor.rgb, _BaseColor.rgb)), _MultiBounceInfluence); + #endif + + col.rgb *= aoColor; + + #if COLOR_BLEEDING + //col.rgb += 1 - ao.rgb; + col.rgb += ao.rgb; + #endif + + #if LIGHTING_LOG_ENCODED + col.rgb = exp2(-col.rgb); + #endif + + #if DEBUG_AO + col.rgb = aoColor; + #elif DEBUG_COLORBLEEDING && COLOR_BLEEDING + //col.rgb = 1 - ao.rgb; + col.rgb = ao.rgb; + #elif DEBUG_NOAO_AO || DEBUG_AO_AOONLY || DEBUG_NOAO_AOONLY + if (input.uv.x <= 0.4985) { + #if DEBUG_NOAO_AO || DEBUG_NOAO_AOONLY + col = FetchSceneColor(input.uv); + #endif // DEBUG_NOAO_AO || DEBUG_NOAO_AOONLY + return col; + } + if (input.uv.x > 0.4985 && input.uv.x < 0.5015) { + return half4(0, 0, 0, 1); + } + #if DEBUG_AO_AOONLY || DEBUG_NOAO_AOONLY + col.rgb = aoColor; + #endif // DEBUG_AO_AOONLY) || DEBUG_NOAO_AOONLY + #endif // DEBUG_AO + return col; +} + +half4 Composite_Frag_BlendAO(Varyings input) : SV_Target +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + half4 ao = FetchOcclusion(input.uv); + + ao.a = saturate(pow(abs(ao.a), _Intensity)); + half3 aoColor = lerp(_BaseColor.rgb, half3(1.0, 1.0, 1.0), ao.a); + + #if MULTIBOUNCE + half4 col = FetchSceneColor(input.uv); + aoColor = lerp(aoColor, MultiBounceAO(ao.a, lerp(col.rgb, _BaseColor.rgb, _BaseColor.rgb)), _MultiBounceInfluence); + #endif + + return float4(aoColor, 1); +} + +half4 Composite_Frag_BlendCB(Varyings input) : SV_Target +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + half4 ao = FetchOcclusion(input.uv); + + return float4(ao.rgb, 1); +} + + +struct CombinedOutput { + half4 gbuffer0 : SV_Target0; // albedo (RGB), occlusion (A) + half4 gbuffer3 : SV_Target1; // emission (RGB), unused(A) +}; + +CombinedOutput Composite_Lit_Frag(Varyings input) +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + half4 ao = FetchOcclusion(input.uv); + + ao.a = saturate(pow(abs(ao.a), _Intensity)); + half3 aoColor = lerp(_BaseColor.rgb, half3(1.0, 1.0, 1.0), ao.a); + + half4 albedoOcc = FetchGBuffer0(input.uv); + half4 emission = FetchGBuffer3(input.uv); + + #if LIGHTING_LOG_ENCODED + emission.rgb = -log2(emission.rgb); + #endif + + CombinedOutput o; + o.gbuffer0 = half4(albedoOcc.rgb, albedoOcc.a * ao.a); + o.gbuffer3 = half4(emission.rgb * lerp(aoColor, half3(1.0, 1.0, 1.0), saturate((emission.r + emission.g + emission.b) / 3)), emission.a); + + #if COLOR_BLEEDING + //o.gbuffer3.rgb += 1 - ao.rgb; + o.gbuffer3.rgb += ao.rgb; + #endif + + #if LIGHTING_LOG_ENCODED + o.gbuffer3.rgb = exp2(-o.gbuffer3.rgb); + #endif + + return o; +} + +#endif // HBAO_COMPOSITE_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Composite.cginc.meta b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Composite.cginc.meta new file mode 100644 index 0000000..2d216f7 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Composite.cginc.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: fccaaf1b3dbd6e74d80289679d2d1e5a +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Composite.cginc + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Deinterleaving.cginc b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Deinterleaving.cginc new file mode 100644 index 0000000..54193e3 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Deinterleaving.cginc @@ -0,0 +1,62 @@ +#ifndef HBAO_DEINTERLEAVING_INCLUDED +#define HBAO_DEINTERLEAVING_INCLUDED + +#include "HBAO_Common.cginc" + +struct DeinterleavedOutput { + float4 Z00 : SV_Target0; + float4 Z10 : SV_Target1; + float4 Z01 : SV_Target2; + float4 Z11 : SV_Target3; +}; + +DeinterleavedOutput DeinterleaveDepth_Frag(Varyings input) +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + DeinterleavedOutput o; + + float2 pos = floor(input.uv * _DeinterleavedAO_TexelSize.zw) * 4.0; + float2 uv00 = (pos + _Deinterleave_Offset00 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv10 = (pos + _Deinterleave_Offset10 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv01 = (pos + _Deinterleave_Offset01 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv11 = (pos + _Deinterleave_Offset11 + 0.5) * _ReinterleavedAO_TexelSize.xy; + + o.Z00 = FetchRawDepth(uv00).rrrr; + o.Z10 = FetchRawDepth(uv10).rrrr; + o.Z01 = FetchRawDepth(uv01).rrrr; + o.Z11 = FetchRawDepth(uv11).rrrr; + return o; +} + +DeinterleavedOutput DeinterleaveNormals_Frag(Varyings input) +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + DeinterleavedOutput o; + + float2 pos = floor(input.uv * _DeinterleavedAO_TexelSize.zw) * 4.0; + float2 uv00 = (pos + _Deinterleave_Offset00 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv10 = (pos + _Deinterleave_Offset10 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv01 = (pos + _Deinterleave_Offset01 + 0.5) * _ReinterleavedAO_TexelSize.xy; + float2 uv11 = (pos + _Deinterleave_Offset11 + 0.5) * _ReinterleavedAO_TexelSize.xy; + + o.Z00 = float4(FetchViewNormals(uv00, _ReinterleavedAO_TexelSize.xy) * 0.5 + 0.5, 0); + o.Z10 = float4(FetchViewNormals(uv10, _ReinterleavedAO_TexelSize.xy) * 0.5 + 0.5, 0); + o.Z01 = float4(FetchViewNormals(uv01, _ReinterleavedAO_TexelSize.xy) * 0.5 + 0.5, 0); + o.Z11 = float4(FetchViewNormals(uv11, _ReinterleavedAO_TexelSize.xy) * 0.5 + 0.5, 0); + + return o; +} + +half4 ReinterleaveAO_Frag(Varyings input) : SV_Target +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + float2 offset = fmod(floor(input.uv * _ReinterleavedAO_TexelSize.zw), 4.0); + float2 uv = (floor(input.uv * _DeinterleavedAO_TexelSize.zw) + (offset * _DeinterleavedAO_TexelSize.zw) + 0.5) * _ReinterleavedAO_TexelSize.xy; + + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, uv); +} + +#endif // HBAO_DEINTERLEAVING_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Deinterleaving.cginc.meta b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Deinterleaving.cginc.meta new file mode 100644 index 0000000..298eab4 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Deinterleaving.cginc.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 87df896bfe60ae541ae6565690473297 +timeCreated: 1467102228 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_Deinterleaving.cginc + uploadId: 886976 diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_TemporalFilter.cginc b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_TemporalFilter.cginc new file mode 100644 index 0000000..a103aa1 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_TemporalFilter.cginc @@ -0,0 +1,171 @@ +#ifndef HBAO_TEMPORALFILTER_INCLUDED +#define HBAO_TEMPORALFILTER_INCLUDED + +#include "HBAO_Common.cginc" + +struct HistoryOutput { + float4 aoHistory : SV_Target0; + #if COLOR_BLEEDING + half4 colorBleedingHistory : SV_Target1; + #endif +}; + +#if COLOR_BLEEDING +#define CTYPE half4 +#else +#define CTYPE half +#endif + +inline void FetchAoAndDepth(float2 uv, inout CTYPE ao, inout float2 depth) { + #if COLOR_BLEEDING + ao = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_HBAOTex, uv); + depth = EncodeFloatRG(saturate(LinearizeDepth(FetchRawDepth(uv)) * (1.0 / _ProjectionParams.z))); + #else + float3 aod = UNITY_SAMPLE_SCREENSPACE_TEXTURE(_HBAOTex, uv).rga; + ao = aod.z; + depth = aod.xy; + #endif +} + +inline float2 FetchMotionVectors(float2 uv) { + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_CameraMotionVectorsTexture, uv * _TargetScale.xy).rg; +} + +inline float4 FetchAoHistory(float2 uv) { + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_MainTex, uv); +} + +inline half4 FetchColorBleedingHistory(float2 uv) { + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_TempTex, uv); +} + +inline CTYPE FetchNeighbor(float2 uv, float2 offset) { + #if COLOR_BLEEDING + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_HBAOTex, uv + _AO_TexelSize.xy * offset); + #else + return UNITY_SAMPLE_SCREENSPACE_TEXTURE(_HBAOTex, uv + _AO_TexelSize.xy * offset).a; + #endif +} + +inline half DisocclusionTest(float2 uvm1, float2 depth, float2 depthm1) { + + // disocclusion test + // https://developer.nvidia.com/sites/default/files/akamai/gamedev/files/gdc12/GDC12_Bavoil_Stable_SSAO_In_BF3_With_STF.pdf (Page 19) + float z = DecodeFloatRG(depth); + float zm1 = DecodeFloatRG(depthm1); + // for fetching zi-1, use clamp-to-border to discard out-of-frame data, with borderZ = 0.f + // https://developer.nvidia.com/sites/default/files/akamai/gamedev/files/gdc12/GDC12_Bavoil_Stable_SSAO_In_BF3_With_STF.pdf (Page 39) + // if (uvm1.x < 0 || uvm1.y < 0 || uvm1.x > 1 || uvm1.y > 1) zm1 = 0; + // if (uvm1.x < 0 || uvm1.y < 0 || uvm1.x > 1 || uvm1.y > 1) => dot(step(half4(uvm1, 1, 1), half4(0, 0, uvm1)), 1) is 1 if out-of-frame, so + zm1 *= 1.0 - dot(step(float4(uvm1, 1, 1), float4(0, 0, uvm1)), 1); + // relaxed disocclusion test: abs(1.0 - (z / zm1)) > 0.1 => 10% + // float disocclusion = max(sign(abs(1.0 - (z / zm1)) - 0.1), 0.0); + float disocclusion = abs(1.0 - (z / zm1)) > 0.1; + + return disocclusion; +} + +inline CTYPE VarianceClipping(float2 uv, CTYPE ao, CTYPE aom1, float velocityWeight) { + + // neighborhood clamping + // http://twvideo01.ubm-us.net/o1/vault/gdc2016/Presentations/Pedersen_LasseJonFuglsang_TemporalReprojectionAntiAliasing.pdf // (pages 26-28) + // superseded by variance clipping + // http://developer.download.nvidia.com/gameworks/events/GDC2016/msalvi_temporal_supersampling.pdf (page 23-29) + #if VARIANCE_CLIPPING_4TAP + CTYPE cT = FetchNeighbor(uv, float2(0, 1)); + CTYPE cR = FetchNeighbor(uv, float2(1, 0)); + CTYPE cB = FetchNeighbor(uv, float2(0, -1)); + CTYPE cL = FetchNeighbor(uv, float2(-1, 0)); + // compute 1st and 2nd color moments + CTYPE m1 = ao + cT + cR + cB + cL; + CTYPE m2 = ao * ao + cT * cT + cR * cR + cB * cB + cL * cL; + // aabb from mean u and variance sigma2 + CTYPE mu = m1 / 5.0; + CTYPE sigma = sqrt(m2 / 5.0 - mu * mu); + + #elif VARIANCE_CLIPPING_8TAP + CTYPE cTL = FetchNeighbor(uv, float2(-1, 1)); + CTYPE cT = FetchNeighbor(uv, float2(0, 1)); + CTYPE cTR = FetchNeighbor(uv, float2(1, 1)); + CTYPE cR = FetchNeighbor(uv, float2(1, 0)); + CTYPE cBR = FetchNeighbor(uv, float2(1, -1)); + CTYPE cB = FetchNeighbor(uv, float2(0, -1)); + CTYPE cBL = FetchNeighbor(uv, float2(-1, -1)); + CTYPE cL = FetchNeighbor(uv, float2(-1, 0)); + // compute 1st and 2nd color moments + CTYPE m1 = ao + cTL + cT + cTR + cR + cBR + cB + cBL + cL; + CTYPE m2 = ao * ao + cTL * cTL + cT * cT + cTR * cTR + cR * cR + cBR * cBR + cB * cB + cBL * cBL + cL * cL; + // aabb from mean u and variance sigma2 + CTYPE mu = m1 / 9.0; + CTYPE sigma = sqrt(m2 / 9.0 - mu * mu); + #endif + + #if VARIANCE_CLIPPING_4TAP || VARIANCE_CLIPPING_8TAP + float gamma = lerp(75.0, 0.75, velocityWeight); // scale down sigma for reduced ghosting + CTYPE cmin = mu - gamma * sigma; + CTYPE cmax = mu + gamma * sigma; + + // clipping + return clamp(aom1, cmin, cmax); + #else + return aom1; + #endif +} + +HistoryOutput TemporalFilter_Frag(Varyings input) +{ + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input); + + // fetch current frame data + CTYPE ao; float2 depth; + FetchAoAndDepth(input.uv, ao, depth); + + // fetch motion vectors, calculate previous frame uv + float2 mv = FetchMotionVectors(input.uv); + float2 uvm1 = input.uv - mv; + float mvl = length(mv); + + // fetch history + float4 aoHistory = FetchAoHistory(uvm1); + #if COLOR_BLEEDING + half4 colorBleedingHistory = FetchColorBleedingHistory(uvm1); + CTYPE aom1 = colorBleedingHistory; + #else + CTYPE aom1 = aoHistory.w; + #endif + float2 depthm1 = aoHistory.xy; + float mvlm1 = aoHistory.z; + + // velocity weight + float velocityWeight = saturate(abs(mvl - mvlm1) * 300.0); + + // do disocclusion test + half disocclusion = DisocclusionTest(uvm1, depth, depthm1); + + // apply velocity weight and disocclusion + #if COLOR_BLEEDING + aom1.a = aom1.a + saturate(dot(float2(velocityWeight, disocclusion), 1.0)) * (ao.a - aom1.a); + #else + aom1 = aom1 + saturate(dot(float2(velocityWeight, disocclusion), 1.0)) * (ao - aom1); + #endif + + // do variance clipping + aom1 = VarianceClipping(input.uv, ao, aom1, velocityWeight); + + // exponential accumulation buffer + // http://www.klayge.org/material/4_11/Filmic%20SMAA%20v7.pdf (page 54) + // http://developer.download.nvidia.com/gameworks/events/GDC2016/msalvi_temporal_supersampling.pdf (page 13) + ao = aom1 + 0.1 * (ao - aom1); + + HistoryOutput o; + #if COLOR_BLEEDING + o.aoHistory = float4(depth, mvl, ao.a); + o.colorBleedingHistory = ao; + #else + o.aoHistory = float4(depth, mvl, ao); + #endif + + return o; +} + +#endif // HBAO_TEMPORALFILTER_INCLUDED diff --git a/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_TemporalFilter.cginc.meta b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_TemporalFilter.cginc.meta new file mode 100644 index 0000000..32df788 --- /dev/null +++ b/Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_TemporalFilter.cginc.meta @@ -0,0 +1,16 @@ +fileFormatVersion: 2 +guid: 5fb134650ee52e041b4eb742f0f5e6fc +timeCreated: 1583930399 +licenseType: Store +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: +AssetOrigin: + serializedVersion: 1 + productId: 54780 + packageName: Horizon Based Ambient Occlusion + packageVersion: 3.7 + assetPath: Assets/Horizon Based Ambient Occlusion/Shaders/HBAO_TemporalFilter.cginc + uploadId: 886976 diff --git a/Assets/InputSystem_Actions.inputactions b/Assets/InputSystem_Actions.inputactions new file mode 100644 index 0000000..1a12cb9 --- /dev/null +++ b/Assets/InputSystem_Actions.inputactions @@ -0,0 +1,1057 @@ +{ + "name": "InputSystem_Actions", + "maps": [ + { + "name": "Player", + "id": "df70fa95-8a34-4494-b137-73ab6b9c7d37", + "actions": [ + { + "name": "Move", + "type": "Value", + "id": "351f2ccd-1f9f-44bf-9bec-d62ac5c5f408", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Look", + "type": "Value", + "id": "6b444451-8a00-4d00-a97e-f47457f736a8", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Attack", + "type": "Button", + "id": "6c2ab1b8-8984-453a-af3d-a3c78ae1679a", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Interact", + "type": "Button", + "id": "852140f2-7766-474d-8707-702459ba45f3", + "expectedControlType": "Button", + "processors": "", + "interactions": "Hold", + "initialStateCheck": false + }, + { + "name": "Crouch", + "type": "Button", + "id": "27c5f898-bc57-4ee1-8800-db469aca5fe3", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Jump", + "type": "Button", + "id": "f1ba0d36-48eb-4cd5-b651-1c94a6531f70", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Previous", + "type": "Button", + "id": "2776c80d-3c14-4091-8c56-d04ced07a2b0", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Next", + "type": "Button", + "id": "b7230bb6-fc9b-4f52-8b25-f5e19cb2c2ba", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Sprint", + "type": "Button", + "id": "641cd816-40e6-41b4-8c3d-04687c349290", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "", + "id": "978bfe49-cc26-4a3d-ab7b-7d7a29327403", + "path": "/leftStick", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Move", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "WASD", + "id": "00ca640b-d935-4593-8157-c05846ea39b3", + "path": "Dpad", + "interactions": "", + "processors": "", + "groups": "", + "action": "Move", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "e2062cb9-1b15-46a2-838c-2f8d72a0bdd9", + "path": "/w", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "8180e8bd-4097-4f4e-ab88-4523101a6ce9", + "path": "/upArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "320bffee-a40b-4347-ac70-c210eb8bc73a", + "path": "/s", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "1c5327b5-f71c-4f60-99c7-4e737386f1d1", + "path": "/downArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "d2581a9b-1d11-4566-b27d-b92aff5fabbc", + "path": "/a", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "2e46982e-44cc-431b-9f0b-c11910bf467a", + "path": "/leftArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "fcfe95b8-67b9-4526-84b5-5d0bc98d6400", + "path": "/d", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "77bff152-3580-4b21-b6de-dcd0c7e41164", + "path": "/rightArrow", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Move", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "1635d3fe-58b6-4ba9-a4e2-f4b964f6b5c8", + "path": "/{Primary2DAxis}", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Move", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "3ea4d645-4504-4529-b061-ab81934c3752", + "path": "/stick", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Move", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c1f7a91b-d0fd-4a62-997e-7fb9b69bf235", + "path": "/rightStick", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8c8e490b-c610-4785-884f-f04217b23ca4", + "path": "/delta", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse;Touch", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "3e5f5442-8668-4b27-a940-df99bad7e831", + "path": "/{Hatswitch}", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Look", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "143bb1cd-cc10-4eca-a2f0-a3664166fe91", + "path": "/buttonWest", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "05f6913d-c316-48b2-a6bb-e225f14c7960", + "path": "/leftButton", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "886e731e-7071-4ae4-95c0-e61739dad6fd", + "path": "/primaryTouch/tap", + "interactions": "", + "processors": "", + "groups": ";Touch", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "ee3d0cd2-254e-47a7-a8cb-bc94d9658c54", + "path": "/trigger", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8255d333-5683-4943-a58a-ccb207ff1dce", + "path": "/{PrimaryAction}", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b3c1c7f0-bd20-4ee7-a0f1-899b24bca6d7", + "path": "/enter", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Attack", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "cbac6039-9c09-46a1-b5f2-4e5124ccb5ed", + "path": "/2", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Next", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e15ca19d-e649-4852-97d5-7fe8ccc44e94", + "path": "/dpad/right", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Next", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "f2e9ba44-c423-42a7-ad56-f20975884794", + "path": "/leftShift", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8cbb2f4b-a784-49cc-8d5e-c010b8c7f4e6", + "path": "/leftStickPress", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "d8bf24bf-3f2f-4160-a97c-38ec1eb520ba", + "path": "/trigger", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Sprint", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "eb40bb66-4559-4dfa-9a2f-820438abb426", + "path": "/space", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "daba33a1-ad0c-4742-a909-43ad1cdfbeb6", + "path": "/buttonSouth", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "603f3daf-40bd-4854-8724-93e8017f59e3", + "path": "/secondaryButton", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Jump", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "1534dc16-a6aa-499d-9c3a-22b47347b52a", + "path": "/1", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Previous", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "25060bbd-a3a6-476e-8fba-45ae484aad05", + "path": "/dpad/left", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Previous", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "1c04ea5f-b012-41d1-a6f7-02e963b52893", + "path": "/e", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Interact", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "b3f66d0b-7751-423f-908b-a11c5bd95930", + "path": "/buttonNorth", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Interact", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4f4649ac-64a8-4a73-af11-b3faef356a4d", + "path": "/buttonEast", + "interactions": "", + "processors": "", + "groups": "Gamepad", + "action": "Crouch", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "36e52cba-0905-478e-a818-f4bfcb9f3b9a", + "path": "/c", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Crouch", + "isComposite": false, + "isPartOfComposite": false + } + ] + }, + { + "name": "UI", + "id": "272f6d14-89ba-496f-b7ff-215263d3219f", + "actions": [ + { + "name": "Navigate", + "type": "PassThrough", + "id": "c95b2375-e6d9-4b88-9c4c-c5e76515df4b", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Submit", + "type": "Button", + "id": "7607c7b6-cd76-4816-beef-bd0341cfe950", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Cancel", + "type": "Button", + "id": "15cef263-9014-4fd5-94d9-4e4a6234a6ef", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "Point", + "type": "PassThrough", + "id": "32b35790-4ed0-4e9a-aa41-69ac6d629449", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "Click", + "type": "PassThrough", + "id": "3c7022bf-7922-4f7c-a998-c437916075ad", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": true + }, + { + "name": "RightClick", + "type": "PassThrough", + "id": "44b200b1-1557-4083-816c-b22cbdf77ddf", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "MiddleClick", + "type": "PassThrough", + "id": "dad70c86-b58c-4b17-88ad-f5e53adf419e", + "expectedControlType": "Button", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "ScrollWheel", + "type": "PassThrough", + "id": "0489e84a-4833-4c40-bfae-cea84b696689", + "expectedControlType": "Vector2", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "TrackedDevicePosition", + "type": "PassThrough", + "id": "24908448-c609-4bc3-a128-ea258674378a", + "expectedControlType": "Vector3", + "processors": "", + "interactions": "", + "initialStateCheck": false + }, + { + "name": "TrackedDeviceOrientation", + "type": "PassThrough", + "id": "9caa3d8a-6b2f-4e8e-8bad-6ede561bd9be", + "expectedControlType": "Quaternion", + "processors": "", + "interactions": "", + "initialStateCheck": false + } + ], + "bindings": [ + { + "name": "Gamepad", + "id": "809f371f-c5e2-4e7a-83a1-d867598f40dd", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "14a5d6e8-4aaf-4119-a9ef-34b8c2c548bf", + "path": "/leftStick/up", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "9144cbe6-05e1-4687-a6d7-24f99d23dd81", + "path": "/rightStick/up", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "2db08d65-c5fb-421b-983f-c71163608d67", + "path": "/leftStick/down", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "58748904-2ea9-4a80-8579-b500e6a76df8", + "path": "/rightStick/down", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "8ba04515-75aa-45de-966d-393d9bbd1c14", + "path": "/leftStick/left", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "712e721c-bdfb-4b23-a86c-a0d9fcfea921", + "path": "/rightStick/left", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "fcd248ae-a788-4676-a12e-f4d81205600b", + "path": "/leftStick/right", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "1f04d9bc-c50b-41a1-bfcc-afb75475ec20", + "path": "/rightStick/right", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "fb8277d4-c5cd-4663-9dc7-ee3f0b506d90", + "path": "/dpad", + "interactions": "", + "processors": "", + "groups": ";Gamepad", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "Joystick", + "id": "e25d9774-381c-4a61-b47c-7b6b299ad9f9", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "3db53b26-6601-41be-9887-63ac74e79d19", + "path": "/stick/up", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "0cb3e13e-3d90-4178-8ae6-d9c5501d653f", + "path": "/stick/down", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "0392d399-f6dd-4c82-8062-c1e9c0d34835", + "path": "/stick/left", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "942a66d9-d42f-43d6-8d70-ecb4ba5363bc", + "path": "/stick/right", + "interactions": "", + "processors": "", + "groups": "Joystick", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "Keyboard", + "id": "ff527021-f211-4c02-933e-5976594c46ed", + "path": "2DVector", + "interactions": "", + "processors": "", + "groups": "", + "action": "Navigate", + "isComposite": true, + "isPartOfComposite": false + }, + { + "name": "up", + "id": "563fbfdd-0f09-408d-aa75-8642c4f08ef0", + "path": "/w", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "up", + "id": "eb480147-c587-4a33-85ed-eb0ab9942c43", + "path": "/upArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "2bf42165-60bc-42ca-8072-8c13ab40239b", + "path": "/s", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "down", + "id": "85d264ad-e0a0-4565-b7ff-1a37edde51ac", + "path": "/downArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "74214943-c580-44e4-98eb-ad7eebe17902", + "path": "/a", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "left", + "id": "cea9b045-a000-445b-95b8-0c171af70a3b", + "path": "/leftArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "8607c725-d935-4808-84b1-8354e29bab63", + "path": "/d", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "right", + "id": "4cda81dc-9edd-4e03-9d7c-a71a14345d0b", + "path": "/rightArrow", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Navigate", + "isComposite": false, + "isPartOfComposite": true + }, + { + "name": "", + "id": "9e92bb26-7e3b-4ec4-b06b-3c8f8e498ddc", + "path": "*/{Submit}", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR", + "action": "Submit", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "82627dcc-3b13-4ba9-841d-e4b746d6553e", + "path": "*/{Cancel}", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse;Gamepad;Touch;Joystick;XR", + "action": "Cancel", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "c52c8e0b-8179-41d3-b8a1-d149033bbe86", + "path": "/position", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "e1394cbc-336e-44ce-9ea8-6007ed6193f7", + "path": "/position", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "5693e57a-238a-46ed-b5ae-e64e6e574302", + "path": "/touch*/position", + "interactions": "", + "processors": "", + "groups": "Touch", + "action": "Point", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4faf7dc9-b979-4210-aa8c-e808e1ef89f5", + "path": "/leftButton", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "8d66d5ba-88d7-48e6-b1cd-198bbfef7ace", + "path": "/tip", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "47c2a644-3ebc-4dae-a106-589b7ca75b59", + "path": "/touch*/press", + "interactions": "", + "processors": "", + "groups": "Touch", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "bb9e6b34-44bf-4381-ac63-5aa15d19f677", + "path": "/trigger", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "Click", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "38c99815-14ea-4617-8627-164d27641299", + "path": "/scroll", + "interactions": "", + "processors": "", + "groups": ";Keyboard&Mouse", + "action": "ScrollWheel", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "4c191405-5738-4d4b-a523-c6a301dbf754", + "path": "/rightButton", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "RightClick", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "24066f69-da47-44f3-a07e-0015fb02eb2e", + "path": "/middleButton", + "interactions": "", + "processors": "", + "groups": "Keyboard&Mouse", + "action": "MiddleClick", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "7236c0d9-6ca3-47cf-a6ee-a97f5b59ea77", + "path": "/devicePosition", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "TrackedDevicePosition", + "isComposite": false, + "isPartOfComposite": false + }, + { + "name": "", + "id": "23e01e3a-f935-4948-8d8b-9bcac77714fb", + "path": "/deviceRotation", + "interactions": "", + "processors": "", + "groups": "XR", + "action": "TrackedDeviceOrientation", + "isComposite": false, + "isPartOfComposite": false + } + ] + } + ], + "controlSchemes": [ + { + "name": "Keyboard&Mouse", + "bindingGroup": "Keyboard&Mouse", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + }, + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Gamepad", + "bindingGroup": "Gamepad", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Touch", + "bindingGroup": "Touch", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "Joystick", + "bindingGroup": "Joystick", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + }, + { + "name": "XR", + "bindingGroup": "XR", + "devices": [ + { + "devicePath": "", + "isOptional": false, + "isOR": false + } + ] + } + ] +} \ No newline at end of file diff --git a/Assets/InputSystem_Actions.inputactions.meta b/Assets/InputSystem_Actions.inputactions.meta new file mode 100644 index 0000000..6b38b04 --- /dev/null +++ b/Assets/InputSystem_Actions.inputactions.meta @@ -0,0 +1,14 @@ +fileFormatVersion: 2 +guid: 052faaac586de48259a63d0c4782560b +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 8404be70184654265930450def6a9037, type: 3} + generateWrapperCode: 0 + wrapperCodePath: + wrapperClassName: + wrapperCodeNamespace: diff --git a/Assets/Main.meta b/Assets/Main.meta new file mode 100644 index 0000000..2bcc917 --- /dev/null +++ b/Assets/Main.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8434ef6815e9c7c4681acf829e0d84ee +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Main.unity b/Assets/Main.unity new file mode 100644 index 0000000..6872909 --- /dev/null +++ b/Assets/Main.unity @@ -0,0 +1,10077 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.84549654, g: 0.9433962, b: 0.9433962, a: 1} + m_FogMode: 3 + m_FogDensity: 0.02 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.2578616, g: 0.2578616, b: 0.2578616, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_BakeOnSceneLoad: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 112000000, guid: 38e65b272d6d7aa468b968dc218375f3, type: 2} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &15326553 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 15326554} + - component: {fileID: 15326557} + - component: {fileID: 15326556} + - component: {fileID: 15326555} + m_Layer: 0 + m_Name: Cube (36) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &15326554 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15326553} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 32.279995} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &15326555 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15326553} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &15326556 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15326553} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &15326557 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 15326553} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &23110831 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 23110832} + - component: {fileID: 23110835} + - component: {fileID: 23110834} + - component: {fileID: 23110833} + m_Layer: 0 + m_Name: Cube (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &23110832 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23110831} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: -5.78} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &23110833 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23110831} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &23110834 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23110831} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &23110835 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 23110831} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &25793811 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 25793812} + - component: {fileID: 25793815} + - component: {fileID: 25793814} + - component: {fileID: 25793813} + m_Layer: 0 + m_Name: Cube (45) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &25793812 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25793811} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 53.689995} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &25793813 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25793811} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &25793814 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25793811} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &25793815 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 25793811} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &34778675 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 34778676} + - component: {fileID: 34778679} + - component: {fileID: 34778678} + - component: {fileID: 34778677} + m_Layer: 0 + m_Name: Cube (17) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &34778676 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 34778675} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 10.749999} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &34778677 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 34778675} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &34778678 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 34778675} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &34778679 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 34778675} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &81843503 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 81843504} + - component: {fileID: 81843507} + - component: {fileID: 81843506} + - component: {fileID: 81843505} + m_Layer: 0 + m_Name: Cube (20) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &81843504 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 81843503} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 8.7} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &81843505 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 81843503} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &81843506 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 81843503} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &81843507 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 81843503} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &153715685 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 153715686} + - component: {fileID: 153715689} + - component: {fileID: 153715688} + - component: {fileID: 153715687} + m_Layer: 0 + m_Name: Cube (12) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &153715686 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 153715685} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 16.79} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &153715687 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 153715685} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &153715688 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 153715685} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &153715689 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 153715685} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &188027652 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 188027653} + - component: {fileID: 188027656} + - component: {fileID: 188027655} + - component: {fileID: 188027654} + m_Layer: 0 + m_Name: Cube (27) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &188027653 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188027652} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 57.809994} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &188027654 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188027652} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &188027655 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188027652} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &188027656 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 188027652} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &197088530 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 197088531} + - component: {fileID: 197088534} + - component: {fileID: 197088533} + - component: {fileID: 197088532} + m_Layer: 0 + m_Name: Cube (29) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &197088531 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 197088530} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 46.329994} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &197088532 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 197088530} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &197088533 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 197088530} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &197088534 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 197088530} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &203844586 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 203844589} + - component: {fileID: 203844588} + - component: {fileID: 203844587} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &203844587 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 203844586} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_CustomShadowLayers: 0 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 3 + m_RenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_ShadowRenderingLayersMask: + serializedVersion: 0 + m_Bits: 1 + m_Version: 4 + m_LightLayerMask: 1 + m_ShadowLayerMask: 1 + m_RenderingLayers: 1 + m_ShadowRenderingLayers: 1 +--- !u!108 &203844588 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 203844586} + m_Enabled: 1 + serializedVersion: 12 + m_Type: 1 + m_Color: {r: 1, g: 0.9785366, b: 0.92, a: 1} + m_Intensity: 3.14159 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize2D: {x: 10, y: 10} + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 0.8 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 1 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 6570 + m_UseColorTemperature: 0 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 + m_LightUnit: 1 + m_LuxAtDistance: 1 + m_EnableSpotReflector: 1 +--- !u!4 &203844589 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 203844586} + serializedVersion: 2 + m_LocalRotation: {x: 0.30044645, y: 0.3693323, z: -0.12753193, w: 0.87009263} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 604712594} + m_LocalEulerAnglesHint: {x: 38.1, y: 46, z: 0} +--- !u!1 &252601570 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 252601571} + - component: {fileID: 252601574} + - component: {fileID: 252601573} + - component: {fileID: 252601572} + m_Layer: 0 + m_Name: Cube (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &252601571 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 252601570} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 5.7} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &252601572 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 252601570} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &252601573 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 252601570} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &252601574 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 252601570} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &258175176 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 258175177} + - component: {fileID: 258175180} + - component: {fileID: 258175179} + - component: {fileID: 258175178} + m_Layer: 0 + m_Name: Cube (16) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &258175177 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 258175176} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 22.23} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &258175178 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 258175176} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &258175179 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 258175176} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &258175180 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 258175176} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &298821424 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 298821425} + - component: {fileID: 298821428} + - component: {fileID: 298821427} + - component: {fileID: 298821426} + m_Layer: 0 + m_Name: Cube (14) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &298821425 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 298821424} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 11.739998} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &298821426 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 298821424} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &298821427 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 298821424} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &298821428 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 298821424} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &367775167 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 367775168} + - component: {fileID: 367775171} + - component: {fileID: 367775170} + - component: {fileID: 367775169} + m_Layer: 0 + m_Name: Cube (17) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &367775168 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 367775167} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 10.020001} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &367775169 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 367775167} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &367775170 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 367775167} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &367775171 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 367775167} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &382275320 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 382275321} + - component: {fileID: 382275324} + - component: {fileID: 382275323} + - component: {fileID: 382275322} + m_Layer: 0 + m_Name: Cube (26) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &382275321 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382275320} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 40.289997} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &382275322 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382275320} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &382275323 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382275320} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &382275324 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 382275320} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &396372864 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 396372865} + - component: {fileID: 396372868} + - component: {fileID: 396372867} + - component: {fileID: 396372866} + m_Layer: 0 + m_Name: Cube (16) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &396372865 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396372864} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 21.5} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &396372866 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396372864} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &396372867 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396372864} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &396372868 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 396372864} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &397590663 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 397590664} + - component: {fileID: 397590667} + - component: {fileID: 397590666} + - component: {fileID: 397590665} + m_Layer: 0 + m_Name: Cube (34) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &397590664 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 397590663} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 27.819996} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &397590665 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 397590663} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &397590666 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 397590663} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &397590667 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 397590663} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &407297656 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 407297657} + - component: {fileID: 407297660} + - component: {fileID: 407297659} + - component: {fileID: 407297658} + m_Layer: 0 + m_Name: Cube (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &407297657 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 407297656} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 3.3899999} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &407297658 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 407297656} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &407297659 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 407297656} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &407297660 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 407297656} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &412558369 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 412558370} + - component: {fileID: 412558373} + - component: {fileID: 412558372} + - component: {fileID: 412558371} + m_Layer: 0 + m_Name: Cube (32) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &412558370 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 412558369} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 39.3} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &412558371 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 412558369} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &412558372 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 412558369} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &412558373 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 412558369} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &415972894 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 415972895} + - component: {fileID: 415972898} + - component: {fileID: 415972897} + - component: {fileID: 415972896} + m_Layer: 0 + m_Name: Cube (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &415972895 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 415972894} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: -4.12} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &415972896 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 415972894} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &415972897 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 415972894} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &415972898 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 415972894} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &421558604 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 421558605} + - component: {fileID: 421558608} + - component: {fileID: 421558607} + - component: {fileID: 421558606} + m_Layer: 0 + m_Name: Cube (31) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &421558605 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 421558604} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 51.119995} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &421558606 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 421558604} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &421558607 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 421558604} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &421558608 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 421558604} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &454680960 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 454680961} + - component: {fileID: 454680964} + - component: {fileID: 454680963} + - component: {fileID: 454680962} + m_Layer: 0 + m_Name: Cube (19) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &454680961 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 454680960} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 20.909998} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &454680962 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 454680960} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &454680963 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 454680960} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &454680964 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 454680960} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &500966556 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 500966557} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &500966557 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 500966556} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.030629, y: 0, z: -29.31} + m_LocalScale: {x: 1.5, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1316058807} + - {fileID: 769104246} + - {fileID: 1231371909} + - {fileID: 1785441791} + - {fileID: 252601571} + - {fileID: 382275321} + - {fileID: 2060697782} + - {fileID: 188027653} + - {fileID: 23110832} + - {fileID: 1730379681} + - {fileID: 298821425} + - {fileID: 197088531} + - {fileID: 1455531814} + - {fileID: 707316315} + - {fileID: 1054414970} + - {fileID: 421558605} + - {fileID: 1985412361} + - {fileID: 412558370} + - {fileID: 258175177} + - {fileID: 1501545534} + - {fileID: 530720834} + - {fileID: 397590664} + - {fileID: 34778676} + - {fileID: 1243843888} + - {fileID: 726632254} + - {fileID: 15326554} + - {fileID: 1420309422} + - {fileID: 1075907340} + - {fileID: 2049655685} + - {fileID: 1119950892} + - {fileID: 454680961} + - {fileID: 514938256} + - {fileID: 1581706087} + - {fileID: 1433067794} + - {fileID: 974943140} + - {fileID: 2034205252} + - {fileID: 574804855} + - {fileID: 1839519374} + - {fileID: 951776366} + - {fileID: 1968625370} + - {fileID: 2059763219} + - {fileID: 1631495741} + - {fileID: 754923146} + - {fileID: 25793812} + - {fileID: 1604287185} + - {fileID: 1157238979} + - {fileID: 1099010468} + - {fileID: 1658449988} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &505702789 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 505702790} + m_Layer: 0 + m_Name: Geometry + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &505702790 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 505702789} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 697948586} + - {fileID: 7823694312774259421} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &514938255 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 514938256} + - component: {fileID: 514938259} + - component: {fileID: 514938258} + - component: {fileID: 514938257} + m_Layer: 0 + m_Name: Cube (39) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &514938256 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 514938255} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 55.499992} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &514938257 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 514938255} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &514938258 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 514938255} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &514938259 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 514938255} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &530720833 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 530720834} + - component: {fileID: 530720837} + - component: {fileID: 530720836} + - component: {fileID: 530720835} + m_Layer: 0 + m_Name: Cube (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &530720834 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 530720833} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: -6.7699995} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &530720835 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 530720833} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &530720836 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 530720833} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &530720837 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 530720833} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &532895670 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 532895671} + - component: {fileID: 532895674} + - component: {fileID: 532895673} + - component: {fileID: 532895672} + m_Layer: 0 + m_Name: Cube (13) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &532895671 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 532895670} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 22.490002} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &532895672 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 532895670} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &532895673 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 532895670} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &532895674 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 532895670} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &574804854 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 574804855} + - component: {fileID: 574804858} + - component: {fileID: 574804857} + - component: {fileID: 574804856} + m_Layer: 0 + m_Name: Cube (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &574804855 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574804854} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: -4.12} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &574804856 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574804854} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &574804857 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574804854} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &574804858 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 574804854} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &604712593 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 604712594} + m_Layer: 0 + m_Name: Lights + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &604712594 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 604712593} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 203844589} + - {fileID: 2116198339} + - {fileID: 1182891855} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &697948582 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 697948586} + - component: {fileID: 697948585} + - component: {fileID: 697948584} + - component: {fileID: 697948583} + m_Layer: 0 + m_Name: Ground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!64 &697948583 +MeshCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 697948582} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 5 + m_Convex: 0 + m_CookingOptions: 30 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &697948584 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 697948582} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: df53c85fb9e7b32469227e519820b309, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &697948585 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 697948582} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &697948586 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 697948582} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 20, y: 20, z: 20} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 505702790} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &707316314 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 707316315} + - component: {fileID: 707316318} + - component: {fileID: 707316317} + - component: {fileID: 707316316} + m_Layer: 0 + m_Name: Cube (30) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &707316315 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 707316314} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 33.599995} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &707316316 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 707316314} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &707316317 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 707316314} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &707316318 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 707316314} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &726632253 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 726632254} + - component: {fileID: 726632257} + - component: {fileID: 726632256} + - component: {fileID: 726632255} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &726632254 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726632253} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: -2.31} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &726632255 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726632253} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &726632256 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726632253} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &726632257 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 726632253} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &754923145 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 754923146} + - component: {fileID: 754923149} + - component: {fileID: 754923148} + - component: {fileID: 754923147} + m_Layer: 0 + m_Name: Cube (22) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &754923146 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 754923145} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 19.099998} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &754923147 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 754923145} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &754923148 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 754923145} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &754923149 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 754923145} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &769104245 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 769104246} + - component: {fileID: 769104249} + - component: {fileID: 769104248} + - component: {fileID: 769104247} + m_Layer: 0 + m_Name: Cube (24) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &769104246 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 769104245} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 34.589996} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &769104247 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 769104245} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &769104248 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 769104245} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &769104249 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 769104245} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &951776365 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 951776366} + - component: {fileID: 951776369} + - component: {fileID: 951776368} + - component: {fileID: 951776367} + m_Layer: 0 + m_Name: Cube (21) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &951776366 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 951776365} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 13.4} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &951776367 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 951776365} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &951776368 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 951776365} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &951776369 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 951776365} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &958459807 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 958459808} + - component: {fileID: 958459811} + - component: {fileID: 958459810} + - component: {fileID: 958459809} + m_Layer: 0 + m_Name: Cube (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &958459808 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958459807} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: -2.31} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &958459809 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958459807} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &958459810 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958459807} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &958459811 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 958459807} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &961739749 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 961739753} + - component: {fileID: 961739752} + - component: {fileID: 961739751} + - component: {fileID: 961739750} + - component: {fileID: 961739754} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &961739750 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 1 + m_Antialiasing: 2 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 1 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_TaaSettings: + m_Quality: 3 + m_FrameInfluence: 0.100000024 + m_JitterScale: 1 + m_MipBias: 0 + m_VarianceClampScale: 0.9 + m_ContrastAdaptiveSharpening: 0 + m_Version: 2 +--- !u!81 &961739751 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + m_Enabled: 1 +--- !u!20 &961739752 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 2 + m_GateFitMode: 1 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 137.16063 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 200 + field of view: 10.000001 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &961739753 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + serializedVersion: 2 + m_LocalRotation: {x: 0.011376122, y: 0.98767215, z: -0.13002947, w: 0.08641025} + m_LocalPosition: {x: -10.9, y: 18, z: 62.3} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 15, y: 170, z: 0} +--- !u!114 &961739754 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 961739749} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 618b0e3f6c65dd247a4a016150006c57, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Runtime::UnityEngine.Rendering.FreeCamera + m_LookSpeedController: 120 + m_LookSpeedMouse: 4 + m_MoveSpeed: 10 + m_MoveSpeedIncrement: 2.5 + m_Turbo: 10 +--- !u!1 &974943139 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 974943140} + - component: {fileID: 974943143} + - component: {fileID: 974943142} + - component: {fileID: 974943141} + m_Layer: 0 + m_Name: Cube (20) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &974943140 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 974943139} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 9.429998} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &974943141 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 974943139} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &974943142 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 974943139} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &974943143 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 974943139} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1003790871 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1003790872} + - component: {fileID: 1003790875} + - component: {fileID: 1003790874} + - component: {fileID: 1003790873} + m_Layer: 0 + m_Name: Cube (18) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1003790872 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003790871} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 14.480001} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1003790873 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003790871} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1003790874 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003790871} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1003790875 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1003790871} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1054414969 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1054414970} + - component: {fileID: 1054414973} + - component: {fileID: 1054414972} + - component: {fileID: 1054414971} + m_Layer: 0 + m_Name: Cube (15) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1054414970 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054414969} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 16.529999} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1054414971 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054414969} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1054414972 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054414969} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1054414973 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1054414969} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1075907339 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1075907340} + - component: {fileID: 1075907343} + - component: {fileID: 1075907342} + - component: {fileID: 1075907341} + m_Layer: 0 + m_Name: Cube (37) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1075907340 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1075907339} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 49.799995} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1075907341 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1075907339} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1075907342 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1075907339} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1075907343 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1075907339} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1099010467 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1099010468} + - component: {fileID: 1099010471} + - component: {fileID: 1099010470} + - component: {fileID: 1099010469} + m_Layer: 0 + m_Name: Cube (23) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1099010468 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1099010467} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 7.619999} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1099010469 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1099010467} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1099010470 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1099010467} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1099010471 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1099010467} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1119950891 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1119950892} + - component: {fileID: 1119950895} + - component: {fileID: 1119950894} + - component: {fileID: 1119950893} + m_Layer: 0 + m_Name: Cube (38) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1119950892 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1119950891} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 37.979996} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1119950893 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1119950891} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1119950894 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1119950891} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1119950895 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1119950891} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1157238978 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1157238979} + - component: {fileID: 1157238982} + - component: {fileID: 1157238981} + - component: {fileID: 1157238980} + m_Layer: 0 + m_Name: Cube (46) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1157238979 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1157238978} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 24.689997} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1157238980 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1157238978} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1157238981 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1157238978} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1157238982 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1157238978} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1160234425 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1160234427} + - component: {fileID: 1160234426} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1160234426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1160234425} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: 2f46645358cbbd04eaa1121591e09687, type: 2} +--- !u!4 &1160234427 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1160234425} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1182891853 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1182891855} + - component: {fileID: 1182891854} + m_Layer: 0 + m_Name: Adaptive Probe Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1182891854 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1182891853} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cded085d155cde949b60f67a11dbc3bd, type: 3} + m_Name: + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Runtime::UnityEngine.Rendering.ProbeVolume + version: 2 + globalVolume: 0 + mode: 2 + size: {x: 20, y: 6, z: 20} + overrideRendererFilters: 0 + minRendererVolumeSize: 0.1 + objectLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + lowestSubdivLevelOverride: 0 + highestSubdivLevelOverride: 7 + overridesSubdivLevels: 0 + mightNeedRebaking: 1 + cachedTransform: + e00: 0 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 0 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 0 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 0 + cachedHashCode: 0 + fillEmptySpaces: 0 +--- !u!4 &1182891855 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1182891853} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 604712594} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1184924715 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1184924716} + - component: {fileID: 1184924719} + - component: {fileID: 1184924718} + - component: {fileID: 1184924717} + m_Layer: 0 + m_Name: Cube (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1184924716 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1184924715} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: -5.78} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1184924717 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1184924715} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1184924718 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1184924715} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1184924719 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1184924715} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1194769149 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1194769150} + m_Layer: 0 + m_Name: GameObject (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1194769150 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1194769149} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -6.25, y: 0, z: -0.36} + m_LocalScale: {x: 1.5, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1937077570} + - {fileID: 153715686} + - {fileID: 1857644754} + - {fileID: 532895671} + - {fileID: 1184924716} + - {fileID: 1410264766} + - {fileID: 2026033340} + - {fileID: 1255422443} + - {fileID: 1457090823} + - {fileID: 396372865} + - {fileID: 2019171692} + - {fileID: 367775168} + - {fileID: 958459808} + - {fileID: 1003790872} + - {fileID: 407297657} + - {fileID: 2099511720} + - {fileID: 1792577193} + - {fileID: 81843504} + - {fileID: 415972895} + - {fileID: 1863856444} + - {fileID: 1550824715} + - {fileID: 1365437071} + - {fileID: 1566961963} + - {fileID: 1303806334} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1231371908 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1231371909} + - component: {fileID: 1231371912} + - component: {fileID: 1231371911} + - component: {fileID: 1231371910} + m_Layer: 0 + m_Name: Cube (12) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1231371909 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1231371908} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 17.519999} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1231371910 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1231371908} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1231371911 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1231371908} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1231371912 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1231371908} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1243843887 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1243843888} + - component: {fileID: 1243843891} + - component: {fileID: 1243843890} + - component: {fileID: 1243843889} + m_Layer: 0 + m_Name: Cube (35) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1243843888 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1243843887} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 45.339996} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1243843889 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1243843887} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1243843890 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1243843887} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1243843891 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1243843887} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1255422442 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1255422443} + - component: {fileID: 1255422446} + - component: {fileID: 1255422445} + - component: {fileID: 1255422444} + m_Layer: 0 + m_Name: Cube (15) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1255422443 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1255422442} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 15.800001} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1255422444 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1255422442} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1255422445 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1255422442} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1255422446 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1255422442} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1303806333 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1303806334} + - component: {fileID: 1303806337} + - component: {fileID: 1303806336} + - component: {fileID: 1303806335} + m_Layer: 0 + m_Name: Cube (23) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1303806334 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303806333} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 6.8900013} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1303806335 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303806333} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1303806336 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303806333} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1303806337 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1303806333} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1316058806 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1316058807} + - component: {fileID: 1316058810} + - component: {fileID: 1316058809} + - component: {fileID: 1316058808} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1316058807 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1316058806} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 0} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1316058808 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1316058806} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1316058809 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1316058806} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1316058810 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1316058806} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1365437070 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1365437071} + - component: {fileID: 1365437074} + - component: {fileID: 1365437073} + - component: {fileID: 1365437072} + m_Layer: 0 + m_Name: Cube (22) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1365437071 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1365437070} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 18.37} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1365437072 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1365437070} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1365437073 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1365437070} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1365437074 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1365437070} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1410264765 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1410264766} + - component: {fileID: 1410264769} + - component: {fileID: 1410264768} + - component: {fileID: 1410264767} + m_Layer: 0 + m_Name: Cube (14) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1410264766 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1410264765} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 11.01} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1410264767 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1410264765} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1410264768 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1410264765} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1410264769 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1410264765} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1420309421 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1420309422} + - component: {fileID: 1420309425} + - component: {fileID: 1420309424} + - component: {fileID: 1420309423} + m_Layer: 0 + m_Name: Cube (18) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1420309422 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420309421} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 15.209999} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1420309423 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420309421} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1420309424 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420309421} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1420309425 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1420309421} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1433067793 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1433067794} + - component: {fileID: 1433067797} + - component: {fileID: 1433067796} + - component: {fileID: 1433067795} + m_Layer: 0 + m_Name: Cube (40) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1433067794 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433067793} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 26.499996} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1433067795 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433067793} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1433067796 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433067793} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1433067797 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1433067793} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1455531813 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1455531814} + - component: {fileID: 1455531817} + - component: {fileID: 1455531816} + - component: {fileID: 1455531815} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1455531814 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455531813} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: -0.99} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1455531815 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455531813} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1455531816 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455531813} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1455531817 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1455531813} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1457090822 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1457090823} + - component: {fileID: 1457090826} + - component: {fileID: 1457090825} + - component: {fileID: 1457090824} + m_Layer: 0 + m_Name: Cube (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1457090823 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1457090822} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 4.71} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1457090824 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1457090822} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1457090825 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1457090822} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1457090826 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1457090822} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1501545533 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1501545534} + - component: {fileID: 1501545537} + - component: {fileID: 1501545536} + - component: {fileID: 1501545535} + m_Layer: 0 + m_Name: Cube (33) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1501545534 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1501545533} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 56.819996} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1501545535 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1501545533} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1501545536 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1501545533} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1501545537 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1501545533} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1550824714 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1550824715} + - component: {fileID: 1550824718} + - component: {fileID: 1550824717} + - component: {fileID: 1550824716} + m_Layer: 0 + m_Name: Cube (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1550824715 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1550824714} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 1.5799999} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1550824716 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1550824714} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1550824717 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1550824714} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1550824718 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1550824714} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1566961962 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1566961963} + - component: {fileID: 1566961966} + - component: {fileID: 1566961965} + - component: {fileID: 1566961964} + m_Layer: 0 + m_Name: Cube (11) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1566961963 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566961962} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: -9.9} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1566961964 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566961962} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1566961965 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566961962} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1566961966 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1566961962} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1581706086 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1581706087} + - component: {fileID: 1581706090} + - component: {fileID: 1581706089} + - component: {fileID: 1581706088} + m_Layer: 0 + m_Name: Cube (10) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1581706087 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1581706086} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: -8.09} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1581706088 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1581706086} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1581706089 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1581706086} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1581706090 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1581706086} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1604287184 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1604287185} + - component: {fileID: 1604287188} + - component: {fileID: 1604287187} + - component: {fileID: 1604287186} + m_Layer: 0 + m_Name: Cube (11) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1604287185 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1604287184} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: -9.9} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1604287186 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1604287184} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1604287187 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1604287184} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1604287188 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1604287184} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1631495740 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1631495741} + - component: {fileID: 1631495744} + - component: {fileID: 1631495743} + - component: {fileID: 1631495742} + m_Layer: 0 + m_Name: Cube (44) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1631495741 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1631495740} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 36.17} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1631495742 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1631495740} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1631495743 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1631495740} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1631495744 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1631495740} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1658449987 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1658449988} + - component: {fileID: 1658449991} + - component: {fileID: 1658449990} + - component: {fileID: 1658449989} + m_Layer: 0 + m_Name: Cube (47) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1658449988 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658449987} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 42.209995} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1658449989 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658449987} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1658449990 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658449987} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1658449991 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1658449987} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1730379680 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1730379681} + - component: {fileID: 1730379684} + - component: {fileID: 1730379683} + - component: {fileID: 1730379682} + m_Layer: 0 + m_Name: Cube (28) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1730379681 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1730379680} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 28.809996} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1730379682 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1730379680} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1730379683 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1730379680} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1730379684 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1730379680} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1785441790 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1785441791} + - component: {fileID: 1785441794} + - component: {fileID: 1785441793} + - component: {fileID: 1785441792} + m_Layer: 0 + m_Name: Cube (25) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1785441791 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1785441790} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 52.109993} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1785441792 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1785441790} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1785441793 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1785441790} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1785441794 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1785441790} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1792577192 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1792577193} + - component: {fileID: 1792577196} + - component: {fileID: 1792577195} + - component: {fileID: 1792577194} + m_Layer: 0 + m_Name: Cube (10) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1792577193 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792577192} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: -8.09} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1792577194 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792577192} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1792577195 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792577192} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1792577196 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1792577192} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1839519373 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1839519374} + - component: {fileID: 1839519377} + - component: {fileID: 1839519376} + - component: {fileID: 1839519375} + m_Layer: 0 + m_Name: Cube (42) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1839519374 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1839519373} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 30.469997} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1839519375 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1839519373} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1839519376 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1839519373} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1839519377 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1839519373} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1857644753 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1857644754} + - component: {fileID: 1857644757} + - component: {fileID: 1857644756} + - component: {fileID: 1857644755} + m_Layer: 0 + m_Name: Cube (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1857644754 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1857644753} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 5.7} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1857644755 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1857644753} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1857644756 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1857644753} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1857644757 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1857644753} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1863856443 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1863856444} + - component: {fileID: 1863856447} + - component: {fileID: 1863856446} + - component: {fileID: 1863856445} + m_Layer: 0 + m_Name: Cube (21) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1863856444 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863856443} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 12.670001} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1863856445 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863856443} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1863856446 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863856443} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1863856447 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1863856443} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1937077569 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1937077570} + - component: {fileID: 1937077573} + - component: {fileID: 1937077572} + - component: {fileID: 1937077571} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1937077570 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1937077569} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 0} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1937077571 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1937077569} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1937077572 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1937077569} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1937077573 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1937077569} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1968625369 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1968625370} + - component: {fileID: 1968625373} + - component: {fileID: 1968625372} + - component: {fileID: 1968625371} + m_Layer: 0 + m_Name: Cube (43) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1968625370 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1968625369} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 47.989998} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1968625371 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1968625369} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1968625372 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1968625369} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1968625373 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1968625369} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1985412360 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1985412361} + - component: {fileID: 1985412364} + - component: {fileID: 1985412363} + - component: {fileID: 1985412362} + m_Layer: 0 + m_Name: Cube (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1985412361 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1985412360} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 4.71} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &1985412362 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1985412360} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1985412363 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1985412360} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &1985412364 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1985412360} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2019171691 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2019171692} + - component: {fileID: 2019171695} + - component: {fileID: 2019171694} + - component: {fileID: 2019171693} + m_Layer: 0 + m_Name: Cube (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2019171692 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2019171691} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: -6.7699995} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2019171693 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2019171691} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2019171694 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2019171691} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2019171695 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2019171691} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2026033339 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2026033340} + - component: {fileID: 2026033343} + - component: {fileID: 2026033342} + - component: {fileID: 2026033341} + m_Layer: 0 + m_Name: Cube (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2026033340 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026033339} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: -0.99} + m_LocalScale: {x: 0.53154, y: 1.6126922, z: 0.53154} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2026033341 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026033339} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2026033342 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026033339} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2026033343 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2026033339} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2034205251 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2034205252} + - component: {fileID: 2034205255} + - component: {fileID: 2034205254} + - component: {fileID: 2034205253} + m_Layer: 0 + m_Name: Cube (41) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2034205252 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2034205251} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 44.019997} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2034205253 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2034205251} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2034205254 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2034205251} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2034205255 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2034205251} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2049655684 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2049655685} + - component: {fileID: 2049655688} + - component: {fileID: 2049655687} + - component: {fileID: 2049655686} + m_Layer: 0 + m_Name: Cube (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2049655685 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2049655684} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 3.3899999} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2049655686 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2049655684} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2049655687 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2049655684} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2049655688 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2049655684} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2059763218 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2059763219} + - component: {fileID: 2059763222} + - component: {fileID: 2059763221} + - component: {fileID: 2059763220} + m_Layer: 0 + m_Name: Cube (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2059763219 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059763218} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.69, y: 0.72, z: 1.5799999} + m_LocalScale: {x: 1.032376, y: 2.437926, z: 1.8146808} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2059763220 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059763218} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2059763221 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059763218} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2059763222 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2059763218} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2060697781 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2060697782} + - component: {fileID: 2060697785} + - component: {fileID: 2060697784} + - component: {fileID: 2060697783} + m_Layer: 0 + m_Name: Cube (13) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2060697782 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060697781} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 23.219997} + m_LocalScale: {x: 1, y: 3.034, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 500966557} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2060697783 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060697781} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2060697784 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060697781} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2060697785 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2060697781} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2099511719 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2099511720} + - component: {fileID: 2099511723} + - component: {fileID: 2099511722} + - component: {fileID: 2099511721} + m_Layer: 0 + m_Name: Cube (19) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2099511720 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2099511719} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 1.73, y: 0.72, z: 20.18} + m_LocalScale: {x: 0.783171, y: 1.8494356, z: 1.3766354} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1194769150} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &2099511721 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2099511719} + m_Material: {fileID: 0} + m_IncludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_ExcludeLayers: + serializedVersion: 2 + m_Bits: 0 + m_LayerOverridePriority: 0 + m_IsTrigger: 0 + m_ProvidesContacts: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &2099511722 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2099511719} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &2099511723 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2099511719} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &2116198337 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2116198339} + - component: {fileID: 2116198338} + m_Layer: 0 + m_Name: Reflection Probe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!215 &2116198338 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116198337} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 1 + m_TimeSlicingMode: 0 + m_Resolution: 128 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 51 + m_IntensityMultiplier: 1 + m_BlendDistance: 3 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!4 &2116198339 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2116198337} + serializedVersion: 2 + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0.75, z: 0.25} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 604712594} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &285757673750222148 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6093051471230134716} + m_Mesh: {fileID: -7566841462754083692, guid: 222a53bfd672e6742a55f3f0809aa1fe, type: 3} +--- !u!1 &305272007978442846 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3521683707466773123} + - component: {fileID: 7218820239248278125} + - component: {fileID: 5059788001672154254} + m_Layer: 2 + m_Name: Back_Part_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!1 &708799364539981625 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4024233217588088173} + - component: {fileID: 7133170251085893050} + - component: {fileID: 2329960007035633681} + m_Layer: 2 + m_Name: Back_Part_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &750974001258836848 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6093051471230134716} + serializedVersion: 2 + m_LocalRotation: {x: -0.00000028212997, y: -0.0000000437114, z: 0.000000043711378, w: 1} + m_LocalPosition: {x: -0, y: 0, z: -0.0000000027814178} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3874231289254137071} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1172976811987324086 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1528205290726672657} + m_Mesh: {fileID: 6889500831704049005, guid: 222a53bfd672e6742a55f3f0809aa1fe, type: 3} +--- !u!4 &1296738678326357226 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4094583408627704216} + serializedVersion: 2 + m_LocalRotation: {x: -0.00000016292068, y: -0.000000043711395, z: 0.00000004371138, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1448501443085806459} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &1448501443085806459 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3838825835289551678} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0.79499996, z: -0.00000013073299} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4024233217588088173} + - {fileID: 3521683707466773123} + - {fileID: 6233777116457369307} + - {fileID: 8577614354117532858} + - {fileID: 1296738678326357226} + - {fileID: 6754955248402670120} + - {fileID: 5270582871199435135} + - {fileID: 2355653191682247708} + m_Father: {fileID: 7823694312774259421} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &1507839029914702275 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8177051283744415050} + m_Mesh: {fileID: 1998105296686543947, guid: 222a53bfd672e6742a55f3f0809aa1fe, type: 3} +--- !u!1 &1528205290726672657 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2355653191682247708} + - component: {fileID: 1172976811987324086} + - component: {fileID: 7499497021674395898} + m_Layer: 2 + m_Name: Rings + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &2329960007035633681 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 708799364539981625} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1295642f1274bc34a98dba24a73d45e6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &2355653191682247708 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1528205290726672657} + serializedVersion: 2 + m_LocalRotation: {x: -0.00000016292068, y: -0.000000043711395, z: 0.00000004371138, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1448501443085806459} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2373536540347037660 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2667994382452280172} + - component: {fileID: 6476517947687084780} + - component: {fileID: 4229607126010098906} + m_Layer: 0 + m_Name: Stand_Part_1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &2667994382452280172 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2373536540347037660} + serializedVersion: 2 + m_LocalRotation: {x: -0.00000016292068, y: -0.000000043711395, z: 0.00000004371138, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3874231289254137071} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2850601345607466662 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 3874231289254137071} + m_Layer: 0 + m_Name: Stand + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &3274465372524955329 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8980234965581135787} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1295642f1274bc34a98dba24a73d45e6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &3521683707466773123 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305272007978442846} + serializedVersion: 2 + m_LocalRotation: {x: -0.00000016292068, y: -0.000000043711395, z: 0.00000004371138, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1448501443085806459} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3838825835289551678 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1448501443085806459} + m_Layer: 0 + m_Name: Ball + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &3874231289254137071 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2850601345607466662} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: 0, z: -0.0000000027814178} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 750974001258836848} + - {fileID: 2667994382452280172} + - {fileID: 7404782291424719770} + m_Father: {fileID: 7823694312774259421} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &3886155221346378004 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5519764271386734523} + m_Mesh: {fileID: 2433083544793605448, guid: 222a53bfd672e6742a55f3f0809aa1fe, type: 3} +--- !u!4 &4024233217588088173 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 708799364539981625} + serializedVersion: 2 + m_LocalRotation: {x: -0.000000011924881, y: -0.00000004371139, z: 0.00000004371139, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1448501443085806459} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &4094583408627704216 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1296738678326357226} + - component: {fileID: 8988423917994663629} + - component: {fileID: 7476877889312545141} + m_Layer: 0 + m_Name: Bottom_Cap + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &4229607126010098906 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2373536540347037660} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 90cb37d4746524b45a22b588b2fa0f8e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!23 &4711151955290684885 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8177051283744415050} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 90cb37d4746524b45a22b588b2fa0f8e, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!23 &5059788001672154254 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305272007978442846} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ea33cab331b2f0e4fa84f1bf90a3c6db, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &5270582871199435135 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8980234965581135787} + serializedVersion: 2 + m_LocalRotation: {x: -0.00000016292068, y: -0.000000043711395, z: 0.00000004371138, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1448501443085806459} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &5519764271386734523 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 8577614354117532858} + - component: {fileID: 3886155221346378004} + - component: {fileID: 8097064273423272568} + m_Layer: 0 + m_Name: Ball_Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!33 &5691571643838763082 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8163965080769336533} + m_Mesh: {fileID: -6763925310212717797, guid: 222a53bfd672e6742a55f3f0809aa1fe, type: 3} +--- !u!1 &6093051471230134716 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 750974001258836848} + - component: {fileID: 285757673750222148} + - component: {fileID: 7120302010817048496} + m_Layer: 0 + m_Name: Stand_Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!4 &6233777116457369307 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7845786399117771539} + serializedVersion: 2 + m_LocalRotation: {x: -0.000000011924881, y: -0.00000004371139, z: 0.00000004371139, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1448501443085806459} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &6476517947687084780 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2373536540347037660} + m_Mesh: {fileID: -3251575562234066762, guid: 222a53bfd672e6742a55f3f0809aa1fe, type: 3} +--- !u!4 &6754955248402670120 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8177051283744415050} + serializedVersion: 2 + m_LocalRotation: {x: -0.00000016292068, y: -0.000000043711395, z: 0.00000004371138, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1448501443085806459} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7105339341735408668 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7845786399117771539} + m_Mesh: {fileID: 3521283738109391821, guid: 222a53bfd672e6742a55f3f0809aa1fe, type: 3} +--- !u!23 &7120302010817048496 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6093051471230134716} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1295642f1274bc34a98dba24a73d45e6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &7133170251085893050 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 708799364539981625} + m_Mesh: {fileID: 4262345794405271195, guid: 222a53bfd672e6742a55f3f0809aa1fe, type: 3} +--- !u!33 &7218820239248278125 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 305272007978442846} + m_Mesh: {fileID: -380643886415135931, guid: 222a53bfd672e6742a55f3f0809aa1fe, type: 3} +--- !u!4 &7404782291424719770 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8163965080769336533} + serializedVersion: 2 + m_LocalRotation: {x: -0.00000028212997, y: -0.0000000437114, z: 0.000000043711378, w: 1} + m_LocalPosition: {x: -0, y: 0, z: -0.0000000027814178} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 3874231289254137071} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &7476877889312545141 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4094583408627704216} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1295642f1274bc34a98dba24a73d45e6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &7482880494889535591 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7823694312774259421} + m_Layer: 0 + m_Name: UnityMaterialBall_Gold + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &7499497021674395898 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1528205290726672657} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1295642f1274bc34a98dba24a73d45e6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!33 &7667906935820937665 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8980234965581135787} + m_Mesh: {fileID: -6825379337611155391, guid: 222a53bfd672e6742a55f3f0809aa1fe, type: 3} +--- !u!4 &7823694312774259421 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7482880494889535591} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 1448501443085806459} + - {fileID: 3874231289254137071} + m_Father: {fileID: 505702790} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &7845786399117771539 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6233777116457369307} + - component: {fileID: 7105339341735408668} + - component: {fileID: 9102376964654609776} + m_Layer: 2 + m_Name: Back_Part_Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &8097064273423272568 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5519764271386734523} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ea33cab331b2f0e4fa84f1bf90a3c6db, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1 &8163965080769336533 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7404782291424719770} + - component: {fileID: 5691571643838763082} + - component: {fileID: 8496002568620297863} + m_Layer: 0 + m_Name: Stand_Part_2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!1 &8177051283744415050 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6754955248402670120} + - component: {fileID: 1507839029914702275} + - component: {fileID: 4711151955290684885} + m_Layer: 2 + m_Name: Front_Part + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!23 &8496002568620297863 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 8163965080769336533} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 1295642f1274bc34a98dba24a73d45e6, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!4 &8577614354117532858 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5519764271386734523} + serializedVersion: 2 + m_LocalRotation: {x: -0.00000016292068, y: -0.000000043711395, z: 0.00000004371138, w: 1} + m_LocalPosition: {x: -0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 1448501443085806459} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &8980234965581135787 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5270582871199435135} + - component: {fileID: 7667906935820937665} + - component: {fileID: 3274465372524955329} + m_Layer: 2 + m_Name: Front_Part_Logo + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 2147483647 + m_IsActive: 1 +--- !u!33 &8988423917994663629 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4094583408627704216} + m_Mesh: {fileID: 7751458673466434898, guid: 222a53bfd672e6742a55f3f0809aa1fe, type: 3} +--- !u!23 &9102376964654609776 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7845786399117771539} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_StaticShadowCaster: 0 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RayTracingAccelStructBuildFlagsOverride: 0 + m_RayTracingAccelStructBuildFlags: 1 + m_SmallMeshCulling: 1 + m_ForceMeshLod: -1 + m_MeshLodSelectionBias: 0 + m_RenderingLayerMask: 257 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: ea33cab331b2f0e4fa84f1bf90a3c6db, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 2 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_GlobalIlluminationMeshLod: 0 + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_MaskInteraction: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 961739753} + - {fileID: 1160234427} + - {fileID: 604712594} + - {fileID: 505702790} + - {fileID: 500966557} + - {fileID: 1194769150} diff --git a/Assets/Main.unity.meta b/Assets/Main.unity.meta new file mode 100644 index 0000000..adf3519 --- /dev/null +++ b/Assets/Main.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 9e27af73fb025934d90889c63af29bba +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Main/Black.mat b/Assets/Main/Black.mat new file mode 100644 index 0000000..b9b9f0a --- /dev/null +++ b/Assets/Main/Black.mat @@ -0,0 +1,136 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Black + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.103999995, g: 0.103999995, b: 0.10053333, a: 1} + - _Color: {r: 0.10399995, g: 0.10399995, b: 0.1005333, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &4431363231931934953 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 10 diff --git a/Assets/Main/Black.mat.meta b/Assets/Main/Black.mat.meta new file mode 100644 index 0000000..b155f4c --- /dev/null +++ b/Assets/Main/Black.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1295642f1274bc34a98dba24a73d45e6 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Main/GlobalVolumeProfile.asset b/Assets/Main/GlobalVolumeProfile.asset new file mode 100644 index 0000000..87656b8 --- /dev/null +++ b/Assets/Main/GlobalVolumeProfile.asset @@ -0,0 +1,254 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6989835814840294288 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 90fbf49926625114084d7e0c0cffe8d1, type: 3} + m_Name: HBAO + m_EditorClassIdentifier: HBAO.Universal.Runtime::HorizonBasedAmbientOcclusion.Universal.HBAO + active: 1 + preset: + m_OverrideState: 0 + m_Value: 2 + mode: + m_OverrideState: 0 + m_Value: 1 + renderingPath: + m_OverrideState: 0 + m_Value: 0 + quality: + m_OverrideState: 0 + m_Value: 2 + deinterleaving: + m_OverrideState: 0 + m_Value: 0 + resolution: + m_OverrideState: 0 + m_Value: 0 + noiseType: + m_OverrideState: 0 + m_Value: 0 + debugMode: + m_OverrideState: 0 + m_Value: 0 + radius: + m_OverrideState: 1 + m_Value: 4.51 + maxRadiusPixels: + m_OverrideState: 0 + m_Value: 128 + bias: + m_OverrideState: 1 + m_Value: 0.097 + intensity: + m_OverrideState: 1 + m_Value: 1 + useMultiBounce: + m_OverrideState: 0 + m_Value: 0 + multiBounceInfluence: + m_OverrideState: 0 + m_Value: 1 + directLightingStrength: + m_OverrideState: 0 + m_Value: 0.25 + offscreenSamplesContribution: + m_OverrideState: 0 + m_Value: 0 + maxDistance: + m_OverrideState: 0 + m_Value: 150 + distanceFalloff: + m_OverrideState: 0 + m_Value: 50 + perPixelNormals: + m_OverrideState: 0 + m_Value: 2 + baseColor: + m_OverrideState: 0 + m_Value: {r: 0, g: 0, b: 0, a: 1} + temporalFilterEnabled: + m_OverrideState: 0 + m_Value: 1 + varianceClipping: + m_OverrideState: 0 + m_Value: 1 + blurType: + m_OverrideState: 0 + m_Value: 2 + sharpness: + m_OverrideState: 0 + m_Value: 8 + colorBleedingEnabled: + m_OverrideState: 0 + m_Value: 0 + saturation: + m_OverrideState: 0 + m_Value: 1 + brightnessMask: + m_OverrideState: 0 + m_Value: 1 + brightnessMaskRange: + m_OverrideState: 0 + m_Value: {x: 0, y: 0.5} + min: 0 + max: 2 +--- !u!114 &-5474690943039039243 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3} + m_Name: DepthOfField + m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.DepthOfField + active: 1 + mode: + m_OverrideState: 1 + m_Value: 2 + gaussianStart: + m_OverrideState: 1 + m_Value: 60 + gaussianEnd: + m_OverrideState: 1 + m_Value: 70 + gaussianMaxRadius: + m_OverrideState: 1 + m_Value: 1 + highQualitySampling: + m_OverrideState: 1 + m_Value: 0 + focusDistance: + m_OverrideState: 1 + m_Value: 60 + aperture: + m_OverrideState: 1 + m_Value: 1 + focalLength: + m_OverrideState: 1 + m_Value: 300 + bladeCount: + m_OverrideState: 0 + m_Value: 5 + bladeCurvature: + m_OverrideState: 0 + m_Value: 1 + bladeRotation: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &-32820517437979890 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + skipIterations: + m_OverrideState: 0 + m_Value: 1 + threshold: + m_OverrideState: 0 + m_Value: 0.9 + intensity: + m_OverrideState: 1 + m_Value: 0.5 + scatter: + m_OverrideState: 0 + m_Value: 0.7 + clamp: + m_OverrideState: 0 + m_Value: 65472 + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + highQualityFiltering: + m_OverrideState: 0 + m_Value: 0 + filter: + m_OverrideState: 0 + m_Value: 0 + downscale: + m_OverrideState: 0 + m_Value: 0 + maxIterations: + m_OverrideState: 0 + m_Value: 6 + dirtTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + dimension: 1 + dirtIntensity: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: GlobalVolumeProfile + m_EditorClassIdentifier: + components: + - {fileID: 1881579288749618558} + - {fileID: -32820517437979890} + - {fileID: -5474690943039039243} + - {fileID: -6989835814840294288} +--- !u!114 &1881579288749618558 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} + m_Name: Tonemapping + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 2 + neutralHDRRangeReductionMode: + m_OverrideState: 0 + m_Value: 2 + acesPreset: + m_OverrideState: 0 + m_Value: 3 + hueShiftAmount: + m_OverrideState: 0 + m_Value: 0 + detectPaperWhite: + m_OverrideState: 0 + m_Value: 0 + paperWhite: + m_OverrideState: 0 + m_Value: 300 + detectBrightnessLimits: + m_OverrideState: 0 + m_Value: 1 + minNits: + m_OverrideState: 0 + m_Value: 0.005 + maxNits: + m_OverrideState: 0 + m_Value: 1000 diff --git a/Assets/Main/GlobalVolumeProfile.asset.meta b/Assets/Main/GlobalVolumeProfile.asset.meta new file mode 100644 index 0000000..b747854 --- /dev/null +++ b/Assets/Main/GlobalVolumeProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2f46645358cbbd04eaa1121591e09687 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Main/Gold.mat b/Assets/Main/Gold.mat new file mode 100644 index 0000000..6cdd2b0 --- /dev/null +++ b/Assets/Main/Gold.mat @@ -0,0 +1,137 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Gold + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 1 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.829 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 0.8235294, b: 0.5058824, a: 1} + - _Color: {r: 1, g: 0.8235294, b: 0.5058824, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &4431363231931934953 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 10 diff --git a/Assets/Main/Gold.mat.meta b/Assets/Main/Gold.mat.meta new file mode 100644 index 0000000..7545322 --- /dev/null +++ b/Assets/Main/Gold.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ea33cab331b2f0e4fa84f1bf90a3c6db +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Main/Ground.mat b/Assets/Main/Ground.mat new file mode 100644 index 0000000..edfe1b3 --- /dev/null +++ b/Assets/Main/Ground.mat @@ -0,0 +1,137 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Ground + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _XRMotionVectorsPass: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.65099996, g: 0.65099996, b: 0.65099996, a: 1} + - _Color: {r: 0.6509999, g: 0.6509999, b: 0.6509999, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &4431363231931934953 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 10 diff --git a/Assets/Main/Ground.mat.meta b/Assets/Main/Ground.mat.meta new file mode 100644 index 0000000..8d56053 --- /dev/null +++ b/Assets/Main/Ground.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df53c85fb9e7b32469227e519820b309 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Main/LightingData.asset b/Assets/Main/LightingData.asset new file mode 100644 index 0000000000000000000000000000000000000000..9c2a52590df17204bed26a19f94ec921e7f3b7b6 GIT binary patch literal 17800 zcmdU%eViOcna6wfEw4xdgkX@c2}vL^#+?a?fozt|E7`o5B^%xhkj(D(W{2#~E;F-a zH)*=SepXcfBnhHTsNXHgR!P2vBdHI!gzw}yR^XuyB=FFWFPjtkCw}*y? zViiOxVw4RHy>iqaFF5ebC9B`4u6ymkkM6wv2CDs5C1Gy-z97g`lOc1M=Stee=)W&k z2Kl>ULB7fyqpq01$I{{QsvwU&;t6+u43@}a|U`j7J3yZVpzcq~{+{rfU? z8sj?#Jddl`MEb?zG(OnCF@~|mD6cf*cRb0!*c<_FMoQXO24_**i)n-2@9=mmXrj9F zXoLJCX&)JWGk%+>YCH3B9G7Ii4UPXQ;`A5HGCW^6D@G9y{*Df}Vk4GMpZ`56j-ig}~LpJu*T;V&>>qVQLkFID(k%$F&=ro!I8}C6sDSjtus_ zkFF^GyVj6elOq!@{`-DIYE6zzxcKinLuyTq4F3Bv$)C^tYc3F5DD_`Fqob*`f9s== z%HSu``xX2b&-NCNTmStmaro~BkGuZMFTaJe#6QJ<&nXaF5H9|EuENEC@tzb-(q8=c z{3xWdaPi*{C|vw^qr%01FHpGn?}Z8%|Gh}z;=g#;izd-u{C9H{Qdzk8Z&KmnzpV-v z|7}ya_;0(%t^bau7!CgoJsva9pN(w49pL%mNu}@CTYws)+|R)<>u0N>3V*N7%*e4RJ1Uyw z{=CWjgHcFj;T7~@4Ey?;Q8W7rT)DOs4>c2|GuJ#ObPydF3E;}L;jT>uL>4Y?AglKzslp) z&in1hJ#N20<@^0=h2#3T|JQijUVj%~{}Uc}um5)*cdw7{_-I0WNBoiNUmJx~hJB*{ zyZQRpdECAJZjZayzrGBgNAhv~7_m=zJZ8SHzC_mt|8xmoliJdmYtHnvhS{LGIhUzl z-k!?!WR~~m!gMy(lWqvQH?2r@g-y$-(45S5Qo)?poC!OUtxf4{E}3o%8-k*sWyxHU zPBuFuxh2eP2y>ZaXV{)ecBQr_b0nC~I80?w;B-JWU-vm5I!EEMC#Vxm}_dts0c zsZ*^z8FO~=fX*)-P>bRLwOO0YWm5ff`%mo%x=k?%>*{EW)0UuZZV<-lI8MiLI*!wE zf{qh(oS@^x+#r=bhdS3z{aV@A)wMo3kPZ5S0h$=1al`o1D9{jdsVUta_T$uKwlioQ z$l0FR0_kZBq@yj6eztI`6y`}`z7*akg#}VLO$u=uG!|Wu9WMxv7o^7v;^QR0d(*m( zj%=8tLQ86Uh;H;`Q@C|mD!;!cUAR5Cr(wI(wYAA!I%!FAYuLWDC+z4*wWY!|^}nUJ zGt8vgl3gp4neLu+sx7-F5o9|z){=_Yk$%{ba@dh(*pXV;kxtlAkFlfvVn@Bjj`~VF zbQC))1zp6Em4eRU$V!P@DRC<$Zl%Pnl!TR%uu>9MO2SG>SSblBB|%cSm&W|pwY7Ei z!D}MkP^@D+C{&mxVhDv=5?Cm&O=h<)?M$ZAVHZ`Ctt<({G#oT+H*UNc5pQVdmNS3Z zHRmJE&wuEw-LLNd!NCphAxF>D*ykb6qi=Q-n@yX%$xZf`%uOFfXC7{D8go9-ghC9( zm^|e+;oAsv({VZ+NgK{_c`U&9{^91PMLu<@q`fPDgvbA~xoMF<%4_e+AMNqK{oFLZ zM>o?pmbN2lizbZ!({%5pfA~Ih$KUPWc#qq6hfb=;vmLe&%Tvaw^xffTs*g1a#kJgb z2YkQc86>HKINn$B?3zaV3A9Byo}Ks8x9??CkN#n9+U54!M*26=@I2)<;oCiGf0+Mr z`)}prodNPOH$9yENnU$b{_!5S@^7Mg$j99DaPl!X?ds>spX_mae{Q9E+#k$M4|jiR z!5b;#RC<4=P`#^Pr5S(RALu{T<96;*#{VS4^OW0!`xhO5++(+YvEXj1dzd!JpKds1 zoJ#F?2GzUmUHd)R<1u6Z2dEyg2YR~wiv`b7-Rrb<(KgfL73SS;0yRSWSqgs_bIeV< z@@@N*n9o+Y%>83-x?KA>x5wOcIlh4Tdlh~L^E!pg+&toRIr(e3eL~?In9o)CM&_p~ zyp{Ppg{PQfZkmdP1pC-Ww%N;^o^xgSHs+X{F4uks^V1Z5IdeR#%C*0S`9g(X&m42p z<=WrG9COp<_&(+h3dh_U>=Sd-<=WrDyiwubV7^%4_c33h@b5BTs_;jdFY~yKUr!Q8 z{8|p4r;JnS^JN9q4;R1A1eeC9Tp1jq3dFC?biC5kQN{`J>2>HqQj{AqX=~z%}p()$B>sscRn=Z$v zGRM0>IX;bfv&XG|Gl)aKvpjCEFZ!)lxailSaM5pr!bQKcJzf=DP2<-<`q5v2xoP+Q zSiXk&xn(%UKgs>W+;q9|k^Y^paOvL%6fXV4+;lnl(m%{iyWEa{7wd<)X_vd>f04pP zKg>;+YcKk3R=DVw^mvu|ZEy$c*J?OroM69uX?(9Ij{DL^n|psO-^09J;kPgk6^^-8 z$n8-0H<@oy_=C(l75)hGl)|56PI07c|9-(7bJOMe{~U9?W0d2V8$~_lrpxiym}73b z9FJAn`W}UkVcx6o3Cu51_=(Ij9=Gv(CUL~?EO?$WPNnfXNAxD+qpr!*W&qs zxoP+LQ{%jU=RIC+o=-m^`552J46mi!CYjrm`1nz(cH@hk`;_?eF@;O~*{N`eKbL#l zK7ao}`k{Zj45y3};t$p?yw3VxLG|wV+21}TK3%DBiBDH4T;kKm6)y1!bJOLnFY)Ob zg-d+G+;qA25}zBpFpw^-|_8xyT_}|+TaCr4*dmR zQTPhxUoFG&d}(2Rhr%ynzF*;6ncrE4Bfj<%hyUE=aW}qxP2u7{cPm`{=j#d=|M`Z( z#ecr3aPgme6fXYrErpB!+^cZ$pKmK%{AW<%;y?E(T>R&Lg^T|@pm6b@2Nf><^Un$w z|M`x`ZG63w?c*VjyY}&2g^PWBPvK%84=Y^kr47?`zQAIjKanKeyMP=zh@OL_V+7=i~aqF!o~icQ@GgQuN5x#_q@Wz{(j?eYk#+~ z{k;I5r;Jmn{r#5ehqJ%mflFgkt_toU*|5Lk==k>@x8E-Z=^XkC4wd0}zW$0J?Ds{F zyYcfSg^T_Er^3a4|DbTO-VO^Hx(}S`%U%5{6+W9}!2YWgej4*?kK6gB6~xiK8t^;`;#4}nGy=R) zD0Fq_mqvQ>D}(6#(kPF+^Gl-@F7r!cJZ|+*vHoMh^HKfWf4g=B_%Qmv!;|mof27A< z{l_U>^dIkWtAB>|KMH&p{qb+CVh=|9=Z^m|CGzq6{}m(~@pC*i!|$xFeEWTMBb@{L zIku#|e1F}=d}0~?ePRb`8%gbt^SHI&-*WqRD*O%RlRRE!*4B-!A-zfd@!*YA;Dq%x zPtp9rF~niN_?surcw>~i`r~(c`YR;pznAVW>=*U#_PAYtu#v70`<-3F%>uAgdJ9%cF3w`9 z-Cwl=(=={r3)7(yhLxMRe?rOQ+iD*9VRnaqxb)LF`x`# zZ`i&*q(z>YFk^<=IWTu>ZJ6zB2>LF?KFEccOfr>THjqwsr`pawr)2{#9^EErX=h)0 zYm|3k$c}MrOyi@2j^>d zu5gdYL^wnh3bZbn?)kdD9E}5q#AsE}i&ff%Rk-F(+A-~E;|0FamAP`KvD(?hJY!$v znPn?B4D`}k>QsN&ZrYI^rcEk~voSJezdr2fB7-KwGSP8qUu%evs$kR?ZVE?s=lGm3 zW0oc3(N%#gSn`#tqK`7O_QQa;Zl|YJ5NtLF^qWcKnPpmTdEz(EE?d;uc=M*8ov^#5 z?RS;t#Ot1EIP#vs*H-Tz+Ii>n1>dW*wJbw+qoi<{{RrZxEbZz^hcgdz=Kl`kT}cKX zqlJN}oif$*J1SAe2)udEf`&U1_kO$i(Y1rkpMP=TV-MfE@Z|@l4F33xnf1s1dDdV! z@$vebrfg}Lao)^DpLt^6;Qa?quWws5q5k))FB^RI#;x^jT?2y$#vZZg?P;HDxcKUd zhTR_=bKjq8_SLT*x2t}8{R@NhYOkxGcIfWG84pZf6xE?z8TuUBIs@G(B-G&@6A5M9 zE7_yG_wg$zcN6$`Zl1a$TDyu4&Q4P-SkZ#&k@M#C&*=}${~4ujPJABypHVpB#L={2 U;^QH%v%B$=>B`Mq)l2*T0fh9`^8f$< literal 0 HcmV?d00001 diff --git a/Assets/Main/LightingData.asset.meta b/Assets/Main/LightingData.asset.meta new file mode 100644 index 0000000..75cc485 --- /dev/null +++ b/Assets/Main/LightingData.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 38e65b272d6d7aa468b968dc218375f3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 112000000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Main/Lit.mat b/Assets/Main/Lit.mat new file mode 100644 index 0000000..8682391 --- /dev/null +++ b/Assets/Main/Lit.mat @@ -0,0 +1,154 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8081582795363580827 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 10 +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Lit + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2000 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ClearCoatMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _Cube: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicSpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoat: 0 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossinessSource: 0 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _ReflectionSource: 0 + - _Shininess: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecSource: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _UVSec: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 1, g: 1, b: 1, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 diff --git a/Assets/Main/Lit.mat.meta b/Assets/Main/Lit.mat.meta new file mode 100644 index 0000000..ce4a51c --- /dev/null +++ b/Assets/Main/Lit.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2f6c74585b8cf8e4d937f89ac4e94747 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Main/ReflectionProbe-0.exr b/Assets/Main/ReflectionProbe-0.exr new file mode 100644 index 0000000..b92ab79 --- /dev/null +++ b/Assets/Main/ReflectionProbe-0.exr @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa9262ea63957ab378f44f031702bb1ae3d2c1ea3c68d7d7e32afd6659a68be1 +size 216109 diff --git a/Assets/Main/ReflectionProbe-0.exr.meta b/Assets/Main/ReflectionProbe-0.exr.meta new file mode 100644 index 0000000..4438281 --- /dev/null +++ b/Assets/Main/ReflectionProbe-0.exr.meta @@ -0,0 +1,117 @@ +fileFormatVersion: 2 +guid: 19fde3f08bcb7fb40bff481b52835c30 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 13 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + flipGreenChannel: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + ignoreMipmapLimit: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 1 + seamlessCubemap: 1 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: 2 + aniso: 0 + mipBias: 0 + wrapU: 1 + wrapV: 1 + wrapW: 1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 2 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + swizzle: 50462976 + cookieLightType: 0 + platformSettings: + - serializedVersion: 4 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 100 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 4 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + ignorePlatformSupport: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + customData: + physicsShape: [] + bones: [] + spriteID: + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spriteCustomMetadata: + entries: [] + nameFileIdTable: {} + mipmapLimitGroupName: + pSDRemoveMatte: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Main/UnityMaterialBall.fbx b/Assets/Main/UnityMaterialBall.fbx new file mode 100644 index 0000000..e6e4007 --- /dev/null +++ b/Assets/Main/UnityMaterialBall.fbx @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6d1944a4845263c3d05ba78a4af94196c03f1e1165a2b14fb06df3d4cbdfd7f8 +size 1525376 diff --git a/Assets/Main/UnityMaterialBall.fbx.meta b/Assets/Main/UnityMaterialBall.fbx.meta new file mode 100644 index 0000000..89c4186 --- /dev/null +++ b/Assets/Main/UnityMaterialBall.fbx.meta @@ -0,0 +1,112 @@ +fileFormatVersion: 2 +guid: 222a53bfd672e6742a55f3f0809aa1fe +ModelImporter: + serializedVersion: 22102 + internalIDToNameTable: [] + externalObjects: + - first: + type: UnityEngine:Material + assembly: UnityEngine.CoreModule + name: 10 - Default + second: {fileID: 2100000, guid: e0f7961861aa5ae4a97805f16f8306b7, type: 2} + materials: + materialImportMode: 0 + materialName: 0 + materialSearch: 1 + materialLocation: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + removeConstantScaleCurves: 0 + motionNodeName: + rigImportErrors: + rigImportWarnings: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + importAnimatedCustomProperties: 0 + importConstraints: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + extraUserProperties: [] + clipAnimations: [] + isReadable: 0 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + useSRGBMaterialColor: 1 + sortHierarchyByName: 1 + importVisibility: 1 + importBlendShapes: 1 + importCameras: 1 + importLights: 1 + nodeNameCollisionStrategy: 0 + fileIdsGeneration: 2 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + keepQuads: 0 + weldVertices: 1 + bakeAxisConversion: 0 + preserveHierarchy: 0 + skinWeightsMode: 0 + maxBonesPerVertex: 4 + minBoneWeight: 0.001 + optimizeBones: 1 + meshOptimizationFlags: -1 + indexFormat: 0 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVMarginMethod: 1 + secondaryUVMinLightmapResolution: 40 + secondaryUVMinObjectScale: 1 + secondaryUVPackMargin: 4 + useFileScale: 1 + strictVertexDataChecks: 0 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + normalCalculationMode: 4 + legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0 + blendShapeNormalImportMode: 1 + normalSmoothingSource: 0 + referencedClips: [] + importAnimation: 1 + humanDescription: + serializedVersion: 3 + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + globalScale: 1 + rootMotionBoneName: + hasTranslationDoF: 0 + hasExtraRoot: 0 + skeletonHasParents: 1 + lastHumanDescriptionAvatarSource: {instanceID: 0} + autoGenerateAvatarMappingIfUnspecified: 1 + animationType: 2 + humanoidOversampling: 1 + avatarSetup: 0 + addHumanoidExtraRootOnlyWhenUsingAvatar: 1 + importBlendShapeDeformPercent: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Main/White.mat b/Assets/Main/White.mat new file mode 100644 index 0000000..fb2ecde --- /dev/null +++ b/Assets/Main/White.mat @@ -0,0 +1,136 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 8 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: White + m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} + m_Parent: {fileID: 0} + m_ModifiedSerializedProperties: 0 + m_ValidKeywords: [] + m_InvalidKeywords: [] + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: + RenderType: Opaque + disabledShaderPasses: + - MOTIONVECTORS + m_LockedProperties: + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BaseMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _SpecGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_Lightmaps: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_LightmapsInd: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - unity_ShadowMasks: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Ints: [] + m_Floats: + - _AddPrecomputedVelocity: 0 + - _AlphaClip: 0 + - _AlphaToMask: 0 + - _Blend: 0 + - _BlendModePreserveSpecular: 1 + - _BumpScale: 1 + - _ClearCoatMask: 0 + - _ClearCoatSmoothness: 0 + - _Cull: 2 + - _Cutoff: 0.5 + - _DetailAlbedoMapScale: 1 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _DstBlendAlpha: 0 + - _EnvironmentReflections: 1 + - _GlossMapScale: 0 + - _Glossiness: 0 + - _GlossyReflections: 0 + - _Metallic: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.005 + - _QueueOffset: 0 + - _ReceiveShadows: 1 + - _Smoothness: 0.5 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _SrcBlendAlpha: 1 + - _Surface: 0 + - _WorkflowMode: 1 + - _ZWrite: 1 + m_Colors: + - _BaseColor: {r: 1, g: 1, b: 1, a: 1} + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} + m_BuildTextureStacks: [] + m_AllowLocking: 1 +--- !u!114 &4431363231931934953 +MonoBehaviour: + m_ObjectHideFlags: 11 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 10 diff --git a/Assets/Main/White.mat.meta b/Assets/Main/White.mat.meta new file mode 100644 index 0000000..f10b7fa --- /dev/null +++ b/Assets/Main/White.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 90cb37d4746524b45a22b588b2fa0f8e +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes.meta b/Assets/Scenes.meta new file mode 100644 index 0000000..aeef973 --- /dev/null +++ b/Assets/Scenes.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 91c90b6f4ca65b946a1e24669c8c19e0 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scenes/SampleScene.unity b/Assets/Scenes/SampleScene.unity new file mode 100644 index 0000000..1c63aa8 --- /dev/null +++ b/Assets/Scenes/SampleScene.unity @@ -0,0 +1,432 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0} + m_LightingSettings: {fileID: 0} +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 3 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + buildHeightMesh: 0 + maxJobWorkers: 0 + preserveTilesOutsideBounds: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &330585543 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 330585546} + - component: {fileID: 330585545} + - component: {fileID: 330585544} + - component: {fileID: 330585547} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &330585544 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 +--- !u!20 &330585545 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_FocusDistance: 10 + m_FocalLength: 50 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!4 &330585546 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &330585547 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 330585543} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderShadows: 1 + m_RequiresDepthTextureOption: 2 + m_RequiresOpaqueTextureOption: 2 + m_CameraType: 0 + m_Cameras: [] + m_RendererIndex: -1 + m_VolumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + m_VolumeTrigger: {fileID: 0} + m_VolumeFrameworkUpdateModeOption: 2 + m_RenderPostProcessing: 1 + m_Antialiasing: 0 + m_AntialiasingQuality: 2 + m_StopNaN: 0 + m_Dithering: 0 + m_ClearDepth: 1 + m_AllowXRRendering: 1 + m_AllowHDROutput: 1 + m_UseScreenCoordOverride: 0 + m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0} + m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0} + m_RequiresDepthTexture: 0 + m_RequiresColorTexture: 0 + m_Version: 2 + m_TaaSettings: + quality: 3 + frameInfluence: 0.1 + jitterScale: 1 + mipBias: 0 + varianceClampScale: 0.9 + contrastAdaptiveSharpening: 0 +--- !u!1 &410087039 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 410087041} + - component: {fileID: 410087040} + - component: {fileID: 410087042} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &410087040 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + serializedVersion: 11 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 2 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 0 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 5000 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_UseViewFrustumForShadowCasterCull: 1 + m_ForceVisible: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &410087041 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + serializedVersion: 2 + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!114 &410087042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 410087039} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 3 + m_UsePipelineSettings: 1 + m_AdditionalLightsShadowResolutionTier: 2 + m_LightLayerMask: 1 + m_RenderingLayers: 1 + m_CustomShadowLayers: 0 + m_ShadowLayerMask: 1 + m_ShadowRenderingLayers: 1 + m_LightCookieSize: {x: 1, y: 1} + m_LightCookieOffset: {x: 0, y: 0} + m_SoftShadowQuality: 1 +--- !u!1 &832575517 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 832575519} + - component: {fileID: 832575518} + m_Layer: 0 + m_Name: Global Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &832575518 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IsGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2} +--- !u!4 &832575519 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 832575517} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1660057539 &9223372036854775807 +SceneRoots: + m_ObjectHideFlags: 0 + m_Roots: + - {fileID: 330585546} + - {fileID: 410087041} + - {fileID: 832575519} diff --git a/Assets/Scenes/SampleScene.unity.meta b/Assets/Scenes/SampleScene.unity.meta new file mode 100644 index 0000000..9531828 --- /dev/null +++ b/Assets/Scenes/SampleScene.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 99c9720ab356a0642a771bea13969a05 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings.meta b/Assets/Settings.meta new file mode 100644 index 0000000..39b94dd --- /dev/null +++ b/Assets/Settings.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 709f11a7f3c4041caa4ef136ea32d874 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/DefaultVolumeProfile.asset b/Assets/Settings/DefaultVolumeProfile.asset new file mode 100644 index 0000000..e0496fc --- /dev/null +++ b/Assets/Settings/DefaultVolumeProfile.asset @@ -0,0 +1,1086 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-9167874883656233139 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5485954d14dfb9a4c8ead8edb0ded5b1, type: 3} + m_Name: LiftGammaGain + m_EditorClassIdentifier: + active: 1 + lift: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gamma: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + gain: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} +--- !u!114 &-8270506406425502121 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 70afe9e12c7a7ed47911bb608a23a8ff, type: 3} + m_Name: SplitToning + m_EditorClassIdentifier: + active: 1 + shadows: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + highlights: + m_OverrideState: 1 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + balance: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-8104416584915340131 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: CopyPasteTestComponent2 + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEditor.Rendering.Tests:VolumeComponentCopyPasteTests/CopyPasteTestComponent2 + active: 1 + p1: + m_OverrideState: 1 + m_Value: 0 + p2: + m_OverrideState: 1 + m_Value: 0 + p21: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-7750755424749557576 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 60f3b30c03e6ba64d9a27dc9dba8f28d, type: 3} + m_Name: OutlineVolumeComponent + m_EditorClassIdentifier: + active: 1 + Enabled: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-7743500325797982168 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + quality: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + clamp: + m_OverrideState: 1 + m_Value: 0.05 +--- !u!114 &-7274224791359825572 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0fd9ee276a1023e439cf7a9c393195fa, type: 3} + m_Name: TestAnimationCurveVolumeComponent + m_EditorClassIdentifier: + active: 1 + testParameter: + m_OverrideState: 1 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0.5 + value: 10 + inSlope: 0 + outSlope: 10 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 15 + inSlope: 10 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &-6335409530604852063 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 66f335fb1ffd8684294ad653bf1c7564, type: 3} + m_Name: ColorAdjustments + m_EditorClassIdentifier: + active: 1 + postExposure: + m_OverrideState: 1 + m_Value: 0 + contrast: + m_OverrideState: 1 + m_Value: 0 + colorFilter: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + hueShift: + m_OverrideState: 1 + m_Value: 0 + saturation: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-6288072647309666549 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 29fa0085f50d5e54f8144f766051a691, type: 3} + m_Name: FilmGrain + m_EditorClassIdentifier: + active: 1 + type: + m_OverrideState: 1 + m_Value: 0 + intensity: + m_OverrideState: 1 + m_Value: 0 + response: + m_OverrideState: 1 + m_Value: 0.8 + texture: + m_OverrideState: 1 + m_Value: {fileID: 0} +--- !u!114 &-5520245016509672950 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} + m_Name: Tonemapping + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + neutralHDRRangeReductionMode: + m_OverrideState: 1 + m_Value: 2 + acesPreset: + m_OverrideState: 1 + m_Value: 3 + hueShiftAmount: + m_OverrideState: 1 + m_Value: 0 + detectPaperWhite: + m_OverrideState: 1 + m_Value: 0 + paperWhite: + m_OverrideState: 1 + m_Value: 300 + detectBrightnessLimits: + m_OverrideState: 1 + m_Value: 1 + minNits: + m_OverrideState: 1 + m_Value: 0.005 + maxNits: + m_OverrideState: 1 + m_Value: 1000 +--- !u!114 &-5360449096862653589 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: VolumeComponentSupportedEverywhere + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEngine.Rendering.Tests:VolumeComponentEditorSupportedOnTests/VolumeComponentSupportedEverywhere + active: 1 +--- !u!114 &-5139089513906902183 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 5a00a63fdd6bd2a45ab1f2d869305ffd, type: 3} + m_Name: OasisFogVolumeComponent + m_EditorClassIdentifier: + active: 1 + Density: + m_OverrideState: 1 + m_Value: 0 + StartDistance: + m_OverrideState: 1 + m_Value: 0 + HeightRange: + m_OverrideState: 1 + m_Value: {x: 0, y: 50} + Tint: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + SunScatteringIntensity: + m_OverrideState: 1 + m_Value: 2 +--- !u!114 &-4463884970436517307 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: fb60a22f311433c4c962b888d1393f88, type: 3} + m_Name: PaniniProjection + m_EditorClassIdentifier: + active: 1 + distance: + m_OverrideState: 1 + m_Value: 0 + cropToFit: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &-2878339391854589168 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 90fbf49926625114084d7e0c0cffe8d1, type: 3} + m_Name: HBAO + m_EditorClassIdentifier: HBAO.Universal.Runtime::HorizonBasedAmbientOcclusion.Universal.HBAO + active: 1 + preset: + m_OverrideState: 1 + m_Value: 2 + mode: + m_OverrideState: 1 + m_Value: 1 + renderingPath: + m_OverrideState: 1 + m_Value: 0 + quality: + m_OverrideState: 1 + m_Value: 2 + deinterleaving: + m_OverrideState: 1 + m_Value: 0 + resolution: + m_OverrideState: 1 + m_Value: 0 + noiseType: + m_OverrideState: 1 + m_Value: 0 + debugMode: + m_OverrideState: 1 + m_Value: 0 + radius: + m_OverrideState: 1 + m_Value: 0.8 + maxRadiusPixels: + m_OverrideState: 1 + m_Value: 128 + bias: + m_OverrideState: 1 + m_Value: 0.05 + intensity: + m_OverrideState: 1 + m_Value: 0 + useMultiBounce: + m_OverrideState: 1 + m_Value: 0 + multiBounceInfluence: + m_OverrideState: 1 + m_Value: 1 + directLightingStrength: + m_OverrideState: 1 + m_Value: 0.25 + offscreenSamplesContribution: + m_OverrideState: 1 + m_Value: 0 + maxDistance: + m_OverrideState: 1 + m_Value: 150 + distanceFalloff: + m_OverrideState: 1 + m_Value: 50 + perPixelNormals: + m_OverrideState: 1 + m_Value: 2 + baseColor: + m_OverrideState: 1 + m_Value: {r: 0, g: 0, b: 0, a: 1} + temporalFilterEnabled: + m_OverrideState: 1 + m_Value: 0 + varianceClipping: + m_OverrideState: 1 + m_Value: 1 + blurType: + m_OverrideState: 1 + m_Value: 2 + sharpness: + m_OverrideState: 1 + m_Value: 8 + colorBleedingEnabled: + m_OverrideState: 1 + m_Value: 0 + saturation: + m_OverrideState: 1 + m_Value: 1 + brightnessMask: + m_OverrideState: 1 + m_Value: 1 + brightnessMaskRange: + m_OverrideState: 1 + m_Value: {x: 0, y: 0.5} + min: 0 + max: 2 +--- !u!114 &-1410297666881709256 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6bd486065ce11414fa40e631affc4900, type: 3} + m_Name: ProbeVolumesOptions + m_EditorClassIdentifier: + active: 1 + normalBias: + m_OverrideState: 1 + m_Value: 0.33 + viewBias: + m_OverrideState: 1 + m_Value: 0 + scaleBiasWithMinProbeDistance: + m_OverrideState: 1 + m_Value: 0 + samplingNoise: + m_OverrideState: 1 + m_Value: 0.1 + animateSamplingNoise: + m_OverrideState: 1 + m_Value: 1 + leakReductionMode: + m_OverrideState: 1 + m_Value: 1 + minValidDotProductValue: + m_OverrideState: 1 + m_Value: 0.1 + occlusionOnlyReflectionNormalization: + m_OverrideState: 1 + m_Value: 1 + intensityMultiplier: + m_OverrideState: 1 + m_Value: 1 + skyOcclusionIntensityMultiplier: + m_OverrideState: 1 + m_Value: 1 + worldOffset: + m_OverrideState: 1 + m_Value: {x: 0, y: 0, z: 0} +--- !u!114 &-1216621516061285780 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + skipIterations: + m_OverrideState: 1 + m_Value: 1 + threshold: + m_OverrideState: 1 + m_Value: 0.9 + intensity: + m_OverrideState: 1 + m_Value: 0 + scatter: + m_OverrideState: 1 + m_Value: 0.7 + clamp: + m_OverrideState: 1 + m_Value: 65472 + tint: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + highQualityFiltering: + m_OverrideState: 1 + m_Value: 0 + filter: + m_OverrideState: 1 + m_Value: 0 + downscale: + m_OverrideState: 1 + m_Value: 0 + maxIterations: + m_OverrideState: 1 + m_Value: 6 + dirtTexture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dimension: 1 + dirtIntensity: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-1170528603972255243 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 221518ef91623a7438a71fef23660601, type: 3} + m_Name: WhiteBalance + m_EditorClassIdentifier: + active: 1 + temperature: + m_OverrideState: 1 + m_Value: 0 + tint: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &-581120513425526550 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: CopyPasteTestComponent3 + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEditor.Rendering.Tests:VolumeComponentCopyPasteTests/CopyPasteTestComponent3 + active: 1 + p1: + m_OverrideState: 1 + m_Value: 0 + p2: + m_OverrideState: 1 + m_Value: 0 + p31: + m_OverrideState: 1 + m_Value: {r: 0, g: 0, b: 0, a: 1} +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: DefaultVolumeProfile + m_EditorClassIdentifier: + components: + - {fileID: -9167874883656233139} + - {fileID: 1918650496244738858} + - {fileID: 853819529557874667} + - {fileID: 1052315754049611418} + - {fileID: -1170528603972255243} + - {fileID: -8270506406425502121} + - {fileID: -5520245016509672950} + - {fileID: 7173750748008157695} + - {fileID: 1666464333004379222} + - {fileID: 9001657382290151224} + - {fileID: -6335409530604852063} + - {fileID: -1216621516061285780} + - {fileID: 3959858460715838825} + - {fileID: -7743500325797982168} + - {fileID: 4644742534064026673} + - {fileID: -4463884970436517307} + - {fileID: -6288072647309666549} + - {fileID: 7518938298396184218} + - {fileID: -1410297666881709256} + - {fileID: -2878339391854589168} +--- !u!114 &853819529557874667 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 06437c1ff663d574d9447842ba0a72e4, type: 3} + m_Name: ScreenSpaceLensFlare + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 + tintColor: + m_OverrideState: 1 + m_Value: {r: 1, g: 1, b: 1, a: 1} + bloomMip: + m_OverrideState: 1 + m_Value: 1 + firstFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + secondaryFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + warpedFlareIntensity: + m_OverrideState: 1 + m_Value: 1 + warpedFlareScale: + m_OverrideState: 1 + m_Value: {x: 1, y: 1} + samples: + m_OverrideState: 1 + m_Value: 1 + sampleDimmer: + m_OverrideState: 1 + m_Value: 0.5 + vignetteEffect: + m_OverrideState: 1 + m_Value: 1 + startingPosition: + m_OverrideState: 1 + m_Value: 1.25 + scale: + m_OverrideState: 1 + m_Value: 1.5 + streaksIntensity: + m_OverrideState: 1 + m_Value: 0 + streaksLength: + m_OverrideState: 1 + m_Value: 0.5 + streaksOrientation: + m_OverrideState: 1 + m_Value: 0 + streaksThreshold: + m_OverrideState: 1 + m_Value: 0.25 + resolution: + m_OverrideState: 1 + m_Value: 4 + chromaticAbberationIntensity: + m_OverrideState: 1 + m_Value: 0.5 +--- !u!114 &1052315754049611418 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 558a8e2b6826cf840aae193990ba9f2e, type: 3} + m_Name: ShadowsMidtonesHighlights + m_EditorClassIdentifier: + active: 1 + shadows: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + midtones: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + highlights: + m_OverrideState: 1 + m_Value: {x: 1, y: 1, z: 1, w: 0} + shadowsStart: + m_OverrideState: 1 + m_Value: 0 + shadowsEnd: + m_OverrideState: 1 + m_Value: 0.3 + highlightsStart: + m_OverrideState: 1 + m_Value: 0.55 + highlightsEnd: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &1666464333004379222 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3eb4b772797da9440885e8bd939e9560, type: 3} + m_Name: ColorCurves + m_EditorClassIdentifier: + active: 1 + master: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + red: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + green: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + blue: + m_OverrideState: 1 + m_Value: + k__BackingField: 2 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + hueVsHue: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + hueVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + satVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + lumVsSat: + m_OverrideState: 1 + m_Value: + k__BackingField: 0 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + m_Curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 +--- !u!114 &1918650496244738858 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e021b4c809a781e468c2988c016ebbea, type: 3} + m_Name: ColorLookup + m_EditorClassIdentifier: + active: 1 + texture: + m_OverrideState: 1 + m_Value: {fileID: 0} + dimension: 1 + contribution: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &3959858460715838825 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3} + m_Name: DepthOfField + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 0 + gaussianStart: + m_OverrideState: 1 + m_Value: 10 + gaussianEnd: + m_OverrideState: 1 + m_Value: 30 + gaussianMaxRadius: + m_OverrideState: 1 + m_Value: 1 + highQualitySampling: + m_OverrideState: 1 + m_Value: 0 + focusDistance: + m_OverrideState: 1 + m_Value: 10 + aperture: + m_OverrideState: 1 + m_Value: 5.6 + focalLength: + m_OverrideState: 1 + m_Value: 50 + bladeCount: + m_OverrideState: 1 + m_Value: 5 + bladeCurvature: + m_OverrideState: 1 + m_Value: 1 + bladeRotation: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &4251301726029935498 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 74955a4b0b4243bc87231e8b59ed9140, type: 3} + m_Name: TestVolume + m_EditorClassIdentifier: + active: 1 + param: + m_OverrideState: 1 + m_Value: 123 +--- !u!114 &4644742534064026673 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3} + m_Name: ChromaticAberration + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &6940869943325143175 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: VolumeComponentSupportedOnAnySRP + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEngine.Rendering.Tests:VolumeComponentEditorSupportedOnTests/VolumeComponentSupportedOnAnySRP + active: 1 +--- !u!114 &7173750748008157695 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} + m_Name: Vignette + m_EditorClassIdentifier: + active: 1 + color: + m_OverrideState: 1 + m_Value: {r: 0, g: 0, b: 0, a: 1} + center: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + intensity: + m_OverrideState: 1 + m_Value: 0 + smoothness: + m_OverrideState: 1 + m_Value: 0.2 + rounded: + m_OverrideState: 1 + m_Value: 0 +--- !u!114 &7518938298396184218 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: c5e1dc532bcb41949b58bc4f2abfbb7e, type: 3} + m_Name: LensDistortion + m_EditorClassIdentifier: + active: 1 + intensity: + m_OverrideState: 1 + m_Value: 0 + xMultiplier: + m_OverrideState: 1 + m_Value: 1 + yMultiplier: + m_OverrideState: 1 + m_Value: 1 + center: + m_OverrideState: 1 + m_Value: {x: 0.5, y: 0.5} + scale: + m_OverrideState: 1 + m_Value: 1 +--- !u!114 &9001657382290151224 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: cdfbdbb87d3286943a057f7791b43141, type: 3} + m_Name: ChannelMixer + m_EditorClassIdentifier: + active: 1 + redOutRedIn: + m_OverrideState: 1 + m_Value: 100 + redOutGreenIn: + m_OverrideState: 1 + m_Value: 0 + redOutBlueIn: + m_OverrideState: 1 + m_Value: 0 + greenOutRedIn: + m_OverrideState: 1 + m_Value: 0 + greenOutGreenIn: + m_OverrideState: 1 + m_Value: 100 + greenOutBlueIn: + m_OverrideState: 1 + m_Value: 0 + blueOutRedIn: + m_OverrideState: 1 + m_Value: 0 + blueOutGreenIn: + m_OverrideState: 1 + m_Value: 0 + blueOutBlueIn: + m_OverrideState: 1 + m_Value: 100 +--- !u!114 &9122958982931076880 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 0} + m_Name: CopyPasteTestComponent1 + m_EditorClassIdentifier: Unity.RenderPipelines.Core.Editor.Tests:UnityEditor.Rendering.Tests:VolumeComponentCopyPasteTests/CopyPasteTestComponent1 + active: 1 + p1: + m_OverrideState: 1 + m_Value: 0 + p2: + m_OverrideState: 1 + m_Value: 0 diff --git a/Assets/Settings/DefaultVolumeProfile.asset.meta b/Assets/Settings/DefaultVolumeProfile.asset.meta new file mode 100644 index 0000000..53b314a --- /dev/null +++ b/Assets/Settings/DefaultVolumeProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ab09877e2e707104187f6f83e2f62510 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/Mobile_RPAsset.asset b/Assets/Settings/Mobile_RPAsset.asset new file mode 100644 index 0000000..fedee07 --- /dev/null +++ b/Assets/Settings/Mobile_RPAsset.asset @@ -0,0 +1,143 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: Mobile_RPAsset + m_EditorClassIdentifier: + k_AssetVersion: 13 + k_AssetPreviousVersion: 13 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: 65bc7dbf4170f435aa868c779acfb082, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 0 + m_RequireOpaqueTexture: 0 + m_OpaqueDownsampling: 0 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 0.8 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 1 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 256 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 1024 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 4 + m_AdditionalLightShadowsSupported: 0 + m_AdditionalLightsShadowmapResolution: 2048 + m_AdditionalLightsShadowResolutionTierLow: 256 + m_AdditionalLightsShadowResolutionTierMedium: 512 + m_AdditionalLightsShadowResolutionTierHigh: 1024 + m_ReflectionProbeBlending: 1 + m_ReflectionProbeBoxProjection: 1 + m_ReflectionProbeAtlas: 1 + m_ShadowDistance: 50 + m_ShadowCascadeCount: 1 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} + m_CascadeBorder: 0.2 + m_ShadowDepthBias: 1 + m_ShadowNormalBias: 1 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 0 + m_ConservativeEnclosingSphere: 1 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 2 + m_AdditionalLightsCookieResolution: 1024 + m_AdditionalLightsCookieFormat: 1 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 1 + m_SupportsLightLayers: 1 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 1 + m_SupportDataDrivenLensFlare: 1 + m_SupportScreenSpaceLensFlare: 1 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 4 + m_PrefilteringModeAdditionalLightShadows: 0 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 1 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 0 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 1 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 + m_PrefilterSSAODepthNormals: 1 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 0 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 0 + m_PrefilterSSAOBlueNoise: 1 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 0 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 1 + m_PrefilterSoftShadowsQualityLow: 1 + m_PrefilterSoftShadowsQualityMedium: 1 + m_PrefilterSoftShadowsQualityHigh: 1 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterScreenSpaceIrradiance: 0 + m_PrefilterNativeRenderPass: 1 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_PrefilterReflectionProbeRotation: 0 + m_PrefilterReflectionProbeBlending: 0 + m_PrefilterReflectionProbeBoxProjection: 0 + m_PrefilterReflectionProbeAtlas: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 0 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/Assets/Settings/Mobile_RPAsset.asset.meta b/Assets/Settings/Mobile_RPAsset.asset.meta new file mode 100644 index 0000000..3660d15 --- /dev/null +++ b/Assets/Settings/Mobile_RPAsset.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e6cbd92db86f4b18aec3ed561671858 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/Mobile_Renderer.asset b/Assets/Settings/Mobile_Renderer.asset new file mode 100644 index 0000000..ea246b2 --- /dev/null +++ b/Assets/Settings/Mobile_Renderer.asset @@ -0,0 +1,52 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: Mobile_Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, + type: 3} + hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} + probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, + type: 3} + probeVolumeResources: + probeVolumeDebugShader: {fileID: 0} + probeVolumeFragmentationDebugShader: {fileID: 0} + probeVolumeOffsetDebugShader: {fileID: 0} + probeVolumeSamplingDebugShader: {fileID: 0} + probeSamplingDebugMesh: {fileID: 0} + probeSamplingDebugTexture: {fileID: 0} + probeVolumeBlendStatesCS: {fileID: 0} + m_RendererFeatures: [] + m_RendererFeatureMap: + m_UseNativeRenderPass: 1 + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + m_AssetVersion: 2 + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 0 + stencilCompareFunction: 8 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 0 + m_RenderingMode: 0 + m_DepthPrimingMode: 0 + m_CopyDepthMode: 0 + m_AccurateGbufferNormals: 0 + m_IntermediateTextureMode: 0 diff --git a/Assets/Settings/Mobile_Renderer.asset.meta b/Assets/Settings/Mobile_Renderer.asset.meta new file mode 100644 index 0000000..a3588b1 --- /dev/null +++ b/Assets/Settings/Mobile_Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65bc7dbf4170f435aa868c779acfb082 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/PC_RPAsset.asset b/Assets/Settings/PC_RPAsset.asset new file mode 100644 index 0000000..6fe665b --- /dev/null +++ b/Assets/Settings/PC_RPAsset.asset @@ -0,0 +1,143 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} + m_Name: PC_RPAsset + m_EditorClassIdentifier: + k_AssetVersion: 13 + k_AssetPreviousVersion: 13 + m_RendererType: 1 + m_RendererData: {fileID: 0} + m_RendererDataList: + - {fileID: 11400000, guid: f288ae1f4751b564a96ac7587541f7a2, type: 2} + m_DefaultRendererIndex: 0 + m_RequireDepthTexture: 1 + m_RequireOpaqueTexture: 1 + m_OpaqueDownsampling: 1 + m_SupportsTerrainHoles: 1 + m_SupportsHDR: 1 + m_HDRColorBufferPrecision: 0 + m_MSAA: 1 + m_RenderScale: 1 + m_UpscalingFilter: 0 + m_FsrOverrideSharpness: 0 + m_FsrSharpness: 0.92 + m_EnableLODCrossFade: 1 + m_LODCrossFadeDitheringType: 1 + m_ShEvalMode: 0 + m_LightProbeSystem: 0 + m_ProbeVolumeMemoryBudget: 1024 + m_ProbeVolumeBlendingMemoryBudget: 256 + m_SupportProbeVolumeGPUStreaming: 0 + m_SupportProbeVolumeDiskStreaming: 0 + m_SupportProbeVolumeScenarios: 0 + m_SupportProbeVolumeScenarioBlending: 0 + m_ProbeVolumeSHBands: 1 + m_MainLightRenderingMode: 1 + m_MainLightShadowsSupported: 1 + m_MainLightShadowmapResolution: 2048 + m_AdditionalLightsRenderingMode: 1 + m_AdditionalLightsPerObjectLimit: 4 + m_AdditionalLightShadowsSupported: 1 + m_AdditionalLightsShadowmapResolution: 2048 + m_AdditionalLightsShadowResolutionTierLow: 256 + m_AdditionalLightsShadowResolutionTierMedium: 512 + m_AdditionalLightsShadowResolutionTierHigh: 1024 + m_ReflectionProbeBlending: 1 + m_ReflectionProbeBoxProjection: 1 + m_ReflectionProbeAtlas: 1 + m_ShadowDistance: 150 + m_ShadowCascadeCount: 4 + m_Cascade2Split: 0.25 + m_Cascade3Split: {x: 0.1, y: 0.3} + m_Cascade4Split: {x: 0.15212564, y: 0.3425988, z: 0.6751784} + m_CascadeBorder: 0.107758604 + m_ShadowDepthBias: 0.1 + m_ShadowNormalBias: 0.5 + m_AnyShadowsSupported: 1 + m_SoftShadowsSupported: 1 + m_ConservativeEnclosingSphere: 1 + m_NumIterationsEnclosingSphere: 64 + m_SoftShadowQuality: 3 + m_AdditionalLightsCookieResolution: 2048 + m_AdditionalLightsCookieFormat: 3 + m_UseSRPBatcher: 1 + m_SupportsDynamicBatching: 0 + m_MixedLightingSupported: 1 + m_SupportsLightCookies: 1 + m_SupportsLightLayers: 1 + m_DebugLevel: 0 + m_StoreActionsOptimization: 0 + m_UseAdaptivePerformance: 1 + m_ColorGradingMode: 0 + m_ColorGradingLutSize: 32 + m_AllowPostProcessAlphaOutput: 0 + m_UseFastSRGBLinearConversion: 0 + m_SupportDataDrivenLensFlare: 1 + m_SupportScreenSpaceLensFlare: 1 + m_GPUResidentDrawerMode: 0 + m_SmallMeshScreenPercentage: 0 + m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 + m_ShadowType: 1 + m_LocalShadowsSupported: 0 + m_LocalShadowsAtlasResolution: 256 + m_MaxPixelLights: 0 + m_ShadowAtlasResolution: 256 + m_VolumeFrameworkUpdateMode: 0 + m_VolumeProfile: {fileID: 11400000, guid: 10fc4df2da32a41aaa32d77bc913491c, type: 2} + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + m_PrefilteringModeMainLightShadows: 3 + m_PrefilteringModeAdditionalLight: 4 + m_PrefilteringModeAdditionalLightShadows: 0 + m_PrefilterXRKeywords: 1 + m_PrefilteringModeForwardPlus: 1 + m_PrefilteringModeDeferredRendering: 0 + m_PrefilteringModeScreenSpaceOcclusion: 1 + m_PrefilterDebugKeywords: 1 + m_PrefilterWriteRenderingLayers: 0 + m_PrefilterHDROutput: 1 + m_PrefilterAlphaOutput: 0 + m_PrefilterSSAODepthNormals: 0 + m_PrefilterSSAOSourceDepthLow: 1 + m_PrefilterSSAOSourceDepthMedium: 1 + m_PrefilterSSAOSourceDepthHigh: 1 + m_PrefilterSSAOInterleaved: 1 + m_PrefilterSSAOBlueNoise: 0 + m_PrefilterSSAOSampleCountLow: 1 + m_PrefilterSSAOSampleCountMedium: 0 + m_PrefilterSSAOSampleCountHigh: 1 + m_PrefilterDBufferMRT1: 1 + m_PrefilterDBufferMRT2: 1 + m_PrefilterDBufferMRT3: 0 + m_PrefilterSoftShadowsQualityLow: 0 + m_PrefilterSoftShadowsQualityMedium: 0 + m_PrefilterSoftShadowsQualityHigh: 0 + m_PrefilterSoftShadows: 0 + m_PrefilterScreenCoord: 1 + m_PrefilterScreenSpaceIrradiance: 0 + m_PrefilterNativeRenderPass: 1 + m_PrefilterUseLegacyLightmaps: 0 + m_PrefilterBicubicLightmapSampling: 0 + m_PrefilterReflectionProbeRotation: 0 + m_PrefilterReflectionProbeBlending: 0 + m_PrefilterReflectionProbeBoxProjection: 0 + m_PrefilterReflectionProbeAtlas: 0 + m_ShaderVariantLogLevel: 0 + m_ShadowCascades: 0 + m_Textures: + blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} diff --git a/Assets/Settings/PC_RPAsset.asset.meta b/Assets/Settings/PC_RPAsset.asset.meta new file mode 100644 index 0000000..e286b2f --- /dev/null +++ b/Assets/Settings/PC_RPAsset.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4b83569d67af61e458304325a23e5dfd +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/PC_Renderer.asset b/Assets/Settings/PC_Renderer.asset new file mode 100644 index 0000000..7193c2e --- /dev/null +++ b/Assets/Settings/PC_Renderer.asset @@ -0,0 +1,98 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} + m_Name: PC_Renderer + m_EditorClassIdentifier: + debugShaders: + debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} + hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} + probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3} + probeVolumeResources: + probeVolumeDebugShader: {fileID: 4800000, guid: e5c6678ed2aaa91408dd3df699057aae, type: 3} + probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 03cfc4915c15d504a9ed85ecc404e607, type: 3} + probeVolumeOffsetDebugShader: {fileID: 4800000, guid: 53a11f4ebaebf4049b3638ef78dc9664, type: 3} + probeVolumeSamplingDebugShader: {fileID: 4800000, guid: 8f96cd657dc40064aa21efcc7e50a2e7, type: 3} + probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 57d7c4c16e2765b47a4d2069b311bffe, type: 3} + probeSamplingDebugTexture: {fileID: 2800000, guid: 24ec0e140fb444a44ab96ee80844e18e, type: 3} + probeVolumeBlendStatesCS: {fileID: 7200000, guid: b9a23f869c4fd45f19c5ada54dd82176, type: 3} + m_RendererFeatures: + - {fileID: 7833122117494664109} + - {fileID: 8703437150354955497} + m_RendererFeatureMap: ad6b866f10d7b46ce95cd8b7f9d1c878 + m_UseNativeRenderPass: 1 + xrSystemData: {fileID: 0} + postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} + m_AssetVersion: 3 + m_PrepassLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_OpaqueLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_TransparentLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_DefaultStencilState: + overrideStencilState: 0 + stencilReference: 1 + stencilCompareFunction: 3 + passOperation: 2 + failOperation: 0 + zFailOperation: 0 + m_ShadowTransparentReceive: 1 + m_RenderingMode: 2 + m_DepthPrimingMode: 0 + m_CopyDepthMode: 0 + m_DepthAttachmentFormat: 0 + m_DepthTextureFormat: 0 + m_AccurateGbufferNormals: 0 + m_IntermediateTextureMode: 0 +--- !u!114 &7833122117494664109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f62c9c65cf3354c93be831c8bc075510, type: 3} + m_Name: ScreenSpaceAmbientOcclusion + m_EditorClassIdentifier: + m_Active: 0 + m_Settings: + AOMethod: 0 + Downsample: 0 + AfterOpaque: 0 + Source: 1 + NormalSamples: 1 + Intensity: 0.4 + DirectLightingStrength: 0.25 + Radius: 0.3 + Samples: 1 + BlurQuality: 0 + Falloff: 100 + SampleCount: -1 +--- !u!114 &8703437150354955497 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: f7c2c2c3c19808149a4d3454e1019255, type: 3} + m_Name: HBAORendererFeature + m_EditorClassIdentifier: HBAO.Universal.Runtime::HorizonBasedAmbientOcclusion.Universal.HBAORendererFeature + m_Active: 1 + shader: {fileID: 4800000, guid: bf610497676b34e4dbe0f14fe3fe311c, type: 3} diff --git a/Assets/Settings/PC_Renderer.asset.meta b/Assets/Settings/PC_Renderer.asset.meta new file mode 100644 index 0000000..ddae6a5 --- /dev/null +++ b/Assets/Settings/PC_Renderer.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f288ae1f4751b564a96ac7587541f7a2 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/SampleSceneProfile.asset b/Assets/Settings/SampleSceneProfile.asset new file mode 100644 index 0000000..c1b0f63 --- /dev/null +++ b/Assets/Settings/SampleSceneProfile.asset @@ -0,0 +1,159 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-7893295128165547882 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + skipIterations: + m_OverrideState: 1 + m_Value: 0 + threshold: + m_OverrideState: 1 + m_Value: 1 + intensity: + m_OverrideState: 1 + m_Value: 0.25 + scatter: + m_OverrideState: 1 + m_Value: 0.5 + clamp: + m_OverrideState: 0 + m_Value: 65472 + tint: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + highQualityFiltering: + m_OverrideState: 1 + m_Value: 1 + downscale: + m_OverrideState: 0 + m_Value: 0 + maxIterations: + m_OverrideState: 0 + m_Value: 6 + dirtTexture: + m_OverrideState: 0 + m_Value: {fileID: 0} + dimension: 1 + dirtIntensity: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &-3357603926938260329 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} + m_Name: Vignette + m_EditorClassIdentifier: + active: 1 + color: + m_OverrideState: 0 + m_Value: {r: 0, g: 0, b: 0, a: 1} + center: + m_OverrideState: 0 + m_Value: {x: 0.5, y: 0.5} + intensity: + m_OverrideState: 1 + m_Value: 0.2 + smoothness: + m_OverrideState: 0 + m_Value: 0.2 + rounded: + m_OverrideState: 0 + m_Value: 0 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: SampleSceneProfile + m_EditorClassIdentifier: + components: + - {fileID: 849379129802519247} + - {fileID: -7893295128165547882} + - {fileID: 7391319092446245454} + - {fileID: -3357603926938260329} +--- !u!114 &849379129802519247 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} + m_Name: Tonemapping + m_EditorClassIdentifier: + active: 1 + mode: + m_OverrideState: 1 + m_Value: 1 + neutralHDRRangeReductionMode: + m_OverrideState: 0 + m_Value: 2 + acesPreset: + m_OverrideState: 0 + m_Value: 3 + hueShiftAmount: + m_OverrideState: 0 + m_Value: 0 + detectPaperWhite: + m_OverrideState: 1 + m_Value: 0 + paperWhite: + m_OverrideState: 1 + m_Value: 234 + detectBrightnessLimits: + m_OverrideState: 1 + m_Value: 1 + minNits: + m_OverrideState: 1 + m_Value: 0.005 + maxNits: + m_OverrideState: 1 + m_Value: 647 +--- !u!114 &7391319092446245454 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} + m_Name: MotionBlur + m_EditorClassIdentifier: + active: 0 + mode: + m_OverrideState: 0 + m_Value: 0 + quality: + m_OverrideState: 1 + m_Value: 2 + intensity: + m_OverrideState: 1 + m_Value: 0.6 + clamp: + m_OverrideState: 0 + m_Value: 0.05 diff --git a/Assets/Settings/SampleSceneProfile.asset.meta b/Assets/Settings/SampleSceneProfile.asset.meta new file mode 100644 index 0000000..b82270c --- /dev/null +++ b/Assets/Settings/SampleSceneProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 10fc4df2da32a41aaa32d77bc913491c +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset new file mode 100644 index 0000000..b0a9fef --- /dev/null +++ b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset @@ -0,0 +1,433 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2ec995e51a6e251468d2a3fd8a686257, type: 3} + m_Name: UniversalRenderPipelineGlobalSettings + m_EditorClassIdentifier: + m_ShaderStrippingSetting: + m_Version: 0 + m_ExportShaderVariants: 1 + m_ShaderVariantLogLevel: 0 + m_StripRuntimeDebugShaders: 1 + m_URPShaderStrippingSetting: + m_Version: 0 + m_StripUnusedPostProcessingVariants: 1 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + m_ShaderVariantLogLevel: 0 + m_ExportShaderVariants: 1 + m_StripDebugVariants: 1 + m_StripUnusedPostProcessingVariants: 1 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + supportRuntimeDebugDisplay: 0 + m_EnableRenderGraph: 0 + m_Settings: + m_SettingsList: + m_List: + - rid: 6852985685364965376 + - rid: 6852985685364965377 + - rid: 6852985685364965378 + - rid: 6852985685364965379 + - rid: 6852985685364965380 + - rid: 6852985685364965381 + - rid: 6852985685364965382 + - rid: 6852985685364965383 + - rid: 6852985685364965384 + - rid: 6852985685364965385 + - rid: 6852985685364965386 + - rid: 6852985685364965387 + - rid: 6852985685364965388 + - rid: 6852985685364965389 + - rid: 6852985685364965390 + - rid: 6852985685364965391 + - rid: 6852985685364965392 + - rid: 6852985685364965393 + - rid: 6852985685364965394 + - rid: 8712630790384254976 + - rid: 7481008997645680640 + - rid: 7481008997645680641 + - rid: 7481008997645680642 + - rid: 7481008997645680643 + - rid: 7481008997645680644 + - rid: 7481008997645680645 + - rid: 7481008997645680646 + - rid: 7481008997645680647 + - rid: 7481008997645680648 + - rid: 7481008997645680649 + - rid: 7481008997645680650 + - rid: 7481008997645680651 + - rid: 7481008997645680652 + - rid: 7481008997645680653 + m_RuntimeSettings: + m_List: [] + m_AssetVersion: 10 + m_ObsoleteDefaultVolumeProfile: {fileID: 0} + m_RenderingLayerNames: + - Light Layer default + - Light Layer 1 + - Light Layer 2 + - Light Layer 3 + - Light Layer 4 + - Light Layer 5 + - Light Layer 6 + - Light Layer 7 + m_ValidRenderingLayers: 0 + lightLayerName0: Light Layer default + lightLayerName1: Light Layer 1 + lightLayerName2: Light Layer 2 + lightLayerName3: Light Layer 3 + lightLayerName4: Light Layer 4 + lightLayerName5: Light Layer 5 + lightLayerName6: Light Layer 6 + lightLayerName7: Light Layer 7 + apvScenesData: + obsoleteSceneBounds: + m_Keys: [] + m_Values: [] + obsoleteHasProbeVolumes: + m_Keys: [] + m_Values: + references: + version: 2 + RefIds: + - rid: 6852985685364965376 + type: {class: URPShaderStrippingSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_StripUnusedPostProcessingVariants: 1 + m_StripUnusedVariants: 1 + m_StripScreenCoordOverrideVariants: 1 + - rid: 6852985685364965377 + type: {class: UniversalRenderPipelineEditorShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_AutodeskInteractive: {fileID: 4800000, guid: 0e9d5a909a1f7e84882a534d0d11e49f, type: 3} + m_AutodeskInteractiveTransparent: {fileID: 4800000, guid: 5c81372d981403744adbdda4433c9c11, type: 3} + m_AutodeskInteractiveMasked: {fileID: 4800000, guid: 80aa867ac363ac043847b06ad71604cd, type: 3} + m_DefaultSpeedTree7Shader: {fileID: 4800000, guid: 0f4122b9a743b744abe2fb6a0a88868b, type: 3} + m_DefaultSpeedTree8Shader: {fileID: -6465566751694194690, guid: 9920c1f1781549a46ba081a2a15a16ec, type: 3} + m_DefaultSpeedTree9Shader: {fileID: -6465566751694194690, guid: cbd3e1cc4ae141c42a30e33b4d666a61, type: 3} + - rid: 6852985685364965378 + type: {class: UniversalRendererResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + m_CameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, type: 3} + m_StencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} + m_ClusterDeferred: {fileID: 4800000, guid: 222cce62363a44a380c36bf03b392608, type: 3} + m_StencilDitherMaskSeedPS: {fileID: 4800000, guid: 8c3ee818f2efa514c889881ccb2e95a2, type: 3} + m_DBufferClear: {fileID: 4800000, guid: f056d8bd2a1c7e44e9729144b4c70395, type: 3} + - rid: 6852985685364965379 + type: {class: UniversalRenderPipelineDebugShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DebugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} + m_HdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} + m_ProbeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3} + - rid: 6852985685364965380 + type: {class: UniversalRenderPipelineRuntimeShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_FallbackErrorShader: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} + m_BlitHDROverlay: {fileID: 4800000, guid: a89bee29cffa951418fc1e2da94d1959, type: 3} + m_CoreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} + m_CoreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, type: 3} + m_SamplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} + m_TerrainDetailLit: {fileID: 0} + m_TerrainDetailGrassBillboard: {fileID: 0} + m_TerrainDetailGrass: {fileID: 0} + - rid: 6852985685364965381 + type: {class: UniversalRenderPipelineRuntimeTextures, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 1 + m_BlueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} + m_BayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} + m_DebugFontTex: {fileID: 2800000, guid: 26a413214480ef144b2915d6ff4d0beb, type: 3} + - rid: 6852985685364965382 + type: {class: Renderer2DResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_LightShader: {fileID: 4800000, guid: 3f6c848ca3d7bca4bbe846546ac701a1, type: 3} + m_ProjectedShadowShader: {fileID: 4800000, guid: ce09d4a80b88c5a4eb9768fab4f1ee00, type: 3} + m_SpriteShadowShader: {fileID: 4800000, guid: 44fc62292b65ab04eabcf310e799ccf6, type: 3} + m_SpriteUnshadowShader: {fileID: 4800000, guid: de02b375720b5c445afe83cd483bedf3, type: 3} + m_GeometryShadowShader: {fileID: 4800000, guid: 19349a0f9a7ed4c48a27445bcf92e5e1, type: 3} + m_GeometryUnshadowShader: {fileID: 4800000, guid: 77774d9009bb81447b048c907d4c6273, type: 3} + m_CopyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} + m_DefaultLitMaterial: {fileID: 2100000, guid: a97c105638bdf8b4a8650670310a4cd3, type: 2} + m_DefaultUnlitMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + m_DefaultMaskMaterial: {fileID: 2100000, guid: 15d0c3709176029428a0da2f8cecf0b5, type: 2} + m_DefaultMesh2DLitMaterial: {fileID: 2100000, guid: 9452ae1262a74094f8a68013fbcd1834, type: 2} + - rid: 6852985685364965383 + type: {class: UniversalRenderPipelineEditorMaterials, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DefaultMaterial: {fileID: 2100000, guid: 31321ba15b8f8eb4c954353edc038b1d, type: 2} + m_DefaultParticleMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2} + m_DefaultLineMaterial: {fileID: 2100000, guid: e823cd5b5d27c0f4b8256e7c12ee3e6d, type: 2} + m_DefaultTerrainMaterial: {fileID: 2100000, guid: 594ea882c5a793440b60ff72d896021e, type: 2} + m_DefaultDecalMaterial: {fileID: 2100000, guid: 31d0dcc6f2dd4e4408d18036a2c93862, type: 2} + m_DefaultSpriteMaterial: {fileID: 2100000, guid: 9dfc825aed78fcd4ba02077103263b40, type: 2} + - rid: 6852985685364965384 + type: {class: URPDefaultVolumeProfileSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_VolumeProfile: {fileID: 11400000, guid: ab09877e2e707104187f6f83e2f62510, type: 2} + - rid: 6852985685364965385 + type: {class: RenderGraphSettings, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_EnableRenderCompatibilityMode: 0 + - rid: 6852985685364965386 + type: {class: GPUResidentDrawerResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.GPUDriven.Runtime} + data: + m_Version: 0 + m_InstanceDataBufferCopyKernels: {fileID: 7200000, guid: f984aeb540ded8b4fbb8a2047ab5b2e2, type: 3} + m_InstanceDataBufferUploadKernels: {fileID: 7200000, guid: 53864816eb00f2343b60e1a2c5a262ef, type: 3} + m_TransformUpdaterKernels: {fileID: 7200000, guid: 2a567b9b2733f8d47a700c3c85bed75b, type: 3} + m_WindDataUpdaterKernels: {fileID: 7200000, guid: fde76746e4fd0ed418c224f6b4084114, type: 3} + m_OccluderDepthPyramidKernels: {fileID: 7200000, guid: 08b2b5fb307b0d249860612774a987da, type: 3} + m_InstanceOcclusionCullingKernels: {fileID: 7200000, guid: f6d223acabc2f974795a5a7864b50e6c, type: 3} + m_OcclusionCullingDebugKernels: {fileID: 7200000, guid: b23e766bcf50ca4438ef186b174557df, type: 3} + m_DebugOcclusionTestPS: {fileID: 4800000, guid: d3f0849180c2d0944bc71060693df100, type: 3} + m_DebugOccluderPS: {fileID: 4800000, guid: b3c92426a88625841ab15ca6a7917248, type: 3} + - rid: 6852985685364965387 + type: {class: STP/RuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_setupCS: {fileID: 7200000, guid: 33be2e9a5506b2843bdb2bdff9cad5e1, type: 3} + m_preTaaCS: {fileID: 7200000, guid: a679dba8ec4d9ce45884a270b0e22dda, type: 3} + m_taaCS: {fileID: 7200000, guid: 3923900e2b41b5e47bc25bfdcbcdc9e6, type: 3} + - rid: 6852985685364965388 + type: {class: ProbeVolumeBakingResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + dilationShader: {fileID: 7200000, guid: 6bb382f7de370af41b775f54182e491d, type: 3} + subdivideSceneCS: {fileID: 7200000, guid: bb86f1f0af829fd45b2ebddda1245c22, type: 3} + voxelizeSceneShader: {fileID: 4800000, guid: c8b6a681c7b4e2e4785ffab093907f9e, type: 3} + traceVirtualOffsetCS: {fileID: -6772857160820960102, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3} + traceVirtualOffsetRT: {fileID: -5126288278712620388, guid: ff2cbab5da58bf04d82c5f34037ed123, type: 3} + skyOcclusionCS: {fileID: -6772857160820960102, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3} + skyOcclusionRT: {fileID: -5126288278712620388, guid: 5a2a534753fbdb44e96c3c78b5a6999d, type: 3} + renderingLayerCS: {fileID: -6772857160820960102, guid: 94a070d33e408384bafc1dea4a565df9, type: 3} + renderingLayerRT: {fileID: -5126288278712620388, guid: 94a070d33e408384bafc1dea4a565df9, type: 3} + - rid: 6852985685364965389 + type: {class: ProbeVolumeGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + m_ProbeVolumeDisableStreamingAssets: 0 + - rid: 6852985685364965390 + type: {class: ProbeVolumeDebugResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + probeVolumeDebugShader: {fileID: 4800000, guid: 3b21275fd12d65f49babb5286f040f2d, type: 3} + probeVolumeFragmentationDebugShader: {fileID: 4800000, guid: 3a80877c579b9144ebdcc6d923bca303, type: 3} + probeVolumeSamplingDebugShader: {fileID: 4800000, guid: bf54e6528c79a224e96346799064c393, type: 3} + probeVolumeOffsetDebugShader: {fileID: 4800000, guid: db8bd7436dc2c5f4c92655307d198381, type: 3} + probeSamplingDebugMesh: {fileID: -3555484719484374845, guid: 20be25aac4e22ee49a7db76fb3df6de2, type: 3} + numbersDisplayTex: {fileID: 2800000, guid: 73fe53b428c5b3440b7e87ee830b608a, type: 3} + - rid: 6852985685364965391 + type: {class: IncludeAdditionalRPAssets, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_version: 0 + m_IncludeReferencedInScenes: 0 + m_IncludeAssetsByLabel: 0 + m_LabelToInclude: + - rid: 6852985685364965392 + type: {class: ShaderStrippingSetting, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 0 + m_ExportShaderVariants: 1 + m_ShaderVariantLogLevel: 0 + m_StripRuntimeDebugShaders: 1 + - rid: 6852985685364965393 + type: {class: ProbeVolumeRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + probeVolumeBlendStatesCS: {fileID: 7200000, guid: a3f7b8c99de28a94684cb1daebeccf5d, type: 3} + probeVolumeUploadDataCS: {fileID: 7200000, guid: 0951de5992461754fa73650732c4954c, type: 3} + probeVolumeUploadDataL2CS: {fileID: 7200000, guid: 6196f34ed825db14b81fb3eb0ea8d931, type: 3} + - rid: 6852985685364965394 + type: {class: RenderGraphGlobalSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_version: 0 + m_EnableCompilationCaching: 1 + m_EnableValidityChecks: 1 + - rid: 7481008997645680640 + type: {class: RayTracingRenderPipelineResources, ns: UnityEngine.Rendering.UnifiedRayTracing, asm: Unity.UnifiedRayTracing.Runtime} + data: + m_Version: 1 + m_GeometryPoolKernels: {fileID: 7200000, guid: 98e3d58cae7210c4786f67f504c9e899, type: 3} + m_CopyBuffer: {fileID: 7200000, guid: 1b95b5dcf48d1914c9e1e7405c7660e3, type: 3} + m_CopyPositions: {fileID: 7200000, guid: 1ad53a96b58d3c3488dde4f14db1aaeb, type: 3} + m_BitHistogram: {fileID: 7200000, guid: 8670f7ce4b60cef43bed36148aa1b0a2, type: 3} + m_BlockReducePart: {fileID: 7200000, guid: 4e034cc8ea2635c4e9f063e5ddc7ea7a, type: 3} + m_BlockScan: {fileID: 7200000, guid: 4d6d5de35fa45ef4a92119397a045cc9, type: 3} + m_BuildHlbvh: {fileID: 7200000, guid: 2d70cd6be91bd7843a39a54b51c15b13, type: 3} + m_RestructureBvh: {fileID: 7200000, guid: 56641cb88dcb31a4398a4997ef7a7a8c, type: 3} + m_Scatter: {fileID: 7200000, guid: a2eaeefdac4637a44b734e85b7be9186, type: 3} + - rid: 7481008997645680641 + type: {class: UniversalRenderPipelineEditorAssets, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_DefaultSettingsVolumeProfile: {fileID: 11400000, guid: eda47df5b85f4f249abf7abd73db2cb2, type: 2} + - rid: 7481008997645680642 + type: {class: UniversalRenderPipelineRuntimeTerrainShaders, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_TerrainDetailLit: {fileID: 4800000, guid: f6783ab646d374f94b199774402a5144, type: 3} + m_TerrainDetailGrassBillboard: {fileID: 4800000, guid: 29868e73b638e48ca99a19ea58c48d90, type: 3} + m_TerrainDetailGrass: {fileID: 4800000, guid: e507fdfead5ca47e8b9a768b51c291a1, type: 3} + - rid: 7481008997645680643 + type: {class: URPTerrainShaderSetting, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_IncludeTerrainShaders: 1 + - rid: 7481008997645680644 + type: {class: PostProcessData/ShaderResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + stopNanPS: {fileID: 4800000, guid: 1121bb4e615ca3c48b214e79e841e823, type: 3} + subpixelMorphologicalAntialiasingPS: {fileID: 4800000, guid: 63eaba0ebfb82cc43bde059b4a8c65f6, type: 3} + gaussianDepthOfFieldPS: {fileID: 4800000, guid: 5e7134d6e63e0bc47a1dd2669cedb379, type: 3} + bokehDepthOfFieldPS: {fileID: 4800000, guid: 2aed67ad60045d54ba3a00c91e2d2631, type: 3} + cameraMotionBlurPS: {fileID: 4800000, guid: 1edcd131364091c46a17cbff0b1de97a, type: 3} + paniniProjectionPS: {fileID: 4800000, guid: a15b78cf8ca26ca4fb2090293153c62c, type: 3} + lutBuilderLdrPS: {fileID: 4800000, guid: 65df88701913c224d95fc554db28381a, type: 3} + lutBuilderHdrPS: {fileID: 4800000, guid: ec9fec698a3456d4fb18cf8bacb7a2bc, type: 3} + bloomPS: {fileID: 4800000, guid: 5f1864addb451f54bae8c86d230f736e, type: 3} + temporalAntialiasingPS: {fileID: 4800000, guid: 9c70c1a35ff15f340b38ea84842358bf, type: 3} + LensFlareDataDrivenPS: {fileID: 4800000, guid: 6cda457ac28612740adb23da5d39ea92, type: 3} + LensFlareScreenSpacePS: {fileID: 4800000, guid: 701880fecb344ea4c9cd0db3407ab287, type: 3} + scalingSetupPS: {fileID: 4800000, guid: e8ee25143a34b8c4388709ea947055d1, type: 3} + easuPS: {fileID: 4800000, guid: 562b7ae4f629f144aa97780546fce7c6, type: 3} + uberPostPS: {fileID: 4800000, guid: e7857e9d0c934dc4f83f270f8447b006, type: 3} + finalPostPassPS: {fileID: 4800000, guid: c49e63ed1bbcb334780a3bd19dfed403, type: 3} + m_ShaderResourcesVersion: 0 + - rid: 7481008997645680645 + type: {class: URPReflectionProbeSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Universal.Runtime} + data: + version: 1 + useReflectionProbeRotation: 0 + - rid: 7481008997645680646 + type: {class: ScreenSpaceAmbientOcclusionDynamicResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_BlueNoise256Textures: + - {fileID: 2800000, guid: 36f118343fc974119bee3d09e2111500, type: 3} + - {fileID: 2800000, guid: 4b7b083e6b6734e8bb2838b0b50a0bc8, type: 3} + - {fileID: 2800000, guid: c06cc21c692f94f5fb5206247191eeee, type: 3} + - {fileID: 2800000, guid: cb76dd40fa7654f9587f6a344f125c9a, type: 3} + - {fileID: 2800000, guid: e32226222ff144b24bf3a5a451de54bc, type: 3} + - {fileID: 2800000, guid: 3302065f671a8450b82c9ddf07426f3a, type: 3} + - {fileID: 2800000, guid: 56a77a3e8d64f47b6afe9e3c95cb57d5, type: 3} + m_Version: 0 + - rid: 7481008997645680647 + type: {class: OnTilePostProcessResource, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Version: 0 + m_UberPostShader: {fileID: 4800000, guid: fe4f13c1004a07d4ea1e30bfd0326d9e, type: 3} + - rid: 7481008997645680648 + type: {class: UniversalRenderPipelineRuntimeXRResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_xrOcclusionMeshPS: {fileID: 4800000, guid: 4431b1f1f743fbf4eb310a967890cbea, type: 3} + m_xrMirrorViewPS: {fileID: 4800000, guid: d5a307c014552314b9f560906d708772, type: 3} + m_xrMotionVector: {fileID: 4800000, guid: f89aac1e4f84468418fe30e611dff395, type: 3} + - rid: 7481008997645680649 + type: {class: ScreenSpaceAmbientOcclusionPersistentResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} + m_Version: 0 + - rid: 7481008997645680650 + type: {class: PostProcessData/TextureResources, ns: UnityEngine.Rendering.Universal, asm: Unity.RenderPipelines.Universal.Runtime} + data: + blueNoise16LTex: + - {fileID: 2800000, guid: 81200413a40918d4d8702e94db29911c, type: 3} + - {fileID: 2800000, guid: d50c5e07c9911a74982bddf7f3075e7b, type: 3} + - {fileID: 2800000, guid: 1134690bf9216164dbc75050e35b7900, type: 3} + - {fileID: 2800000, guid: 7ce2118f74614a94aa8a0cdf2e6062c3, type: 3} + - {fileID: 2800000, guid: 2ca97df9d1801e84a8a8f2c53cb744f0, type: 3} + - {fileID: 2800000, guid: e63eef8f54aa9dc4da9a5ac094b503b5, type: 3} + - {fileID: 2800000, guid: 39451254daebd6d40b52899c1f1c0c1b, type: 3} + - {fileID: 2800000, guid: c94ad916058dff743b0f1c969ddbe660, type: 3} + - {fileID: 2800000, guid: ed5ea7ce59ca8ec4f9f14bf470a30f35, type: 3} + - {fileID: 2800000, guid: 071e954febf155243a6c81e48f452644, type: 3} + - {fileID: 2800000, guid: 96aaab9cc247d0b4c98132159688c1af, type: 3} + - {fileID: 2800000, guid: fc3fa8f108657e14486697c9a84ccfc5, type: 3} + - {fileID: 2800000, guid: bfed3e498947fcb4890b7f40f54d85b9, type: 3} + - {fileID: 2800000, guid: d512512f4af60a442ab3458489412954, type: 3} + - {fileID: 2800000, guid: 47a45908f6db0cb44a0d5e961143afec, type: 3} + - {fileID: 2800000, guid: 4dcc0502f8586f941b5c4a66717205e8, type: 3} + - {fileID: 2800000, guid: 9d92991794bb5864c8085468b97aa067, type: 3} + - {fileID: 2800000, guid: 14381521ff11cb74abe3fe65401c23be, type: 3} + - {fileID: 2800000, guid: d36f0fe53425e08499a2333cf423634c, type: 3} + - {fileID: 2800000, guid: d4044ea2490d63b43aa1765f8efbf8a9, type: 3} + - {fileID: 2800000, guid: c9bd74624d8070f429e3f46d161f9204, type: 3} + - {fileID: 2800000, guid: d5c9b274310e5524ebe32a4e4da3df1f, type: 3} + - {fileID: 2800000, guid: f69770e54f2823f43badf77916acad83, type: 3} + - {fileID: 2800000, guid: 10b6c6d22e73dea46a8ab36b6eebd629, type: 3} + - {fileID: 2800000, guid: a2ec5cbf5a9b64345ad3fab0912ddf7b, type: 3} + - {fileID: 2800000, guid: 1c3c6d69a645b804fa232004b96b7ad3, type: 3} + - {fileID: 2800000, guid: d18a24d7b4ed50f4387993566d9d3ae2, type: 3} + - {fileID: 2800000, guid: c989e1ed85cf7154caa922fec53e6af6, type: 3} + - {fileID: 2800000, guid: ff47e5a0f105eb34883b973e51f4db62, type: 3} + - {fileID: 2800000, guid: fa042edbfc40fbd4bad0ab9d505b1223, type: 3} + - {fileID: 2800000, guid: 896d9004736809c4fb5973b7c12eb8b9, type: 3} + - {fileID: 2800000, guid: 179f794063d2a66478e6e726f84a65bc, type: 3} + filmGrainTex: + - {fileID: 2800000, guid: 654c582f7f8a5a14dbd7d119cbde215d, type: 3} + - {fileID: 2800000, guid: dd77ffd079630404e879388999033049, type: 3} + - {fileID: 2800000, guid: 1097e90e1306e26439701489f391a6c0, type: 3} + - {fileID: 2800000, guid: f0b67500f7fad3b4c9f2b13e8f41ba6e, type: 3} + - {fileID: 2800000, guid: 9930fb4528622b34687b00bbe6883de7, type: 3} + - {fileID: 2800000, guid: bd9e8c758250ef449a4b4bfaad7a2133, type: 3} + - {fileID: 2800000, guid: 510a2f57334933e4a8dbabe4c30204e4, type: 3} + - {fileID: 2800000, guid: b4db8180660810945bf8d55ab44352ad, type: 3} + - {fileID: 2800000, guid: fd2fd78b392986e42a12df2177d3b89c, type: 3} + - {fileID: 2800000, guid: 5cdee82a77d13994f83b8fdabed7c301, type: 3} + smaaAreaTex: {fileID: 2800000, guid: d1f1048909d55cd4fa1126ab998f617e, type: 3} + smaaSearchTex: {fileID: 2800000, guid: 51eee22c2a633ef4aada830eed57c3fd, type: 3} + m_TexturesResourcesVersion: 0 + - rid: 7481008997645680651 + type: {class: VrsRenderPipelineRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_TextureComputeShader: {fileID: 7200000, guid: cacb30de6c40c7444bbc78cb0a81fd2a, type: 3} + m_VisualizationShader: {fileID: 4800000, guid: 620b55b8040a88d468e94abe55bed5ba, type: 3} + m_VisualizationLookupTable: + m_Data: + - {r: 0.785, g: 0.23, b: 0.2, a: 1} + - {r: 1, g: 0.8, b: 0.8, a: 1} + - {r: 0.4, g: 0.2, b: 0.2, a: 1} + - {r: 0.51, g: 0.8, b: 0.6, a: 1} + - {r: 0.6, g: 0.8, b: 1, a: 1} + - {r: 0.2, g: 0.4, b: 0.6, a: 1} + - {r: 0.8, g: 1, b: 0.8, a: 1} + - {r: 0.2, g: 0.4, b: 0.2, a: 1} + - {r: 0.125, g: 0.22, b: 0.36, a: 1} + m_ConversionLookupTable: + m_Data: + - {r: 0.785, g: 0.23, b: 0.2, a: 1} + - {r: 1, g: 0.8, b: 0.8, a: 1} + - {r: 0.4, g: 0.2, b: 0.2, a: 1} + - {r: 0.51, g: 0.8, b: 0.6, a: 1} + - {r: 0.6, g: 0.8, b: 1, a: 1} + - {r: 0.2, g: 0.4, b: 0.6, a: 1} + - {r: 0.8, g: 1, b: 0.8, a: 1} + - {r: 0.2, g: 0.4, b: 0.2, a: 1} + - {r: 0.125, g: 0.22, b: 0.36, a: 1} + - rid: 7481008997645680652 + type: {class: RenderingDebuggerRuntimeResources, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_version: 0 + - rid: 7481008997645680653 + type: {class: LightmapSamplingSettings, ns: UnityEngine.Rendering, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 1 + m_UseBicubicLightmapSampling: 0 + - rid: 8712630790384254976 + type: {class: RenderGraphUtilsResources, ns: UnityEngine.Rendering.RenderGraphModule.Util, asm: Unity.RenderPipelines.Core.Runtime} + data: + m_Version: 0 + m_CoreCopyPS: {fileID: 4800000, guid: 12dc59547ea167a4ab435097dd0f9add, type: 3} diff --git a/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta new file mode 100644 index 0000000..81b84f2 --- /dev/null +++ b/Assets/Settings/UniversalRenderPipelineGlobalSettings.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 18dc0cd2c080841dea60987a38ce93fa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/manifest.json b/Packages/manifest.json new file mode 100644 index 0000000..070db00 --- /dev/null +++ b/Packages/manifest.json @@ -0,0 +1,49 @@ +{ + "dependencies": { + "com.unity.ai.navigation": "2.0.11", + "com.unity.collab-proxy": "2.11.4", + "com.unity.ide.rider": "3.0.39", + "com.unity.ide.visualstudio": "2.0.26", + "com.unity.inputsystem": "1.19.0", + "com.unity.multiplayer.center": "1.0.1", + "com.unity.render-pipelines.universal": "17.3.0", + "com.unity.test-framework": "1.6.0", + "com.unity.timeline": "1.8.11", + "com.unity.ugui": "2.0.0", + "com.unity.visualscripting": "1.9.11", + "com.unity.modules.accessibility": "1.0.0", + "com.unity.modules.adaptiveperformance": "1.0.0", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vectorgraphics": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json new file mode 100644 index 0000000..9ea6df4 --- /dev/null +++ b/Packages/packages-lock.json @@ -0,0 +1,472 @@ +{ + "dependencies": { + "com.unity.ai.navigation": { + "version": "2.0.11", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.ai": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.burst": { + "version": "1.8.28", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.mathematics": "1.2.1", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.collab-proxy": { + "version": "2.11.4", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.collections": { + "version": "2.6.5", + "depth": 2, + "source": "registry", + "dependencies": { + "com.unity.burst": "1.8.27", + "com.unity.mathematics": "1.3.2", + "com.unity.test-framework": "1.4.6", + "com.unity.nuget.mono-cecil": "1.11.6", + "com.unity.test-framework.performance": "3.0.3" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ext.nunit": { + "version": "2.0.5", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.ide.rider": { + "version": "3.0.39", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ext.nunit": "1.0.6" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ide.visualstudio": { + "version": "2.0.26", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33" + }, + "url": "https://packages.unity.com" + }, + "com.unity.inputsystem": { + "version": "1.19.0", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.uielements": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.mathematics": { + "version": "1.3.3", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.multiplayer.center": { + "version": "1.0.1", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.uielements": "1.0.0" + } + }, + "com.unity.nuget.mono-cecil": { + "version": "1.11.6", + "depth": 3, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.render-pipelines.core": { + "version": "17.3.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.burst": "1.8.14", + "com.unity.mathematics": "1.3.2", + "com.unity.ugui": "2.0.0", + "com.unity.collections": "2.4.3", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.render-pipelines.universal": { + "version": "17.3.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.render-pipelines.core": "17.3.0", + "com.unity.shadergraph": "17.3.0", + "com.unity.render-pipelines.universal-config": "17.0.3" + } + }, + "com.unity.render-pipelines.universal-config": { + "version": "17.0.3", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.render-pipelines.core": "17.0.3" + } + }, + "com.unity.searcher": { + "version": "4.9.4", + "depth": 2, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, + "com.unity.shadergraph": { + "version": "17.3.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.render-pipelines.core": "17.3.0", + "com.unity.searcher": "4.9.3" + } + }, + "com.unity.test-framework": { + "version": "1.6.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.ext.nunit": "2.0.3", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.test-framework.performance": { + "version": "3.2.0", + "depth": 3, + "source": "registry", + "dependencies": { + "com.unity.test-framework": "1.1.33", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.timeline": { + "version": "1.8.11", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.ugui": { + "version": "2.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.visualscripting": { + "version": "1.9.11", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.ugui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + }, + "url": "https://packages.unity.com" + }, + "com.unity.modules.accessibility": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.adaptiveperformance": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.subsystems": "1.0.0" + } + }, + "com.unity.modules.ai": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.androidjni": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.animation": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.assetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.audio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.cloth": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.director": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.animation": "1.0.0" + } + }, + "com.unity.modules.hierarchycore": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imageconversion": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.imgui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.jsonserialize": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.particlesystem": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.physics2d": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.screencapture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.subsystems": { + "version": "1.0.0", + "depth": 1, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.terrain": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.terrainphysics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.terrain": "1.0.0" + } + }, + "com.unity.modules.tilemap": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics2d": "1.0.0" + } + }, + "com.unity.modules.ui": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.uielements": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.hierarchycore": "1.0.0", + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.umbra": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unityanalytics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0" + } + }, + "com.unity.modules.unitywebrequest": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.unitywebrequestassetbundle": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestaudio": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.audio": "1.0.0" + } + }, + "com.unity.modules.unitywebrequesttexture": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.unitywebrequestwww": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0" + } + }, + "com.unity.modules.vectorgraphics": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0" + } + }, + "com.unity.modules.vehicles": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + } + }, + "com.unity.modules.video": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0" + } + }, + "com.unity.modules.vr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } + }, + "com.unity.modules.wind": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": {} + }, + "com.unity.modules.xr": { + "version": "1.0.0", + "depth": 0, + "source": "builtin", + "dependencies": { + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.subsystems": "1.0.0" + } + } + } +} diff --git a/ProjectSettings/AudioManager.asset b/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..27287fe --- /dev/null +++ b/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/ProjectSettings/ClusterInputManager.asset b/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/ProjectSettings/DynamicsManager.asset b/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..fc90ab9 --- /dev/null +++ b/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 1 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 diff --git a/ProjectSettings/EditorBuildSettings.asset b/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..d057ba3 --- /dev/null +++ b/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,13 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: + - enabled: 1 + path: Assets/Scenes/SampleScene.unity + guid: 99c9720ab356a0642a771bea13969a05 + m_configObjects: + com.unity.input.settings.actions: {fileID: -944628639613478452, guid: 052faaac586de48259a63d0c4782560b, type: 3} + m_UseUCBPForAssetBundles: 0 diff --git a/ProjectSettings/EditorSettings.asset b/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..878c4cb --- /dev/null +++ b/ProjectSettings/EditorSettings.asset @@ -0,0 +1,50 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 15 + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 0 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerCacheSize: 10 + m_SpritePackerPaddingPower: 1 + m_Bc7TextureCompressor: 0 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref + m_ProjectGenerationRootNamespace: + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_EnableEditorAsyncCPUTextureLoading: 0 + m_AsyncShaderCompilation: 1 + m_PrefabModeAllowAutoSave: 1 + m_EnterPlayModeOptionsEnabled: 1 + m_EnterPlayModeOptions: 0 + m_GameObjectNamingDigits: 1 + m_GameObjectNamingScheme: 0 + m_AssetNamingUsesSpace: 1 + m_InspectorUseIMGUIDefaultInspector: 0 + m_UseLegacyProbeSampleCount: 0 + m_SerializeInlineMappingsOnOneLine: 1 + m_DisableCookiesInLightmapper: 0 + m_ShadowmaskStitching: 0 + m_AssetPipelineMode: 1 + m_RefreshImportMode: 0 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 + m_CacheServerEnableAuth: 0 + m_CacheServerEnableTls: 0 + m_CacheServerValidationMode: 2 + m_CacheServerDownloadBatchSize: 128 + m_EnableEnlightenBakedGI: 0 + m_ReferencedClipsExactNaming: 1 + m_ForceAssetUnloadAndGCOnSceneLoad: 1 diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..84b2182 --- /dev/null +++ b/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,69 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 16 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_VideoShadersIncludeMode: 2 + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_PreloadShadersBatchTimeLimit: -1 + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_CustomRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd, type: 2} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_BrgStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_RenderPipelineGlobalSettingsMap: + UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa, type: 2} + m_ShaderBuildSettings: + keywordDeclarationOverrides: [] + m_LightsUseLinearIntensity: 1 + m_LightsUseColorTemperature: 1 + m_LogWhenShaderIsCompiled: 0 + m_LightProbeOutsideHullStrategy: 0 + m_CameraRelativeLightCulling: 0 + m_CameraRelativeShadowCulling: 0 diff --git a/ProjectSettings/InputManager.asset b/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..b16147e --- /dev/null +++ b/ProjectSettings/InputManager.asset @@ -0,0 +1,487 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: joystick button 8 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: backspace + altNegativeButton: + altPositiveButton: joystick button 9 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Reset + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Next + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page down + altNegativeButton: + altPositiveButton: joystick button 5 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Previous + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page up + altNegativeButton: + altPositiveButton: joystick button 4 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Validate + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Persistent + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: right shift + altNegativeButton: + altPositiveButton: joystick button 2 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Multiplier + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: joystick button 3 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 6 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 5 + joyNum: 0 diff --git a/ProjectSettings/MemorySettings.asset b/ProjectSettings/MemorySettings.asset new file mode 100644 index 0000000..5b5face --- /dev/null +++ b/ProjectSettings/MemorySettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!387306366 &1 +MemorySettings: + m_ObjectHideFlags: 0 + m_EditorMemorySettings: + m_MainAllocatorBlockSize: -1 + m_ThreadAllocatorBlockSize: -1 + m_MainGfxBlockSize: -1 + m_ThreadGfxBlockSize: -1 + m_CacheBlockSize: -1 + m_TypetreeBlockSize: -1 + m_ProfilerBlockSize: -1 + m_ProfilerEditorBlockSize: -1 + m_BucketAllocatorGranularity: -1 + m_BucketAllocatorBucketsCount: -1 + m_BucketAllocatorBlockSize: -1 + m_BucketAllocatorBlockCount: -1 + m_ProfilerBucketAllocatorGranularity: -1 + m_ProfilerBucketAllocatorBucketsCount: -1 + m_ProfilerBucketAllocatorBlockSize: -1 + m_ProfilerBucketAllocatorBlockCount: -1 + m_TempAllocatorSizeMain: -1 + m_JobTempAllocatorBlockSize: -1 + m_BackgroundJobTempAllocatorBlockSize: -1 + m_JobTempAllocatorReducedBlockSize: -1 + m_TempAllocatorSizeGIBakingWorker: -1 + m_TempAllocatorSizeNavMeshWorker: -1 + m_TempAllocatorSizeAudioWorker: -1 + m_TempAllocatorSizeCloudWorker: -1 + m_TempAllocatorSizeGfx: -1 + m_TempAllocatorSizeJobWorker: -1 + m_TempAllocatorSizeBackgroundWorker: -1 + m_TempAllocatorSizePreloadManager: -1 + m_PlatformMemorySettings: {} diff --git a/ProjectSettings/MultiplayerManager.asset b/ProjectSettings/MultiplayerManager.asset new file mode 100644 index 0000000..2a93664 --- /dev/null +++ b/ProjectSettings/MultiplayerManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!655991488 &1 +MultiplayerManager: + m_ObjectHideFlags: 0 + m_EnableMultiplayerRoles: 0 + m_StrippingTypes: {} diff --git a/ProjectSettings/NavMeshAreas.asset b/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..3b0b7c3 --- /dev/null +++ b/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/ProjectSettings/PackageManagerSettings.asset b/ProjectSettings/PackageManagerSettings.asset new file mode 100644 index 0000000..be4a797 --- /dev/null +++ b/ProjectSettings/PackageManagerSettings.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} + m_Name: + m_EditorClassIdentifier: + m_EnablePreviewPackages: 0 + m_EnablePackageDependencies: 0 + m_AdvancedSettingsExpanded: 1 + m_ScopedRegistriesSettingsExpanded: 1 + oneTimeWarningShown: 0 + m_Registries: + - m_Id: main + m_Name: + m_Url: https://packages.unity.com + m_Scopes: [] + m_IsDefault: 1 + m_Capabilities: 7 + m_UserSelectedRegistryName: + m_UserAddingNewScopedRegistry: 0 + m_RegistryInfoDraft: + m_ErrorMessage: + m_Original: + m_Id: + m_Name: + m_Url: + m_Scopes: [] + m_IsDefault: 0 + m_Capabilities: 0 + m_Modified: 0 + m_Name: + m_Url: + m_Scopes: + - + m_SelectedScopeIndex: 0 diff --git a/ProjectSettings/Physics2DSettings.asset b/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..6c5cf8a --- /dev/null +++ b/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_AutoSimulation: 1 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 0 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/ProjectSettings/PresetManager.asset b/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..8e68cdb --- /dev/null +++ b/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,943 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 28 + productGUID: d500a6649d9a6b84cb632310c54375e1 + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: UltraCombos + productName: ReadySetRide + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1024 + defaultScreenHeight: 768 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 1 + unsupportedMSAAFallback: 0 + m_SpriteBatchMaxVertexCount: 65535 + m_SpriteBatchVertexThreshold: 300 + m_MTRendering: 1 + mipStripping: 0 + numberOfMipsStripped: 0 + numberOfMipsStrippedPerMipmapLimitGroup: {} + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 0 + androidDisplayOptions: 1 + androidBlitType: 0 + androidResizeableActivity: 1 + androidDefaultWindowWidth: 1920 + androidDefaultWindowHeight: 1080 + androidMinimumWindowWidth: 400 + androidMinimumWindowHeight: 300 + androidFullscreenMode: 1 + androidAutoRotationBehavior: 1 + androidPredictiveBackSupport: 1 + androidApplicationEntry: 2 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 1 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + audioSpatialExperience: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + dedicatedServerOptimizations: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 1 + meshDeformation: 2 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + metalUseMetalDisplayLink: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOneEnableTypeOptimization: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + switchGpuScratchPoolGranularity: 2097152 + switchAllowGpuScratchShrinking: 0 + switchNVNMaxPublicTextureIDCount: 0 + switchNVNMaxPublicSamplerIDCount: 0 + switchMaxWorkerMultiple: 8 + switchNVNGraphicsFirmwareMemory: 32 + switchGraphicsJobsSyncAfterKick: 1 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + vulkanEnablePreTransform: 1 + vulkanEnableLateAcquireNextImage: 0 + vulkanEnableCommandBufferRecycling: 1 + loadStoreDebugModeEnabled: 0 + visionOSBundleVersion: 1.0 + tvOSBundleVersion: 1.0 + bundleVersion: 0.1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + enableOpenGLProfilerGPURecorders: 1 + allowHDRDisplaySupport: 0 + useHDRDisplay: 0 + hdrBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + resetResolutionOnWindowResize: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.4 + androidMinAspectRatio: 1 + applicationIdentifier: + Android: com.UnityTechnologies.com.unity.template.urpblank + Standalone: com.Unity-Technologies.com.unity.template.urp-blank + iPhone: com.Unity-Technologies.com.unity.template.urp-blank + buildNumber: + Standalone: 0 + VisionOS: 0 + iPhone: 0 + tvOS: 0 + overrideDefaultApplicationIdentifier: 1 + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 25 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + AndroidPreferredDataLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + androidSplitApplicationBinary: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + strictShaderVariantMatching: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSSimulatorArchitecture: 0 + iOSTargetOSVersionString: 15.0 + tvOSSdkVersion: 0 + tvOSSimulatorArchitecture: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 15.0 + VisionOSSdkVersion: 0 + VisionOSTargetOSVersionString: 1.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreenCustomStoryboardPath: + iOSLaunchScreeniPadCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + macOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + metalCompileShaderBinary: 0 + iOSRenderExtraFrameOnPause: 0 + iosCopyPluginsCodeInsteadOfSymlink: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + VisionOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + VisionOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + shaderPrecisionModel: 0 + clonedFromGUID: 3c72c65a16f0acb438eed22b8b16c24a + templatePackageId: com.unity.template.urp-blank@17.0.14 + templateDefaultScene: Assets/Scenes/SampleScene.unity + useCustomMainManifest: 0 + useCustomLauncherManifest: 0 + useCustomMainGradleTemplate: 0 + useCustomLauncherGradleManifest: 0 + useCustomBaseGradleTemplate: 0 + useCustomGradlePropertiesTemplate: 0 + useCustomGradleSettingsTemplate: 0 + useCustomProguardFile: 0 + AndroidTargetArchitectures: 2 + AndroidAllowedArchitectures: -13 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidEnableArmv9SecurityFeatures: 0 + AndroidEnableArm64MTE: 0 + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + androidAppCategory: 3 + useAndroidAppCategory: 1 + androidAppCategoryOther: + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + AndroidMinifyRelease: 0 + AndroidMinifyDebug: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + AndroidReportGooglePlayAppDependencies: 1 + androidSymbolsSizeThreshold: 800 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: + - m_BuildTarget: iPhone + m_Icons: + - m_Textures: [] + m_Width: 180 + m_Height: 180 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 0 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 167 + m_Height: 167 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 152 + m_Height: 152 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 76 + m_Height: 76 + m_Kind: 0 + m_SubKind: iPad + - m_Textures: [] + m_Width: 120 + m_Height: 120 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 80 + m_Height: 80 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 3 + m_SubKind: iPad + - m_Textures: [] + m_Width: 87 + m_Height: 87 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 58 + m_Height: 58 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 29 + m_Height: 29 + m_Kind: 1 + m_SubKind: iPad + - m_Textures: [] + m_Width: 60 + m_Height: 60 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPhone + - m_Textures: [] + m_Width: 40 + m_Height: 40 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 20 + m_Height: 20 + m_Kind: 2 + m_SubKind: iPad + - m_Textures: [] + m_Width: 1024 + m_Height: 1024 + m_Kind: 4 + m_SubKind: App Store + - m_BuildTarget: Android + m_Icons: + - m_Textures: [] + m_Width: 432 + m_Height: 432 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 324 + m_Height: 324 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 216 + m_Height: 216 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 162 + m_Height: 162 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 108 + m_Height: 108 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 81 + m_Height: 81 + m_Kind: 2 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 192 + m_Height: 192 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 144 + m_Height: 144 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 96 + m_Height: 96 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 72 + m_Height: 72 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 48 + m_Height: 48 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 36 + m_Height: 36 + m_Kind: 0 + m_SubKind: + - m_BuildTarget: tvOS + m_Icons: + - m_Textures: [] + m_Width: 1280 + m_Height: 768 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 800 + m_Height: 480 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 400 + m_Height: 240 + m_Kind: 0 + m_SubKind: + - m_Textures: [] + m_Width: 4640 + m_Height: 1440 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 2320 + m_Height: 720 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 3840 + m_Height: 1440 + m_Kind: 1 + m_SubKind: + - m_Textures: [] + m_Width: 1920 + m_Height: 720 + m_Kind: 1 + m_SubKind: + m_BuildTargetBatching: [] + m_BuildTargetShaderSettings: [] + m_BuildTargetGraphicsJobs: [] + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: + - m_BuildTarget: iOSSupport + m_APIs: 10000000 + m_Automatic: 1 + - m_BuildTarget: AndroidPlayer + m_APIs: 150000000b000000 + m_Automatic: 0 + m_BuildTargetVRSettings: [] + m_DefaultShaderChunkSizeInMB: 16 + m_DefaultShaderChunkCount: 0 + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: + - serializedVersion: 2 + m_BuildTarget: Android + m_EncodingQuality: 1 + m_BuildTargetGroupHDRCubemapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + m_BuildTargetGroupLoadStoreDebugModeSettings: [] + m_BuildTargetNormalMapEncoding: + - m_BuildTarget: Android + m_Encoding: 1 + m_BuildTargetDefaultTextureCompressionFormat: + - serializedVersion: 3 + m_BuildTarget: Android + m_Formats: 03000000 + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + editorGfxJobOverride: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + bluetoothUsageDescription: + macOSTargetOSVersion: 12.0 + switchNMETAOverride: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchEnableFileSystemTrace: 0 + switchLTOSetting: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchCompilerFlags: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchTitleNames_15: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchPublisherNames_15: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchIcons_15: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchSmallIcons_15: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchEnableTouchScreen: 1 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchDisableHTCSPlayerConnection: 0 + switchUseNewStyleFilepaths: 0 + switchUseLegacyFmodPriorities: 0 + switchUseMicroSleepForYield: 1 + switchEnableRamDiskSupport: 0 + switchMicroSleepForYieldTime: 25 + switchRamDiskSpaceSize: 12 + switchUpgradedPlayerSettingsToNMETA: 0 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4ExtraSceSysFile: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4UseLowGarlicFragmentationMode: 1 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4CompatibilityPS5: 0 + ps4AllowPS5Detection: 0 + ps4GPU800MHz: 1 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLShowDiagnostics: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 0 + webGLWasmArithmeticExceptions: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLDecompressionFallback: 0 + webGLInitialMemorySize: 32 + webGLMaximumMemorySize: 2048 + webGLMemoryGrowthMode: 2 + webGLMemoryLinearGrowthStep: 16 + webGLMemoryGeometricGrowthStep: 0.2 + webGLMemoryGeometricGrowthCap: 96 + webGLPowerPreference: 2 + webGLWebAssemblyTable: 0 + webGLWebAssemblyBigInt: 0 + webGLCloseOnQuit: 0 + webWasm2023: 0 + webEnableSubmoduleStrippingCompatibility: 0 + scriptingDefineSymbols: {} + additionalCompilerArguments: {} + platformArchitecture: {} + scriptingBackend: + Android: 1 + il2cppCompilerConfiguration: {} + il2cppCodeGeneration: {} + il2cppStacktraceInformation: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + suppressCommonWarnings: 1 + allowUnsafeCode: 0 + useDeterministicCompilation: 1 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 1 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + editorAssembliesCompatibilityLevel: 1 + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Unity-25014-ReadySetRide + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Unity-25014-ReadySetRide + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, a: 1} + metroSplashScreenUseBackgroundColor: 0 + syncCapabilities: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + vcxProjDefaultLanguage: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnhancedXboxCompatibilityMode: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + XboxOneOverrideIdentityPublisher: + vrEditorSettings: {} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + hmiPlayerDataPath: + hmiForceSRGBBlit: 1 + embeddedLinuxEnableGamepadInput: 0 + hmiCpuConfiguration: + hmiLogStartupTiming: 0 + qnxGraphicConfPath: + apiCompatibilityLevel: 6 + captureStartupLogs: {} + activeInputHandler: 1 + windowsGamepadBackendHint: 0 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + qualitySettingsNames: [] + projectName: + organizationId: + cloudEnabled: 0 + legacyClampBlendShapeWeights: 0 + hmiLoadingImage: {fileID: 0} + platformRequiresReadableAssets: 0 + virtualTexturingSupportEnabled: 0 + insecureHttpOption: 0 + androidVulkanDenyFilterList: [] + androidVulkanAllowFilterList: [] + androidVulkanDeviceFilterListAsset: {fileID: 0} + d3d12DeviceFilterListAsset: {fileID: 0} + allowedHttpConnections: 3 diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..3793dc5 --- /dev/null +++ b/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 6000.3.12f1 +m_EditorVersionWithRevision: 6000.3.12f1 (fca03ac9b0d5) diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..f55198a --- /dev/null +++ b/ProjectSettings/QualitySettings.asset @@ -0,0 +1,134 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 1 + m_QualitySettings: + - serializedVersion: 4 + name: Mobile + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 100 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 1 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 5e6cbd92db86f4b18aec3ed561671858, + type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: + - Standalone + - serializedVersion: 4 + name: PC + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + globalTextureMipmapLimit: 0 + textureMipmapLimitSettings: [] + anisotropicTextures: 2 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 1 + useLegacyDetailDistribution: 1 + adaptiveVsync: 0 + vSyncCount: 0 + realtimeGICPUUsage: 100 + adaptiveVsyncExtraA: 0 + adaptiveVsyncExtraB: 0 + lodBias: 2 + maximumLODLevel: 0 + enableLODCrossFade: 1 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 11400000, guid: 4b83569d67af61e458304325a23e5dfd, + type: 2} + terrainQualityOverrides: 0 + terrainPixelError: 1 + terrainDetailDensityScale: 1 + terrainBasemapDistance: 1000 + terrainDetailDistance: 80 + terrainTreeDistance: 5000 + terrainBillboardStart: 50 + terrainFadeLength: 5 + terrainMaxTrees: 50 + excludedTargetPlatforms: + - Android + - iPhone + m_TextureMipmapLimitGroupNames: [] + m_PerPlatformDefaultQuality: + Android: 0 + GameCoreScarlett: 1 + GameCoreXboxOne: 1 + Lumin: 0 + Nintendo Switch: 1 + PS4: 1 + PS5: 1 + Server: 0 + Stadia: 0 + Standalone: 1 + WebGL: 0 + Windows Store Apps: 0 + XboxOne: 0 + iPhone: 0 + tvOS: 0 diff --git a/ProjectSettings/SceneTemplateSettings.json b/ProjectSettings/SceneTemplateSettings.json new file mode 100644 index 0000000..ede5887 --- /dev/null +++ b/ProjectSettings/SceneTemplateSettings.json @@ -0,0 +1,121 @@ +{ + "templatePinStates": [], + "dependencyTypeInfos": [ + { + "userAdded": false, + "type": "UnityEngine.AnimationClip", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Animations.AnimatorController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.AnimatorOverrideController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.Audio.AudioMixerController", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.ComputeShader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Cubemap", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.GameObject", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.LightingDataAsset", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.LightingSettings", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Material", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.MonoScript", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.PhysicsMaterial2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Rendering.VolumeProfile", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEditor.SceneAsset", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Shader", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.ShaderVariantCollection", + "defaultInstantiationMode": 1 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Texture2D", + "defaultInstantiationMode": 0 + }, + { + "userAdded": false, + "type": "UnityEngine.Timeline.TimelineAsset", + "defaultInstantiationMode": 0 + } + ], + "defaultDependencyTypeInfo": { + "userAdded": false, + "type": "", + "defaultInstantiationMode": 1 + }, + "newSceneOverride": 0 +} \ No newline at end of file diff --git a/ProjectSettings/ShaderGraphSettings.asset b/ProjectSettings/ShaderGraphSettings.asset new file mode 100644 index 0000000..ce8c243 --- /dev/null +++ b/ProjectSettings/ShaderGraphSettings.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} + m_Name: + m_EditorClassIdentifier: + shaderVariantLimit: 128 + overrideShaderVariantLimit: 0 + customInterpolatorErrorThreshold: 32 + customInterpolatorWarningThreshold: 16 + customHeatmapValues: {fileID: 0} diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..6413d11 --- /dev/null +++ b/ProjectSettings/TagManager.asset @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 + m_RenderingLayers: + - Default + - Light Layer 1 + - Light Layer 2 + - Light Layer 3 + - Light Layer 4 + - Light Layer 5 + - Light Layer 6 + - Light Layer 7 + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - diff --git a/ProjectSettings/TimeManager.asset b/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/ProjectSettings/URPProjectSettings.asset b/ProjectSettings/URPProjectSettings.asset new file mode 100644 index 0000000..6ad5631 --- /dev/null +++ b/ProjectSettings/URPProjectSettings.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} + m_Name: + m_EditorClassIdentifier: + m_LastMaterialVersion: 10 + m_ProjectSettingFolderPath: URPDefaultResources diff --git a/ProjectSettings/UnityConnectSettings.asset b/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..029ad8b --- /dev/null +++ b/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,40 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_DashboardUrl: https://dashboard.unity3d.com + m_TestInitMode: 0 + InsightsSettings: + m_EngineDiagnosticsEnabled: 1 + m_Enabled: 0 + CrashReportingSettings: + serializedVersion: 2 + m_EventUrl: https://perf-events.cloud.unity3d.com + m_EnableCloudDiagnosticsReporting: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + m_PackageRequiringCoreStatsPresent: 0 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/ProjectSettings/VFXManager.asset b/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..3a95c98 --- /dev/null +++ b/ProjectSettings/VFXManager.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 diff --git a/ProjectSettings/VersionControlSettings.asset b/ProjectSettings/VersionControlSettings.asset new file mode 100644 index 0000000..dca2881 --- /dev/null +++ b/ProjectSettings/VersionControlSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!890905787 &1 +VersionControlSettings: + m_ObjectHideFlags: 0 + m_Mode: Visible Meta Files + m_CollabEditorSettings: + inProgressEnabled: 1 diff --git a/ProjectSettings/XRSettings.asset b/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file diff --git a/Unity-25014-ReadySetRide.slnx b/Unity-25014-ReadySetRide.slnx new file mode 100644 index 0000000..1fcce6e --- /dev/null +++ b/Unity-25014-ReadySetRide.slnx @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +