├── Pictures └── Preview_001.jpg ├── ProjectSettings ├── ProjectVersion.txt ├── ClusterInputManager.asset ├── PresetManager.asset ├── MultiplayerManager.asset ├── EditorBuildSettings.asset ├── XRSettings.asset ├── VersionControlSettings.asset ├── TimeManager.asset ├── VFXManager.asset ├── URPProjectSettings.asset ├── AudioManager.asset ├── TagManager.asset ├── ShaderGraphSettings.asset ├── UnityConnectSettings.asset ├── PackageManagerSettings.asset ├── DynamicsManager.asset ├── MemorySettings.asset ├── EditorSettings.asset ├── NavMeshAreas.asset ├── Physics2DSettings.asset ├── GraphicsSettings.asset ├── SceneTemplateSettings.json ├── QualitySettings.asset └── InputManager.asset ├── Assets ├── TestScene │ ├── LightingData.asset │ ├── ReflectionProbe-0.exr │ ├── LightingData.asset.meta │ ├── Global Volume Profile.asset.meta │ ├── Global Volume Profile.asset │ └── ReflectionProbe-0.exr.meta ├── SampleAssets │ ├── empty_workshop_1k.exr │ ├── Ground_wet_003_SD │ │ ├── Ground_wet_003_height.png │ │ ├── Ground_wet_003_normal.jpg │ │ ├── Ground_wet_003_basecolor.jpg │ │ ├── Ground_wet_003_basecolor.jpg~ │ │ ├── Ground_wet_003_roughness.jpg │ │ ├── Ground_wet_003_roughness 1.jpg │ │ ├── Ground_wet_003_roughness 1.jpg~ │ │ ├── Ground_wet_003_ambientOcclusion.jpg │ │ ├── Ground_wet_003.mat.meta │ │ ├── Ground_wet_003.mat │ │ ├── Ground_wet_003_basecolor.jpg.meta │ │ ├── Ground_wet_003_height.png.meta │ │ ├── Ground_wet_003_normal.jpg.meta │ │ ├── Ground_wet_003_roughness 1.jpg.meta │ │ ├── Ground_wet_003_roughness.jpg.meta │ │ └── Ground_wet_003_ambientOcclusion.jpg.meta │ ├── Ground_wet_003_SD.meta │ ├── Checker.mat.meta │ ├── Skybox.mat.meta │ ├── Reflective.mat.meta │ ├── empty_workshop_1k.exr.meta │ ├── Checker.mat │ ├── Reflective.mat │ └── Skybox.mat ├── TestScene.unity.meta ├── SampleAssets.meta ├── TestScene.meta ├── UniversalRPAsset.asset.meta ├── DefaultVolumeProfile.asset.meta ├── UniversalRPAsset_Renderer.asset.meta ├── UniversalRenderPipelineGlobalSettings.asset.meta ├── UniversalRPAsset_Renderer.asset ├── UniversalRPAsset.asset └── DefaultVolumeProfile.asset ├── Packages ├── com.alexmalyutindev.urp-ssr │ ├── LICENSE.meta │ ├── Runtime │ │ ├── Shaders │ │ │ ├── SSR.shader.meta │ │ │ ├── SSRCore.hlsl.meta │ │ │ ├── LitReflection.shader.meta │ │ │ ├── SSR.mat.meta │ │ │ ├── SSR.mat │ │ │ ├── SSRCore.hlsl │ │ │ ├── LitReflection.shader │ │ │ └── SSR.shader │ │ ├── SpecularReflectivityPass.cs.meta │ │ ├── ScreenSpaceReflectionPass.cs.meta │ │ ├── SSR.Runtime.asmdef.meta │ │ ├── Shaders.meta │ │ ├── ScreenSpaceReflectionFeature.cs.meta │ │ ├── SSR.Runtime.asmdef │ │ ├── ScreenSpaceReflectionFeature.cs │ │ ├── ScreenSpaceReflectionPass.cs │ │ └── SpecularReflectivityPass.cs │ ├── package.json.meta │ ├── Runtime.meta │ ├── InternalBridge.meta │ ├── InternalBridge │ │ ├── UniversalGraphicsTests.asmdef.meta │ │ ├── UniversalRendererInternal.cs.meta │ │ ├── UniversalGraphicsTests.asmdef │ │ └── UniversalRendererInternal.cs │ ├── package.json │ └── LICENSE ├── manifest.json └── packages-lock.json ├── .github └── workflows │ └── publish.yml ├── README.md ├── LICENSE └── .gitignore /Pictures/Preview_001.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Pictures/Preview_001.jpg -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 6000.1.9f1 2 | m_EditorVersionWithRevision: 6000.1.9f1 (ed7b183fd33d) 3 | -------------------------------------------------------------------------------- /Assets/TestScene/LightingData.asset: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Assets/TestScene/LightingData.asset -------------------------------------------------------------------------------- /Assets/TestScene/ReflectionProbe-0.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Assets/TestScene/ReflectionProbe-0.exr -------------------------------------------------------------------------------- /Assets/SampleAssets/empty_workshop_1k.exr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Assets/SampleAssets/empty_workshop_1k.exr -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/LICENSE.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 21a53d8d1bc8499393b187989afa30e4 3 | timeCreated: 1698564282 -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/Shaders/SSR.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ccf2a183e557403ba3f6b0f039a7c33b 3 | timeCreated: 1693469333 -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/Shaders/SSRCore.hlsl.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 75f329ff25f4485b9a3fa65cb4b50cc4 3 | timeCreated: 1693487194 -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/SpecularReflectivityPass.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b67b962df56441e6a902eb231d0e3a5a 3 | timeCreated: 1693307575 -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/ScreenSpaceReflectionPass.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 50553b6f610f4d8ea3fd8b36df50383d 3 | timeCreated: 1694256709 -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/Shaders/LitReflection.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d27c54e500d4c019b4dd3ee4674bb4e 3 | timeCreated: 1693573203 -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_height.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_height.png -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_normal.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_normal.jpg -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_basecolor.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_basecolor.jpg -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_basecolor.jpg~: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_basecolor.jpg~ -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_roughness.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_roughness.jpg -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_roughness 1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_roughness 1.jpg -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_roughness 1.jpg~: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_roughness 1.jpg~ -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_ambientOcclusion.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexmalyutindev/urp-ssr/HEAD/Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_ambientOcclusion.jpg -------------------------------------------------------------------------------- /Assets/TestScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8e66b016337f34bcebb4a7099cfa9c34 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_DefaultPresets: {} 8 | -------------------------------------------------------------------------------- /Assets/SampleAssets.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea7ce7da709264be5939d4bd306d4ae8 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TestScene.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd94be3cdede84010b840f55d6a51358 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/MultiplayerManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!655991488 &1 4 | MultiplayerManager: 5 | m_ObjectHideFlags: 0 6 | m_EnableMultiplayerRoles: 0 7 | m_StrippingTypes: {} 8 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: [] 8 | m_configObjects: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/XRSettings.asset: -------------------------------------------------------------------------------- 1 | { 2 | "m_SettingKeys": [ 3 | "VR Device Disabled", 4 | "VR Device User Alert" 5 | ], 6 | "m_SettingValues": [ 7 | "False", 8 | "False" 9 | ] 10 | } -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/package.json.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90cf076388ca67b4cb70cdc430071969 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2fadf1477445c420cb1681b7dee6c416 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e76239a2c7b614d40876b86f6f5d9fb6 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Checker.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b45471dc5e30847628918c2f3e788052 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Skybox.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4521ba33f83f0409ba6dc2e897e554d9 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UniversalRPAsset.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 83679e271489d40cdbb7a842e3778924 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/DefaultVolumeProfile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 8380d9c5c13b24aecac7a9d3d3ab5775 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Reflective.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3f1639dfe5e634e4294fc634af6faac8 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/TestScene/LightingData.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5e87b7e13d1d244ed8207318b9206a80 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 112000000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/InternalBridge.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b2997340c3c7e4f35b0bef6f1d7b3f01 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/SSR.Runtime.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 888b16d8d6f3e483082919be987de03c 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: da873a8093e58431c935a2f909fbdea0 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UniversalRPAsset_Renderer.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1c9957089aa634d888b92da87de6f909 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /ProjectSettings/VersionControlSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!890905787 &1 4 | VersionControlSettings: 5 | m_ObjectHideFlags: 0 6 | m_Mode: Visible Meta Files 7 | m_CollabEditorSettings: 8 | inProgressEnabled: 1 9 | -------------------------------------------------------------------------------- /Assets/TestScene/Global Volume Profile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bd7f523a688524c36a11784e37a5cc25 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/UniversalRenderPipelineGlobalSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6a7c36df915ca4fc78315a53dc1be26a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 20d1da1e060ba47e7a1a8a505648ad6a 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/InternalBridge/UniversalGraphicsTests.asmdef.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cf93ce9f6eacd41a092aac85dd999ee1 3 | AssemblyDefinitionImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.33333334 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/Shaders/SSR.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e24416b5f10a34e60b51e0dd43f43cb2 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/InternalBridge/UniversalRendererInternal.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7294ea16ca7594b039d5f95c60191127 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /ProjectSettings/VFXManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!937362698 &1 4 | VFXManager: 5 | m_ObjectHideFlags: 0 6 | m_IndirectShader: {fileID: 0} 7 | m_CopyBufferShader: {fileID: 0} 8 | m_SortShader: {fileID: 0} 9 | m_StripUpdateShader: {fileID: 0} 10 | m_RenderPipeSettingsPath: 11 | m_FixedTimeStep: 0.016666668 12 | m_MaxDeltaTime: 0.05 13 | -------------------------------------------------------------------------------- /.github/workflows/publish.yml: -------------------------------------------------------------------------------- 1 | name: Publish Package 2 | 3 | on: 4 | push: 5 | branches: [ master ] 6 | workflow_dispatch: 7 | 8 | jobs: 9 | deploy: 10 | runs-on: ubuntu-latest 11 | steps: 12 | - uses: actions/checkout@v2 13 | - name: Publish Unity package 14 | uses: cdmvision/action-upm-publish@v1 15 | with: 16 | name: 'com.alexmalyutindev.urp-ssr' 17 | upmBranch: 'upm' -------------------------------------------------------------------------------- /ProjectSettings/URPProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 247994e1f5a72c2419c26a37e9334c01, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_LastMaterialVersion: 9 16 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Volume: 1 8 | Rolloff Scale: 1 9 | Doppler Factor: 1 10 | Default Speaker Mode: 2 11 | m_SampleRate: 0 12 | m_DSPBufferSize: 1024 13 | m_VirtualVoiceCount: 512 14 | m_RealVoiceCount: 32 15 | m_SpatializerPlugin: 16 | m_AmbisonicDecoderPlugin: 17 | m_DisableAudio: 0 18 | m_VirtualizeEffects: 1 19 | m_RequestedDSPBufferSize: 1024 20 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/ScreenSpaceReflectionFeature.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e99f6d4129ba46c59df7111bd727f5a 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: 7 | - TracingMaterial: {fileID: 2100000, guid: e24416b5f10a34e60b51e0dd43f43cb2, type: 2} 8 | - PostProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/InternalBridge/UniversalGraphicsTests.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "UniversalGraphicsTests", 3 | "rootNamespace": "SSR.InternalBridge", 4 | "references": [ 5 | "Unity.RenderPipelines.Core.Runtime", 6 | "Unity.RenderPipelines.Universal.Runtime" 7 | ], 8 | "includePlatforms": [], 9 | "excludePlatforms": [], 10 | "allowUnsafeCode": false, 11 | "overrideReferences": false, 12 | "precompiledReferences": [], 13 | "autoReferenced": true, 14 | "defineConstraints": [], 15 | "versionDefines": [], 16 | "noEngineReferences": false 17 | } -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/SSR.Runtime.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "SSR.Runtime", 3 | "rootNamespace": "SSR.Runtime", 4 | "references": [ 5 | "Unity.RenderPipelines.Core.Runtime", 6 | "Unity.RenderPipelines.Universal.Runtime", 7 | "UniversalGraphicsTests" 8 | ], 9 | "includePlatforms": [], 10 | "excludePlatforms": [], 11 | "allowUnsafeCode": false, 12 | "overrideReferences": false, 13 | "precompiledReferences": [], 14 | "autoReferenced": true, 15 | "defineConstraints": [], 16 | "versionDefines": [], 17 | "noEngineReferences": false 18 | } -------------------------------------------------------------------------------- /ProjectSettings/ShaderGraphSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 53 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: de02f9e1d18f588468e474319d09a723, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | shaderVariantLimit: 2048 16 | customInterpolatorErrorThreshold: 32 17 | customInterpolatorWarningThreshold: 16 18 | customHeatmapValues: {fileID: 0} 19 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.alexmalyutindev.urp-ssr", 3 | "displayName": "URP Screen Space Reflection", 4 | "description": "Screen Space Reflection for Unity Universal RP", 5 | "homepage": "https://github.com/alexmalyutindev/urp-ssr", 6 | "version": "1.0.0-preview.0", 7 | "unity": "2022.3", 8 | "license": "MIT", 9 | "author": "Alex Malyutin (https://github.com/alexmalyutindev)", 10 | "repository": { 11 | "type": "git", 12 | "url": "git+https://github.com/alexmalyutindev/urp-ssr.git" 13 | }, 14 | "dependencies": { 15 | "com.unity.render-pipelines.universal": "14.0.8" 16 | }, 17 | "samples": [ 18 | { 19 | "displayName": "Demo", 20 | "description": "Unity UPM Template Demo", 21 | "path": "Samples~/Demo" 22 | } 23 | ] 24 | } -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/InternalBridge/UniversalRendererInternal.cs: -------------------------------------------------------------------------------- 1 | 2 | using UnityEngine.Rendering; 3 | using UnityEngine.Rendering.Universal; 4 | 5 | namespace SSR.InternalBridge 6 | { 7 | public static class UniversalRendererInternal 8 | { 9 | public static RTHandle GetDepthTexture(this UniversalRenderer renderer) 10 | { 11 | return renderer.m_DepthTexture; 12 | } 13 | 14 | /// 15 | /// 0: GBufferAlbedo 16 | /// 1: GBufferSpecularMetallic 17 | /// 2: GBufferNormalSmoothness 18 | /// 3: GBufferLighting 19 | /// 20 | /// 21 | /// 22 | public static UnityEngine.Rendering.RenderGraphModule.TextureHandle[] GetGBuffer(this UniversalRenderer renderer) 23 | { 24 | return renderer.frameData.Get().gBuffer; 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 🚧 Screen Space Reflection render feature for Unity Universal RP. 2 | ========== 3 | 4 | ![Build](https://github.com/alexmalyutindev/urp-ssr/actions/workflows/publish.yml/badge.svg) 5 | ![Release](https://img.shields.io/github/v/release/alexmalyutindev/urp-ssr) 6 | 7 | Overview 8 | -------- 9 | 10 | ![Preview](Pictures/Preview_001.jpg) 11 | 12 | Installation 13 | ------------ 14 | Find the manifest.json file in the Packages folder of your project and add a line to `dependencies` field: 15 | 16 | * `"com.alexmalyutindev.urp-ssr": "https://github.com/alexmalyutindev/urp-ssr.git"` 17 | 18 | Or, you can add this package using PackageManager `Add package from git URL` option: 19 | 20 | * `https://github.com/alexmalyutindev/urp-ssr.git` 21 | 22 | TODOs 23 | ----- 24 | - [ ] Change blit method to `CoreUtils.DrawFullScreen` 25 | - [ ] Add temporal reprojection to reduce noise 26 | 27 | License 28 | ------- 29 | This project is MIT License - see the [LICENSE](LICENSE) file for details 30 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/Shaders/SSR.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: SSR 11 | m_Shader: {fileID: 4800000, guid: ccf2a183e557403ba3f6b0f039a7c33b, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: [] 15 | m_InvalidKeywords: [] 16 | m_LightmapFlags: 4 17 | m_EnableInstancingVariants: 0 18 | m_DoubleSidedGI: 0 19 | m_CustomRenderQueue: 3000 20 | stringTagMap: {} 21 | disabledShaderPasses: [] 22 | m_LockedProperties: 23 | m_SavedProperties: 24 | serializedVersion: 3 25 | m_TexEnvs: 26 | - _MainTex: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | m_Ints: [] 31 | m_Floats: [] 32 | m_Colors: [] 33 | m_BuildTextureStacks: [] 34 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 1 7 | m_Enabled: 0 8 | m_TestMode: 0 9 | m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events 10 | m_EventUrl: https://cdp.cloud.unity3d.com/v1/events 11 | m_ConfigUrl: https://config.uca.cloud.unity3d.com 12 | m_DashboardUrl: https://dashboard.unity3d.com 13 | m_TestInitMode: 0 14 | CrashReportingSettings: 15 | m_EventUrl: https://perf-events.cloud.unity3d.com 16 | m_Enabled: 0 17 | m_LogBufferSize: 10 18 | m_CaptureEditorExceptions: 1 19 | UnityPurchasingSettings: 20 | m_Enabled: 0 21 | m_TestMode: 0 22 | UnityAnalyticsSettings: 23 | m_Enabled: 0 24 | m_TestMode: 0 25 | m_InitializeOnStartup: 1 26 | UnityAdsSettings: 27 | m_Enabled: 0 28 | m_InitializeOnStartup: 1 29 | m_TestMode: 0 30 | m_IosGameId: 31 | m_AndroidGameId: 32 | m_GameIds: {} 33 | m_GameId: 34 | PerformanceReportingSettings: 35 | m_Enabled: 0 36 | -------------------------------------------------------------------------------- /ProjectSettings/PackageManagerSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 61 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 13964, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_EnablePreReleasePackages: 0 16 | m_AdvancedSettingsExpanded: 1 17 | m_ScopedRegistriesSettingsExpanded: 1 18 | m_SeeAllPackageVersions: 0 19 | m_DismissPreviewPackagesInUse: 0 20 | oneTimeWarningShown: 0 21 | m_Registries: 22 | - m_Id: main 23 | m_Name: 24 | m_Url: https://packages.unity.com 25 | m_Scopes: [] 26 | m_IsDefault: 1 27 | m_Capabilities: 7 28 | m_ConfigSource: 0 29 | m_UserSelectedRegistryName: 30 | m_UserAddingNewScopedRegistry: 0 31 | m_RegistryInfoDraft: 32 | m_Modified: 0 33 | m_ErrorMessage: 34 | m_UserModificationsInstanceId: -830 35 | m_OriginalInstanceId: -832 36 | m_LoadAssets: 0 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Alexander Malyutin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 Alexander Malyutin 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/ScreenSpaceReflectionFeature.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.Rendering.Universal; 3 | 4 | namespace SSR.Runtime 5 | { 6 | public class ScreenSpaceReflectionFeature : ScriptableRendererFeature 7 | { 8 | public Material TracingMaterial; 9 | public PostProcessData PostProcessData; 10 | 11 | private SpecularReflectivityPass _pass; 12 | private ScreenSpaceReflectionPass _tracingPass; 13 | 14 | /// 15 | public override void Create() 16 | { 17 | _pass = new SpecularReflectivityPass 18 | { 19 | renderPassEvent = RenderPassEvent.AfterRenderingOpaques 20 | }; 21 | 22 | _tracingPass = new ScreenSpaceReflectionPass(TracingMaterial, PostProcessData) 23 | { 24 | renderPassEvent = RenderPassEvent.BeforeRenderingTransparents 25 | }; 26 | } 27 | 28 | public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) 29 | { 30 | renderer.EnqueuePass(_pass); 31 | renderer.EnqueuePass(_tracingPass); 32 | } 33 | } 34 | } -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 11 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | m_FrictionType: 0 32 | m_EnableEnhancedDeterminism: 0 33 | m_EnableUnifiedHeightmaps: 1 34 | m_DefaultMaxAngluarSpeed: 7 35 | -------------------------------------------------------------------------------- /ProjectSettings/MemorySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!387306366 &1 4 | MemorySettings: 5 | m_ObjectHideFlags: 0 6 | m_EditorMemorySettings: 7 | m_MainAllocatorBlockSize: -1 8 | m_ThreadAllocatorBlockSize: -1 9 | m_MainGfxBlockSize: -1 10 | m_ThreadGfxBlockSize: -1 11 | m_CacheBlockSize: -1 12 | m_TypetreeBlockSize: -1 13 | m_ProfilerBlockSize: -1 14 | m_ProfilerEditorBlockSize: -1 15 | m_BucketAllocatorGranularity: -1 16 | m_BucketAllocatorBucketsCount: -1 17 | m_BucketAllocatorBlockSize: -1 18 | m_BucketAllocatorBlockCount: -1 19 | m_ProfilerBucketAllocatorGranularity: -1 20 | m_ProfilerBucketAllocatorBucketsCount: -1 21 | m_ProfilerBucketAllocatorBlockSize: -1 22 | m_ProfilerBucketAllocatorBlockCount: -1 23 | m_TempAllocatorSizeMain: -1 24 | m_JobTempAllocatorBlockSize: -1 25 | m_BackgroundJobTempAllocatorBlockSize: -1 26 | m_JobTempAllocatorReducedBlockSize: -1 27 | m_TempAllocatorSizeGIBakingWorker: -1 28 | m_TempAllocatorSizeNavMeshWorker: -1 29 | m_TempAllocatorSizeAudioWorker: -1 30 | m_TempAllocatorSizeCloudWorker: -1 31 | m_TempAllocatorSizeGfx: -1 32 | m_TempAllocatorSizeJobWorker: -1 33 | m_TempAllocatorSizeBackgroundWorker: -1 34 | m_TempAllocatorSizePreloadManager: -1 35 | m_PlatformMemorySettings: {} 36 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ### Unity ### 2 | # This .gitignore file should be placed at the root of your Unity project directory 3 | # 4 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Uu]ser[Ss]ettings/ 12 | 13 | # MemoryCaptures can get excessive in size. 14 | # They also could contain extremely sensitive data 15 | /[Mm]emoryCaptures/ 16 | 17 | # Asset meta data should only be ignored when the corresponding asset is also ignored 18 | !/[Aa]ssets/**/*.meta 19 | 20 | # Uncomment this line if you wish to ignore the asset store tools plugin 21 | # /[Aa]ssets/AssetStoreTools* 22 | 23 | # Autogenerated Jetbrains Rider plugin 24 | /[Aa]ssets/Plugins/Editor/JetBrains* 25 | 26 | # Visual Studio cache directory 27 | .vs/ 28 | 29 | # Gradle cache directory 30 | .gradle/ 31 | 32 | # Autogenerated VS/MD/Consulo solution and project files 33 | ExportedObj/ 34 | .consulo/ 35 | *.csproj 36 | *.unityproj 37 | *.sln 38 | *.suo 39 | *.tmp 40 | *.user 41 | *.userprefs 42 | *.pidb 43 | *.booproj 44 | *.svd 45 | *.pdb 46 | *.mdb 47 | *.opendb 48 | *.VC.db 49 | 50 | # Unity3D generated meta files 51 | *.pidb.meta 52 | *.pdb.meta 53 | *.mdb.meta 54 | 55 | # Unity3D generated file on crash reports 56 | sysinfo.txt 57 | 58 | # Builds 59 | *.apk 60 | *.aab 61 | *.unitypackage 62 | 63 | # Crashlytics generated file 64 | 65 | # Packed Addressables 66 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin* 67 | 68 | # Temporary auto-generated Android Assets 69 | /[Aa]ssets/[Ss]treamingAssets/aa.meta 70 | /[Aa]ssets/[Ss]treamingAssets/aa/* 71 | 72 | .idea/ 73 | .DS_Store 74 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_SerializationMode: 2 8 | m_LineEndingsForNewScripts: 0 9 | m_DefaultBehaviorMode: 0 10 | m_PrefabRegularEnvironment: {fileID: 0} 11 | m_PrefabUIEnvironment: {fileID: 0} 12 | m_SpritePackerMode: 0 13 | m_SpritePackerCacheSize: 10 14 | m_SpritePackerPaddingPower: 1 15 | m_Bc7TextureCompressor: 0 16 | m_EtcTextureCompressorBehavior: 1 17 | m_EtcTextureFastCompressor: 1 18 | m_EtcTextureNormalCompressor: 2 19 | m_EtcTextureBestCompressor: 4 20 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp;asmref 21 | m_ProjectGenerationRootNamespace: 22 | m_EnableTextureStreamingInEditMode: 1 23 | m_EnableTextureStreamingInPlayMode: 1 24 | m_EnableEditorAsyncCPUTextureLoading: 0 25 | m_AsyncShaderCompilation: 1 26 | m_PrefabModeAllowAutoSave: 1 27 | m_EnterPlayModeOptionsEnabled: 0 28 | m_EnterPlayModeOptions: 3 29 | m_GameObjectNamingDigits: 1 30 | m_GameObjectNamingScheme: 0 31 | m_AssetNamingUsesSpace: 1 32 | m_InspectorUseIMGUIDefaultInspector: 0 33 | m_UseLegacyProbeSampleCount: 0 34 | m_SerializeInlineMappingsOnOneLine: 1 35 | m_DisableCookiesInLightmapper: 0 36 | m_AssetPipelineMode: 1 37 | m_RefreshImportMode: 0 38 | m_CacheServerMode: 0 39 | m_CacheServerEndpoint: 40 | m_CacheServerNamespacePrefix: default 41 | m_CacheServerEnableDownload: 1 42 | m_CacheServerEnableUpload: 1 43 | m_CacheServerEnableAuth: 0 44 | m_CacheServerEnableTls: 0 45 | m_CacheServerValidationMode: 2 46 | m_CacheServerDownloadBatchSize: 128 47 | m_EnableEnlightenBakedGI: 0 48 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /Assets/TestScene/Global Volume Profile.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 13 | m_Name: Global Volume Profile 14 | m_EditorClassIdentifier: 15 | components: 16 | - {fileID: 1468498298639111403} 17 | --- !u!114 &1468498298639111403 18 | MonoBehaviour: 19 | m_ObjectHideFlags: 3 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_GameObject: {fileID: 0} 24 | m_Enabled: 1 25 | m_EditorHideFlags: 0 26 | m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} 27 | m_Name: Bloom 28 | m_EditorClassIdentifier: 29 | active: 1 30 | skipIterations: 31 | m_OverrideState: 0 32 | m_Value: 1 33 | threshold: 34 | m_OverrideState: 0 35 | m_Value: 0.9 36 | intensity: 37 | m_OverrideState: 1 38 | m_Value: 1 39 | scatter: 40 | m_OverrideState: 0 41 | m_Value: 0.7 42 | clamp: 43 | m_OverrideState: 0 44 | m_Value: 65472 45 | tint: 46 | m_OverrideState: 0 47 | m_Value: {r: 1, g: 1, b: 1, a: 1} 48 | highQualityFiltering: 49 | m_OverrideState: 0 50 | m_Value: 0 51 | downscale: 52 | m_OverrideState: 0 53 | m_Value: 0 54 | maxIterations: 55 | m_OverrideState: 0 56 | m_Value: 6 57 | dirtTexture: 58 | m_OverrideState: 0 59 | m_Value: {fileID: 0} 60 | dimension: 1 61 | dirtIntensity: 62 | m_OverrideState: 0 63 | m_Value: 0 64 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.ai.navigation": "2.0.8", 4 | "com.unity.ide.rider": "3.0.36", 5 | "com.unity.ide.visualstudio": "2.0.23", 6 | "com.unity.multiplayer.center": "1.0.0", 7 | "com.unity.recorder": "5.1.2", 8 | "com.unity.render-pipelines.universal": "17.1.0", 9 | "com.unity.test-framework": "1.5.1", 10 | "com.unity.ugui": "2.0.0", 11 | "com.unity.modules.accessibility": "1.0.0", 12 | "com.unity.modules.ai": "1.0.0", 13 | "com.unity.modules.androidjni": "1.0.0", 14 | "com.unity.modules.animation": "1.0.0", 15 | "com.unity.modules.assetbundle": "1.0.0", 16 | "com.unity.modules.audio": "1.0.0", 17 | "com.unity.modules.cloth": "1.0.0", 18 | "com.unity.modules.director": "1.0.0", 19 | "com.unity.modules.imageconversion": "1.0.0", 20 | "com.unity.modules.imgui": "1.0.0", 21 | "com.unity.modules.jsonserialize": "1.0.0", 22 | "com.unity.modules.particlesystem": "1.0.0", 23 | "com.unity.modules.physics": "1.0.0", 24 | "com.unity.modules.physics2d": "1.0.0", 25 | "com.unity.modules.screencapture": "1.0.0", 26 | "com.unity.modules.terrain": "1.0.0", 27 | "com.unity.modules.terrainphysics": "1.0.0", 28 | "com.unity.modules.tilemap": "1.0.0", 29 | "com.unity.modules.ui": "1.0.0", 30 | "com.unity.modules.uielements": "1.0.0", 31 | "com.unity.modules.umbra": "1.0.0", 32 | "com.unity.modules.unityanalytics": "1.0.0", 33 | "com.unity.modules.unitywebrequest": "1.0.0", 34 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 35 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 36 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 37 | "com.unity.modules.unitywebrequestwww": "1.0.0", 38 | "com.unity.modules.vehicles": "1.0.0", 39 | "com.unity.modules.video": "1.0.0", 40 | "com.unity.modules.vr": "1.0.0", 41 | "com.unity.modules.wind": "1.0.0", 42 | "com.unity.modules.xr": "1.0.0" 43 | }, 44 | "scopedRegistries": [] 45 | } 46 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_JobOptions: 23 | serializedVersion: 2 24 | useMultithreading: 0 25 | useConsistencySorting: 0 26 | m_InterpolationPosesPerJob: 100 27 | m_NewContactsPerJob: 30 28 | m_CollideContactsPerJob: 100 29 | m_ClearFlagsPerJob: 200 30 | m_ClearBodyForcesPerJob: 200 31 | m_SyncDiscreteFixturesPerJob: 50 32 | m_SyncContinuousFixturesPerJob: 50 33 | m_FindNearestContactsPerJob: 100 34 | m_UpdateTriggerContactsPerJob: 100 35 | m_IslandSolverCostThreshold: 100 36 | m_IslandSolverBodyCostScale: 1 37 | m_IslandSolverContactCostScale: 10 38 | m_IslandSolverJointCostScale: 10 39 | m_IslandSolverBodiesPerJob: 50 40 | m_IslandSolverContactsPerJob: 50 41 | m_AutoSimulation: 1 42 | m_QueriesHitTriggers: 1 43 | m_QueriesStartInColliders: 1 44 | m_CallbacksOnDisable: 1 45 | m_ReuseCollisionCallbacks: 1 46 | m_AutoSyncTransforms: 0 47 | m_AlwaysShowColliders: 0 48 | m_ShowColliderSleep: 1 49 | m_ShowColliderContacts: 0 50 | m_ShowColliderAABB: 0 51 | m_ContactArrowScale: 0.2 52 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 53 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 54 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 55 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 56 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 57 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 16 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_DepthNormals: 17 | m_Mode: 1 18 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 19 | m_MotionVectors: 20 | m_Mode: 1 21 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 22 | m_LightHalo: 23 | m_Mode: 1 24 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LensFlare: 26 | m_Mode: 1 27 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 28 | m_VideoShadersIncludeMode: 2 29 | m_AlwaysIncludedShaders: 30 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 31 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 32 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 36 | m_PreloadedShaders: [] 37 | m_PreloadShadersBatchTimeLimit: -1 38 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} 39 | m_CustomRenderPipeline: {fileID: 11400000, guid: 83679e271489d40cdbb7a842e3778924, type: 2} 40 | m_TransparencySortMode: 0 41 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 42 | m_DefaultRenderingPath: 1 43 | m_DefaultMobileRenderingPath: 1 44 | m_TierSettings: [] 45 | m_LightmapStripping: 0 46 | m_FogStripping: 0 47 | m_InstancingStripping: 0 48 | m_BrgStripping: 0 49 | m_LightmapKeepPlain: 1 50 | m_LightmapKeepDirCombined: 1 51 | m_LightmapKeepDynamicPlain: 1 52 | m_LightmapKeepDynamicDirCombined: 1 53 | m_LightmapKeepShadowMask: 1 54 | m_LightmapKeepSubtractive: 1 55 | m_FogKeepLinear: 1 56 | m_FogKeepExp: 1 57 | m_FogKeepExp2: 1 58 | m_AlbedoSwatchInfos: [] 59 | m_RenderPipelineGlobalSettingsMap: 60 | UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 6a7c36df915ca4fc78315a53dc1be26a, type: 2} 61 | m_LightsUseLinearIntensity: 0 62 | m_LightsUseColorTemperature: 1 63 | m_LogWhenShaderIsCompiled: 0 64 | m_LightProbeOutsideHullStrategy: 0 65 | m_CameraRelativeLightCulling: 0 66 | m_CameraRelativeShadowCulling: 0 67 | -------------------------------------------------------------------------------- /Assets/UniversalRPAsset_Renderer.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-3274392019775982248 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: f62c9c65cf3354c93be831c8bc075510, type: 3} 13 | m_Name: ScreenSpaceAmbientOcclusion 14 | m_EditorClassIdentifier: 15 | m_Active: 0 16 | m_Settings: 17 | AOMethod: 0 18 | Downsample: 0 19 | AfterOpaque: 0 20 | Source: 1 21 | NormalSamples: 1 22 | Intensity: 3 23 | DirectLightingStrength: 0.25 24 | Radius: 0.05 25 | Samples: 1 26 | BlurQuality: 0 27 | Falloff: 100 28 | SampleCount: -1 29 | --- !u!114 &11400000 30 | MonoBehaviour: 31 | m_ObjectHideFlags: 0 32 | m_CorrespondingSourceObject: {fileID: 0} 33 | m_PrefabInstance: {fileID: 0} 34 | m_PrefabAsset: {fileID: 0} 35 | m_GameObject: {fileID: 0} 36 | m_Enabled: 1 37 | m_EditorHideFlags: 0 38 | m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} 39 | m_Name: UniversalRPAsset_Renderer 40 | m_EditorClassIdentifier: 41 | debugShaders: 42 | debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, type: 3} 43 | hdrDebugViewPS: {fileID: 4800000, guid: 573620ae32aec764abd4d728906d2587, type: 3} 44 | probeVolumeSamplingDebugComputeShader: {fileID: 7200000, guid: 53626a513ea68ce47b59dc1299fe3959, type: 3} 45 | probeVolumeResources: 46 | probeVolumeDebugShader: {fileID: 0} 47 | probeVolumeFragmentationDebugShader: {fileID: 0} 48 | probeVolumeOffsetDebugShader: {fileID: 0} 49 | probeVolumeSamplingDebugShader: {fileID: 0} 50 | probeSamplingDebugMesh: {fileID: 0} 51 | probeSamplingDebugTexture: {fileID: 0} 52 | probeVolumeBlendStatesCS: {fileID: 0} 53 | m_RendererFeatures: 54 | - {fileID: 6583633600095166807} 55 | - {fileID: -3274392019775982248} 56 | m_RendererFeatureMap: 57a1ffb0e0c35d5b58f5e075ce058fd2 57 | m_UseNativeRenderPass: 0 58 | xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} 59 | postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} 60 | m_AssetVersion: 2 61 | m_OpaqueLayerMask: 62 | serializedVersion: 2 63 | m_Bits: 4294967295 64 | m_TransparentLayerMask: 65 | serializedVersion: 2 66 | m_Bits: 4294967295 67 | m_DefaultStencilState: 68 | overrideStencilState: 0 69 | stencilReference: 0 70 | stencilCompareFunction: 8 71 | passOperation: 2 72 | failOperation: 0 73 | zFailOperation: 0 74 | m_ShadowTransparentReceive: 1 75 | m_RenderingMode: 0 76 | m_DepthPrimingMode: 0 77 | m_CopyDepthMode: 0 78 | m_DepthAttachmentFormat: 0 79 | m_DepthTextureFormat: 0 80 | m_AccurateGbufferNormals: 0 81 | m_IntermediateTextureMode: 1 82 | --- !u!114 &6583633600095166807 83 | MonoBehaviour: 84 | m_ObjectHideFlags: 0 85 | m_CorrespondingSourceObject: {fileID: 0} 86 | m_PrefabInstance: {fileID: 0} 87 | m_PrefabAsset: {fileID: 0} 88 | m_GameObject: {fileID: 0} 89 | m_Enabled: 1 90 | m_EditorHideFlags: 0 91 | m_Script: {fileID: 11500000, guid: 7e99f6d4129ba46c59df7111bd727f5a, type: 3} 92 | m_Name: ScreenSpaceReflectionFeature 93 | m_EditorClassIdentifier: 94 | m_Active: 1 95 | TracingMaterial: {fileID: 2100000, guid: e24416b5f10a34e60b51e0dd43f43cb2, type: 2} 96 | PostProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} 97 | -------------------------------------------------------------------------------- /Assets/SampleAssets/empty_workshop_1k.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0064a6ba51ddf429b9723cf20134a532 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 1 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 2 38 | aniso: 1 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 0 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 0 56 | spriteTessellationDetail: -1 57 | textureType: 0 58 | textureShape: 2 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 2048 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: Server 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | physicsShape: [] 114 | bones: [] 115 | spriteID: 116 | internalID: 0 117 | vertices: [] 118 | indices: 119 | edges: [] 120 | weights: [] 121 | secondaryTextures: [] 122 | nameFileIdTable: {} 123 | mipmapLimitGroupName: 124 | pSDRemoveMatte: 0 125 | userData: 126 | assetBundleName: 127 | assetBundleVariant: 128 | -------------------------------------------------------------------------------- /Assets/TestScene/ReflectionProbe-0.exr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e125481345f443d7aed9a5a883346fe 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 13 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 1 32 | seamlessCubemap: 1 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 2 38 | aniso: 0 39 | mipBias: 0 40 | wrapU: 1 41 | wrapV: 1 42 | wrapW: 1 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 0 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 0 56 | spriteTessellationDetail: -1 57 | textureType: 0 58 | textureShape: 2 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 4 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 2048 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 100 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 4 84 | buildTarget: Standalone 85 | maxTextureSize: 2048 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 4 97 | buildTarget: Android 98 | maxTextureSize: 2048 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | spriteSheet: 110 | serializedVersion: 2 111 | sprites: [] 112 | outline: [] 113 | customData: 114 | physicsShape: [] 115 | bones: [] 116 | spriteID: 117 | internalID: 0 118 | vertices: [] 119 | indices: 120 | edges: [] 121 | weights: [] 122 | secondaryTextures: [] 123 | spriteCustomMetadata: 124 | entries: [] 125 | nameFileIdTable: {} 126 | mipmapLimitGroupName: 127 | pSDRemoveMatte: 0 128 | userData: 129 | assetBundleName: 130 | assetBundleVariant: 131 | -------------------------------------------------------------------------------- /ProjectSettings/SceneTemplateSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "templatePinStates": [], 3 | "dependencyTypeInfos": [ 4 | { 5 | "userAdded": false, 6 | "type": "UnityEngine.AnimationClip", 7 | "defaultInstantiationMode": 0 8 | }, 9 | { 10 | "userAdded": false, 11 | "type": "UnityEditor.Animations.AnimatorController", 12 | "defaultInstantiationMode": 0 13 | }, 14 | { 15 | "userAdded": false, 16 | "type": "UnityEngine.AnimatorOverrideController", 17 | "defaultInstantiationMode": 0 18 | }, 19 | { 20 | "userAdded": false, 21 | "type": "UnityEditor.Audio.AudioMixerController", 22 | "defaultInstantiationMode": 0 23 | }, 24 | { 25 | "userAdded": false, 26 | "type": "UnityEngine.ComputeShader", 27 | "defaultInstantiationMode": 1 28 | }, 29 | { 30 | "userAdded": false, 31 | "type": "UnityEngine.Cubemap", 32 | "defaultInstantiationMode": 0 33 | }, 34 | { 35 | "userAdded": false, 36 | "type": "UnityEngine.GameObject", 37 | "defaultInstantiationMode": 0 38 | }, 39 | { 40 | "userAdded": false, 41 | "type": "UnityEditor.LightingDataAsset", 42 | "defaultInstantiationMode": 0 43 | }, 44 | { 45 | "userAdded": false, 46 | "type": "UnityEngine.LightingSettings", 47 | "defaultInstantiationMode": 0 48 | }, 49 | { 50 | "userAdded": false, 51 | "type": "UnityEngine.Material", 52 | "defaultInstantiationMode": 0 53 | }, 54 | { 55 | "userAdded": false, 56 | "type": "UnityEditor.MonoScript", 57 | "defaultInstantiationMode": 1 58 | }, 59 | { 60 | "userAdded": false, 61 | "type": "UnityEngine.PhysicMaterial", 62 | "defaultInstantiationMode": 0 63 | }, 64 | { 65 | "userAdded": false, 66 | "type": "UnityEngine.PhysicsMaterial", 67 | "defaultInstantiationMode": 0 68 | }, 69 | { 70 | "userAdded": false, 71 | "type": "UnityEngine.PhysicsMaterial2D", 72 | "defaultInstantiationMode": 0 73 | }, 74 | { 75 | "userAdded": false, 76 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", 77 | "defaultInstantiationMode": 0 78 | }, 79 | { 80 | "userAdded": false, 81 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", 82 | "defaultInstantiationMode": 0 83 | }, 84 | { 85 | "userAdded": false, 86 | "type": "UnityEngine.Rendering.VolumeProfile", 87 | "defaultInstantiationMode": 0 88 | }, 89 | { 90 | "userAdded": false, 91 | "type": "UnityEditor.SceneAsset", 92 | "defaultInstantiationMode": 1 93 | }, 94 | { 95 | "userAdded": false, 96 | "type": "UnityEngine.Shader", 97 | "defaultInstantiationMode": 1 98 | }, 99 | { 100 | "userAdded": false, 101 | "type": "UnityEngine.ShaderVariantCollection", 102 | "defaultInstantiationMode": 1 103 | }, 104 | { 105 | "userAdded": false, 106 | "type": "UnityEngine.Texture", 107 | "defaultInstantiationMode": 0 108 | }, 109 | { 110 | "userAdded": false, 111 | "type": "UnityEngine.Texture2D", 112 | "defaultInstantiationMode": 0 113 | }, 114 | { 115 | "userAdded": false, 116 | "type": "UnityEngine.Timeline.TimelineAsset", 117 | "defaultInstantiationMode": 0 118 | } 119 | ], 120 | "defaultDependencyTypeInfo": { 121 | "userAdded": false, 122 | "type": "", 123 | "defaultInstantiationMode": 1 124 | }, 125 | "newSceneOverride": 0 126 | } -------------------------------------------------------------------------------- /Assets/SampleAssets/Checker.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Checker 11 | m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: [] 15 | m_InvalidKeywords: [] 16 | m_LightmapFlags: 4 17 | m_EnableInstancingVariants: 0 18 | m_DoubleSidedGI: 0 19 | m_CustomRenderQueue: -1 20 | stringTagMap: 21 | RenderType: Opaque 22 | disabledShaderPasses: 23 | - MOTIONVECTORS 24 | m_LockedProperties: 25 | m_SavedProperties: 26 | serializedVersion: 3 27 | m_TexEnvs: 28 | - _BaseMap: 29 | m_Texture: {fileID: 10309, guid: 0000000000000000f000000000000000, type: 0} 30 | m_Scale: {x: 5, y: 5} 31 | m_Offset: {x: 0, y: 0} 32 | - _BumpMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _DetailAlbedoMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _DetailMask: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _DetailNormalMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _EmissionMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _MainTex: 53 | m_Texture: {fileID: 10309, guid: 0000000000000000f000000000000000, type: 0} 54 | m_Scale: {x: 5, y: 5} 55 | m_Offset: {x: 0, y: 0} 56 | - _MetallicGlossMap: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - _OcclusionMap: 61 | m_Texture: {fileID: 0} 62 | m_Scale: {x: 1, y: 1} 63 | m_Offset: {x: 0, y: 0} 64 | - _ParallaxMap: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | - _SpecGlossMap: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | - unity_Lightmaps: 73 | m_Texture: {fileID: 0} 74 | m_Scale: {x: 1, y: 1} 75 | m_Offset: {x: 0, y: 0} 76 | - unity_LightmapsInd: 77 | m_Texture: {fileID: 0} 78 | m_Scale: {x: 1, y: 1} 79 | m_Offset: {x: 0, y: 0} 80 | - unity_ShadowMasks: 81 | m_Texture: {fileID: 0} 82 | m_Scale: {x: 1, y: 1} 83 | m_Offset: {x: 0, y: 0} 84 | m_Ints: [] 85 | m_Floats: 86 | - _AlphaClip: 0 87 | - _AlphaToMask: 0 88 | - _Blend: 0 89 | - _BlendModePreserveSpecular: 1 90 | - _BumpScale: 1 91 | - _ClearCoatMask: 0 92 | - _ClearCoatSmoothness: 0 93 | - _Cull: 2 94 | - _Cutoff: 0.5 95 | - _DetailAlbedoMapScale: 1 96 | - _DetailNormalMapScale: 1 97 | - _DstBlend: 0 98 | - _DstBlendAlpha: 0 99 | - _EnvironmentReflections: 1 100 | - _GlossMapScale: 0 101 | - _Glossiness: 0 102 | - _GlossyReflections: 0 103 | - _Metallic: 0 104 | - _OcclusionStrength: 1 105 | - _Parallax: 0.005 106 | - _QueueOffset: 0 107 | - _ReceiveShadows: 1 108 | - _Smoothness: 0 109 | - _SmoothnessTextureChannel: 0 110 | - _SpecularHighlights: 1 111 | - _SrcBlend: 1 112 | - _SrcBlendAlpha: 1 113 | - _Surface: 0 114 | - _WorkflowMode: 1 115 | - _ZWrite: 1 116 | m_Colors: 117 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 118 | - _Color: {r: 1, g: 1, b: 1, a: 1} 119 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 120 | - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 121 | m_BuildTextureStacks: [] 122 | m_AllowLocking: 1 123 | --- !u!114 &2228319528245144337 124 | MonoBehaviour: 125 | m_ObjectHideFlags: 11 126 | m_CorrespondingSourceObject: {fileID: 0} 127 | m_PrefabInstance: {fileID: 0} 128 | m_PrefabAsset: {fileID: 0} 129 | m_GameObject: {fileID: 0} 130 | m_Enabled: 1 131 | m_EditorHideFlags: 0 132 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 133 | m_Name: 134 | m_EditorClassIdentifier: 135 | version: 9 136 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Reflective.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Reflective 11 | m_Shader: {fileID: 4800000, guid: 6d27c54e500d4c019b4dd3ee4674bb4e, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: 15 | - _METALLICSPECGLOSSMAP 16 | m_InvalidKeywords: [] 17 | m_LightmapFlags: 4 18 | m_EnableInstancingVariants: 0 19 | m_DoubleSidedGI: 0 20 | m_CustomRenderQueue: -1 21 | stringTagMap: 22 | RenderType: Opaque 23 | disabledShaderPasses: [] 24 | m_LockedProperties: 25 | m_SavedProperties: 26 | serializedVersion: 3 27 | m_TexEnvs: 28 | - _BaseMap: 29 | m_Texture: {fileID: 10309, guid: 0000000000000000f000000000000000, type: 0} 30 | m_Scale: {x: 5, y: 5} 31 | m_Offset: {x: 0, y: 0} 32 | - _BumpMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _DetailAlbedoMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _DetailMask: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _DetailNormalMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _EmissionMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _MainTex: 53 | m_Texture: {fileID: 10309, guid: 0000000000000000f000000000000000, type: 0} 54 | m_Scale: {x: 5, y: 5} 55 | m_Offset: {x: 0, y: 0} 56 | - _MetallicGlossMap: 57 | m_Texture: {fileID: 10305, guid: 0000000000000000f000000000000000, type: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - _OcclusionMap: 61 | m_Texture: {fileID: 0} 62 | m_Scale: {x: 1, y: 1} 63 | m_Offset: {x: 0, y: 0} 64 | - _ParallaxMap: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | - _SpecGlossMap: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | - unity_Lightmaps: 73 | m_Texture: {fileID: 0} 74 | m_Scale: {x: 1, y: 1} 75 | m_Offset: {x: 0, y: 0} 76 | - unity_LightmapsInd: 77 | m_Texture: {fileID: 0} 78 | m_Scale: {x: 1, y: 1} 79 | m_Offset: {x: 0, y: 0} 80 | - unity_ShadowMasks: 81 | m_Texture: {fileID: 0} 82 | m_Scale: {x: 1, y: 1} 83 | m_Offset: {x: 0, y: 0} 84 | m_Ints: [] 85 | m_Floats: 86 | - _AlphaClip: 0 87 | - _AlphaToMask: 0 88 | - _Blend: 0 89 | - _BlendModePreserveSpecular: 1 90 | - _BumpScale: 1 91 | - _ClearCoatMask: 0 92 | - _ClearCoatSmoothness: 0 93 | - _Cull: 2 94 | - _Cutoff: 0.5 95 | - _DetailAlbedoMapScale: 1 96 | - _DetailNormalMapScale: 1 97 | - _DstBlend: 0 98 | - _DstBlendAlpha: 0 99 | - _EnvironmentReflections: 1 100 | - _GlossMapScale: 0 101 | - _Glossiness: 0 102 | - _GlossyReflections: 0 103 | - _Metallic: 1 104 | - _OcclusionStrength: 1 105 | - _Parallax: 0.005 106 | - _QueueOffset: 0 107 | - _ReceiveShadows: 1 108 | - _Smoothness: 0.866 109 | - _SmoothnessTextureChannel: 0 110 | - _SpecularHighlights: 1 111 | - _SrcBlend: 1 112 | - _SrcBlendAlpha: 1 113 | - _Surface: 0 114 | - _WorkflowMode: 1 115 | - _ZWrite: 1 116 | m_Colors: 117 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 118 | - _Color: {r: 1, g: 1, b: 1, a: 1} 119 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 120 | - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 121 | m_BuildTextureStacks: [] 122 | --- !u!114 &3448038001794203267 123 | MonoBehaviour: 124 | m_ObjectHideFlags: 11 125 | m_CorrespondingSourceObject: {fileID: 0} 126 | m_PrefabInstance: {fileID: 0} 127 | m_PrefabAsset: {fileID: 0} 128 | m_GameObject: {fileID: 0} 129 | m_Enabled: 1 130 | m_EditorHideFlags: 0 131 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 132 | m_Name: 133 | m_EditorClassIdentifier: 134 | version: 7 135 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/ScreenSpaceReflectionPass.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.Rendering; 3 | using UnityEngine.Rendering.RenderGraphModule; 4 | using UnityEngine.Rendering.Universal; 5 | 6 | namespace SSR.Runtime 7 | { 8 | public class ScreenSpaceReflectionPass : ScriptableRenderPass 9 | { 10 | private readonly Material _tracingMaterial; 11 | private readonly PostProcessData _postProcessData; 12 | private int ditheringIndex = 0; 13 | 14 | public ScreenSpaceReflectionPass(Material tracingMaterial, PostProcessData postProcessData) 15 | { 16 | _tracingMaterial = tracingMaterial; 17 | _postProcessData = postProcessData; 18 | profilingSampler = new ProfilingSampler(nameof(ScreenSpaceReflectionPass)); 19 | ConfigureInput(ScriptableRenderPassInput.Depth | ScriptableRenderPassInput.Normal); 20 | } 21 | 22 | private class PassData 23 | { 24 | public TextureHandle ColorTarget; 25 | public Matrix4x4 CameraTransform; 26 | public Material Material; 27 | } 28 | 29 | public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) 30 | { 31 | var cameraData = frameData.Get(); 32 | var resourceData = frameData.Get(); 33 | var frameDesc = cameraData.cameraTargetDescriptor; 34 | 35 | ditheringIndex = PostProcessUtils.ConfigureDithering( 36 | _postProcessData, 37 | ditheringIndex, 38 | frameDesc.width, 39 | frameDesc.height, 40 | _tracingMaterial 41 | ); 42 | 43 | using var builder = renderGraph.AddUnsafePass("Tracing", out var passData); 44 | passData.ColorTarget = resourceData.activeColorTexture; 45 | 46 | passData.Material = _tracingMaterial; 47 | var transform = cameraData.camera.transform; 48 | passData.CameraTransform = Matrix4x4.TRS( 49 | transform.position + transform.forward, 50 | transform.rotation, 51 | Vector3.one * 2 52 | ); 53 | 54 | builder.AllowPassCulling(false); 55 | builder.SetRenderFunc(static (data, context) => 56 | { 57 | var cmd = CommandBufferHelpers.GetNativeCommandBuffer(context.cmd); 58 | cmd.SetRenderTarget(data.ColorTarget); 59 | cmd.DrawMesh(RenderingUtils.fullscreenMesh, data.CameraTransform, data.Material); 60 | }); 61 | } 62 | 63 | public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) 64 | { 65 | var cmd = CommandBufferPool.Get(); 66 | 67 | var camera = renderingData.cameraData.camera; 68 | ditheringIndex = PostProcessUtils.ConfigureDithering( 69 | _postProcessData, 70 | ditheringIndex, 71 | camera.pixelWidth, 72 | camera.pixelHeight, 73 | _tracingMaterial 74 | ); 75 | 76 | using (new ProfilingScope(cmd, profilingSampler)) 77 | { 78 | context.ExecuteCommandBuffer(cmd); 79 | cmd.Clear(); 80 | 81 | var transform = camera.transform; 82 | Matrix4x4 quad = Matrix4x4.TRS( 83 | transform.position + transform.forward, 84 | transform.rotation, 85 | Vector3.one * 2 86 | ); 87 | cmd.DrawMesh(RenderingUtils.fullscreenMesh, quad, _tracingMaterial); 88 | context.ExecuteCommandBuffer(cmd); 89 | cmd.Clear(); 90 | // Blitter.BlitTexture( 91 | // cmd, 92 | // colorAttachmentHandle.nameID, 93 | // renderingData.cameraData.renderer.cameraColorTargetHandle.nameID, 94 | // _tracingMaterial, 95 | // 0 96 | // ); 97 | } 98 | 99 | context.ExecuteCommandBuffer(cmd); 100 | cmd.Clear(); 101 | 102 | CommandBufferPool.Release(cmd); 103 | } 104 | } 105 | } -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Ground_wet_003 11 | m_Shader: {fileID: 4800000, guid: 6d27c54e500d4c019b4dd3ee4674bb4e, type: 3} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: 15 | - _METALLICSPECGLOSSMAP 16 | - _NORMALMAP 17 | - _PARALLAXMAP 18 | m_InvalidKeywords: [] 19 | m_LightmapFlags: 4 20 | m_EnableInstancingVariants: 1 21 | m_DoubleSidedGI: 0 22 | m_CustomRenderQueue: -1 23 | stringTagMap: 24 | RenderType: Opaque 25 | disabledShaderPasses: [] 26 | m_LockedProperties: 27 | m_SavedProperties: 28 | serializedVersion: 3 29 | m_TexEnvs: 30 | - _BaseMap: 31 | m_Texture: {fileID: 2800000, guid: bb164877f40344ea68c14361649529dd, type: 3} 32 | m_Scale: {x: 3, y: 3} 33 | m_Offset: {x: 0, y: 0} 34 | - _BumpMap: 35 | m_Texture: {fileID: 2800000, guid: c2030d49c6ffe4c47aa403da5b694e64, type: 3} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailAlbedoMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _DetailMask: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _DetailNormalMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _EmissionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _MainTex: 55 | m_Texture: {fileID: 2800000, guid: bb164877f40344ea68c14361649529dd, type: 3} 56 | m_Scale: {x: 3, y: 3} 57 | m_Offset: {x: 0, y: 0} 58 | - _MetallicGlossMap: 59 | m_Texture: {fileID: 2800000, guid: 321e6f61938984fc79c4cb01fb4efe67, type: 3} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _OcclusionMap: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - _ParallaxMap: 67 | m_Texture: {fileID: 2800000, guid: d4b57528f10e44ef09bccc7ce97a6522, type: 3} 68 | m_Scale: {x: 1, y: 1} 69 | m_Offset: {x: 0, y: 0} 70 | - _SpecGlossMap: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | - unity_Lightmaps: 75 | m_Texture: {fileID: 0} 76 | m_Scale: {x: 1, y: 1} 77 | m_Offset: {x: 0, y: 0} 78 | - unity_LightmapsInd: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | - unity_ShadowMasks: 83 | m_Texture: {fileID: 0} 84 | m_Scale: {x: 1, y: 1} 85 | m_Offset: {x: 0, y: 0} 86 | m_Ints: [] 87 | m_Floats: 88 | - _AlphaClip: 0 89 | - _AlphaToMask: 0 90 | - _Blend: 0 91 | - _BlendModePreserveSpecular: 1 92 | - _BumpScale: 3 93 | - _ClearCoatMask: 0 94 | - _ClearCoatSmoothness: 0 95 | - _Cull: 2 96 | - _Cutoff: 0.5 97 | - _DetailAlbedoMapScale: 1 98 | - _DetailNormalMapScale: 1 99 | - _DstBlend: 0 100 | - _DstBlendAlpha: 0 101 | - _EnvironmentReflections: 1 102 | - _GlossMapScale: 0 103 | - _Glossiness: 0 104 | - _GlossyReflections: 0 105 | - _Metallic: 0.872 106 | - _OcclusionStrength: 1 107 | - _Parallax: 0.08 108 | - _QueueOffset: 0 109 | - _ReceiveShadows: 1 110 | - _Smoothness: 0.844 111 | - _SmoothnessTextureChannel: 0 112 | - _SpecularHighlights: 1 113 | - _SrcBlend: 1 114 | - _SrcBlendAlpha: 1 115 | - _Surface: 0 116 | - _WorkflowMode: 1 117 | - _ZWrite: 1 118 | m_Colors: 119 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 120 | - _Color: {r: 1, g: 1, b: 1, a: 1} 121 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 122 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 123 | m_BuildTextureStacks: [] 124 | --- !u!114 &5352296025859297616 125 | MonoBehaviour: 126 | m_ObjectHideFlags: 11 127 | m_CorrespondingSourceObject: {fileID: 0} 128 | m_PrefabInstance: {fileID: 0} 129 | m_PrefabAsset: {fileID: 0} 130 | m_GameObject: {fileID: 0} 131 | m_Enabled: 1 132 | m_EditorHideFlags: 0 133 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 134 | m_Name: 135 | m_EditorClassIdentifier: 136 | version: 7 137 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_basecolor.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bb164877f40344ea68c14361649529dd 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 2 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 0 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 0 56 | spriteTessellationDetail: -1 57 | textureType: 0 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 8192 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: iPhone 98 | maxTextureSize: 8192 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Android 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | ignorePlatformSupport: 0 120 | androidETC2FallbackOverride: 0 121 | forceMaximumCompressionQuality_BC6H_BC7: 0 122 | - serializedVersion: 3 123 | buildTarget: Windows Store Apps 124 | maxTextureSize: 8192 125 | resizeAlgorithm: 0 126 | textureFormat: -1 127 | textureCompression: 1 128 | compressionQuality: 50 129 | crunchedCompression: 0 130 | allowsAlphaSplitting: 0 131 | overridden: 0 132 | ignorePlatformSupport: 0 133 | androidETC2FallbackOverride: 0 134 | forceMaximumCompressionQuality_BC6H_BC7: 0 135 | - serializedVersion: 3 136 | buildTarget: Server 137 | maxTextureSize: 8192 138 | resizeAlgorithm: 0 139 | textureFormat: -1 140 | textureCompression: 1 141 | compressionQuality: 50 142 | crunchedCompression: 0 143 | allowsAlphaSplitting: 0 144 | overridden: 0 145 | ignorePlatformSupport: 0 146 | androidETC2FallbackOverride: 0 147 | forceMaximumCompressionQuality_BC6H_BC7: 0 148 | spriteSheet: 149 | serializedVersion: 2 150 | sprites: [] 151 | outline: [] 152 | physicsShape: [] 153 | bones: [] 154 | spriteID: 155 | internalID: 0 156 | vertices: [] 157 | indices: 158 | edges: [] 159 | weights: [] 160 | secondaryTextures: [] 161 | nameFileIdTable: {} 162 | mipmapLimitGroupName: 163 | pSDRemoveMatte: 0 164 | userData: 165 | assetBundleName: 166 | assetBundleVariant: 167 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_height.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: d4b57528f10e44ef09bccc7ce97a6522 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 2 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 0 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 0 56 | spriteTessellationDetail: -1 57 | textureType: 0 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 8192 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: iPhone 98 | maxTextureSize: 8192 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Android 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | ignorePlatformSupport: 0 120 | androidETC2FallbackOverride: 0 121 | forceMaximumCompressionQuality_BC6H_BC7: 0 122 | - serializedVersion: 3 123 | buildTarget: Windows Store Apps 124 | maxTextureSize: 8192 125 | resizeAlgorithm: 0 126 | textureFormat: -1 127 | textureCompression: 1 128 | compressionQuality: 50 129 | crunchedCompression: 0 130 | allowsAlphaSplitting: 0 131 | overridden: 0 132 | ignorePlatformSupport: 0 133 | androidETC2FallbackOverride: 0 134 | forceMaximumCompressionQuality_BC6H_BC7: 0 135 | - serializedVersion: 3 136 | buildTarget: Server 137 | maxTextureSize: 8192 138 | resizeAlgorithm: 0 139 | textureFormat: -1 140 | textureCompression: 1 141 | compressionQuality: 50 142 | crunchedCompression: 0 143 | allowsAlphaSplitting: 0 144 | overridden: 0 145 | ignorePlatformSupport: 0 146 | androidETC2FallbackOverride: 0 147 | forceMaximumCompressionQuality_BC6H_BC7: 0 148 | spriteSheet: 149 | serializedVersion: 2 150 | sprites: [] 151 | outline: [] 152 | physicsShape: [] 153 | bones: [] 154 | spriteID: 155 | internalID: 0 156 | vertices: [] 157 | indices: 158 | edges: [] 159 | weights: [] 160 | secondaryTextures: [] 161 | nameFileIdTable: {} 162 | mipmapLimitGroupName: 163 | pSDRemoveMatte: 0 164 | userData: 165 | assetBundleName: 166 | assetBundleVariant: 167 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_normal.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c2030d49c6ffe4c47aa403da5b694e64 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 0 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 2 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 0 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 0 56 | spriteTessellationDetail: -1 57 | textureType: 1 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 8192 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: iPhone 98 | maxTextureSize: 8192 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Android 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | ignorePlatformSupport: 0 120 | androidETC2FallbackOverride: 0 121 | forceMaximumCompressionQuality_BC6H_BC7: 0 122 | - serializedVersion: 3 123 | buildTarget: Windows Store Apps 124 | maxTextureSize: 8192 125 | resizeAlgorithm: 0 126 | textureFormat: -1 127 | textureCompression: 1 128 | compressionQuality: 50 129 | crunchedCompression: 0 130 | allowsAlphaSplitting: 0 131 | overridden: 0 132 | ignorePlatformSupport: 0 133 | androidETC2FallbackOverride: 0 134 | forceMaximumCompressionQuality_BC6H_BC7: 0 135 | - serializedVersion: 3 136 | buildTarget: Server 137 | maxTextureSize: 8192 138 | resizeAlgorithm: 0 139 | textureFormat: -1 140 | textureCompression: 1 141 | compressionQuality: 50 142 | crunchedCompression: 0 143 | allowsAlphaSplitting: 0 144 | overridden: 0 145 | ignorePlatformSupport: 0 146 | androidETC2FallbackOverride: 0 147 | forceMaximumCompressionQuality_BC6H_BC7: 0 148 | spriteSheet: 149 | serializedVersion: 2 150 | sprites: [] 151 | outline: [] 152 | physicsShape: [] 153 | bones: [] 154 | spriteID: 155 | internalID: 0 156 | vertices: [] 157 | indices: 158 | edges: [] 159 | weights: [] 160 | secondaryTextures: [] 161 | nameFileIdTable: {} 162 | mipmapLimitGroupName: 163 | pSDRemoveMatte: 0 164 | userData: 165 | assetBundleName: 166 | assetBundleVariant: 167 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_roughness 1.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 321e6f61938984fc79c4cb01fb4efe67 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 2 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 0 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 2 55 | alphaIsTransparency: 0 56 | spriteTessellationDetail: -1 57 | textureType: 0 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 526336 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 8192 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: iPhone 98 | maxTextureSize: 8192 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Android 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | ignorePlatformSupport: 0 120 | androidETC2FallbackOverride: 0 121 | forceMaximumCompressionQuality_BC6H_BC7: 0 122 | - serializedVersion: 3 123 | buildTarget: Windows Store Apps 124 | maxTextureSize: 8192 125 | resizeAlgorithm: 0 126 | textureFormat: -1 127 | textureCompression: 1 128 | compressionQuality: 50 129 | crunchedCompression: 0 130 | allowsAlphaSplitting: 0 131 | overridden: 0 132 | ignorePlatformSupport: 0 133 | androidETC2FallbackOverride: 0 134 | forceMaximumCompressionQuality_BC6H_BC7: 0 135 | - serializedVersion: 3 136 | buildTarget: Server 137 | maxTextureSize: 8192 138 | resizeAlgorithm: 0 139 | textureFormat: -1 140 | textureCompression: 1 141 | compressionQuality: 50 142 | crunchedCompression: 0 143 | allowsAlphaSplitting: 0 144 | overridden: 0 145 | ignorePlatformSupport: 0 146 | androidETC2FallbackOverride: 0 147 | forceMaximumCompressionQuality_BC6H_BC7: 0 148 | spriteSheet: 149 | serializedVersion: 2 150 | sprites: [] 151 | outline: [] 152 | physicsShape: [] 153 | bones: [] 154 | spriteID: 155 | internalID: 0 156 | vertices: [] 157 | indices: 158 | edges: [] 159 | weights: [] 160 | secondaryTextures: [] 161 | nameFileIdTable: {} 162 | mipmapLimitGroupName: 163 | pSDRemoveMatte: 0 164 | userData: 165 | assetBundleName: 166 | assetBundleVariant: 167 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_roughness.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b4056be7395254ad99d1081abc1e83d3 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 2 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 0 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 2 55 | alphaIsTransparency: 0 56 | spriteTessellationDetail: -1 57 | textureType: 0 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 67635204 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 8192 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: iPhone 98 | maxTextureSize: 8192 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Android 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | ignorePlatformSupport: 0 120 | androidETC2FallbackOverride: 0 121 | forceMaximumCompressionQuality_BC6H_BC7: 0 122 | - serializedVersion: 3 123 | buildTarget: Windows Store Apps 124 | maxTextureSize: 8192 125 | resizeAlgorithm: 0 126 | textureFormat: -1 127 | textureCompression: 1 128 | compressionQuality: 50 129 | crunchedCompression: 0 130 | allowsAlphaSplitting: 0 131 | overridden: 0 132 | ignorePlatformSupport: 0 133 | androidETC2FallbackOverride: 0 134 | forceMaximumCompressionQuality_BC6H_BC7: 0 135 | - serializedVersion: 3 136 | buildTarget: Server 137 | maxTextureSize: 8192 138 | resizeAlgorithm: 0 139 | textureFormat: -1 140 | textureCompression: 1 141 | compressionQuality: 50 142 | crunchedCompression: 0 143 | allowsAlphaSplitting: 0 144 | overridden: 0 145 | ignorePlatformSupport: 0 146 | androidETC2FallbackOverride: 0 147 | forceMaximumCompressionQuality_BC6H_BC7: 0 148 | spriteSheet: 149 | serializedVersion: 2 150 | sprites: [] 151 | outline: [] 152 | physicsShape: [] 153 | bones: [] 154 | spriteID: 155 | internalID: 0 156 | vertices: [] 157 | indices: 158 | edges: [] 159 | weights: [] 160 | secondaryTextures: [] 161 | nameFileIdTable: {} 162 | mipmapLimitGroupName: 163 | pSDRemoveMatte: 0 164 | userData: 165 | assetBundleName: 166 | assetBundleVariant: 167 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Ground_wet_003_SD/Ground_wet_003_ambientOcclusion.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7cb81c52a16424f0397c410eaa0e1d5a 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 12 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | flipGreenChannel: 0 24 | isReadable: 0 25 | streamingMipmaps: 0 26 | streamingMipmapsPriority: 0 27 | vTOnly: 0 28 | ignoreMipmapLimit: 0 29 | grayScaleToAlpha: 0 30 | generateCubemap: 6 31 | cubemapConvolution: 0 32 | seamlessCubemap: 0 33 | textureFormat: 1 34 | maxTextureSize: 2048 35 | textureSettings: 36 | serializedVersion: 2 37 | filterMode: 1 38 | aniso: 2 39 | mipBias: 0 40 | wrapU: 0 41 | wrapV: 0 42 | wrapW: 0 43 | nPOTScale: 1 44 | lightmap: 0 45 | compressionQuality: 50 46 | spriteMode: 0 47 | spriteExtrude: 1 48 | spriteMeshType: 1 49 | alignment: 0 50 | spritePivot: {x: 0.5, y: 0.5} 51 | spritePixelsToUnits: 100 52 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 53 | spriteGenerateFallbackPhysicsShape: 1 54 | alphaUsage: 1 55 | alphaIsTransparency: 0 56 | spriteTessellationDetail: -1 57 | textureType: 0 58 | textureShape: 1 59 | singleChannelComponent: 0 60 | flipbookRows: 1 61 | flipbookColumns: 1 62 | maxTextureSizeSet: 0 63 | compressionQualitySet: 0 64 | textureFormatSet: 0 65 | ignorePngGamma: 0 66 | applyGammaDecoding: 0 67 | swizzle: 50462976 68 | cookieLightType: 0 69 | platformSettings: 70 | - serializedVersion: 3 71 | buildTarget: DefaultTexturePlatform 72 | maxTextureSize: 8192 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | ignorePlatformSupport: 0 81 | androidETC2FallbackOverride: 0 82 | forceMaximumCompressionQuality_BC6H_BC7: 0 83 | - serializedVersion: 3 84 | buildTarget: Standalone 85 | maxTextureSize: 8192 86 | resizeAlgorithm: 0 87 | textureFormat: -1 88 | textureCompression: 1 89 | compressionQuality: 50 90 | crunchedCompression: 0 91 | allowsAlphaSplitting: 0 92 | overridden: 0 93 | ignorePlatformSupport: 0 94 | androidETC2FallbackOverride: 0 95 | forceMaximumCompressionQuality_BC6H_BC7: 0 96 | - serializedVersion: 3 97 | buildTarget: iPhone 98 | maxTextureSize: 8192 99 | resizeAlgorithm: 0 100 | textureFormat: -1 101 | textureCompression: 1 102 | compressionQuality: 50 103 | crunchedCompression: 0 104 | allowsAlphaSplitting: 0 105 | overridden: 0 106 | ignorePlatformSupport: 0 107 | androidETC2FallbackOverride: 0 108 | forceMaximumCompressionQuality_BC6H_BC7: 0 109 | - serializedVersion: 3 110 | buildTarget: Android 111 | maxTextureSize: 8192 112 | resizeAlgorithm: 0 113 | textureFormat: -1 114 | textureCompression: 1 115 | compressionQuality: 50 116 | crunchedCompression: 0 117 | allowsAlphaSplitting: 0 118 | overridden: 0 119 | ignorePlatformSupport: 0 120 | androidETC2FallbackOverride: 0 121 | forceMaximumCompressionQuality_BC6H_BC7: 0 122 | - serializedVersion: 3 123 | buildTarget: Windows Store Apps 124 | maxTextureSize: 8192 125 | resizeAlgorithm: 0 126 | textureFormat: -1 127 | textureCompression: 1 128 | compressionQuality: 50 129 | crunchedCompression: 0 130 | allowsAlphaSplitting: 0 131 | overridden: 0 132 | ignorePlatformSupport: 0 133 | androidETC2FallbackOverride: 0 134 | forceMaximumCompressionQuality_BC6H_BC7: 0 135 | - serializedVersion: 3 136 | buildTarget: Server 137 | maxTextureSize: 8192 138 | resizeAlgorithm: 0 139 | textureFormat: -1 140 | textureCompression: 1 141 | compressionQuality: 50 142 | crunchedCompression: 0 143 | allowsAlphaSplitting: 0 144 | overridden: 0 145 | ignorePlatformSupport: 0 146 | androidETC2FallbackOverride: 0 147 | forceMaximumCompressionQuality_BC6H_BC7: 0 148 | spriteSheet: 149 | serializedVersion: 2 150 | sprites: [] 151 | outline: [] 152 | physicsShape: [] 153 | bones: [] 154 | spriteID: 155 | internalID: 0 156 | vertices: [] 157 | indices: 158 | edges: [] 159 | weights: [] 160 | secondaryTextures: [] 161 | nameFileIdTable: {} 162 | mipmapLimitGroupName: 163 | pSDRemoveMatte: 0 164 | userData: 165 | assetBundleName: 166 | assetBundleVariant: 167 | -------------------------------------------------------------------------------- /Assets/UniversalRPAsset.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: bf2edee5c58d82540a51f03df9d42094, type: 3} 13 | m_Name: UniversalRPAsset 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 12 16 | k_AssetPreviousVersion: 12 17 | m_RendererType: 1 18 | m_RendererData: {fileID: 0} 19 | m_RendererDataList: 20 | - {fileID: 11400000, guid: 1c9957089aa634d888b92da87de6f909, type: 2} 21 | m_DefaultRendererIndex: 0 22 | m_RequireDepthTexture: 1 23 | m_RequireOpaqueTexture: 1 24 | m_OpaqueDownsampling: 1 25 | m_SupportsTerrainHoles: 1 26 | m_SupportsHDR: 1 27 | m_HDRColorBufferPrecision: 0 28 | m_MSAA: 1 29 | m_RenderScale: 1 30 | m_UpscalingFilter: 0 31 | m_FsrOverrideSharpness: 0 32 | m_FsrSharpness: 0.92 33 | m_EnableLODCrossFade: 1 34 | m_LODCrossFadeDitheringType: 1 35 | m_ShEvalMode: 0 36 | m_LightProbeSystem: 0 37 | m_ProbeVolumeMemoryBudget: 1024 38 | m_ProbeVolumeBlendingMemoryBudget: 256 39 | m_SupportProbeVolumeGPUStreaming: 0 40 | m_SupportProbeVolumeDiskStreaming: 0 41 | m_SupportProbeVolumeScenarios: 0 42 | m_SupportProbeVolumeScenarioBlending: 0 43 | m_ProbeVolumeSHBands: 1 44 | m_MainLightRenderingMode: 1 45 | m_MainLightShadowsSupported: 1 46 | m_MainLightShadowmapResolution: 2048 47 | m_AdditionalLightsRenderingMode: 1 48 | m_AdditionalLightsPerObjectLimit: 4 49 | m_AdditionalLightShadowsSupported: 0 50 | m_AdditionalLightsShadowmapResolution: 2048 51 | m_AdditionalLightsShadowResolutionTierLow: 256 52 | m_AdditionalLightsShadowResolutionTierMedium: 512 53 | m_AdditionalLightsShadowResolutionTierHigh: 1024 54 | m_ReflectionProbeBlending: 0 55 | m_ReflectionProbeBoxProjection: 0 56 | m_ReflectionProbeAtlas: 1 57 | m_ShadowDistance: 50 58 | m_ShadowCascadeCount: 1 59 | m_Cascade2Split: 0.25 60 | m_Cascade3Split: {x: 0.1, y: 0.3} 61 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 62 | m_CascadeBorder: 0.2 63 | m_ShadowDepthBias: 1 64 | m_ShadowNormalBias: 1 65 | m_AnyShadowsSupported: 1 66 | m_SoftShadowsSupported: 0 67 | m_ConservativeEnclosingSphere: 1 68 | m_NumIterationsEnclosingSphere: 64 69 | m_SoftShadowQuality: 2 70 | m_AdditionalLightsCookieResolution: 2048 71 | m_AdditionalLightsCookieFormat: 3 72 | m_UseSRPBatcher: 1 73 | m_SupportsDynamicBatching: 0 74 | m_MixedLightingSupported: 1 75 | m_SupportsLightCookies: 1 76 | m_SupportsLightLayers: 0 77 | m_DebugLevel: 0 78 | m_StoreActionsOptimization: 0 79 | m_UseAdaptivePerformance: 1 80 | m_ColorGradingMode: 0 81 | m_ColorGradingLutSize: 32 82 | m_AllowPostProcessAlphaOutput: 0 83 | m_UseFastSRGBLinearConversion: 0 84 | m_SupportDataDrivenLensFlare: 1 85 | m_SupportScreenSpaceLensFlare: 1 86 | m_GPUResidentDrawerMode: 0 87 | m_SmallMeshScreenPercentage: 0 88 | m_GPUResidentDrawerEnableOcclusionCullingInCameras: 0 89 | m_ShadowType: 1 90 | m_LocalShadowsSupported: 0 91 | m_LocalShadowsAtlasResolution: 256 92 | m_MaxPixelLights: 0 93 | m_ShadowAtlasResolution: 256 94 | m_VolumeFrameworkUpdateMode: 0 95 | m_VolumeProfile: {fileID: 0} 96 | apvScenesData: 97 | obsoleteSceneBounds: 98 | m_Keys: [] 99 | m_Values: [] 100 | obsoleteHasProbeVolumes: 101 | m_Keys: [] 102 | m_Values: 103 | m_PrefilteringModeMainLightShadows: 1 104 | m_PrefilteringModeAdditionalLight: 4 105 | m_PrefilteringModeAdditionalLightShadows: 1 106 | m_PrefilterXRKeywords: 0 107 | m_PrefilteringModeForwardPlus: 1 108 | m_PrefilteringModeDeferredRendering: 1 109 | m_PrefilteringModeScreenSpaceOcclusion: 1 110 | m_PrefilterDebugKeywords: 0 111 | m_PrefilterWriteRenderingLayers: 0 112 | m_PrefilterHDROutput: 0 113 | m_PrefilterAlphaOutput: 0 114 | m_PrefilterSSAODepthNormals: 0 115 | m_PrefilterSSAOSourceDepthLow: 0 116 | m_PrefilterSSAOSourceDepthMedium: 0 117 | m_PrefilterSSAOSourceDepthHigh: 0 118 | m_PrefilterSSAOInterleaved: 0 119 | m_PrefilterSSAOBlueNoise: 0 120 | m_PrefilterSSAOSampleCountLow: 0 121 | m_PrefilterSSAOSampleCountMedium: 0 122 | m_PrefilterSSAOSampleCountHigh: 0 123 | m_PrefilterDBufferMRT1: 0 124 | m_PrefilterDBufferMRT2: 0 125 | m_PrefilterDBufferMRT3: 0 126 | m_PrefilterSoftShadowsQualityLow: 0 127 | m_PrefilterSoftShadowsQualityMedium: 0 128 | m_PrefilterSoftShadowsQualityHigh: 0 129 | m_PrefilterSoftShadows: 0 130 | m_PrefilterScreenCoord: 0 131 | m_PrefilterNativeRenderPass: 0 132 | m_PrefilterUseLegacyLightmaps: 0 133 | m_PrefilterBicubicLightmapSampling: 0 134 | m_ShaderVariantLogLevel: 0 135 | m_ShadowCascades: 0 136 | m_Textures: 137 | blueNoise64LTex: {fileID: 2800000, guid: e3d24661c1e055f45a7560c033dbb837, type: 3} 138 | bayerMatrixTex: {fileID: 2800000, guid: f9ee4ed84c1d10c49aabb9b210b0fc44, type: 3} 139 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/SpecularReflectivityPass.cs: -------------------------------------------------------------------------------- 1 | using SSR.InternalBridge; 2 | using UnityEngine; 3 | using UnityEngine.Experimental.Rendering; 4 | using UnityEngine.Rendering; 5 | using UnityEngine.Rendering.RendererUtils; 6 | using UnityEngine.Rendering.RenderGraphModule; 7 | using UnityEngine.Rendering.Universal; 8 | 9 | namespace SSR.Runtime 10 | { 11 | public class SpecularReflectivityPass : ScriptableRenderPass 12 | { 13 | private const string BufferName = "_SpecularReflectivityBuffer"; 14 | private static int BufferNameId = Shader.PropertyToID(BufferName); 15 | 16 | private const string SpecularReflectivityPassName = "SpecularReflectivity"; 17 | private RTHandle _specularBuffer; 18 | private UniversalRenderer _renderer; 19 | private FilteringSettings _filteringSettings; 20 | private ShaderTagId _shaderTagId; 21 | 22 | public SpecularReflectivityPass() 23 | { 24 | profilingSampler = new ProfilingSampler(nameof(SpecularReflectivityPass)); 25 | 26 | _filteringSettings = FilteringSettings.defaultValue; 27 | _filteringSettings.renderQueueRange = RenderQueueRange.opaque; 28 | 29 | _shaderTagId = new ShaderTagId(SpecularReflectivityPassName); 30 | } 31 | 32 | private class PassData 33 | { 34 | public RendererListHandle ReflectiveObjects; 35 | } 36 | 37 | public override void RecordRenderGraph(RenderGraph renderGraph, ContextContainer frameData) 38 | { 39 | var renderingData = frameData.Get(); 40 | var cameraData = frameData.Get(); 41 | var resourceData = frameData.Get(); 42 | 43 | var frameDescriptor = cameraData.cameraTargetDescriptor; 44 | 45 | using var builder = renderGraph.AddRasterRenderPass(nameof(SpecularReflectivityPass), out var passData); 46 | var desc = new RendererListDesc(_shaderTagId, renderingData.cullResults, cameraData.camera) 47 | { 48 | renderQueueRange = RenderQueueRange.opaque, 49 | }; 50 | passData.ReflectiveObjects = renderGraph.CreateRendererList(desc); 51 | builder.UseRendererList(passData.ReflectiveObjects); 52 | 53 | var targetDesc = new TextureDesc(frameDescriptor.width, frameDescriptor.height) 54 | { 55 | name = BufferName, 56 | filterMode = FilterMode.Bilinear, 57 | format = GraphicsFormatUtility.GetGraphicsFormat(RenderTextureFormat.ARGB32, true), 58 | }; 59 | var target = renderGraph.CreateTexture(in targetDesc); 60 | 61 | builder.AllowPassCulling(false); 62 | builder.SetRenderAttachment(target, 0); 63 | builder.SetGlobalTextureAfterPass(target, BufferNameId); 64 | builder.SetRenderFunc(static (data, context) => 65 | { 66 | context.cmd.DrawRendererList(data.ReflectiveObjects); 67 | }); 68 | } 69 | 70 | public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) 71 | { 72 | _renderer = renderingData.cameraData.renderer as UniversalRenderer; 73 | } 74 | 75 | public override void Configure(CommandBuffer cmd, RenderTextureDescriptor cameraTextureDescriptor) 76 | { 77 | var desc = new RenderTextureDescriptor( 78 | cameraTextureDescriptor.width, 79 | cameraTextureDescriptor.height, 80 | RenderTextureFormat.ARGB32 81 | ); 82 | 83 | RenderingUtils.ReAllocateIfNeeded(ref _specularBuffer, desc, filterMode: FilterMode.Bilinear, name: BufferName); 84 | 85 | ConfigureTarget(_specularBuffer, _renderer.GetDepthTexture()); 86 | ConfigureClear(ClearFlag.Color, Color.clear); 87 | } 88 | 89 | public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) 90 | { 91 | var cmd = CommandBufferPool.Get(); 92 | 93 | using (new ProfilingScope(cmd, profilingSampler)) 94 | { 95 | context.ExecuteCommandBuffer(cmd); 96 | cmd.Clear(); 97 | 98 | var drawingSettings = CreateDrawingSettings( 99 | _shaderTagId, 100 | ref renderingData, 101 | SortingCriteria.CommonOpaque 102 | ); 103 | 104 | context.DrawRenderers(renderingData.cullResults, ref drawingSettings, ref _filteringSettings); 105 | } 106 | 107 | cmd.SetGlobalTexture(BufferName, _specularBuffer); 108 | context.ExecuteCommandBuffer(cmd); 109 | cmd.Clear(); 110 | 111 | CommandBufferPool.Release(cmd); 112 | } 113 | 114 | public override void OnCameraCleanup(CommandBuffer cmd) 115 | { 116 | } 117 | } 118 | } -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/Shaders/SSRCore.hlsl: -------------------------------------------------------------------------------- 1 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 2 | 3 | float4x4 _InverseViewMatrix; 4 | float4x4 _InverseProjectionMatrix; 5 | float4x4 _ScreenSpaceProjectionMatrix; 6 | 7 | struct Ray 8 | { 9 | float3 origin; 10 | float3 direction; 11 | }; 12 | 13 | struct Segment 14 | { 15 | float3 start; 16 | float3 end; 17 | 18 | float3 direction; 19 | }; 20 | 21 | struct Result 22 | { 23 | bool isHit; 24 | 25 | float2 uv; 26 | float3 position; 27 | 28 | int iterationCount; 29 | }; 30 | 31 | float4 ProjectToScreenSpace(float3 position) 32 | { 33 | return float4( 34 | _ScreenSpaceProjectionMatrix[0][0] * position.x + _ScreenSpaceProjectionMatrix[0][2] * position.z, 35 | _ScreenSpaceProjectionMatrix[1][1] * position.y + _ScreenSpaceProjectionMatrix[1][2] * position.z, 36 | _ScreenSpaceProjectionMatrix[2][2] * position.z + _ScreenSpaceProjectionMatrix[2][3], 37 | _ScreenSpaceProjectionMatrix[3][2] * position.z 38 | ); 39 | } 40 | 41 | // Heavily adapted from McGuire and Mara's original implementation 42 | // http://casual-effects.blogspot.com/2014/08/screen-space-ray-tracing.html 43 | Result March(Ray ray, Varyings input) 44 | { 45 | Result result; 46 | 47 | result.isHit = false; 48 | 49 | result.uv = 0.0; 50 | result.position = 0.0; 51 | 52 | result.iterationCount = 0; 53 | 54 | Segment segment; 55 | 56 | segment.start = ray.origin; 57 | 58 | float end = ray.origin.z + ray.direction.z * _MaximumMarchDistance; 59 | float magnitude = _MaximumMarchDistance; 60 | 61 | if (end > -_ProjectionParams.y) 62 | magnitude = (-_ProjectionParams.y - ray.origin.z) / ray.direction.z; 63 | 64 | segment.end = ray.origin + ray.direction * magnitude; 65 | 66 | float4 r = ProjectToScreenSpace(segment.start); 67 | float4 q = ProjectToScreenSpace(segment.end); 68 | 69 | const float2 homogenizers = rcp(float2(r.w, q.w)); 70 | 71 | segment.start *= homogenizers.x; 72 | segment.end *= homogenizers.y; 73 | 74 | float4 endPoints = float4(r.xy, q.xy) * homogenizers.xxyy; 75 | endPoints.zw += step(GetSquaredDistance(endPoints.xy, endPoints.zw), 0.0001) * max( 76 | _Test_TexelSize.x, _Test_TexelSize.y); 77 | 78 | float2 displacement = endPoints.zw - endPoints.xy; 79 | 80 | bool isPermuted = false; 81 | 82 | if (abs(displacement.x) < abs(displacement.y)) 83 | { 84 | isPermuted = true; 85 | 86 | displacement = displacement.yx; 87 | endPoints.xyzw = endPoints.yxwz; 88 | } 89 | 90 | float direction = sign(displacement.x); 91 | float normalizer = direction / displacement.x; 92 | 93 | segment.direction = (segment.end - segment.start) * normalizer; 94 | float4 derivatives = float4(float2(direction, displacement.y * normalizer), 95 | (homogenizers.y - homogenizers.x) * normalizer, segment.direction.z); 96 | 97 | float stride = 1.0 - min(1.0, -ray.origin.z * 0.01); 98 | 99 | float2 uv = input.uv * _NoiseTiling; 100 | uv.y *= _AspectRatio; 101 | 102 | float jitter = _Noise.SampleLevel(sampler_Noise, uv + _WorldSpaceCameraPos.xz, 0).r; 103 | stride *= _Bandwidth; 104 | 105 | derivatives *= stride; 106 | segment.direction *= stride; 107 | 108 | float2 z = 0.0; 109 | float4 tracker = float4(endPoints.xy, homogenizers.x, segment.start.z) + derivatives * jitter; 110 | 111 | for (int i = 0; i < _MaximumIterationCount; ++i) 112 | { 113 | if (any(result.uv < 0.0) || any(result.uv > 1.0)) 114 | { 115 | result.isHit = false; 116 | return result; 117 | } 118 | 119 | tracker += derivatives; 120 | 121 | z.x = z.y; 122 | z.y = tracker.w + derivatives.w * 0.5; 123 | z.y /= tracker.z + derivatives.z * 0.5; 124 | 125 | #if SSR_KILL_FIREFLIES 126 | UNITY_FLATTEN 127 | if (z.y < -_MaximumMarchDistance) 128 | { 129 | result.isHit = false; 130 | return result; 131 | } 132 | #endif 133 | 134 | UNITY_FLATTEN 135 | if (z.y > z.x) 136 | { 137 | float k = z.x; 138 | z.x = z.y; 139 | z.y = k; 140 | } 141 | 142 | uv = tracker.xy; 143 | 144 | UNITY_FLATTEN 145 | if (isPermuted) 146 | uv = uv.yx; 147 | 148 | uv *= _Test_TexelSize.xy; 149 | 150 | float d = SampleSceneDepthLod0(uv); 151 | float depth = -LinearEyeDepth(d, _ZBufferParams); 152 | 153 | UNITY_FLATTEN 154 | if (z.y < depth) 155 | { 156 | UNITY_FLATTEN 157 | if (depth - z.y > _Bandwidth) 158 | { 159 | result.isHit = false; 160 | return result; 161 | } 162 | result.uv = uv; 163 | result.isHit = true; 164 | result.iterationCount = i + 1; 165 | return result; 166 | } 167 | } 168 | 169 | return result; 170 | } 171 | -------------------------------------------------------------------------------- /Assets/SampleAssets/Skybox.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 8 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: Skybox 11 | m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0} 12 | m_Parent: {fileID: 0} 13 | m_ModifiedSerializedProperties: 0 14 | m_ValidKeywords: [] 15 | m_InvalidKeywords: [] 16 | m_LightmapFlags: 4 17 | m_EnableInstancingVariants: 0 18 | m_DoubleSidedGI: 0 19 | m_CustomRenderQueue: -1 20 | stringTagMap: {} 21 | disabledShaderPasses: [] 22 | m_LockedProperties: 23 | m_SavedProperties: 24 | serializedVersion: 3 25 | m_TexEnvs: 26 | - _BackTex: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _BaseMap: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _BumpMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailAlbedoMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _DetailMask: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _DetailNormalMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _DownTex: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _EmissionMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _FrontTex: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _LeftTex: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - _MainTex: 67 | m_Texture: {fileID: 0} 68 | m_Scale: {x: 1, y: 1} 69 | m_Offset: {x: 0, y: 0} 70 | - _MetallicGlossMap: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | - _OcclusionMap: 75 | m_Texture: {fileID: 0} 76 | m_Scale: {x: 1, y: 1} 77 | m_Offset: {x: 0, y: 0} 78 | - _ParallaxMap: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | - _RightTex: 83 | m_Texture: {fileID: 0} 84 | m_Scale: {x: 1, y: 1} 85 | m_Offset: {x: 0, y: 0} 86 | - _SpecGlossMap: 87 | m_Texture: {fileID: 0} 88 | m_Scale: {x: 1, y: 1} 89 | m_Offset: {x: 0, y: 0} 90 | - _Tex: 91 | m_Texture: {fileID: 8900000, guid: 0064a6ba51ddf429b9723cf20134a532, type: 3} 92 | m_Scale: {x: 1, y: 1} 93 | m_Offset: {x: 0, y: 0} 94 | - _UpTex: 95 | m_Texture: {fileID: 0} 96 | m_Scale: {x: 1, y: 1} 97 | m_Offset: {x: 0, y: 0} 98 | - unity_Lightmaps: 99 | m_Texture: {fileID: 0} 100 | m_Scale: {x: 1, y: 1} 101 | m_Offset: {x: 0, y: 0} 102 | - unity_LightmapsInd: 103 | m_Texture: {fileID: 0} 104 | m_Scale: {x: 1, y: 1} 105 | m_Offset: {x: 0, y: 0} 106 | - unity_ShadowMasks: 107 | m_Texture: {fileID: 0} 108 | m_Scale: {x: 1, y: 1} 109 | m_Offset: {x: 0, y: 0} 110 | m_Ints: [] 111 | m_Floats: 112 | - _AlphaClip: 0 113 | - _AlphaToMask: 0 114 | - _Blend: 0 115 | - _BlendModePreserveSpecular: 1 116 | - _BumpScale: 1 117 | - _ClearCoatMask: 0 118 | - _ClearCoatSmoothness: 0 119 | - _Cull: 2 120 | - _Cutoff: 0.5 121 | - _DetailAlbedoMapScale: 1 122 | - _DetailNormalMapScale: 1 123 | - _DstBlend: 0 124 | - _DstBlendAlpha: 0 125 | - _EnvironmentReflections: 1 126 | - _Exposure: 1 127 | - _GlossMapScale: 0 128 | - _Glossiness: 0 129 | - _GlossyReflections: 0 130 | - _Metallic: 0 131 | - _OcclusionStrength: 1 132 | - _Parallax: 0.005 133 | - _QueueOffset: 0 134 | - _ReceiveShadows: 1 135 | - _Rotation: 249 136 | - _Smoothness: 0.5 137 | - _SmoothnessTextureChannel: 0 138 | - _SpecularHighlights: 1 139 | - _SrcBlend: 1 140 | - _SrcBlendAlpha: 1 141 | - _Surface: 0 142 | - _WorkflowMode: 1 143 | - _ZWrite: 1 144 | m_Colors: 145 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 146 | - _Color: {r: 1, g: 1, b: 1, a: 1} 147 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 148 | - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} 149 | - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 150 | m_BuildTextureStacks: [] 151 | --- !u!114 &3565251722211658736 152 | MonoBehaviour: 153 | m_ObjectHideFlags: 11 154 | m_CorrespondingSourceObject: {fileID: 0} 155 | m_PrefabInstance: {fileID: 0} 156 | m_PrefabAsset: {fileID: 0} 157 | m_GameObject: {fileID: 0} 158 | m_Enabled: 1 159 | m_EditorHideFlags: 0 160 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 161 | m_Name: 162 | m_EditorClassIdentifier: 163 | version: 7 164 | -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/Shaders/LitReflection.shader: -------------------------------------------------------------------------------- 1 | Shader "AlexMalyutinDev/Lit Reflection" 2 | { 3 | Properties 4 | { 5 | // Specular vs Metallic workflow 6 | _WorkflowMode("WorkflowMode", Float) = 1.0 7 | 8 | [MainTexture] _BaseMap("Albedo", 2D) = "white" {} 9 | [MainColor] _BaseColor("Color", Color) = (1,1,1,1) 10 | 11 | _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5 12 | 13 | _Smoothness("Smoothness", Range(0.0, 1.0)) = 0.5 14 | _SmoothnessTextureChannel("Smoothness texture channel", Float) = 0 15 | 16 | _Metallic("Metallic", Range(0.0, 1.0)) = 0.0 17 | _MetallicGlossMap("Metallic", 2D) = "white" {} 18 | 19 | _SpecColor("Specular", Color) = (0.2, 0.2, 0.2) 20 | _SpecGlossMap("Specular", 2D) = "white" {} 21 | 22 | [ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0 23 | [ToggleOff] _EnvironmentReflections("Environment Reflections", Float) = 1.0 24 | 25 | _BumpScale("Scale", Float) = 1.0 26 | _BumpMap("Normal Map", 2D) = "bump" {} 27 | 28 | _Parallax("Scale", Range(0.005, 0.08)) = 0.005 29 | _ParallaxMap("Height Map", 2D) = "black" {} 30 | 31 | _OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0 32 | _OcclusionMap("Occlusion", 2D) = "white" {} 33 | 34 | [HDR] _EmissionColor("Color", Color) = (0,0,0) 35 | _EmissionMap("Emission", 2D) = "white" {} 36 | 37 | _DetailMask("Detail Mask", 2D) = "white" {} 38 | _DetailAlbedoMapScale("Scale", Range(0.0, 2.0)) = 1.0 39 | _DetailAlbedoMap("Detail Albedo x2", 2D) = "linearGrey" {} 40 | _DetailNormalMapScale("Scale", Range(0.0, 2.0)) = 1.0 41 | [Normal] _DetailNormalMap("Normal Map", 2D) = "bump" {} 42 | 43 | // SRP batching compatibility for Clear Coat (Not used in Lit) 44 | [HideInInspector] _ClearCoatMask("_ClearCoatMask", Float) = 0.0 45 | [HideInInspector] _ClearCoatSmoothness("_ClearCoatSmoothness", Float) = 0.0 46 | 47 | // Blending state 48 | _Surface("__surface", Float) = 0.0 49 | _Blend("__blend", Float) = 0.0 50 | _Cull("__cull", Float) = 2.0 51 | [ToggleUI] _AlphaClip("__clip", Float) = 0.0 52 | [HideInInspector] _SrcBlend("__src", Float) = 1.0 53 | [HideInInspector] _DstBlend("__dst", Float) = 0.0 54 | [HideInInspector] _SrcBlendAlpha("__srcA", Float) = 1.0 55 | [HideInInspector] _DstBlendAlpha("__dstA", Float) = 0.0 56 | [HideInInspector] _ZWrite("__zw", Float) = 1.0 57 | [HideInInspector] _BlendModePreserveSpecular("_BlendModePreserveSpecular", Float) = 1.0 58 | [HideInInspector] _AlphaToMask("__alphaToMask", Float) = 0.0 59 | 60 | [ToggleUI] _ReceiveShadows("Receive Shadows", Float) = 1.0 61 | // Editmode props 62 | _QueueOffset("Queue offset", Float) = 0.0 63 | 64 | // ObsoleteProperties 65 | [HideInInspector] _MainTex("BaseMap", 2D) = "white" {} 66 | [HideInInspector] _Color("Base Color", Color) = (1, 1, 1, 1) 67 | [HideInInspector] _GlossMapScale("Smoothness", Float) = 0.0 68 | [HideInInspector] _Glossiness("Smoothness", Float) = 0.0 69 | [HideInInspector] _GlossyReflections("EnvironmentReflections", Float) = 0.0 70 | 71 | [HideInInspector][NoScaleOffset]unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {} 72 | [HideInInspector][NoScaleOffset]unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {} 73 | [HideInInspector][NoScaleOffset]unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {} 74 | } 75 | 76 | SubShader 77 | { 78 | Tags 79 | { 80 | "RenderType" = "Opaque" "IgnoreProjector" = "True" "RenderPipeline" = "UniversalPipeline" "ShaderModel"="4.5" 81 | } 82 | LOD 100 83 | 84 | Blend [_SrcBlend][_DstBlend], [_SrcBlendAlpha][_DstBlendAlpha] 85 | ZWrite [_ZWrite] 86 | Cull [_Cull] 87 | 88 | UsePass "Universal Render Pipeline/Lit/FORWARDLIT" 89 | UsePass "Universal Render Pipeline/Lit/SHADOWCASTER" 90 | UsePass "Universal Render Pipeline/Lit/DEPTHONLY" 91 | UsePass "Universal Render Pipeline/Lit/DEPTHNORMALS" 92 | 93 | // Renders by SpecularReflectivityPass 94 | Pass 95 | { 96 | Name "SpecularReflectivity" 97 | Tags 98 | { 99 | "LightMode" = "SpecularReflectivity" 100 | } 101 | 102 | // ------------------------------------- 103 | // Render State Commands 104 | Blend[_SrcBlend][_DstBlend], [_SrcBlendAlpha][_DstBlendAlpha] 105 | ZWrite[_ZWrite] 106 | Cull[_Cull] 107 | AlphaToMask[_AlphaToMask] 108 | 109 | HLSLPROGRAM 110 | #pragma target 2.0 111 | 112 | // ------------------------------------- 113 | // Shader Stages 114 | #pragma vertex SpecularReflectivityPassVertex 115 | #pragma fragment SpecularReflectivityPassFragment 116 | 117 | #pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP 118 | #pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A 119 | #pragma shader_feature_local_fragment _SPECULAR_SETUP 120 | 121 | #include "Packages/com.unity.render-pipelines.universal/Shaders/LitInput.hlsl" 122 | #include "Packages/com.unity.render-pipelines.universal/Shaders/LitForwardPass.hlsl" 123 | 124 | Varyings SpecularReflectivityPassVertex(Attributes input) 125 | { 126 | Varyings output = (Varyings)0; 127 | 128 | UNITY_SETUP_INSTANCE_ID(input); 129 | UNITY_TRANSFER_INSTANCE_ID(input, output); 130 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); 131 | 132 | VertexPositionInputs vertexInput = GetVertexPositionInputs(input.positionOS.xyz); 133 | output.uv = TRANSFORM_TEX(input.texcoord, _BaseMap); 134 | output.positionCS = vertexInput.positionCS; 135 | 136 | return output; 137 | } 138 | 139 | half4 SpecularReflectivityPassFragment(Varyings input) : SV_Target 140 | { 141 | half4 albedoAlpha = SampleAlbedoAlpha(input.uv, _BaseMap, sampler_BaseMap); 142 | half3 specular = albedoAlpha.rgb * _BaseColor.rgb; 143 | half4 specGloss = SampleMetallicSpecGloss(input.uv, albedoAlpha.a); 144 | 145 | half reflectivity = 1.0h - OneMinusReflectivityMetallic(specGloss.r); 146 | half smoothness = specGloss.a; 147 | 148 | return half4(specular, reflectivity * smoothness); 149 | } 150 | 151 | ENDHLSL 152 | } 153 | } 154 | 155 | SubShader 156 | { 157 | Tags 158 | { 159 | "RenderType" = "Opaque" "IgnoreProjector" = "True" "RenderPipeline" = "UniversalPipeline" "ShaderModel"="2.0" 160 | } 161 | LOD 100 162 | 163 | Blend [_SrcBlend][_DstBlend], [_SrcBlendAlpha][_DstBlendAlpha] 164 | ZWrite [_ZWrite] 165 | Cull [_Cull] 166 | 167 | UsePass "Universal Render Pipeline/Lit/FORWARDLIT" 168 | UsePass "Universal Render Pipeline/Lit/SHADOWCASTER" 169 | UsePass "Universal Render Pipeline/Lit/DEPTHONLY" 170 | UsePass "Universal Render Pipeline/Lit/DEPTHNORMALS" 171 | } 172 | FallBack "Hidden/Universal Render Pipeline/FallbackError" 173 | CustomEditor "UnityEditor.Rendering.Universal.ShaderGUI.LitShader" 174 | } -------------------------------------------------------------------------------- /Packages/com.alexmalyutindev.urp-ssr/Runtime/Shaders/SSR.shader: -------------------------------------------------------------------------------- 1 | Shader "AlexMalyutinDev/SSR" 2 | { 3 | Properties 4 | { 5 | _MainTex ("_MainTex", 2D) = "white" {} 6 | } 7 | 8 | SubShader 9 | { 10 | Tags 11 | { 12 | "RenderType" = "Opaque" 13 | "IgnoreProjector" = "True" 14 | "RenderPipeline" = "UniversalPipeline" 15 | } 16 | LOD 100 17 | 18 | Pass 19 | { 20 | 21 | Blend SrcAlpha OneMinusSrcAlpha 22 | // Blend DstColor Zero 23 | ZWrite Off 24 | ZTest Off 25 | 26 | Name "SSR Tracing" 27 | 28 | HLSLPROGRAM 29 | #pragma exclude_renderers gles gles3 glcore 30 | #pragma target 3.0 31 | 32 | #pragma vertex Vertex 33 | #pragma fragment Fragment 34 | 35 | #pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION 36 | 37 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 38 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareOpaqueTexture.hlsl" 39 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareDepthTexture.hlsl" 40 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DeclareNormalsTexture.hlsl" 41 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/AmbientOcclusion.hlsl" 42 | 43 | TEXTURE2D(_SpecularReflectivityBuffer); 44 | SAMPLER(sampler_SpecularReflectivityBuffer); 45 | 46 | struct Attributes 47 | { 48 | float4 positionOS : POSITION; 49 | float2 uv : TEXCOORD0; 50 | }; 51 | 52 | struct Varyings 53 | { 54 | float2 uv : TEXCOORD0; 55 | float3 viewDirectionWS : TEXCOORD1; 56 | float3 viewDirectionVS : TEXCOORD2; 57 | float4 positionNDC : TEXCOORD3; 58 | float4 positionCS : SV_POSITION; 59 | }; 60 | 61 | Varyings Vertex(Attributes input) 62 | { 63 | Varyings output = (Varyings)0; 64 | 65 | float3 positionWS = TransformObjectToWorld(input.positionOS.xyz); 66 | output.uv = input.uv; 67 | 68 | output.positionCS = TransformObjectToHClip(input.positionOS.xyz); 69 | output.viewDirectionWS = -GetWorldSpaceViewDir(positionWS.xyz); 70 | output.viewDirectionVS = TransformWorldToViewDir(output.viewDirectionWS); 71 | 72 | float4 ndc = output.positionCS * 0.5f; 73 | output.positionNDC.xy = float2(ndc.x, ndc.y * _ProjectionParams.x) + ndc.w; 74 | output.positionNDC.zw = output.positionCS.zw; 75 | 76 | return output; 77 | } 78 | 79 | half3 GetNormals(float3 positionWS, float2 uv) 80 | { 81 | #if 0 82 | // TODO: Reconstruct normals from depth, if NormalsBuffer is not turned on 83 | { 84 | float2 uv1 = uv + float2(_ScreenSize.z, 0); 85 | float2 uv2 = uv + float2(0, _ScreenSize.w); 86 | half depthR = SampleSceneDepth(uv1); 87 | half depthU = SampleSceneDepth(uv2); 88 | 89 | half3 p1 = ComputeWorldSpacePosition(uv1, depthR, _InvCameraViewProj); 90 | half3 p2 = ComputeWorldSpacePosition(uv2, depthU, _InvCameraViewProj); 91 | 92 | return normalize(cross(p2 - positionWS, p1 - positionWS)); 93 | } 94 | #else 95 | return SampleSceneNormals(uv); 96 | #endif 97 | } 98 | 99 | TEXTURE2D(_BlueNoise_Texture); 100 | SAMPLER(sampler_BlueNoise_Texture); 101 | float4 _Dithering_Params; 102 | #define DitheringScale _Dithering_Params.xy 103 | #define DitheringOffset _Dithering_Params.zw 104 | 105 | 106 | float remap_tri(float v) 107 | { 108 | float orig = v * 2.0f - 1.0f; 109 | v = max(-1.0f, orig / sqrt(abs(orig))); 110 | return v - sign(orig) + 0.5f; 111 | } 112 | 113 | float SampleSceneDepthLOD0(float2 uv) 114 | { 115 | return SAMPLE_TEXTURE2D_X_LOD(_CameraDepthTexture, sampler_CameraDepthTexture, UnityStereoTransformScreenSpaceTex(uv), 0).r; 116 | } 117 | 118 | half4 Fragment(Varyings input) : SV_Target 119 | { 120 | const half thickness = 1.0h; 121 | const half4 clearColor = half4(0.0h, 0.0h, 0.0h, 0.0h); 122 | 123 | float2 uv = input.positionNDC.xy; 124 | half4 specularReflectivity = SAMPLE_TEXTURE2D_X( 125 | _SpecularReflectivityBuffer, 126 | sampler_SpecularReflectivityBuffer, 127 | uv 128 | ); 129 | 130 | half3 specular = specularReflectivity.rgb; 131 | half reflectivity = specularReflectivity.a; 132 | 133 | // TODO: Involve stencil buffer to early test 134 | if (reflectivity < 0.01) 135 | { 136 | return clearColor; 137 | } 138 | 139 | half depth = SampleSceneDepthLOD0(uv); 140 | if (depth == UNITY_RAW_FAR_CLIP_VALUE) 141 | { 142 | return clearColor; 143 | } 144 | 145 | half3 positionWS = ComputeWorldSpacePosition(uv, depth, _InvCameraViewProj); 146 | 147 | // TODO: Randomize normals 148 | float3 normalWS = GetNormals(positionWS, uv); 149 | 150 | // NOTE: Redundant 151 | half NdotV = dot(normalWS, -input.viewDirectionWS); 152 | // reflectivity *= Pow4(saturate(1 - NdotV)); 153 | reflectivity *= saturate((1.0 - NdotV) / 0.1); 154 | 155 | if (reflectivity < 0.001) 156 | { 157 | return clearColor; 158 | } 159 | 160 | half noise = SAMPLE_TEXTURE2D( 161 | _BlueNoise_Texture, 162 | sampler_BlueNoise_Texture, 163 | uv * DitheringScale 164 | ).a; 165 | 166 | half3 noise3 = sin(half3(noise, 2 * noise + 4.235, 5 * noise + 11.35235) * 2 * PI) * 0.05; 167 | half3 reflectWS = normalize(reflect(input.viewDirectionWS, normalWS) + noise3 * (1 - reflectivity)); 168 | 169 | half3 reflectVS = TransformWorldToViewDir(reflectWS); 170 | half3 positionVS = TransformWorldToView(positionWS); 171 | 172 | float2 reflectUV = uv; 173 | float alpha = reflectivity; 174 | 175 | int i = 0; 176 | half4 hitVS = 0; 177 | half bounceRayLength = 0.1h + noise; 178 | UNITY_LOOP 179 | while (i < 5) 180 | { 181 | // TODO: Use ViewSpace 182 | half3 ray = positionVS + reflectVS * bounceRayLength; 183 | half4 positionCS = TransformWViewToHClip(ray); 184 | reflectUV = positionCS.xy / positionCS.w * half2(0.5, -0.5) + 0.5; 185 | 186 | if (any(reflectUV > float2(1.0f, 1.0f) || reflectUV < float2(0.0f, 0.0f))) 187 | { 188 | break; 189 | } 190 | 191 | depth = SampleSceneDepthLOD0(reflectUV); 192 | half travelZ = 193 | LinearEyeDepth(positionCS.z / positionCS.w, _ZBufferParams) - 194 | LinearEyeDepth(depth, _ZBufferParams); 195 | half inFrontOfDepthBuffer = travelZ < thickness; 196 | alpha *= inFrontOfDepthBuffer; 197 | 198 | hitVS = mul(unity_MatrixInvP, ComputeClipSpacePosition(reflectUV, depth)); 199 | bounceRayLength = length(positionVS - hitVS.xyz / hitVS.w); 200 | i++; 201 | } 202 | 203 | 204 | half guv = length(reflectUV * 2 - 1); 205 | half uvAttenuation = saturate(1 - guv * guv); 206 | float3 sceneColor = SampleSceneColor(reflectUV); 207 | 208 | AmbientOcclusionFactor aoFactor = GetScreenSpaceAmbientOcclusion(uv); 209 | sceneColor *= aoFactor.directAmbientOcclusion; 210 | 211 | alpha *= uvAttenuation / (1 + bounceRayLength * 0.1); 212 | 213 | return half4(saturate(sceneColor) * specular, alpha); 214 | } 215 | ENDHLSL 216 | } 217 | } 218 | } -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 3 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 1 22 | globalTextureMipmapLimit: 1 23 | textureMipmapLimitSettings: [] 24 | anisotropicTextures: 0 25 | antiAliasing: 0 26 | softParticles: 0 27 | softVegetation: 0 28 | realtimeReflectionProbes: 0 29 | billboardsFaceCameraPosition: 0 30 | useLegacyDetailDistribution: 1 31 | vSyncCount: 0 32 | realtimeGICPUUsage: 25 33 | lodBias: 0.3 34 | maximumLODLevel: 0 35 | enableLODCrossFade: 1 36 | streamingMipmapsActive: 0 37 | streamingMipmapsAddAllCameras: 1 38 | streamingMipmapsMemoryBudget: 512 39 | streamingMipmapsRenderersPerFrame: 512 40 | streamingMipmapsMaxLevelReduction: 2 41 | streamingMipmapsMaxFileIORequests: 1024 42 | particleRaycastBudget: 4 43 | asyncUploadTimeSlice: 2 44 | asyncUploadBufferSize: 16 45 | asyncUploadPersistentBuffer: 1 46 | resolutionScalingFixedDPIFactor: 1 47 | customRenderPipeline: {fileID: 0} 48 | terrainQualityOverrides: 0 49 | terrainPixelError: 1 50 | terrainDetailDensityScale: 1 51 | terrainBasemapDistance: 1000 52 | terrainDetailDistance: 80 53 | terrainTreeDistance: 5000 54 | terrainBillboardStart: 50 55 | terrainFadeLength: 5 56 | terrainMaxTrees: 50 57 | excludedTargetPlatforms: [] 58 | - serializedVersion: 3 59 | name: Low 60 | pixelLightCount: 0 61 | shadows: 0 62 | shadowResolution: 0 63 | shadowProjection: 1 64 | shadowCascades: 1 65 | shadowDistance: 20 66 | shadowNearPlaneOffset: 3 67 | shadowCascade2Split: 0.33333334 68 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 69 | shadowmaskMode: 0 70 | skinWeights: 2 71 | globalTextureMipmapLimit: 0 72 | textureMipmapLimitSettings: [] 73 | anisotropicTextures: 0 74 | antiAliasing: 0 75 | softParticles: 0 76 | softVegetation: 0 77 | realtimeReflectionProbes: 0 78 | billboardsFaceCameraPosition: 0 79 | useLegacyDetailDistribution: 1 80 | vSyncCount: 0 81 | realtimeGICPUUsage: 25 82 | lodBias: 0.4 83 | maximumLODLevel: 0 84 | enableLODCrossFade: 1 85 | streamingMipmapsActive: 0 86 | streamingMipmapsAddAllCameras: 1 87 | streamingMipmapsMemoryBudget: 512 88 | streamingMipmapsRenderersPerFrame: 512 89 | streamingMipmapsMaxLevelReduction: 2 90 | streamingMipmapsMaxFileIORequests: 1024 91 | particleRaycastBudget: 16 92 | asyncUploadTimeSlice: 2 93 | asyncUploadBufferSize: 16 94 | asyncUploadPersistentBuffer: 1 95 | resolutionScalingFixedDPIFactor: 1 96 | customRenderPipeline: {fileID: 0} 97 | terrainQualityOverrides: 0 98 | terrainPixelError: 1 99 | terrainDetailDensityScale: 1 100 | terrainBasemapDistance: 1000 101 | terrainDetailDistance: 80 102 | terrainTreeDistance: 5000 103 | terrainBillboardStart: 50 104 | terrainFadeLength: 5 105 | terrainMaxTrees: 50 106 | excludedTargetPlatforms: [] 107 | - serializedVersion: 3 108 | name: Medium 109 | pixelLightCount: 1 110 | shadows: 1 111 | shadowResolution: 0 112 | shadowProjection: 1 113 | shadowCascades: 1 114 | shadowDistance: 20 115 | shadowNearPlaneOffset: 3 116 | shadowCascade2Split: 0.33333334 117 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 118 | shadowmaskMode: 0 119 | skinWeights: 2 120 | globalTextureMipmapLimit: 0 121 | textureMipmapLimitSettings: [] 122 | anisotropicTextures: 1 123 | antiAliasing: 0 124 | softParticles: 0 125 | softVegetation: 0 126 | realtimeReflectionProbes: 0 127 | billboardsFaceCameraPosition: 0 128 | useLegacyDetailDistribution: 1 129 | vSyncCount: 1 130 | realtimeGICPUUsage: 25 131 | lodBias: 0.7 132 | maximumLODLevel: 0 133 | enableLODCrossFade: 1 134 | streamingMipmapsActive: 0 135 | streamingMipmapsAddAllCameras: 1 136 | streamingMipmapsMemoryBudget: 512 137 | streamingMipmapsRenderersPerFrame: 512 138 | streamingMipmapsMaxLevelReduction: 2 139 | streamingMipmapsMaxFileIORequests: 1024 140 | particleRaycastBudget: 64 141 | asyncUploadTimeSlice: 2 142 | asyncUploadBufferSize: 16 143 | asyncUploadPersistentBuffer: 1 144 | resolutionScalingFixedDPIFactor: 1 145 | customRenderPipeline: {fileID: 0} 146 | terrainQualityOverrides: 0 147 | terrainPixelError: 1 148 | terrainDetailDensityScale: 1 149 | terrainBasemapDistance: 1000 150 | terrainDetailDistance: 80 151 | terrainTreeDistance: 5000 152 | terrainBillboardStart: 50 153 | terrainFadeLength: 5 154 | terrainMaxTrees: 50 155 | excludedTargetPlatforms: [] 156 | - serializedVersion: 3 157 | name: High 158 | pixelLightCount: 2 159 | shadows: 2 160 | shadowResolution: 1 161 | shadowProjection: 1 162 | shadowCascades: 2 163 | shadowDistance: 40 164 | shadowNearPlaneOffset: 3 165 | shadowCascade2Split: 0.33333334 166 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 167 | shadowmaskMode: 1 168 | skinWeights: 2 169 | globalTextureMipmapLimit: 0 170 | textureMipmapLimitSettings: [] 171 | anisotropicTextures: 1 172 | antiAliasing: 0 173 | softParticles: 0 174 | softVegetation: 1 175 | realtimeReflectionProbes: 1 176 | billboardsFaceCameraPosition: 1 177 | useLegacyDetailDistribution: 1 178 | vSyncCount: 1 179 | realtimeGICPUUsage: 50 180 | lodBias: 1 181 | maximumLODLevel: 0 182 | enableLODCrossFade: 1 183 | streamingMipmapsActive: 0 184 | streamingMipmapsAddAllCameras: 1 185 | streamingMipmapsMemoryBudget: 512 186 | streamingMipmapsRenderersPerFrame: 512 187 | streamingMipmapsMaxLevelReduction: 2 188 | streamingMipmapsMaxFileIORequests: 1024 189 | particleRaycastBudget: 256 190 | asyncUploadTimeSlice: 2 191 | asyncUploadBufferSize: 16 192 | asyncUploadPersistentBuffer: 1 193 | resolutionScalingFixedDPIFactor: 1 194 | customRenderPipeline: {fileID: 0} 195 | terrainQualityOverrides: 0 196 | terrainPixelError: 1 197 | terrainDetailDensityScale: 1 198 | terrainBasemapDistance: 1000 199 | terrainDetailDistance: 80 200 | terrainTreeDistance: 5000 201 | terrainBillboardStart: 50 202 | terrainFadeLength: 5 203 | terrainMaxTrees: 50 204 | excludedTargetPlatforms: [] 205 | - serializedVersion: 3 206 | name: Very High 207 | pixelLightCount: 3 208 | shadows: 2 209 | shadowResolution: 2 210 | shadowProjection: 1 211 | shadowCascades: 2 212 | shadowDistance: 70 213 | shadowNearPlaneOffset: 3 214 | shadowCascade2Split: 0.33333334 215 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 216 | shadowmaskMode: 1 217 | skinWeights: 4 218 | globalTextureMipmapLimit: 0 219 | textureMipmapLimitSettings: [] 220 | anisotropicTextures: 2 221 | antiAliasing: 2 222 | softParticles: 1 223 | softVegetation: 1 224 | realtimeReflectionProbes: 1 225 | billboardsFaceCameraPosition: 1 226 | useLegacyDetailDistribution: 1 227 | vSyncCount: 1 228 | realtimeGICPUUsage: 50 229 | lodBias: 1.5 230 | maximumLODLevel: 0 231 | enableLODCrossFade: 1 232 | streamingMipmapsActive: 0 233 | streamingMipmapsAddAllCameras: 1 234 | streamingMipmapsMemoryBudget: 512 235 | streamingMipmapsRenderersPerFrame: 512 236 | streamingMipmapsMaxLevelReduction: 2 237 | streamingMipmapsMaxFileIORequests: 1024 238 | particleRaycastBudget: 1024 239 | asyncUploadTimeSlice: 2 240 | asyncUploadBufferSize: 16 241 | asyncUploadPersistentBuffer: 1 242 | resolutionScalingFixedDPIFactor: 1 243 | customRenderPipeline: {fileID: 0} 244 | terrainQualityOverrides: 0 245 | terrainPixelError: 1 246 | terrainDetailDensityScale: 1 247 | terrainBasemapDistance: 1000 248 | terrainDetailDistance: 80 249 | terrainTreeDistance: 5000 250 | terrainBillboardStart: 50 251 | terrainFadeLength: 5 252 | terrainMaxTrees: 50 253 | excludedTargetPlatforms: [] 254 | - serializedVersion: 3 255 | name: Ultra 256 | pixelLightCount: 4 257 | shadows: 2 258 | shadowResolution: 2 259 | shadowProjection: 1 260 | shadowCascades: 4 261 | shadowDistance: 150 262 | shadowNearPlaneOffset: 3 263 | shadowCascade2Split: 0.33333334 264 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 265 | shadowmaskMode: 1 266 | skinWeights: 4 267 | globalTextureMipmapLimit: 0 268 | textureMipmapLimitSettings: [] 269 | anisotropicTextures: 2 270 | antiAliasing: 0 271 | softParticles: 1 272 | softVegetation: 1 273 | realtimeReflectionProbes: 1 274 | billboardsFaceCameraPosition: 1 275 | useLegacyDetailDistribution: 1 276 | vSyncCount: 1 277 | realtimeGICPUUsage: 100 278 | lodBias: 2 279 | maximumLODLevel: 0 280 | enableLODCrossFade: 1 281 | streamingMipmapsActive: 0 282 | streamingMipmapsAddAllCameras: 1 283 | streamingMipmapsMemoryBudget: 512 284 | streamingMipmapsRenderersPerFrame: 512 285 | streamingMipmapsMaxLevelReduction: 2 286 | streamingMipmapsMaxFileIORequests: 1024 287 | particleRaycastBudget: 4096 288 | asyncUploadTimeSlice: 2 289 | asyncUploadBufferSize: 16 290 | asyncUploadPersistentBuffer: 1 291 | resolutionScalingFixedDPIFactor: 1 292 | customRenderPipeline: {fileID: 0} 293 | terrainQualityOverrides: 0 294 | terrainPixelError: 1 295 | terrainDetailDensityScale: 1 296 | terrainBasemapDistance: 1000 297 | terrainDetailDistance: 80 298 | terrainTreeDistance: 5000 299 | terrainBillboardStart: 50 300 | terrainFadeLength: 5 301 | terrainMaxTrees: 50 302 | excludedTargetPlatforms: [] 303 | m_TextureMipmapLimitGroupNames: [] 304 | m_PerPlatformDefaultQuality: 305 | Android: 2 306 | Lumin: 5 307 | Nintendo 3DS: 5 308 | Nintendo Switch: 5 309 | PS4: 5 310 | PSP2: 2 311 | Server: 0 312 | Stadia: 5 313 | Standalone: 5 314 | WebGL: 3 315 | Windows Store Apps: 5 316 | XboxOne: 5 317 | iPhone: 2 318 | tvOS: 2 319 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | - serializedVersion: 3 297 | m_Name: Enable Debug Button 1 298 | descriptiveName: 299 | descriptiveNegativeName: 300 | negativeButton: 301 | positiveButton: left ctrl 302 | altNegativeButton: 303 | altPositiveButton: joystick button 8 304 | gravity: 0 305 | dead: 0 306 | sensitivity: 0 307 | snap: 0 308 | invert: 0 309 | type: 0 310 | axis: 0 311 | joyNum: 0 312 | - serializedVersion: 3 313 | m_Name: Enable Debug Button 2 314 | descriptiveName: 315 | descriptiveNegativeName: 316 | negativeButton: 317 | positiveButton: backspace 318 | altNegativeButton: 319 | altPositiveButton: joystick button 9 320 | gravity: 0 321 | dead: 0 322 | sensitivity: 0 323 | snap: 0 324 | invert: 0 325 | type: 0 326 | axis: 0 327 | joyNum: 0 328 | - serializedVersion: 3 329 | m_Name: Debug Reset 330 | descriptiveName: 331 | descriptiveNegativeName: 332 | negativeButton: 333 | positiveButton: left alt 334 | altNegativeButton: 335 | altPositiveButton: joystick button 1 336 | gravity: 0 337 | dead: 0 338 | sensitivity: 0 339 | snap: 0 340 | invert: 0 341 | type: 0 342 | axis: 0 343 | joyNum: 0 344 | - serializedVersion: 3 345 | m_Name: Debug Next 346 | descriptiveName: 347 | descriptiveNegativeName: 348 | negativeButton: 349 | positiveButton: page down 350 | altNegativeButton: 351 | altPositiveButton: joystick button 5 352 | gravity: 0 353 | dead: 0 354 | sensitivity: 0 355 | snap: 0 356 | invert: 0 357 | type: 0 358 | axis: 0 359 | joyNum: 0 360 | - serializedVersion: 3 361 | m_Name: Debug Previous 362 | descriptiveName: 363 | descriptiveNegativeName: 364 | negativeButton: 365 | positiveButton: page up 366 | altNegativeButton: 367 | altPositiveButton: joystick button 4 368 | gravity: 0 369 | dead: 0 370 | sensitivity: 0 371 | snap: 0 372 | invert: 0 373 | type: 0 374 | axis: 0 375 | joyNum: 0 376 | - serializedVersion: 3 377 | m_Name: Debug Validate 378 | descriptiveName: 379 | descriptiveNegativeName: 380 | negativeButton: 381 | positiveButton: return 382 | altNegativeButton: 383 | altPositiveButton: joystick button 0 384 | gravity: 0 385 | dead: 0 386 | sensitivity: 0 387 | snap: 0 388 | invert: 0 389 | type: 0 390 | axis: 0 391 | joyNum: 0 392 | - serializedVersion: 3 393 | m_Name: Debug Persistent 394 | descriptiveName: 395 | descriptiveNegativeName: 396 | negativeButton: 397 | positiveButton: right shift 398 | altNegativeButton: 399 | altPositiveButton: joystick button 2 400 | gravity: 0 401 | dead: 0 402 | sensitivity: 0 403 | snap: 0 404 | invert: 0 405 | type: 0 406 | axis: 0 407 | joyNum: 0 408 | - serializedVersion: 3 409 | m_Name: Debug Multiplier 410 | descriptiveName: 411 | descriptiveNegativeName: 412 | negativeButton: 413 | positiveButton: left shift 414 | altNegativeButton: 415 | altPositiveButton: joystick button 3 416 | gravity: 0 417 | dead: 0 418 | sensitivity: 0 419 | snap: 0 420 | invert: 0 421 | type: 0 422 | axis: 0 423 | joyNum: 0 424 | - serializedVersion: 3 425 | m_Name: Debug Horizontal 426 | descriptiveName: 427 | descriptiveNegativeName: 428 | negativeButton: left 429 | positiveButton: right 430 | altNegativeButton: 431 | altPositiveButton: 432 | gravity: 1000 433 | dead: 0.001 434 | sensitivity: 1000 435 | snap: 0 436 | invert: 0 437 | type: 0 438 | axis: 0 439 | joyNum: 0 440 | - serializedVersion: 3 441 | m_Name: Debug Vertical 442 | descriptiveName: 443 | descriptiveNegativeName: 444 | negativeButton: down 445 | positiveButton: up 446 | altNegativeButton: 447 | altPositiveButton: 448 | gravity: 1000 449 | dead: 0.001 450 | sensitivity: 1000 451 | snap: 0 452 | invert: 0 453 | type: 0 454 | axis: 0 455 | joyNum: 0 456 | - serializedVersion: 3 457 | m_Name: Debug Vertical 458 | descriptiveName: 459 | descriptiveNegativeName: 460 | negativeButton: down 461 | positiveButton: up 462 | altNegativeButton: 463 | altPositiveButton: 464 | gravity: 1000 465 | dead: 0.001 466 | sensitivity: 1000 467 | snap: 0 468 | invert: 0 469 | type: 2 470 | axis: 6 471 | joyNum: 0 472 | - serializedVersion: 3 473 | m_Name: Debug Horizontal 474 | descriptiveName: 475 | descriptiveNegativeName: 476 | negativeButton: left 477 | positiveButton: right 478 | altNegativeButton: 479 | altPositiveButton: 480 | gravity: 1000 481 | dead: 0.001 482 | sensitivity: 1000 483 | snap: 0 484 | invert: 0 485 | type: 2 486 | axis: 5 487 | joyNum: 0 488 | m_UsePhysicalKeys: 1 489 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.alexmalyutindev.urp-ssr": { 4 | "version": "file:com.alexmalyutindev.urp-ssr", 5 | "depth": 0, 6 | "source": "embedded", 7 | "dependencies": { 8 | "com.unity.render-pipelines.universal": "14.0.8" 9 | } 10 | }, 11 | "com.unity.ai.navigation": { 12 | "version": "2.0.8", 13 | "depth": 0, 14 | "source": "registry", 15 | "dependencies": { 16 | "com.unity.modules.ai": "1.0.0" 17 | }, 18 | "url": "https://packages.unity.com" 19 | }, 20 | "com.unity.bindings.openimageio": { 21 | "version": "1.0.0", 22 | "depth": 1, 23 | "source": "registry", 24 | "dependencies": { 25 | "com.unity.collections": "1.0.0" 26 | }, 27 | "url": "https://packages.unity.com" 28 | }, 29 | "com.unity.burst": { 30 | "version": "1.8.23", 31 | "depth": 2, 32 | "source": "registry", 33 | "dependencies": { 34 | "com.unity.mathematics": "1.2.1", 35 | "com.unity.modules.jsonserialize": "1.0.0" 36 | }, 37 | "url": "https://packages.unity.com" 38 | }, 39 | "com.unity.collections": { 40 | "version": "2.5.1", 41 | "depth": 1, 42 | "source": "registry", 43 | "dependencies": { 44 | "com.unity.burst": "1.8.17", 45 | "com.unity.test-framework": "1.4.5", 46 | "com.unity.nuget.mono-cecil": "1.11.4", 47 | "com.unity.test-framework.performance": "3.0.3" 48 | }, 49 | "url": "https://packages.unity.com" 50 | }, 51 | "com.unity.ext.nunit": { 52 | "version": "2.0.5", 53 | "depth": 1, 54 | "source": "builtin", 55 | "dependencies": {} 56 | }, 57 | "com.unity.ide.rider": { 58 | "version": "3.0.36", 59 | "depth": 0, 60 | "source": "registry", 61 | "dependencies": { 62 | "com.unity.ext.nunit": "1.0.6" 63 | }, 64 | "url": "https://packages.unity.com" 65 | }, 66 | "com.unity.ide.visualstudio": { 67 | "version": "2.0.23", 68 | "depth": 0, 69 | "source": "registry", 70 | "dependencies": { 71 | "com.unity.test-framework": "1.1.9" 72 | }, 73 | "url": "https://packages.unity.com" 74 | }, 75 | "com.unity.mathematics": { 76 | "version": "1.3.2", 77 | "depth": 2, 78 | "source": "registry", 79 | "dependencies": {}, 80 | "url": "https://packages.unity.com" 81 | }, 82 | "com.unity.multiplayer.center": { 83 | "version": "1.0.0", 84 | "depth": 0, 85 | "source": "builtin", 86 | "dependencies": { 87 | "com.unity.modules.uielements": "1.0.0" 88 | } 89 | }, 90 | "com.unity.nuget.mono-cecil": { 91 | "version": "1.11.4", 92 | "depth": 2, 93 | "source": "registry", 94 | "dependencies": {}, 95 | "url": "https://packages.unity.com" 96 | }, 97 | "com.unity.recorder": { 98 | "version": "5.1.2", 99 | "depth": 0, 100 | "source": "registry", 101 | "dependencies": { 102 | "com.unity.timeline": "1.8.7", 103 | "com.unity.collections": "1.2.4", 104 | "com.unity.bindings.openimageio": "1.0.0" 105 | }, 106 | "url": "https://packages.unity.com" 107 | }, 108 | "com.unity.render-pipelines.core": { 109 | "version": "17.1.0", 110 | "depth": 1, 111 | "source": "builtin", 112 | "dependencies": { 113 | "com.unity.burst": "1.8.14", 114 | "com.unity.mathematics": "1.3.2", 115 | "com.unity.ugui": "2.0.0", 116 | "com.unity.collections": "2.4.3", 117 | "com.unity.modules.physics": "1.0.0", 118 | "com.unity.modules.terrain": "1.0.0", 119 | "com.unity.modules.jsonserialize": "1.0.0", 120 | "com.unity.rendering.light-transport": "1.0.1" 121 | } 122 | }, 123 | "com.unity.render-pipelines.universal": { 124 | "version": "17.1.0", 125 | "depth": 0, 126 | "source": "builtin", 127 | "dependencies": { 128 | "com.unity.render-pipelines.core": "17.1.0", 129 | "com.unity.shadergraph": "17.1.0", 130 | "com.unity.render-pipelines.universal-config": "17.0.3" 131 | } 132 | }, 133 | "com.unity.render-pipelines.universal-config": { 134 | "version": "17.0.3", 135 | "depth": 1, 136 | "source": "builtin", 137 | "dependencies": { 138 | "com.unity.render-pipelines.core": "17.0.3" 139 | } 140 | }, 141 | "com.unity.rendering.light-transport": { 142 | "version": "1.0.1", 143 | "depth": 2, 144 | "source": "builtin", 145 | "dependencies": { 146 | "com.unity.collections": "2.2.0", 147 | "com.unity.mathematics": "1.2.4", 148 | "com.unity.modules.terrain": "1.0.0" 149 | } 150 | }, 151 | "com.unity.searcher": { 152 | "version": "4.9.3", 153 | "depth": 2, 154 | "source": "registry", 155 | "dependencies": {}, 156 | "url": "https://packages.unity.com" 157 | }, 158 | "com.unity.shadergraph": { 159 | "version": "17.1.0", 160 | "depth": 1, 161 | "source": "builtin", 162 | "dependencies": { 163 | "com.unity.render-pipelines.core": "17.1.0", 164 | "com.unity.searcher": "4.9.3" 165 | } 166 | }, 167 | "com.unity.test-framework": { 168 | "version": "1.5.1", 169 | "depth": 0, 170 | "source": "builtin", 171 | "dependencies": { 172 | "com.unity.ext.nunit": "2.0.3", 173 | "com.unity.modules.imgui": "1.0.0", 174 | "com.unity.modules.jsonserialize": "1.0.0" 175 | } 176 | }, 177 | "com.unity.test-framework.performance": { 178 | "version": "3.1.0", 179 | "depth": 2, 180 | "source": "registry", 181 | "dependencies": { 182 | "com.unity.test-framework": "1.1.33", 183 | "com.unity.modules.jsonserialize": "1.0.0" 184 | }, 185 | "url": "https://packages.unity.com" 186 | }, 187 | "com.unity.timeline": { 188 | "version": "1.8.7", 189 | "depth": 1, 190 | "source": "registry", 191 | "dependencies": { 192 | "com.unity.modules.audio": "1.0.0", 193 | "com.unity.modules.director": "1.0.0", 194 | "com.unity.modules.animation": "1.0.0", 195 | "com.unity.modules.particlesystem": "1.0.0" 196 | }, 197 | "url": "https://packages.unity.com" 198 | }, 199 | "com.unity.ugui": { 200 | "version": "2.0.0", 201 | "depth": 0, 202 | "source": "builtin", 203 | "dependencies": { 204 | "com.unity.modules.ui": "1.0.0", 205 | "com.unity.modules.imgui": "1.0.0" 206 | } 207 | }, 208 | "com.unity.modules.accessibility": { 209 | "version": "1.0.0", 210 | "depth": 0, 211 | "source": "builtin", 212 | "dependencies": {} 213 | }, 214 | "com.unity.modules.ai": { 215 | "version": "1.0.0", 216 | "depth": 0, 217 | "source": "builtin", 218 | "dependencies": {} 219 | }, 220 | "com.unity.modules.androidjni": { 221 | "version": "1.0.0", 222 | "depth": 0, 223 | "source": "builtin", 224 | "dependencies": {} 225 | }, 226 | "com.unity.modules.animation": { 227 | "version": "1.0.0", 228 | "depth": 0, 229 | "source": "builtin", 230 | "dependencies": {} 231 | }, 232 | "com.unity.modules.assetbundle": { 233 | "version": "1.0.0", 234 | "depth": 0, 235 | "source": "builtin", 236 | "dependencies": {} 237 | }, 238 | "com.unity.modules.audio": { 239 | "version": "1.0.0", 240 | "depth": 0, 241 | "source": "builtin", 242 | "dependencies": {} 243 | }, 244 | "com.unity.modules.cloth": { 245 | "version": "1.0.0", 246 | "depth": 0, 247 | "source": "builtin", 248 | "dependencies": { 249 | "com.unity.modules.physics": "1.0.0" 250 | } 251 | }, 252 | "com.unity.modules.director": { 253 | "version": "1.0.0", 254 | "depth": 0, 255 | "source": "builtin", 256 | "dependencies": { 257 | "com.unity.modules.audio": "1.0.0", 258 | "com.unity.modules.animation": "1.0.0" 259 | } 260 | }, 261 | "com.unity.modules.hierarchycore": { 262 | "version": "1.0.0", 263 | "depth": 1, 264 | "source": "builtin", 265 | "dependencies": {} 266 | }, 267 | "com.unity.modules.imageconversion": { 268 | "version": "1.0.0", 269 | "depth": 0, 270 | "source": "builtin", 271 | "dependencies": {} 272 | }, 273 | "com.unity.modules.imgui": { 274 | "version": "1.0.0", 275 | "depth": 0, 276 | "source": "builtin", 277 | "dependencies": {} 278 | }, 279 | "com.unity.modules.jsonserialize": { 280 | "version": "1.0.0", 281 | "depth": 0, 282 | "source": "builtin", 283 | "dependencies": {} 284 | }, 285 | "com.unity.modules.particlesystem": { 286 | "version": "1.0.0", 287 | "depth": 0, 288 | "source": "builtin", 289 | "dependencies": {} 290 | }, 291 | "com.unity.modules.physics": { 292 | "version": "1.0.0", 293 | "depth": 0, 294 | "source": "builtin", 295 | "dependencies": {} 296 | }, 297 | "com.unity.modules.physics2d": { 298 | "version": "1.0.0", 299 | "depth": 0, 300 | "source": "builtin", 301 | "dependencies": {} 302 | }, 303 | "com.unity.modules.screencapture": { 304 | "version": "1.0.0", 305 | "depth": 0, 306 | "source": "builtin", 307 | "dependencies": { 308 | "com.unity.modules.imageconversion": "1.0.0" 309 | } 310 | }, 311 | "com.unity.modules.subsystems": { 312 | "version": "1.0.0", 313 | "depth": 1, 314 | "source": "builtin", 315 | "dependencies": { 316 | "com.unity.modules.jsonserialize": "1.0.0" 317 | } 318 | }, 319 | "com.unity.modules.terrain": { 320 | "version": "1.0.0", 321 | "depth": 0, 322 | "source": "builtin", 323 | "dependencies": {} 324 | }, 325 | "com.unity.modules.terrainphysics": { 326 | "version": "1.0.0", 327 | "depth": 0, 328 | "source": "builtin", 329 | "dependencies": { 330 | "com.unity.modules.physics": "1.0.0", 331 | "com.unity.modules.terrain": "1.0.0" 332 | } 333 | }, 334 | "com.unity.modules.tilemap": { 335 | "version": "1.0.0", 336 | "depth": 0, 337 | "source": "builtin", 338 | "dependencies": { 339 | "com.unity.modules.physics2d": "1.0.0" 340 | } 341 | }, 342 | "com.unity.modules.ui": { 343 | "version": "1.0.0", 344 | "depth": 0, 345 | "source": "builtin", 346 | "dependencies": {} 347 | }, 348 | "com.unity.modules.uielements": { 349 | "version": "1.0.0", 350 | "depth": 0, 351 | "source": "builtin", 352 | "dependencies": { 353 | "com.unity.modules.ui": "1.0.0", 354 | "com.unity.modules.imgui": "1.0.0", 355 | "com.unity.modules.jsonserialize": "1.0.0", 356 | "com.unity.modules.hierarchycore": "1.0.0" 357 | } 358 | }, 359 | "com.unity.modules.umbra": { 360 | "version": "1.0.0", 361 | "depth": 0, 362 | "source": "builtin", 363 | "dependencies": {} 364 | }, 365 | "com.unity.modules.unityanalytics": { 366 | "version": "1.0.0", 367 | "depth": 0, 368 | "source": "builtin", 369 | "dependencies": { 370 | "com.unity.modules.unitywebrequest": "1.0.0", 371 | "com.unity.modules.jsonserialize": "1.0.0" 372 | } 373 | }, 374 | "com.unity.modules.unitywebrequest": { 375 | "version": "1.0.0", 376 | "depth": 0, 377 | "source": "builtin", 378 | "dependencies": {} 379 | }, 380 | "com.unity.modules.unitywebrequestassetbundle": { 381 | "version": "1.0.0", 382 | "depth": 0, 383 | "source": "builtin", 384 | "dependencies": { 385 | "com.unity.modules.assetbundle": "1.0.0", 386 | "com.unity.modules.unitywebrequest": "1.0.0" 387 | } 388 | }, 389 | "com.unity.modules.unitywebrequestaudio": { 390 | "version": "1.0.0", 391 | "depth": 0, 392 | "source": "builtin", 393 | "dependencies": { 394 | "com.unity.modules.unitywebrequest": "1.0.0", 395 | "com.unity.modules.audio": "1.0.0" 396 | } 397 | }, 398 | "com.unity.modules.unitywebrequesttexture": { 399 | "version": "1.0.0", 400 | "depth": 0, 401 | "source": "builtin", 402 | "dependencies": { 403 | "com.unity.modules.unitywebrequest": "1.0.0", 404 | "com.unity.modules.imageconversion": "1.0.0" 405 | } 406 | }, 407 | "com.unity.modules.unitywebrequestwww": { 408 | "version": "1.0.0", 409 | "depth": 0, 410 | "source": "builtin", 411 | "dependencies": { 412 | "com.unity.modules.unitywebrequest": "1.0.0", 413 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 414 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 415 | "com.unity.modules.audio": "1.0.0", 416 | "com.unity.modules.assetbundle": "1.0.0", 417 | "com.unity.modules.imageconversion": "1.0.0" 418 | } 419 | }, 420 | "com.unity.modules.vehicles": { 421 | "version": "1.0.0", 422 | "depth": 0, 423 | "source": "builtin", 424 | "dependencies": { 425 | "com.unity.modules.physics": "1.0.0" 426 | } 427 | }, 428 | "com.unity.modules.video": { 429 | "version": "1.0.0", 430 | "depth": 0, 431 | "source": "builtin", 432 | "dependencies": { 433 | "com.unity.modules.audio": "1.0.0", 434 | "com.unity.modules.ui": "1.0.0", 435 | "com.unity.modules.unitywebrequest": "1.0.0" 436 | } 437 | }, 438 | "com.unity.modules.vr": { 439 | "version": "1.0.0", 440 | "depth": 0, 441 | "source": "builtin", 442 | "dependencies": { 443 | "com.unity.modules.jsonserialize": "1.0.0", 444 | "com.unity.modules.physics": "1.0.0", 445 | "com.unity.modules.xr": "1.0.0" 446 | } 447 | }, 448 | "com.unity.modules.wind": { 449 | "version": "1.0.0", 450 | "depth": 0, 451 | "source": "builtin", 452 | "dependencies": {} 453 | }, 454 | "com.unity.modules.xr": { 455 | "version": "1.0.0", 456 | "depth": 0, 457 | "source": "builtin", 458 | "dependencies": { 459 | "com.unity.modules.physics": "1.0.0", 460 | "com.unity.modules.jsonserialize": "1.0.0", 461 | "com.unity.modules.subsystems": "1.0.0" 462 | } 463 | } 464 | } 465 | } 466 | -------------------------------------------------------------------------------- /Assets/DefaultVolumeProfile.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-8481625655245362371 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 3 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: 81180773991d8724ab7f2d216912b564, type: 3} 13 | m_Name: ChromaticAberration 14 | m_EditorClassIdentifier: 15 | active: 1 16 | intensity: 17 | m_OverrideState: 1 18 | m_Value: 0 19 | --- !u!114 &-7515221575317403180 20 | MonoBehaviour: 21 | m_ObjectHideFlags: 3 22 | m_CorrespondingSourceObject: {fileID: 0} 23 | m_PrefabInstance: {fileID: 0} 24 | m_PrefabAsset: {fileID: 0} 25 | m_GameObject: {fileID: 0} 26 | m_Enabled: 1 27 | m_EditorHideFlags: 0 28 | m_Script: {fileID: 11500000, guid: 0b2db86121404754db890f4c8dfe81b2, type: 3} 29 | m_Name: Bloom 30 | m_EditorClassIdentifier: 31 | active: 1 32 | skipIterations: 33 | m_OverrideState: 1 34 | m_Value: 1 35 | threshold: 36 | m_OverrideState: 1 37 | m_Value: 0.9 38 | intensity: 39 | m_OverrideState: 1 40 | m_Value: 0 41 | scatter: 42 | m_OverrideState: 1 43 | m_Value: 0.7 44 | clamp: 45 | m_OverrideState: 1 46 | m_Value: 65472 47 | tint: 48 | m_OverrideState: 1 49 | m_Value: {r: 1, g: 1, b: 1, a: 1} 50 | highQualityFiltering: 51 | m_OverrideState: 1 52 | m_Value: 0 53 | downscale: 54 | m_OverrideState: 1 55 | m_Value: 0 56 | maxIterations: 57 | m_OverrideState: 1 58 | m_Value: 6 59 | dirtTexture: 60 | m_OverrideState: 1 61 | m_Value: {fileID: 0} 62 | dimension: 1 63 | dirtIntensity: 64 | m_OverrideState: 1 65 | m_Value: 0 66 | --- !u!114 &-7460611230940650154 67 | MonoBehaviour: 68 | m_ObjectHideFlags: 3 69 | m_CorrespondingSourceObject: {fileID: 0} 70 | m_PrefabInstance: {fileID: 0} 71 | m_PrefabAsset: {fileID: 0} 72 | m_GameObject: {fileID: 0} 73 | m_Enabled: 1 74 | m_EditorHideFlags: 0 75 | m_Script: {fileID: 11500000, guid: cdfbdbb87d3286943a057f7791b43141, type: 3} 76 | m_Name: ChannelMixer 77 | m_EditorClassIdentifier: 78 | active: 1 79 | redOutRedIn: 80 | m_OverrideState: 1 81 | m_Value: 100 82 | redOutGreenIn: 83 | m_OverrideState: 1 84 | m_Value: 0 85 | redOutBlueIn: 86 | m_OverrideState: 1 87 | m_Value: 0 88 | greenOutRedIn: 89 | m_OverrideState: 1 90 | m_Value: 0 91 | greenOutGreenIn: 92 | m_OverrideState: 1 93 | m_Value: 100 94 | greenOutBlueIn: 95 | m_OverrideState: 1 96 | m_Value: 0 97 | blueOutRedIn: 98 | m_OverrideState: 1 99 | m_Value: 0 100 | blueOutGreenIn: 101 | m_OverrideState: 1 102 | m_Value: 0 103 | blueOutBlueIn: 104 | m_OverrideState: 1 105 | m_Value: 100 106 | --- !u!114 &-7137858140354033525 107 | MonoBehaviour: 108 | m_ObjectHideFlags: 3 109 | m_CorrespondingSourceObject: {fileID: 0} 110 | m_PrefabInstance: {fileID: 0} 111 | m_PrefabAsset: {fileID: 0} 112 | m_GameObject: {fileID: 0} 113 | m_Enabled: 1 114 | m_EditorHideFlags: 0 115 | m_Script: {fileID: 11500000, guid: 558a8e2b6826cf840aae193990ba9f2e, type: 3} 116 | m_Name: ShadowsMidtonesHighlights 117 | m_EditorClassIdentifier: 118 | active: 1 119 | shadows: 120 | m_OverrideState: 1 121 | m_Value: {x: 1, y: 1, z: 1, w: 0} 122 | midtones: 123 | m_OverrideState: 1 124 | m_Value: {x: 1, y: 1, z: 1, w: 0} 125 | highlights: 126 | m_OverrideState: 1 127 | m_Value: {x: 1, y: 1, z: 1, w: 0} 128 | shadowsStart: 129 | m_OverrideState: 1 130 | m_Value: 0 131 | shadowsEnd: 132 | m_OverrideState: 1 133 | m_Value: 0.3 134 | highlightsStart: 135 | m_OverrideState: 1 136 | m_Value: 0.55 137 | highlightsEnd: 138 | m_OverrideState: 1 139 | m_Value: 1 140 | --- !u!114 &-6845363930652996022 141 | MonoBehaviour: 142 | m_ObjectHideFlags: 3 143 | m_CorrespondingSourceObject: {fileID: 0} 144 | m_PrefabInstance: {fileID: 0} 145 | m_PrefabAsset: {fileID: 0} 146 | m_GameObject: {fileID: 0} 147 | m_Enabled: 1 148 | m_EditorHideFlags: 0 149 | m_Script: {fileID: 11500000, guid: e021b4c809a781e468c2988c016ebbea, type: 3} 150 | m_Name: ColorLookup 151 | m_EditorClassIdentifier: 152 | active: 1 153 | texture: 154 | m_OverrideState: 1 155 | m_Value: {fileID: 0} 156 | dimension: 1 157 | contribution: 158 | m_OverrideState: 1 159 | m_Value: 0 160 | --- !u!114 &-4157616226161809013 161 | MonoBehaviour: 162 | m_ObjectHideFlags: 3 163 | m_CorrespondingSourceObject: {fileID: 0} 164 | m_PrefabInstance: {fileID: 0} 165 | m_PrefabAsset: {fileID: 0} 166 | m_GameObject: {fileID: 0} 167 | m_Enabled: 1 168 | m_EditorHideFlags: 0 169 | m_Script: {fileID: 11500000, guid: 29fa0085f50d5e54f8144f766051a691, type: 3} 170 | m_Name: FilmGrain 171 | m_EditorClassIdentifier: 172 | active: 1 173 | type: 174 | m_OverrideState: 1 175 | m_Value: 0 176 | intensity: 177 | m_OverrideState: 1 178 | m_Value: 0 179 | response: 180 | m_OverrideState: 1 181 | m_Value: 0.8 182 | texture: 183 | m_OverrideState: 1 184 | m_Value: {fileID: 0} 185 | --- !u!114 &-4083713594268188211 186 | MonoBehaviour: 187 | m_ObjectHideFlags: 3 188 | m_CorrespondingSourceObject: {fileID: 0} 189 | m_PrefabInstance: {fileID: 0} 190 | m_PrefabAsset: {fileID: 0} 191 | m_GameObject: {fileID: 0} 192 | m_Enabled: 1 193 | m_EditorHideFlags: 0 194 | m_Script: {fileID: 11500000, guid: 06437c1ff663d574d9447842ba0a72e4, type: 3} 195 | m_Name: ScreenSpaceLensFlare 196 | m_EditorClassIdentifier: 197 | active: 1 198 | intensity: 199 | m_OverrideState: 1 200 | m_Value: 0 201 | tintColor: 202 | m_OverrideState: 1 203 | m_Value: {r: 1, g: 1, b: 1, a: 1} 204 | bloomMip: 205 | m_OverrideState: 1 206 | m_Value: 1 207 | firstFlareIntensity: 208 | m_OverrideState: 1 209 | m_Value: 1 210 | secondaryFlareIntensity: 211 | m_OverrideState: 1 212 | m_Value: 1 213 | warpedFlareIntensity: 214 | m_OverrideState: 1 215 | m_Value: 1 216 | warpedFlareScale: 217 | m_OverrideState: 1 218 | m_Value: {x: 1, y: 1} 219 | samples: 220 | m_OverrideState: 1 221 | m_Value: 1 222 | sampleDimmer: 223 | m_OverrideState: 1 224 | m_Value: 0.5 225 | vignetteEffect: 226 | m_OverrideState: 1 227 | m_Value: 1 228 | startingPosition: 229 | m_OverrideState: 1 230 | m_Value: 1.25 231 | scale: 232 | m_OverrideState: 1 233 | m_Value: 1.5 234 | streaksIntensity: 235 | m_OverrideState: 1 236 | m_Value: 0 237 | streaksLength: 238 | m_OverrideState: 1 239 | m_Value: 0.5 240 | streaksOrientation: 241 | m_OverrideState: 1 242 | m_Value: 0 243 | streaksThreshold: 244 | m_OverrideState: 1 245 | m_Value: 0.25 246 | resolution: 247 | m_OverrideState: 1 248 | m_Value: 4 249 | chromaticAbberationIntensity: 250 | m_OverrideState: 1 251 | m_Value: 0.5 252 | --- !u!114 &-3700015740031598387 253 | MonoBehaviour: 254 | m_ObjectHideFlags: 3 255 | m_CorrespondingSourceObject: {fileID: 0} 256 | m_PrefabInstance: {fileID: 0} 257 | m_PrefabAsset: {fileID: 0} 258 | m_GameObject: {fileID: 0} 259 | m_Enabled: 1 260 | m_EditorHideFlags: 0 261 | m_Script: {fileID: 11500000, guid: c5e1dc532bcb41949b58bc4f2abfbb7e, type: 3} 262 | m_Name: LensDistortion 263 | m_EditorClassIdentifier: 264 | active: 1 265 | intensity: 266 | m_OverrideState: 1 267 | m_Value: 0 268 | xMultiplier: 269 | m_OverrideState: 1 270 | m_Value: 1 271 | yMultiplier: 272 | m_OverrideState: 1 273 | m_Value: 1 274 | center: 275 | m_OverrideState: 1 276 | m_Value: {x: 0.5, y: 0.5} 277 | scale: 278 | m_OverrideState: 1 279 | m_Value: 1 280 | --- !u!114 &-2165909473888349218 281 | MonoBehaviour: 282 | m_ObjectHideFlags: 3 283 | m_CorrespondingSourceObject: {fileID: 0} 284 | m_PrefabInstance: {fileID: 0} 285 | m_PrefabAsset: {fileID: 0} 286 | m_GameObject: {fileID: 0} 287 | m_Enabled: 1 288 | m_EditorHideFlags: 0 289 | m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} 290 | m_Name: Tonemapping 291 | m_EditorClassIdentifier: 292 | active: 1 293 | mode: 294 | m_OverrideState: 1 295 | m_Value: 0 296 | neutralHDRRangeReductionMode: 297 | m_OverrideState: 1 298 | m_Value: 2 299 | acesPreset: 300 | m_OverrideState: 1 301 | m_Value: 3 302 | hueShiftAmount: 303 | m_OverrideState: 1 304 | m_Value: 0 305 | detectPaperWhite: 306 | m_OverrideState: 1 307 | m_Value: 0 308 | paperWhite: 309 | m_OverrideState: 1 310 | m_Value: 300 311 | detectBrightnessLimits: 312 | m_OverrideState: 1 313 | m_Value: 1 314 | minNits: 315 | m_OverrideState: 1 316 | m_Value: 0.005 317 | maxNits: 318 | m_OverrideState: 1 319 | m_Value: 1000 320 | --- !u!114 &-1968823990436361206 321 | MonoBehaviour: 322 | m_ObjectHideFlags: 3 323 | m_CorrespondingSourceObject: {fileID: 0} 324 | m_PrefabInstance: {fileID: 0} 325 | m_PrefabAsset: {fileID: 0} 326 | m_GameObject: {fileID: 0} 327 | m_Enabled: 1 328 | m_EditorHideFlags: 0 329 | m_Script: {fileID: 11500000, guid: 221518ef91623a7438a71fef23660601, type: 3} 330 | m_Name: WhiteBalance 331 | m_EditorClassIdentifier: 332 | active: 1 333 | temperature: 334 | m_OverrideState: 1 335 | m_Value: 0 336 | tint: 337 | m_OverrideState: 1 338 | m_Value: 0 339 | --- !u!114 &-904021324442257817 340 | MonoBehaviour: 341 | m_ObjectHideFlags: 3 342 | m_CorrespondingSourceObject: {fileID: 0} 343 | m_PrefabInstance: {fileID: 0} 344 | m_PrefabAsset: {fileID: 0} 345 | m_GameObject: {fileID: 0} 346 | m_Enabled: 1 347 | m_EditorHideFlags: 0 348 | m_Script: {fileID: 11500000, guid: c01700fd266d6914ababb731e09af2eb, type: 3} 349 | m_Name: DepthOfField 350 | m_EditorClassIdentifier: 351 | active: 1 352 | mode: 353 | m_OverrideState: 1 354 | m_Value: 0 355 | gaussianStart: 356 | m_OverrideState: 1 357 | m_Value: 10 358 | gaussianEnd: 359 | m_OverrideState: 1 360 | m_Value: 30 361 | gaussianMaxRadius: 362 | m_OverrideState: 1 363 | m_Value: 1 364 | highQualitySampling: 365 | m_OverrideState: 1 366 | m_Value: 0 367 | focusDistance: 368 | m_OverrideState: 1 369 | m_Value: 10 370 | aperture: 371 | m_OverrideState: 1 372 | m_Value: 5.6 373 | focalLength: 374 | m_OverrideState: 1 375 | m_Value: 50 376 | bladeCount: 377 | m_OverrideState: 1 378 | m_Value: 5 379 | bladeCurvature: 380 | m_OverrideState: 1 381 | m_Value: 1 382 | bladeRotation: 383 | m_OverrideState: 1 384 | m_Value: 0 385 | --- !u!114 &11400000 386 | MonoBehaviour: 387 | m_ObjectHideFlags: 0 388 | m_CorrespondingSourceObject: {fileID: 0} 389 | m_PrefabInstance: {fileID: 0} 390 | m_PrefabAsset: {fileID: 0} 391 | m_GameObject: {fileID: 0} 392 | m_Enabled: 1 393 | m_EditorHideFlags: 0 394 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 395 | m_Name: DefaultVolumeProfile 396 | m_EditorClassIdentifier: 397 | components: 398 | - {fileID: -8481625655245362371} 399 | - {fileID: -6845363930652996022} 400 | - {fileID: -1968823990436361206} 401 | - {fileID: 712997114464169790} 402 | - {fileID: -2165909473888349218} 403 | - {fileID: -7137858140354033525} 404 | - {fileID: -904021324442257817} 405 | - {fileID: 7222720424079896781} 406 | - {fileID: 4740711366367328258} 407 | - {fileID: -7460611230940650154} 408 | - {fileID: 737944058110488721} 409 | - {fileID: -7515221575317403180} 410 | - {fileID: 2904097534192050095} 411 | - {fileID: 991199332589507333} 412 | - {fileID: -4157616226161809013} 413 | - {fileID: -3700015740031598387} 414 | - {fileID: -4083713594268188211} 415 | - {fileID: 8738743737752024878} 416 | - {fileID: 1940619037189448992} 417 | --- !u!114 &712997114464169790 418 | MonoBehaviour: 419 | m_ObjectHideFlags: 3 420 | m_CorrespondingSourceObject: {fileID: 0} 421 | m_PrefabInstance: {fileID: 0} 422 | m_PrefabAsset: {fileID: 0} 423 | m_GameObject: {fileID: 0} 424 | m_Enabled: 1 425 | m_EditorHideFlags: 0 426 | m_Script: {fileID: 11500000, guid: ccf1aba9553839d41ae37dd52e9ebcce, type: 3} 427 | m_Name: MotionBlur 428 | m_EditorClassIdentifier: 429 | active: 1 430 | mode: 431 | m_OverrideState: 1 432 | m_Value: 0 433 | quality: 434 | m_OverrideState: 1 435 | m_Value: 0 436 | intensity: 437 | m_OverrideState: 1 438 | m_Value: 0 439 | clamp: 440 | m_OverrideState: 1 441 | m_Value: 0.05 442 | --- !u!114 &737944058110488721 443 | MonoBehaviour: 444 | m_ObjectHideFlags: 3 445 | m_CorrespondingSourceObject: {fileID: 0} 446 | m_PrefabInstance: {fileID: 0} 447 | m_PrefabAsset: {fileID: 0} 448 | m_GameObject: {fileID: 0} 449 | m_Enabled: 1 450 | m_EditorHideFlags: 0 451 | m_Script: {fileID: 11500000, guid: 5485954d14dfb9a4c8ead8edb0ded5b1, type: 3} 452 | m_Name: LiftGammaGain 453 | m_EditorClassIdentifier: 454 | active: 1 455 | lift: 456 | m_OverrideState: 1 457 | m_Value: {x: 1, y: 1, z: 1, w: 0} 458 | gamma: 459 | m_OverrideState: 1 460 | m_Value: {x: 1, y: 1, z: 1, w: 0} 461 | gain: 462 | m_OverrideState: 1 463 | m_Value: {x: 1, y: 1, z: 1, w: 0} 464 | --- !u!114 &991199332589507333 465 | MonoBehaviour: 466 | m_ObjectHideFlags: 3 467 | m_CorrespondingSourceObject: {fileID: 0} 468 | m_PrefabInstance: {fileID: 0} 469 | m_PrefabAsset: {fileID: 0} 470 | m_GameObject: {fileID: 0} 471 | m_Enabled: 1 472 | m_EditorHideFlags: 0 473 | m_Script: {fileID: 11500000, guid: fb60a22f311433c4c962b888d1393f88, type: 3} 474 | m_Name: PaniniProjection 475 | m_EditorClassIdentifier: 476 | active: 1 477 | distance: 478 | m_OverrideState: 1 479 | m_Value: 0 480 | cropToFit: 481 | m_OverrideState: 1 482 | m_Value: 1 483 | --- !u!114 &1940619037189448992 484 | MonoBehaviour: 485 | m_ObjectHideFlags: 3 486 | m_CorrespondingSourceObject: {fileID: 0} 487 | m_PrefabInstance: {fileID: 0} 488 | m_PrefabAsset: {fileID: 0} 489 | m_GameObject: {fileID: 0} 490 | m_Enabled: 1 491 | m_EditorHideFlags: 0 492 | m_Script: {fileID: 11500000, guid: 6bd486065ce11414fa40e631affc4900, type: 3} 493 | m_Name: ProbeVolumesOptions 494 | m_EditorClassIdentifier: 495 | active: 1 496 | normalBias: 497 | m_OverrideState: 1 498 | m_Value: 0.05 499 | viewBias: 500 | m_OverrideState: 1 501 | m_Value: 0.1 502 | scaleBiasWithMinProbeDistance: 503 | m_OverrideState: 1 504 | m_Value: 0 505 | samplingNoise: 506 | m_OverrideState: 1 507 | m_Value: 0.1 508 | animateSamplingNoise: 509 | m_OverrideState: 1 510 | m_Value: 1 511 | leakReductionMode: 512 | m_OverrideState: 1 513 | m_Value: 2 514 | minValidDotProductValue: 515 | m_OverrideState: 1 516 | m_Value: 0.1 517 | occlusionOnlyReflectionNormalization: 518 | m_OverrideState: 1 519 | m_Value: 1 520 | intensityMultiplier: 521 | m_OverrideState: 1 522 | m_Value: 1 523 | skyOcclusionIntensityMultiplier: 524 | m_OverrideState: 1 525 | m_Value: 1 526 | worldOffset: 527 | m_OverrideState: 1 528 | m_Value: {x: 0, y: 0, z: 0} 529 | --- !u!114 &2904097534192050095 530 | MonoBehaviour: 531 | m_ObjectHideFlags: 3 532 | m_CorrespondingSourceObject: {fileID: 0} 533 | m_PrefabInstance: {fileID: 0} 534 | m_PrefabAsset: {fileID: 0} 535 | m_GameObject: {fileID: 0} 536 | m_Enabled: 1 537 | m_EditorHideFlags: 0 538 | m_Script: {fileID: 11500000, guid: 3eb4b772797da9440885e8bd939e9560, type: 3} 539 | m_Name: ColorCurves 540 | m_EditorClassIdentifier: 541 | active: 1 542 | master: 543 | m_OverrideState: 1 544 | m_Value: 545 | k__BackingField: 2 546 | m_Loop: 0 547 | m_ZeroValue: 0 548 | m_Range: 1 549 | m_Curve: 550 | serializedVersion: 2 551 | m_Curve: 552 | - serializedVersion: 3 553 | time: 0 554 | value: 0 555 | inSlope: 1 556 | outSlope: 1 557 | tangentMode: 0 558 | weightedMode: 0 559 | inWeight: 0 560 | outWeight: 0 561 | - serializedVersion: 3 562 | time: 1 563 | value: 1 564 | inSlope: 1 565 | outSlope: 1 566 | tangentMode: 0 567 | weightedMode: 0 568 | inWeight: 0 569 | outWeight: 0 570 | m_PreInfinity: 2 571 | m_PostInfinity: 2 572 | m_RotationOrder: 4 573 | red: 574 | m_OverrideState: 1 575 | m_Value: 576 | k__BackingField: 2 577 | m_Loop: 0 578 | m_ZeroValue: 0 579 | m_Range: 1 580 | m_Curve: 581 | serializedVersion: 2 582 | m_Curve: 583 | - serializedVersion: 3 584 | time: 0 585 | value: 0 586 | inSlope: 1 587 | outSlope: 1 588 | tangentMode: 0 589 | weightedMode: 0 590 | inWeight: 0 591 | outWeight: 0 592 | - serializedVersion: 3 593 | time: 1 594 | value: 1 595 | inSlope: 1 596 | outSlope: 1 597 | tangentMode: 0 598 | weightedMode: 0 599 | inWeight: 0 600 | outWeight: 0 601 | m_PreInfinity: 2 602 | m_PostInfinity: 2 603 | m_RotationOrder: 4 604 | green: 605 | m_OverrideState: 1 606 | m_Value: 607 | k__BackingField: 2 608 | m_Loop: 0 609 | m_ZeroValue: 0 610 | m_Range: 1 611 | m_Curve: 612 | serializedVersion: 2 613 | m_Curve: 614 | - serializedVersion: 3 615 | time: 0 616 | value: 0 617 | inSlope: 1 618 | outSlope: 1 619 | tangentMode: 0 620 | weightedMode: 0 621 | inWeight: 0 622 | outWeight: 0 623 | - serializedVersion: 3 624 | time: 1 625 | value: 1 626 | inSlope: 1 627 | outSlope: 1 628 | tangentMode: 0 629 | weightedMode: 0 630 | inWeight: 0 631 | outWeight: 0 632 | m_PreInfinity: 2 633 | m_PostInfinity: 2 634 | m_RotationOrder: 4 635 | blue: 636 | m_OverrideState: 1 637 | m_Value: 638 | k__BackingField: 2 639 | m_Loop: 0 640 | m_ZeroValue: 0 641 | m_Range: 1 642 | m_Curve: 643 | serializedVersion: 2 644 | m_Curve: 645 | - serializedVersion: 3 646 | time: 0 647 | value: 0 648 | inSlope: 1 649 | outSlope: 1 650 | tangentMode: 0 651 | weightedMode: 0 652 | inWeight: 0 653 | outWeight: 0 654 | - serializedVersion: 3 655 | time: 1 656 | value: 1 657 | inSlope: 1 658 | outSlope: 1 659 | tangentMode: 0 660 | weightedMode: 0 661 | inWeight: 0 662 | outWeight: 0 663 | m_PreInfinity: 2 664 | m_PostInfinity: 2 665 | m_RotationOrder: 4 666 | hueVsHue: 667 | m_OverrideState: 1 668 | m_Value: 669 | k__BackingField: 0 670 | m_Loop: 1 671 | m_ZeroValue: 0.5 672 | m_Range: 1 673 | m_Curve: 674 | serializedVersion: 2 675 | m_Curve: [] 676 | m_PreInfinity: 2 677 | m_PostInfinity: 2 678 | m_RotationOrder: 4 679 | hueVsSat: 680 | m_OverrideState: 1 681 | m_Value: 682 | k__BackingField: 0 683 | m_Loop: 1 684 | m_ZeroValue: 0.5 685 | m_Range: 1 686 | m_Curve: 687 | serializedVersion: 2 688 | m_Curve: [] 689 | m_PreInfinity: 2 690 | m_PostInfinity: 2 691 | m_RotationOrder: 4 692 | satVsSat: 693 | m_OverrideState: 1 694 | m_Value: 695 | k__BackingField: 0 696 | m_Loop: 0 697 | m_ZeroValue: 0.5 698 | m_Range: 1 699 | m_Curve: 700 | serializedVersion: 2 701 | m_Curve: [] 702 | m_PreInfinity: 2 703 | m_PostInfinity: 2 704 | m_RotationOrder: 4 705 | lumVsSat: 706 | m_OverrideState: 1 707 | m_Value: 708 | k__BackingField: 0 709 | m_Loop: 0 710 | m_ZeroValue: 0.5 711 | m_Range: 1 712 | m_Curve: 713 | serializedVersion: 2 714 | m_Curve: [] 715 | m_PreInfinity: 2 716 | m_PostInfinity: 2 717 | m_RotationOrder: 4 718 | --- !u!114 &4740711366367328258 719 | MonoBehaviour: 720 | m_ObjectHideFlags: 3 721 | m_CorrespondingSourceObject: {fileID: 0} 722 | m_PrefabInstance: {fileID: 0} 723 | m_PrefabAsset: {fileID: 0} 724 | m_GameObject: {fileID: 0} 725 | m_Enabled: 1 726 | m_EditorHideFlags: 0 727 | m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} 728 | m_Name: Vignette 729 | m_EditorClassIdentifier: 730 | active: 1 731 | color: 732 | m_OverrideState: 1 733 | m_Value: {r: 0, g: 0, b: 0, a: 1} 734 | center: 735 | m_OverrideState: 1 736 | m_Value: {x: 0.5, y: 0.5} 737 | intensity: 738 | m_OverrideState: 1 739 | m_Value: 0 740 | smoothness: 741 | m_OverrideState: 1 742 | m_Value: 0.2 743 | rounded: 744 | m_OverrideState: 1 745 | m_Value: 0 746 | --- !u!114 &7222720424079896781 747 | MonoBehaviour: 748 | m_ObjectHideFlags: 3 749 | m_CorrespondingSourceObject: {fileID: 0} 750 | m_PrefabInstance: {fileID: 0} 751 | m_PrefabAsset: {fileID: 0} 752 | m_GameObject: {fileID: 0} 753 | m_Enabled: 1 754 | m_EditorHideFlags: 0 755 | m_Script: {fileID: 11500000, guid: 66f335fb1ffd8684294ad653bf1c7564, type: 3} 756 | m_Name: ColorAdjustments 757 | m_EditorClassIdentifier: 758 | active: 1 759 | postExposure: 760 | m_OverrideState: 1 761 | m_Value: 0 762 | contrast: 763 | m_OverrideState: 1 764 | m_Value: 0 765 | colorFilter: 766 | m_OverrideState: 1 767 | m_Value: {r: 1, g: 1, b: 1, a: 1} 768 | hueShift: 769 | m_OverrideState: 1 770 | m_Value: 0 771 | saturation: 772 | m_OverrideState: 1 773 | m_Value: 0 774 | --- !u!114 &8738743737752024878 775 | MonoBehaviour: 776 | m_ObjectHideFlags: 3 777 | m_CorrespondingSourceObject: {fileID: 0} 778 | m_PrefabInstance: {fileID: 0} 779 | m_PrefabAsset: {fileID: 0} 780 | m_GameObject: {fileID: 0} 781 | m_Enabled: 1 782 | m_EditorHideFlags: 0 783 | m_Script: {fileID: 11500000, guid: 70afe9e12c7a7ed47911bb608a23a8ff, type: 3} 784 | m_Name: SplitToning 785 | m_EditorClassIdentifier: 786 | active: 1 787 | shadows: 788 | m_OverrideState: 1 789 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 790 | highlights: 791 | m_OverrideState: 1 792 | m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} 793 | balance: 794 | m_OverrideState: 1 795 | m_Value: 0 796 | --------------------------------------------------------------------------------