├── Assets ├── Materials.meta ├── Materials │ ├── Emissive.mat │ ├── Emissive.mat.meta │ ├── FinalBlit.mat │ ├── FinalBlit.mat.meta │ ├── KernelGenerate.mat │ ├── KernelGenerate.mat.meta │ ├── SkyMat.mat │ ├── SkyMat.mat.meta │ ├── SourceGenerate.mat │ └── SourceGenerate.mat.meta ├── Scenes.meta ├── Scenes │ ├── SampleScene.unity │ └── SampleScene.unity.meta ├── Scripts.meta ├── Scripts │ ├── ConvolitonBloomSettings.cs │ ├── ConvolitonBloomSettings.cs.meta │ ├── ConvolutionBloom.cs │ └── ConvolutionBloom.cs.meta ├── Settings.meta ├── Settings │ ├── BloomSetting.asset │ ├── BloomSetting.asset.meta │ ├── SampleSceneProfile.asset │ ├── SampleSceneProfile.asset.meta │ ├── URP-HighFidelity-Renderer.asset │ ├── URP-HighFidelity-Renderer.asset.meta │ ├── URP-HighFidelity.asset │ └── URP-HighFidelity.asset.meta ├── Shaders.meta ├── Shaders │ ├── FFTCS.compute │ ├── FFTCS.compute.meta │ ├── FFTCommon.hlsl │ ├── FFTCommon.hlsl.meta │ ├── FinalBlit.shader │ ├── FinalBlit.shader.meta │ ├── KernelGenerate.shader │ ├── KernelGenerate.shader.meta │ ├── SourceGenerate.shader │ └── SourceGenerate.shader.meta ├── Textures.meta ├── Textures │ ├── DefaultBloomKernel.HDR │ ├── DefaultBloomKernel.HDR.meta │ ├── dikhololo_night_1k.hdr │ ├── dikhololo_night_1k.hdr.meta │ ├── kernel1.png │ ├── kernel1.png.meta │ ├── kernel2.png │ └── kernel2.png.meta ├── UniversalRenderPipelineGlobalSettings.asset └── UniversalRenderPipelineGlobalSettings.asset.meta ├── LICENSE.md ├── Packages ├── manifest.json └── packages-lock.json ├── ProjectSettings ├── AudioManager.asset ├── AutoStreamingSettings.asset ├── BurstAotSettings_StandaloneWindows.json ├── ClusterInputManager.asset ├── CommonBurstAotSettings.json ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── MemorySettings.asset ├── NavMeshAreas.asset ├── PackageManagerSettings.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── SceneTemplateSettings.json ├── ShaderGraphSettings.asset ├── TagManager.asset ├── TimeManager.asset ├── URPProjectSettings.asset ├── UnityConnectSettings.asset ├── VFXManager.asset ├── VersionControlSettings.asset ├── XRSettings.asset └── boot.config ├── README.assets ├── image-20230305231749655.png ├── image-20230305231818243.png └── image-20230305231946900.png ├── README.md └── UserSettings ├── EditorUserSettings.asset ├── Layouts ├── CurrentMaximizeLayout.dwlt └── default-2021.dwlt └── Search.settings /Assets/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fbdc77029b3f15d4193285ba5a982015 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/Emissive.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-4123432408336115116 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 5 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: Emissive 24 | m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3} 25 | m_ShaderKeywords: _EMISSION 26 | m_LightmapFlags: 2 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: -1 30 | stringTagMap: 31 | RenderType: Opaque 32 | disabledShaderPasses: [] 33 | m_SavedProperties: 34 | serializedVersion: 3 35 | m_TexEnvs: 36 | - _BaseMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _BumpMap: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _DetailAlbedoMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _DetailMask: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _DetailNormalMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | - _EmissionMap: 57 | m_Texture: {fileID: 0} 58 | m_Scale: {x: 1, y: 1} 59 | m_Offset: {x: 0, y: 0} 60 | - _MainTex: 61 | m_Texture: {fileID: 0} 62 | m_Scale: {x: 1, y: 1} 63 | m_Offset: {x: 0, y: 0} 64 | - _MetallicGlossMap: 65 | m_Texture: {fileID: 0} 66 | m_Scale: {x: 1, y: 1} 67 | m_Offset: {x: 0, y: 0} 68 | - _OcclusionMap: 69 | m_Texture: {fileID: 0} 70 | m_Scale: {x: 1, y: 1} 71 | m_Offset: {x: 0, y: 0} 72 | - _ParallaxMap: 73 | m_Texture: {fileID: 0} 74 | m_Scale: {x: 1, y: 1} 75 | m_Offset: {x: 0, y: 0} 76 | - _SpecGlossMap: 77 | m_Texture: {fileID: 0} 78 | m_Scale: {x: 1, y: 1} 79 | m_Offset: {x: 0, y: 0} 80 | - unity_Lightmaps: 81 | m_Texture: {fileID: 0} 82 | m_Scale: {x: 1, y: 1} 83 | m_Offset: {x: 0, y: 0} 84 | - unity_LightmapsInd: 85 | m_Texture: {fileID: 0} 86 | m_Scale: {x: 1, y: 1} 87 | m_Offset: {x: 0, y: 0} 88 | - unity_ShadowMasks: 89 | m_Texture: {fileID: 0} 90 | m_Scale: {x: 1, y: 1} 91 | m_Offset: {x: 0, y: 0} 92 | m_Ints: [] 93 | m_Floats: 94 | - _AlphaClip: 0 95 | - _Blend: 0 96 | - _BumpScale: 1 97 | - _ClearCoatMask: 0 98 | - _ClearCoatSmoothness: 0 99 | - _Cull: 2 100 | - _Cutoff: 0.5 101 | - _DetailAlbedoMapScale: 1 102 | - _DetailNormalMapScale: 1 103 | - _DstBlend: 0 104 | - _EnvironmentReflections: 1 105 | - _GlossMapScale: 0 106 | - _Glossiness: 0 107 | - _GlossyReflections: 0 108 | - _Metallic: 0 109 | - _OcclusionStrength: 1 110 | - _Parallax: 0.005 111 | - _QueueOffset: 0 112 | - _ReceiveShadows: 1 113 | - _Smoothness: 0.5 114 | - _SmoothnessTextureChannel: 0 115 | - _SpecularHighlights: 1 116 | - _SrcBlend: 1 117 | - _Surface: 0 118 | - _WorkflowMode: 1 119 | - _ZWrite: 1 120 | m_Colors: 121 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 122 | - _Color: {r: 1, g: 1, b: 1, a: 1} 123 | - _EmissionColor: {r: 238.10779, g: 311.49716, b: 50.55713, a: 1} 124 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 125 | m_BuildTextureStacks: [] 126 | -------------------------------------------------------------------------------- /Assets/Materials/Emissive.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c876bc964ef559d4696b332a6578c9dc 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/FinalBlit.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: FinalBlit 11 | m_Shader: {fileID: 4800000, guid: 0a7de3e0a6a9c3a40aa3d8ed98989d72, type: 3} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BaseMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _BumpMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailAlbedoMap: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailMask: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailNormalMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _EmissionMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MainTex: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _MetallicGlossMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _OcclusionMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _ParallaxMap: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _SpecGlossMap: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - unity_Lightmaps: 67 | m_Texture: {fileID: 0} 68 | m_Scale: {x: 1, y: 1} 69 | m_Offset: {x: 0, y: 0} 70 | - unity_LightmapsInd: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | - unity_ShadowMasks: 75 | m_Texture: {fileID: 0} 76 | m_Scale: {x: 1, y: 1} 77 | m_Offset: {x: 0, y: 0} 78 | m_Ints: [] 79 | m_Floats: 80 | - _AlphaClip: 0 81 | - _Blend: 0 82 | - _BumpScale: 1 83 | - _ClearCoatMask: 0 84 | - _ClearCoatSmoothness: 0 85 | - _Cull: 2 86 | - _Cutoff: 0.5 87 | - _DetailAlbedoMapScale: 1 88 | - _DetailNormalMapScale: 1 89 | - _DstBlend: 0 90 | - _EnvironmentReflections: 1 91 | - _GlossMapScale: 0 92 | - _Glossiness: 0 93 | - _GlossyReflections: 0 94 | - _Metallic: 0 95 | - _OcclusionStrength: 1 96 | - _Parallax: 0.005 97 | - _QueueOffset: 0 98 | - _ReceiveShadows: 1 99 | - _Smoothness: 0.5 100 | - _SmoothnessTextureChannel: 0 101 | - _SpecularHighlights: 1 102 | - _SrcBlend: 1 103 | - _Surface: 0 104 | - _WorkflowMode: 1 105 | - _ZWrite: 1 106 | m_Colors: 107 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 108 | - _Color: {r: 1, g: 1, b: 1, a: 1} 109 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 110 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 111 | m_BuildTextureStacks: [] 112 | --- !u!114 &4254727254036342346 113 | MonoBehaviour: 114 | m_ObjectHideFlags: 11 115 | m_CorrespondingSourceObject: {fileID: 0} 116 | m_PrefabInstance: {fileID: 0} 117 | m_PrefabAsset: {fileID: 0} 118 | m_GameObject: {fileID: 0} 119 | m_Enabled: 1 120 | m_EditorHideFlags: 0 121 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 122 | m_Name: 123 | m_EditorClassIdentifier: 124 | version: 5 125 | -------------------------------------------------------------------------------- /Assets/Materials/FinalBlit.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4d3c8a1d626b05348845cb5279176c3d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/KernelGenerate.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-3378773337251354698 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 5 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: KernelGenerate 24 | m_Shader: {fileID: 4800000, guid: 881c6fe5f3dcd8c4381c0fc1c7afee71, type: 3} 25 | m_ShaderKeywords: 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: -1 30 | stringTagMap: {} 31 | disabledShaderPasses: [] 32 | m_SavedProperties: 33 | serializedVersion: 3 34 | m_TexEnvs: 35 | - _BaseMap: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _BumpMap: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _DetailAlbedoMap: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _DetailMask: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | - _DetailNormalMap: 52 | m_Texture: {fileID: 0} 53 | m_Scale: {x: 1, y: 1} 54 | m_Offset: {x: 0, y: 0} 55 | - _DetailTex: 56 | m_Texture: {fileID: 0} 57 | m_Scale: {x: 1, y: 1} 58 | m_Offset: {x: 0, y: 0} 59 | - _EmissionMap: 60 | m_Texture: {fileID: 0} 61 | m_Scale: {x: 1, y: 1} 62 | m_Offset: {x: 0, y: 0} 63 | - _MainTex: 64 | m_Texture: {fileID: 0} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | - _MetallicGlossMap: 68 | m_Texture: {fileID: 0} 69 | m_Scale: {x: 1, y: 1} 70 | m_Offset: {x: 0, y: 0} 71 | - _OcclusionMap: 72 | m_Texture: {fileID: 0} 73 | m_Scale: {x: 1, y: 1} 74 | m_Offset: {x: 0, y: 0} 75 | - _ParallaxMap: 76 | m_Texture: {fileID: 0} 77 | m_Scale: {x: 1, y: 1} 78 | m_Offset: {x: 0, y: 0} 79 | - _SpecGlossMap: 80 | m_Texture: {fileID: 0} 81 | m_Scale: {x: 1, y: 1} 82 | m_Offset: {x: 0, y: 0} 83 | - unity_Lightmaps: 84 | m_Texture: {fileID: 0} 85 | m_Scale: {x: 1, y: 1} 86 | m_Offset: {x: 0, y: 0} 87 | - unity_LightmapsInd: 88 | m_Texture: {fileID: 0} 89 | m_Scale: {x: 1, y: 1} 90 | m_Offset: {x: 0, y: 0} 91 | - unity_ShadowMasks: 92 | m_Texture: {fileID: 0} 93 | m_Scale: {x: 1, y: 1} 94 | m_Offset: {x: 0, y: 0} 95 | m_Ints: [] 96 | m_Floats: 97 | - _AlphaClip: 0 98 | - _Blend: 0 99 | - _BumpScale: 1 100 | - _ClearCoatMask: 0 101 | - _ClearCoatSmoothness: 0 102 | - _ColorMask: 15 103 | - _Cull: 2 104 | - _Cutoff: 0.5 105 | - _DetailAlbedoMapScale: 1 106 | - _DetailNormalMapScale: 1 107 | - _DstBlend: 0 108 | - _EnvironmentReflections: 1 109 | - _GlossMapScale: 0 110 | - _Glossiness: 0 111 | - _GlossyReflections: 0 112 | - _Metallic: 0 113 | - _OcclusionStrength: 1 114 | - _Parallax: 0.005 115 | - _QueueOffset: 0 116 | - _ReceiveShadows: 1 117 | - _Smoothness: 0.5 118 | - _SmoothnessTextureChannel: 0 119 | - _SpecularHighlights: 1 120 | - _SrcBlend: 1 121 | - _Stencil: 0 122 | - _StencilComp: 8 123 | - _StencilOp: 0 124 | - _StencilReadMask: 255 125 | - _StencilWriteMask: 255 126 | - _Strength: 0.2 127 | - _Surface: 0 128 | - _UseUIAlphaClip: 0 129 | - _WorkflowMode: 1 130 | - _ZWrite: 1 131 | m_Colors: 132 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 133 | - _Color: {r: 1, g: 1, b: 1, a: 1} 134 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 135 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 136 | m_BuildTextureStacks: [] 137 | -------------------------------------------------------------------------------- /Assets/Materials/KernelGenerate.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1cf42a0dca9483e4da768971395fa27c 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/SkyMat.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_CorrespondingSourceObject: {fileID: 0} 8 | m_PrefabInstance: {fileID: 0} 9 | m_PrefabAsset: {fileID: 0} 10 | m_Name: SkyMat 11 | m_Shader: {fileID: 103, guid: 0000000000000000f000000000000000, type: 0} 12 | m_ShaderKeywords: 13 | m_LightmapFlags: 4 14 | m_EnableInstancingVariants: 0 15 | m_DoubleSidedGI: 0 16 | m_CustomRenderQueue: -1 17 | stringTagMap: {} 18 | disabledShaderPasses: [] 19 | m_SavedProperties: 20 | serializedVersion: 3 21 | m_TexEnvs: 22 | - _BackTex: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _BaseMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _BumpMap: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailAlbedoMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _DetailMask: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _DetailNormalMap: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _DownTex: 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 | - _FrontTex: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | - _LeftTex: 59 | m_Texture: {fileID: 0} 60 | m_Scale: {x: 1, y: 1} 61 | m_Offset: {x: 0, y: 0} 62 | - _MainTex: 63 | m_Texture: {fileID: 0} 64 | m_Scale: {x: 1, y: 1} 65 | m_Offset: {x: 0, y: 0} 66 | - _MetallicGlossMap: 67 | m_Texture: {fileID: 0} 68 | m_Scale: {x: 1, y: 1} 69 | m_Offset: {x: 0, y: 0} 70 | - _OcclusionMap: 71 | m_Texture: {fileID: 0} 72 | m_Scale: {x: 1, y: 1} 73 | m_Offset: {x: 0, y: 0} 74 | - _ParallaxMap: 75 | m_Texture: {fileID: 0} 76 | m_Scale: {x: 1, y: 1} 77 | m_Offset: {x: 0, y: 0} 78 | - _RightTex: 79 | m_Texture: {fileID: 0} 80 | m_Scale: {x: 1, y: 1} 81 | m_Offset: {x: 0, y: 0} 82 | - _SpecGlossMap: 83 | m_Texture: {fileID: 0} 84 | m_Scale: {x: 1, y: 1} 85 | m_Offset: {x: 0, y: 0} 86 | - _Tex: 87 | m_Texture: {fileID: 8900000, guid: 80c5784ba4edb5f45a14defe7a9da9b9, type: 3} 88 | m_Scale: {x: 1, y: 1} 89 | m_Offset: {x: 0, y: 0} 90 | - _UpTex: 91 | m_Texture: {fileID: 0} 92 | m_Scale: {x: 1, y: 1} 93 | m_Offset: {x: 0, y: 0} 94 | - unity_Lightmaps: 95 | m_Texture: {fileID: 0} 96 | m_Scale: {x: 1, y: 1} 97 | m_Offset: {x: 0, y: 0} 98 | - unity_LightmapsInd: 99 | m_Texture: {fileID: 0} 100 | m_Scale: {x: 1, y: 1} 101 | m_Offset: {x: 0, y: 0} 102 | - unity_ShadowMasks: 103 | m_Texture: {fileID: 0} 104 | m_Scale: {x: 1, y: 1} 105 | m_Offset: {x: 0, y: 0} 106 | m_Ints: [] 107 | m_Floats: 108 | - _AlphaClip: 0 109 | - _Blend: 0 110 | - _BlendOp: 0 111 | - _BumpScale: 1 112 | - _ClearCoatMask: 0 113 | - _ClearCoatSmoothness: 0 114 | - _Cull: 2 115 | - _Cutoff: 0.5 116 | - _DetailAlbedoMapScale: 1 117 | - _DetailNormalMapScale: 1 118 | - _DstBlend: 0 119 | - _EnvironmentReflections: 1 120 | - _Exposure: 1 121 | - _GlossMapScale: 0 122 | - _Glossiness: 0 123 | - _GlossyReflections: 0 124 | - _Metallic: 0 125 | - _OcclusionStrength: 1 126 | - _Parallax: 0.005 127 | - _QueueOffset: 0 128 | - _ReceiveShadows: 1 129 | - _Rotation: 0 130 | - _SampleGI: 0 131 | - _Smoothness: 0.5 132 | - _SmoothnessTextureChannel: 0 133 | - _SpecularHighlights: 1 134 | - _SrcBlend: 1 135 | - _Surface: 0 136 | - _WorkflowMode: 1 137 | - _ZWrite: 1 138 | m_Colors: 139 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 140 | - _Color: {r: 1, g: 1, b: 1, a: 1} 141 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 142 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 143 | - _Tint: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} 144 | m_BuildTextureStacks: [] 145 | --- !u!114 &1913346119627174172 146 | MonoBehaviour: 147 | m_ObjectHideFlags: 11 148 | m_CorrespondingSourceObject: {fileID: 0} 149 | m_PrefabInstance: {fileID: 0} 150 | m_PrefabAsset: {fileID: 0} 151 | m_GameObject: {fileID: 0} 152 | m_Enabled: 1 153 | m_EditorHideFlags: 0 154 | m_Script: {fileID: 11500000, guid: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 155 | m_Name: 156 | m_EditorClassIdentifier: 157 | version: 5 158 | -------------------------------------------------------------------------------- /Assets/Materials/SkyMat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4bb488ff38cb13f498bfc4d6929a0176 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Materials/SourceGenerate.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-6540084855789699707 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 11 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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | version: 5 16 | --- !u!21 &2100000 17 | Material: 18 | serializedVersion: 6 19 | m_ObjectHideFlags: 0 20 | m_CorrespondingSourceObject: {fileID: 0} 21 | m_PrefabInstance: {fileID: 0} 22 | m_PrefabAsset: {fileID: 0} 23 | m_Name: SourceGenerate 24 | m_Shader: {fileID: 4800000, guid: 1a23996ec3bc69447b2860a6d2d591d1, type: 3} 25 | m_ShaderKeywords: 26 | m_LightmapFlags: 4 27 | m_EnableInstancingVariants: 0 28 | m_DoubleSidedGI: 0 29 | m_CustomRenderQueue: -1 30 | stringTagMap: {} 31 | disabledShaderPasses: [] 32 | m_SavedProperties: 33 | serializedVersion: 3 34 | m_TexEnvs: 35 | - _BaseMap: 36 | m_Texture: {fileID: 0} 37 | m_Scale: {x: 1, y: 1} 38 | m_Offset: {x: 0, y: 0} 39 | - _BumpMap: 40 | m_Texture: {fileID: 0} 41 | m_Scale: {x: 1, y: 1} 42 | m_Offset: {x: 0, y: 0} 43 | - _DetailAlbedoMap: 44 | m_Texture: {fileID: 0} 45 | m_Scale: {x: 1, y: 1} 46 | m_Offset: {x: 0, y: 0} 47 | - _DetailMask: 48 | m_Texture: {fileID: 0} 49 | m_Scale: {x: 1, y: 1} 50 | m_Offset: {x: 0, y: 0} 51 | - _DetailNormalMap: 52 | m_Texture: {fileID: 0} 53 | m_Scale: {x: 1, y: 1} 54 | m_Offset: {x: 0, y: 0} 55 | - _EmissionMap: 56 | m_Texture: {fileID: 0} 57 | m_Scale: {x: 1, y: 1} 58 | m_Offset: {x: 0, y: 0} 59 | - _MainTex: 60 | m_Texture: {fileID: 0} 61 | m_Scale: {x: 1, y: 1} 62 | m_Offset: {x: 0, y: 0} 63 | - _MetallicGlossMap: 64 | m_Texture: {fileID: 0} 65 | m_Scale: {x: 1, y: 1} 66 | m_Offset: {x: 0, y: 0} 67 | - _OcclusionMap: 68 | m_Texture: {fileID: 0} 69 | m_Scale: {x: 1, y: 1} 70 | m_Offset: {x: 0, y: 0} 71 | - _ParallaxMap: 72 | m_Texture: {fileID: 0} 73 | m_Scale: {x: 1, y: 1} 74 | m_Offset: {x: 0, y: 0} 75 | - _SpecGlossMap: 76 | m_Texture: {fileID: 0} 77 | m_Scale: {x: 1, y: 1} 78 | m_Offset: {x: 0, y: 0} 79 | - unity_Lightmaps: 80 | m_Texture: {fileID: 0} 81 | m_Scale: {x: 1, y: 1} 82 | m_Offset: {x: 0, y: 0} 83 | - unity_LightmapsInd: 84 | m_Texture: {fileID: 0} 85 | m_Scale: {x: 1, y: 1} 86 | m_Offset: {x: 0, y: 0} 87 | - unity_ShadowMasks: 88 | m_Texture: {fileID: 0} 89 | m_Scale: {x: 1, y: 1} 90 | m_Offset: {x: 0, y: 0} 91 | m_Ints: [] 92 | m_Floats: 93 | - _AlphaClip: 0 94 | - _Blend: 0 95 | - _BumpScale: 1 96 | - _ClearCoatMask: 0 97 | - _ClearCoatSmoothness: 0 98 | - _Cull: 2 99 | - _Cutoff: 0.5 100 | - _DetailAlbedoMapScale: 1 101 | - _DetailNormalMapScale: 1 102 | - _DstBlend: 0 103 | - _EnvironmentReflections: 1 104 | - _GlossMapScale: 0 105 | - _Glossiness: 0 106 | - _GlossyReflections: 0 107 | - _Metallic: 0 108 | - _OcclusionStrength: 1 109 | - _Parallax: 0.005 110 | - _QueueOffset: 0 111 | - _ReceiveShadows: 1 112 | - _Smoothness: 0.5 113 | - _SmoothnessTextureChannel: 0 114 | - _SpecularHighlights: 1 115 | - _SrcBlend: 1 116 | - _Surface: 0 117 | - _WorkflowMode: 1 118 | - _ZWrite: 1 119 | m_Colors: 120 | - _BaseColor: {r: 1, g: 1, b: 1, a: 1} 121 | - _Color: {r: 1, g: 1, b: 1, a: 1} 122 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 123 | - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} 124 | m_BuildTextureStacks: [] 125 | -------------------------------------------------------------------------------- /Assets/Materials/SourceGenerate.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55c5871186a5ef442a97babaa477c9b2 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bac4cdef2897d014e90c25f8d9711f19 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scenes/SampleScene.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 99c9720ab356a0642a771bea13969a05 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Scripts.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0aaf70d98225fa345b98a511521e3057 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/ConvolitonBloomSettings.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEditor; 5 | using System; 6 | using UnityEngine.Rendering; 7 | 8 | [Serializable] 9 | [CreateAssetMenu(fileName = "ConvolitonBloom", menuName = "ConvolitonBloomSettings")] 10 | public class ConvolitonBloomSettings : ScriptableObject 11 | { 12 | [SerializeField] 13 | public Material KernelGenerateMaterial = null; 14 | 15 | [SerializeField] 16 | public Material SourceGenerateMaterial = null; 17 | 18 | [SerializeField] 19 | public Material FinalBlitMaterial = null; 20 | 21 | [SerializeField] 22 | public Texture2D KernelTexture = null; 23 | 24 | [SerializeField] 25 | public ComputeShader FFTComputeShader = null; 26 | 27 | [SerializeField] 28 | public float Intensity = 1.0f; 29 | 30 | [SerializeField] 31 | public float Threshold = 0.0f; 32 | 33 | [HideInInspector] 34 | public Vector2 KernelPositionOffset = new Vector2(0, 0); 35 | 36 | [SerializeField] 37 | public Vector2 KernelSizeScale = new Vector2(1, 1); 38 | 39 | [SerializeField] 40 | public float KernelDistanceExp = 0.0f; 41 | 42 | [SerializeField] 43 | public float KernelDistanceExpClampMin = 1.0f; 44 | 45 | [SerializeField] 46 | public float KernelDistanceExpScale = 1.0f; 47 | 48 | [SerializeField] 49 | public bool KernelImageUseLuminanceAsRGB = false; 50 | } 51 | -------------------------------------------------------------------------------- /Assets/Scripts/ConvolitonBloomSettings.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 0a8980054c5ac6e41bd1b18339cf62e1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Scripts/ConvolutionBloom.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.Rendering; 3 | using UnityEngine.Rendering.Universal; 4 | 5 | public class ConvolutionBloom : ScriptableRendererFeature 6 | { 7 | class CustomRenderPass : ScriptableRenderPass 8 | { 9 | public ConvolitonBloomSettings BloomSettings; 10 | 11 | RenderTexture m_sourceTexture; 12 | RenderTexture m_kernelTexture; 13 | int m_sourceFrequencyTextureID; 14 | int m_kernelFrequencyTextureID; 15 | 16 | // This method is called before executing the render pass. 17 | // It can be used to configure render targets and their clear state. Also to create temporary render target textures. 18 | // When empty this render pass will render to the active camera render target. 19 | // You should never call CommandBuffer.SetRenderTarget. Instead call ConfigureTarget and ConfigureClear. 20 | // The render pipeline will ensure target setup and clearing happens in a performant manner. 21 | public override void OnCameraSetup(CommandBuffer cmd, ref RenderingData renderingData) 22 | { 23 | m_sourceFrequencyTextureID = Shader.PropertyToID("SourceFrequencyTexture"); 24 | m_kernelFrequencyTextureID = Shader.PropertyToID("KernelFrequencyTexture"); 25 | 26 | RenderTextureDescriptor desc = new RenderTextureDescriptor(); 27 | desc.dimension = UnityEngine.Rendering.TextureDimension.Tex2D; 28 | desc.colorFormat = RenderTextureFormat.ARGBFloat; 29 | desc.width = 512; 30 | desc.height = 512; 31 | desc.volumeDepth = 1; 32 | desc.msaaSamples = 1; 33 | desc.enableRandomWrite = true; 34 | 35 | m_sourceTexture = RenderTexture.GetTemporary(desc); 36 | m_kernelTexture = RenderTexture.GetTemporary(desc); 37 | 38 | desc.width = 512 * 2; 39 | cmd.GetTemporaryRT(m_sourceFrequencyTextureID, desc); 40 | cmd.GetTemporaryRT(m_kernelFrequencyTextureID, desc); 41 | } 42 | 43 | // Here you can implement the rendering logic. 44 | // Use ScriptableRenderContext to issue drawing commands or execute command buffers 45 | // https://docs.unity3d.com/ScriptReference/Rendering.ScriptableRenderContext.html 46 | // You don't have to call ScriptableRenderContext.submit, the render pipeline will call it at specific points in the pipeline. 47 | public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) 48 | { 49 | // FFT 50 | var cs = BloomSettings.FFTComputeShader; 51 | int kFFTForwardHorizontal = cs.FindKernel("FFTForwardHorizontal"); 52 | int kFFTInverseHorizontal = cs.FindKernel("FFTInverseHorizontal"); 53 | int kFFTVertical = cs.FindKernel("FFTVertical"); 54 | int kConvolution = cs.FindKernel("Convolution"); 55 | int kKernelTransform = cs.FindKernel("KernelTransform"); 56 | int kTwoForOneFFTForwardHorizontal = cs.FindKernel("TwoForOneFFTForwardHorizontal"); 57 | int kTwoForOneFFTInverseHorizontal = cs.FindKernel("TwoForOneFFTInverseHorizontal"); 58 | int kTwoForOneFFTForwardHorizontalRadix8 = cs.FindKernel("TwoForOneFFTForwardHorizontalRadix8"); 59 | int kTwoForOneFFTInverseHorizontalRadix8 = cs.FindKernel("TwoForOneFFTInverseHorizontalRadix8"); 60 | int kFFTVerticalRadix8 = cs.FindKernel("FFTVerticalRadix8"); 61 | 62 | CommandBuffer cmd = CommandBufferPool.Get(); 63 | cmd.SetGlobalFloat("FFTBloomIntensity", BloomSettings.Intensity); 64 | cmd.SetGlobalFloat("FFTBloomThreshold", BloomSettings.Threshold); 65 | Vector4 kernelGenParam = new Vector4(BloomSettings.KernelPositionOffset.x, BloomSettings.KernelPositionOffset.y, BloomSettings.KernelSizeScale.x, BloomSettings.KernelSizeScale.y); 66 | cmd.SetGlobalVector("FFTBloomKernelGenParam", kernelGenParam); 67 | Vector4 kernelGenParam1 = new Vector4(BloomSettings.KernelDistanceExp, BloomSettings.KernelDistanceExpClampMin, BloomSettings.KernelDistanceExpScale, BloomSettings.KernelImageUseLuminanceAsRGB ? 1.0f : 0.0f); 68 | cmd.SetGlobalVector("FFTBloomKernelGenParam1", kernelGenParam1); 69 | 70 | // 降采样 kernel 图像 71 | cmd.Blit(BloomSettings.KernelTexture, m_kernelTexture, BloomSettings.KernelGenerateMaterial); 72 | 73 | // 对 kernel 做变换 74 | cmd.SetComputeTextureParam(cs, kKernelTransform, "SourceTexture", m_kernelTexture); 75 | cmd.DispatchCompute(cs, kKernelTransform, 512 / 8, 256 / 8, 1); 76 | 77 | // 降采样 scene color 78 | cmd.Blit(renderingData.cameraData.renderer.cameraColorTarget, m_sourceTexture, BloomSettings.SourceGenerateMaterial); 79 | 80 | // 对卷积核做 FFT 81 | // 水平 82 | cmd.SetComputeTextureParam(cs, kTwoForOneFFTForwardHorizontal, "SourceTexture", m_kernelTexture); 83 | cmd.SetComputeTextureParam(cs, kTwoForOneFFTForwardHorizontal, "FrequencyTexture", m_kernelFrequencyTextureID); 84 | cmd.DispatchCompute(cs, kTwoForOneFFTForwardHorizontal, 512, 1, 1); 85 | // 竖直 86 | cmd.SetComputeFloatParam(cs, "IsForward", 1.0f); 87 | cmd.SetComputeTextureParam(cs, kFFTVertical, "FrequencyTexture", m_kernelFrequencyTextureID); 88 | cmd.DispatchCompute(cs, kFFTVertical, 512, 1, 1); 89 | 90 | // 对原图像做 FFT 91 | // 水平 92 | cmd.BeginSample("FFTForwardHorizontal"); 93 | cmd.SetComputeTextureParam(cs, kTwoForOneFFTForwardHorizontal, "SourceTexture", m_sourceTexture); 94 | cmd.SetComputeTextureParam(cs, kTwoForOneFFTForwardHorizontal, "FrequencyTexture", m_sourceFrequencyTextureID); 95 | cmd.DispatchCompute(cs, kTwoForOneFFTForwardHorizontal, 512, 1, 1); 96 | cmd.EndSample("FFTForwardHorizontal"); 97 | // 竖直 98 | cmd.BeginSample("FFTForwardVertical"); 99 | cmd.SetComputeFloatParam(cs, "IsForward", 1.0f); 100 | cmd.SetComputeTextureParam(cs, kFFTVertical, "FrequencyTexture", m_sourceFrequencyTextureID); 101 | cmd.DispatchCompute(cs, kFFTVertical, 512, 1, 1); 102 | cmd.EndSample("FFTForwardVertical"); 103 | 104 | // 频域卷积 105 | cmd.BeginSample("Convolution"); 106 | cmd.SetComputeTextureParam(cs, kConvolution, "SourceFrequencyTexture", m_sourceFrequencyTextureID); 107 | cmd.SetComputeTextureParam(cs, kConvolution, "KernelFrequencyTexture", m_kernelFrequencyTextureID); 108 | cmd.DispatchCompute(cs, kConvolution, 512 / 8, 512 / 8, 1); 109 | cmd.EndSample("Convolution"); 110 | 111 | // 还原原图像 112 | // 竖直 113 | cmd.BeginSample("FFTInverseVertical"); 114 | cmd.SetComputeFloatParam(cs, "IsForward", 0.0f); 115 | cmd.SetComputeTextureParam(cs, kFFTVertical, "FrequencyTexture", m_sourceFrequencyTextureID); 116 | cmd.DispatchCompute(cs, kFFTVertical, 512, 1, 1); 117 | cmd.EndSample("FFTInverseVertical"); 118 | // 水平 119 | cmd.BeginSample("FFTInverseHorizontal"); 120 | cmd.SetComputeTextureParam(cs, kTwoForOneFFTInverseHorizontal, "FrequencyTexture", m_sourceFrequencyTextureID); 121 | cmd.DispatchCompute(cs, kTwoForOneFFTInverseHorizontal, 512, 1, 1); 122 | cmd.EndSample("FFTInverseHorizontal"); 123 | 124 | // final blit 125 | cmd.Blit(m_sourceFrequencyTextureID, renderingData.cameraData.renderer.cameraColorTarget, BloomSettings.FinalBlitMaterial); 126 | 127 | context.ExecuteCommandBuffer(cmd); 128 | cmd.Clear(); 129 | CommandBufferPool.Release(cmd); 130 | } 131 | 132 | // Cleanup any allocated resources that were created during the execution of this render pass. 133 | public override void OnCameraCleanup(CommandBuffer cmd) 134 | { 135 | RenderTexture.ReleaseTemporary(m_sourceTexture); 136 | RenderTexture.ReleaseTemporary(m_kernelTexture); 137 | cmd.ReleaseTemporaryRT(m_sourceFrequencyTextureID); 138 | cmd.ReleaseTemporaryRT(m_kernelFrequencyTextureID); 139 | } 140 | } 141 | 142 | CustomRenderPass m_ScriptablePass; 143 | public ConvolitonBloomSettings BloomSettings; 144 | 145 | /// 146 | public override void Create() 147 | { 148 | m_ScriptablePass = new CustomRenderPass(); 149 | m_ScriptablePass.renderPassEvent = RenderPassEvent.BeforeRenderingPostProcessing; 150 | m_ScriptablePass.BloomSettings = BloomSettings; 151 | } 152 | 153 | // Here you can inject one or multiple render passes in the renderer. 154 | // This method is called when setting up the renderer once per-camera. 155 | public override void AddRenderPasses(ScriptableRenderer renderer, ref RenderingData renderingData) 156 | { 157 | renderer.EnqueuePass(m_ScriptablePass); 158 | } 159 | } 160 | 161 | 162 | -------------------------------------------------------------------------------- /Assets/Scripts/ConvolutionBloom.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 697340182c5048547897e1c113f81df5 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Settings.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 709f11a7f3c4041caa4ef136ea32d874 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/BloomSetting.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: 0a8980054c5ac6e41bd1b18339cf62e1, type: 3} 13 | m_Name: BloomSetting 14 | m_EditorClassIdentifier: 15 | KernelGenerateMaterial: {fileID: 2100000, guid: 1cf42a0dca9483e4da768971395fa27c, 16 | type: 2} 17 | SourceGenerateMaterial: {fileID: 2100000, guid: 55c5871186a5ef442a97babaa477c9b2, 18 | type: 2} 19 | FinalBlitMaterial: {fileID: 2100000, guid: 4d3c8a1d626b05348845cb5279176c3d, type: 2} 20 | KernelTexture: {fileID: 2800000, guid: db0e1f70ad96a474598e0f2748ac048f, type: 3} 21 | FFTComputeShader: {fileID: 7200000, guid: 0c8c263c1180a1540a77f8e2ee203db9, type: 3} 22 | Intensity: 1.37 23 | Threshold: 13.23 24 | KernelPositionOffset: {x: 0, y: 0} 25 | KernelSizeScale: {x: 1, y: 1} 26 | KernelDistanceExp: 0 27 | KernelDistanceExpClampMin: 1 28 | KernelDistanceExpScale: 1 29 | KernelImageUseLuminanceAsRGB: 1 30 | -------------------------------------------------------------------------------- /Assets/Settings/BloomSetting.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 927c970a9a8ba754396b7e0f59856d89 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/SampleSceneProfile.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-7893295128165547882 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: 0b2db86121404754db890f4c8dfe81b2, type: 3} 13 | m_Name: Bloom 14 | m_EditorClassIdentifier: 15 | active: 0 16 | threshold: 17 | m_OverrideState: 1 18 | m_Value: 1 19 | intensity: 20 | m_OverrideState: 1 21 | m_Value: 1 22 | scatter: 23 | m_OverrideState: 0 24 | m_Value: 0.7 25 | clamp: 26 | m_OverrideState: 0 27 | m_Value: 65472 28 | tint: 29 | m_OverrideState: 0 30 | m_Value: {r: 1, g: 1, b: 1, a: 1} 31 | highQualityFiltering: 32 | m_OverrideState: 0 33 | m_Value: 0 34 | skipIterations: 35 | m_OverrideState: 0 36 | m_Value: 1 37 | dirtTexture: 38 | m_OverrideState: 0 39 | m_Value: {fileID: 0} 40 | dirtIntensity: 41 | m_OverrideState: 0 42 | m_Value: 0 43 | --- !u!114 &-7011558710299706105 44 | MonoBehaviour: 45 | m_ObjectHideFlags: 3 46 | m_CorrespondingSourceObject: {fileID: 0} 47 | m_PrefabInstance: {fileID: 0} 48 | m_PrefabAsset: {fileID: 0} 49 | m_GameObject: {fileID: 0} 50 | m_Enabled: 1 51 | m_EditorHideFlags: 0 52 | m_Script: {fileID: 11500000, guid: 899c54efeace73346a0a16faa3afe726, type: 3} 53 | m_Name: Vignette 54 | m_EditorClassIdentifier: 55 | active: 1 56 | color: 57 | m_OverrideState: 0 58 | m_Value: {r: 0, g: 0, b: 0, a: 1} 59 | center: 60 | m_OverrideState: 0 61 | m_Value: {x: 0.5, y: 0.5} 62 | intensity: 63 | m_OverrideState: 1 64 | m_Value: 0.25 65 | smoothness: 66 | m_OverrideState: 1 67 | m_Value: 0.4 68 | rounded: 69 | m_OverrideState: 0 70 | m_Value: 0 71 | --- !u!114 &11400000 72 | MonoBehaviour: 73 | m_ObjectHideFlags: 0 74 | m_CorrespondingSourceObject: {fileID: 0} 75 | m_PrefabInstance: {fileID: 0} 76 | m_PrefabAsset: {fileID: 0} 77 | m_GameObject: {fileID: 0} 78 | m_Enabled: 1 79 | m_EditorHideFlags: 0 80 | m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} 81 | m_Name: SampleSceneProfile 82 | m_EditorClassIdentifier: 83 | components: 84 | - {fileID: 849379129802519247} 85 | - {fileID: -7893295128165547882} 86 | - {fileID: -7011558710299706105} 87 | --- !u!114 &849379129802519247 88 | MonoBehaviour: 89 | m_ObjectHideFlags: 3 90 | m_CorrespondingSourceObject: {fileID: 0} 91 | m_PrefabInstance: {fileID: 0} 92 | m_PrefabAsset: {fileID: 0} 93 | m_GameObject: {fileID: 0} 94 | m_Enabled: 1 95 | m_EditorHideFlags: 0 96 | m_Script: {fileID: 11500000, guid: 97c23e3b12dc18c42a140437e53d3951, type: 3} 97 | m_Name: Tonemapping 98 | m_EditorClassIdentifier: 99 | active: 1 100 | mode: 101 | m_OverrideState: 1 102 | m_Value: 1 103 | -------------------------------------------------------------------------------- /Assets/Settings/SampleSceneProfile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a6560a915ef98420e9faacc1c7438823 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/URP-HighFidelity-Renderer.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-1878332245247344467 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: SSAO 14 | m_EditorClassIdentifier: 15 | m_Active: 1 16 | m_Shader: {fileID: 4800000, guid: 0849e84e3d62649e8882e9d6f056a017, type: 3} 17 | m_Settings: 18 | Downsample: 0 19 | AfterOpaque: 0 20 | Source: 1 21 | NormalSamples: 1 22 | Intensity: 0.5 23 | DirectLightingStrength: 0.25 24 | Radius: 0.25 25 | SampleCount: 12 26 | --- !u!114 &11400000 27 | MonoBehaviour: 28 | m_ObjectHideFlags: 0 29 | m_CorrespondingSourceObject: {fileID: 0} 30 | m_PrefabInstance: {fileID: 0} 31 | m_PrefabAsset: {fileID: 0} 32 | m_GameObject: {fileID: 0} 33 | m_Enabled: 1 34 | m_EditorHideFlags: 0 35 | m_Script: {fileID: 11500000, guid: de640fe3d0db1804a85f9fc8f5cadab6, type: 3} 36 | m_Name: URP-HighFidelity-Renderer 37 | m_EditorClassIdentifier: 38 | debugShaders: 39 | debugReplacementPS: {fileID: 4800000, guid: cf852408f2e174538bcd9b7fda1c5ae7, 40 | type: 3} 41 | m_RendererFeatures: 42 | - {fileID: -1878332245247344467} 43 | - {fileID: 5985438550075441400} 44 | m_RendererFeatureMap: adc0de57c6d2eee5f8002d2aa68c1053 45 | m_UseNativeRenderPass: 0 46 | postProcessData: {fileID: 11400000, guid: 41439944d30ece34e96484bdb6645b55, type: 2} 47 | xrSystemData: {fileID: 11400000, guid: 60e1133243b97e347b653163a8c01b64, type: 2} 48 | shaders: 49 | blitPS: {fileID: 4800000, guid: c17132b1f77d20942aa75f8429c0f8bc, type: 3} 50 | copyDepthPS: {fileID: 4800000, guid: d6dae50ee9e1bfa4db75f19f99355220, type: 3} 51 | screenSpaceShadowPS: {fileID: 0} 52 | samplingPS: {fileID: 4800000, guid: 04c410c9937594faa893a11dceb85f7e, type: 3} 53 | stencilDeferredPS: {fileID: 4800000, guid: e9155b26e1bc55942a41e518703fe304, type: 3} 54 | fallbackErrorPS: {fileID: 4800000, guid: e6e9a19c3678ded42a3bc431ebef7dbd, type: 3} 55 | materialErrorPS: {fileID: 4800000, guid: 5fd9a8feb75a4b5894c241777f519d4e, type: 3} 56 | coreBlitPS: {fileID: 4800000, guid: 93446b5c5339d4f00b85c159e1159b7c, type: 3} 57 | coreBlitColorAndDepthPS: {fileID: 4800000, guid: d104b2fc1ca6445babb8e90b0758136b, 58 | type: 3} 59 | cameraMotionVector: {fileID: 4800000, guid: c56b7e0d4c7cb484e959caeeedae9bbf, 60 | type: 3} 61 | objectMotionVector: {fileID: 4800000, guid: 7b3ede40266cd49a395def176e1bc486, 62 | type: 3} 63 | m_AssetVersion: 1 64 | m_OpaqueLayerMask: 65 | serializedVersion: 2 66 | m_Bits: 4294967295 67 | m_TransparentLayerMask: 68 | serializedVersion: 2 69 | m_Bits: 4294967295 70 | m_DefaultStencilState: 71 | overrideStencilState: 0 72 | stencilReference: 0 73 | stencilCompareFunction: 8 74 | passOperation: 2 75 | failOperation: 0 76 | zFailOperation: 0 77 | m_ShadowTransparentReceive: 1 78 | m_RenderingMode: 0 79 | m_DepthPrimingMode: 0 80 | m_AccurateGbufferNormals: 0 81 | m_ClusteredRendering: 0 82 | m_TileSize: 32 83 | m_IntermediateTextureMode: 0 84 | --- !u!114 &5985438550075441400 85 | MonoBehaviour: 86 | m_ObjectHideFlags: 0 87 | m_CorrespondingSourceObject: {fileID: 0} 88 | m_PrefabInstance: {fileID: 0} 89 | m_PrefabAsset: {fileID: 0} 90 | m_GameObject: {fileID: 0} 91 | m_Enabled: 1 92 | m_EditorHideFlags: 0 93 | m_Script: {fileID: 11500000, guid: 697340182c5048547897e1c113f81df5, type: 3} 94 | m_Name: ConvolutionBloom 95 | m_EditorClassIdentifier: 96 | m_Active: 1 97 | BloomSettings: {fileID: 11400000, guid: 927c970a9a8ba754396b7e0f59856d89, type: 2} 98 | -------------------------------------------------------------------------------- /Assets/Settings/URP-HighFidelity-Renderer.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c40be3174f62c4acf8c1216858c64956 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Settings/URP-HighFidelity.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: URP-HighFidelity 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 9 16 | k_AssetPreviousVersion: 9 17 | m_RendererType: 1 18 | m_RendererData: {fileID: 0} 19 | m_RendererDataList: 20 | - {fileID: 11400000, guid: c40be3174f62c4acf8c1216858c64956, type: 2} 21 | m_DefaultRendererIndex: 0 22 | m_RequireDepthTexture: 0 23 | m_RequireOpaqueTexture: 0 24 | m_OpaqueDownsampling: 1 25 | m_SupportsTerrainHoles: 1 26 | m_StoreActionsOptimization: 0 27 | m_SupportsHDR: 1 28 | m_MSAA: 4 29 | m_RenderScale: 1 30 | m_MainLightRenderingMode: 1 31 | m_MainLightShadowsSupported: 1 32 | m_MainLightShadowmapResolution: 4096 33 | m_AdditionalLightsRenderingMode: 1 34 | m_AdditionalLightsPerObjectLimit: 8 35 | m_AdditionalLightShadowsSupported: 1 36 | m_AdditionalLightsShadowmapResolution: 4096 37 | m_AdditionalLightsShadowResolutionTierLow: 128 38 | m_AdditionalLightsShadowResolutionTierMedium: 256 39 | m_AdditionalLightsShadowResolutionTierHigh: 512 40 | m_ReflectionProbeBlending: 1 41 | m_ReflectionProbeBoxProjection: 1 42 | m_ShadowDistance: 150 43 | m_ShadowCascadeCount: 4 44 | m_Cascade2Split: 0.25 45 | m_Cascade3Split: {x: 0.1, y: 0.3} 46 | m_Cascade4Split: {x: 0.067, y: 0.2, z: 0.467} 47 | m_CascadeBorder: 0.1 48 | m_ShadowDepthBias: 1 49 | m_ShadowNormalBias: 1 50 | m_SoftShadowsSupported: 1 51 | m_AdditionalLightsCookieResolution: 4096 52 | m_AdditionalLightsCookieFormat: 4 53 | m_UseSRPBatcher: 1 54 | m_SupportsDynamicBatching: 0 55 | m_MixedLightingSupported: 1 56 | m_SupportsLightLayers: 0 57 | m_DebugLevel: 0 58 | m_UseAdaptivePerformance: 1 59 | m_ColorGradingMode: 0 60 | m_ColorGradingLutSize: 32 61 | m_UseFastSRGBLinearConversion: 0 62 | m_ShadowType: 1 63 | m_LocalShadowsSupported: 0 64 | m_LocalShadowsAtlasResolution: 256 65 | m_MaxPixelLights: 0 66 | m_ShadowAtlasResolution: 256 67 | m_ShaderVariantLogLevel: 0 68 | m_VolumeFrameworkUpdateMode: 0 69 | m_ShadowCascades: 1 70 | -------------------------------------------------------------------------------- /Assets/Settings/URP-HighFidelity.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7b7fd9122c28c4d15b667c7040e3b3fd 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 66a9f9c3073796c44a38bd81e46f9def 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/FFTCS.compute: -------------------------------------------------------------------------------- 1 | //#pragma enable_d3d11_debug_symbols 2 | 3 | #include "FFTCommon.hlsl" 4 | 5 | float IsForward; 6 | RWTexture2D SourceTexture; 7 | RWTexture2D FrequencyTexture; 8 | 9 | // ---------------------------------------------------------------------------------- // 10 | 11 | #pragma kernel FFTForwardHorizontal 12 | [numthreads(SourceTextureSize,1,1)] 13 | void FFTForwardHorizontal (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 14 | { 15 | uint threadIndex = tid.x; 16 | uint groupIndex = gid.x; 17 | uint2 uv = uint2(threadIndex, groupIndex); 18 | float4 src = SourceTexture[uv]; 19 | 20 | Complex inputs[4] = { Complex(src.x, 0), Complex(src.y, 0), Complex(src.z, 0), Complex(src.w, 0) }; 21 | Complex outputs[4] = { Complex(0,0), Complex(0,0), Complex(0,0),Complex(0,0) }; 22 | 23 | for(uint channel=0; channel<4; channel++) 24 | { 25 | Complex f_n = inputs[channel]; 26 | Complex F_k = CooleyTukeyFFT(f_n, threadIndex, true); 27 | outputs[channel] = F_k; 28 | } 29 | 30 | uint2 uvRG = uv; 31 | uint2 uvBA = uint2(uv.x + SourceTextureSize, uv.y); 32 | FrequencyTexture[uvRG] = float4(outputs[0], outputs[1]); 33 | FrequencyTexture[uvBA] = float4(outputs[2], outputs[3]); 34 | } 35 | 36 | // ---------------------------------------------------------------------------------- // 37 | 38 | #pragma kernel FFTInverseHorizontal 39 | [numthreads(SourceTextureSize,1,1)] 40 | void FFTInverseHorizontal (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 41 | { 42 | uint threadIndex = tid.x; 43 | uint groupIndex = gid.x; 44 | uint2 uv = uint2(threadIndex, groupIndex); 45 | 46 | uint2 uvRG = uv; 47 | uint2 uvBA = uint2(uv.x + SourceTextureSize, uv.y); 48 | float4 srcRG = FrequencyTexture[uvRG]; 49 | float4 srcBA = FrequencyTexture[uvBA]; 50 | 51 | Complex inputs[4] = { srcRG.xy, srcRG.zw, srcBA.xy, srcBA.zw }; 52 | Complex outputs[4] = { Complex(0,0), Complex(0,0), Complex(0,0),Complex(0,0) }; 53 | 54 | for(uint channel=0; channel<4; channel++) 55 | { 56 | Complex F_k = inputs[channel]; 57 | Complex f_n = CooleyTukeyFFT(F_k, threadIndex, false); 58 | outputs[channel] = f_n; 59 | } 60 | 61 | FrequencyTexture[uv] = float4(outputs[0].x, outputs[1].x, outputs[2].x, outputs[3].x); 62 | } 63 | 64 | // ---------------------------------------------------------------------------------- // 65 | 66 | #pragma kernel FFTVertical 67 | [numthreads(SourceTextureSize,1,1)] 68 | void FFTVertical (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 69 | { 70 | uint threadIndex = tid.x; 71 | uint groupIndex = gid.x; 72 | uint2 uv = uint2(groupIndex, threadIndex); 73 | 74 | uint2 uvRG = uv; 75 | uint2 uvBA = uint2(uv.x + SourceTextureSize, uv.y); 76 | float4 srcRG = FrequencyTexture[uvRG]; 77 | float4 srcBA = FrequencyTexture[uvBA]; 78 | 79 | Complex inputs[4] = { srcRG.xy, srcRG.zw, srcBA.xy, srcBA.zw }; 80 | Complex outputs[4] = { Complex(0,0), Complex(0,0), Complex(0,0),Complex(0,0) }; 81 | 82 | for(uint channel=0; channel<4; channel++) 83 | { 84 | Complex f_n = inputs[channel]; 85 | Complex F_k = CooleyTukeyFFT(f_n, threadIndex, IsForward > 0); 86 | outputs[channel] = F_k; 87 | } 88 | 89 | FrequencyTexture[uvRG] = float4(outputs[0], outputs[1]); 90 | FrequencyTexture[uvBA] = float4(outputs[2], outputs[3]); 91 | } 92 | 93 | // ---------------------------------------------------------------------------------- // 94 | 95 | RWTexture2D SourceFrequencyTexture; 96 | RWTexture2D KernelFrequencyTexture; 97 | 98 | #pragma kernel Convolution 99 | [numthreads(8,8,1)] 100 | void Convolution (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 101 | { 102 | uint2 uvRG = id.xy; 103 | uint2 uvBA = uint2(id.x + SourceTextureSize, id.y); 104 | 105 | float4 src1 = SourceFrequencyTexture[uvRG]; 106 | float4 src2 = SourceFrequencyTexture[uvBA]; 107 | float4 k1 = KernelFrequencyTexture[uvRG]; 108 | float4 k2 = KernelFrequencyTexture[uvBA]; 109 | 110 | Complex inputs[4] = { src1.xy, src1.zw, src2.xy, src2.zw }; 111 | Complex kernels[4] = { k1.xy, k1.zw, k2.xy, k2.zw }; 112 | Complex outputs[4] = { Complex(0,0), Complex(0,0), Complex(0,0),Complex(0,0) }; 113 | 114 | for(uint i=0; i<4; i++) 115 | { 116 | outputs[i] = ComplexMultiply(inputs[i], kernels[i]); 117 | } 118 | 119 | SourceFrequencyTexture[uvRG] = float4(outputs[0], outputs[1]); 120 | SourceFrequencyTexture[uvBA] = float4(outputs[2], outputs[3]); 121 | } 122 | 123 | // ---------------------------------------------------------------------------------- // 124 | 125 | #pragma kernel KernelTransform 126 | [numthreads(8,8,1)] 127 | void KernelTransform (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 128 | { 129 | uint halfN = SourceTextureSize / 2; 130 | uint2 uvSrc = id.xy; 131 | uint2 uvDst = (id.xy + uint2(halfN, halfN)); 132 | uvDst.x %= SourceTextureSize; 133 | uvDst.y %= SourceTextureSize; 134 | 135 | float4 src = SourceTexture[uvSrc]; 136 | float4 dst = SourceTexture[uvDst]; 137 | 138 | SourceTexture[uvSrc] = dst; 139 | SourceTexture[uvDst] = src; 140 | } 141 | 142 | // ---------------------------------------------------------------------------------- // 143 | 144 | #pragma kernel TwoForOneFFTForwardHorizontal 145 | [numthreads(SourceTextureSize,1,1)] 146 | void TwoForOneFFTForwardHorizontal (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 147 | { 148 | uint threadIndex = tid.x; 149 | uint groupIndex = gid.x; 150 | uint2 uv = uint2(threadIndex, groupIndex); 151 | float4 src = SourceTexture[uv]; 152 | 153 | Complex inputs[2] = { Complex(src.x, src.y), Complex(src.z, src.w) }; 154 | Complex outputs[4] = { Complex(0,0), Complex(0,0), Complex(0,0),Complex(0,0) }; 155 | 156 | for(uint channel=0; channel<2; channel++) 157 | { 158 | Complex z_n = inputs[channel]; 159 | Complex X_k = Complex(0, 0); 160 | Complex Y_k = Complex(0, 0); 161 | TwoForOneFFTForward(z_n, threadIndex, X_k, Y_k); 162 | 163 | outputs[channel * 2 + 0] = X_k; 164 | outputs[channel * 2 + 1] = Y_k; 165 | } 166 | 167 | uint2 uvRG = uv; 168 | uint2 uvBA = uint2(uv.x + SourceTextureSize, uv.y); 169 | FrequencyTexture[uvRG] = float4(outputs[0], outputs[1]); 170 | FrequencyTexture[uvBA] = float4(outputs[2], outputs[3]); 171 | } 172 | 173 | // ---------------------------------------------------------------------------------- // 174 | 175 | #pragma kernel TwoForOneFFTInverseHorizontal 176 | [numthreads(SourceTextureSize,1,1)] 177 | void TwoForOneFFTInverseHorizontal (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 178 | { 179 | uint threadIndex = tid.x; 180 | uint groupIndex = gid.x; 181 | uint2 uv = uint2(threadIndex, groupIndex); 182 | 183 | uint2 uvRG = uv; 184 | uint2 uvBA = uint2(uv.x + SourceTextureSize, uv.y); 185 | float4 srcRG = FrequencyTexture[uvRG]; 186 | float4 srcBA = FrequencyTexture[uvBA]; 187 | 188 | Complex inputs[4] = { srcRG.xy, srcRG.zw, srcBA.xy, srcBA.zw }; 189 | float outputs[4] = { 0, 0, 0, 0 }; 190 | 191 | for(uint channel=0; channel<2; channel++) 192 | { 193 | Complex X_k = inputs[channel * 2 + 0]; 194 | Complex Y_k = inputs[channel * 2 + 1]; 195 | float x_n = 0; 196 | float y_n = 0; 197 | 198 | TwoForOneFFTInverse(X_k, Y_k, threadIndex, x_n, y_n); 199 | outputs[channel * 2 + 0] = x_n; 200 | outputs[channel * 2 + 1] = y_n; 201 | } 202 | 203 | FrequencyTexture[uv] = float4(outputs[0], outputs[1], outputs[2], outputs[3]); 204 | } 205 | 206 | // ---------------------------------------------------------------------------------- // 207 | 208 | #pragma kernel TwoForOneFFTForwardHorizontalRadix8_1_thread_8_signal 209 | [numthreads(SourceTextureSize/8,1,1)] 210 | void TwoForOneFFTForwardHorizontalRadix8_1_thread_8_signal (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 211 | { 212 | uint threadIndex = tid.x; 213 | uint groupIndex = gid.x; 214 | 215 | Complex inputs[2][8]; 216 | Complex outputs[4][8]; 217 | 218 | // 一个线程处理 8 个输入信号 219 | for(uint i=0; i<8; i++) 220 | { 221 | float4 src = SourceTexture[uint2(threadIndex * 8 + i, groupIndex)]; 222 | inputs[0][i] = src.rg; 223 | inputs[1][i] = src.ba; 224 | } 225 | 226 | // 对 RG, BA 通道分别进行变换 227 | for(uint channel=0; channel<2; channel++) 228 | { 229 | Radix8FFT_1_thread_8_signal(inputs[channel], threadIndex, true); 230 | 231 | // split two-for-one 232 | GroupMemoryBarrierWithGroupSync(); 233 | for(uint i=0; i<8; i++) 234 | { 235 | uint index = threadIndex * 8 + i; 236 | uint rollIndex = (SourceTextureSize - index) % SourceTextureSize; 237 | 238 | Complex Z_k = groupSharedBuffer[index] / float(sqrt(SourceTextureSize)); 239 | Complex Z_k_c = ComplexConjugate(groupSharedBuffer[rollIndex] / float(sqrt(SourceTextureSize))); 240 | 241 | Complex X_k = (Z_k + Z_k_c) / 2; 242 | Complex Y_k = ComplexMultiply(Complex(0, -1), (Z_k - Z_k_c) / 2); 243 | 244 | outputs[channel * 2 + 0][i] = X_k; 245 | outputs[channel * 2 + 1][i] = Y_k; 246 | } 247 | } 248 | 249 | // 一个线程处理 8 个输入信号 250 | for(uint i=0; i<8; i++) 251 | { 252 | uint2 uvRG = uint2(threadIndex * 8 + i, groupIndex); 253 | uint2 uvBA = uint2(uvRG.x + SourceTextureSize, uvRG.y); 254 | 255 | FrequencyTexture[uvRG] = float4(outputs[0][i], outputs[1][i]); 256 | FrequencyTexture[uvBA] = float4(outputs[2][i], outputs[3][i]); 257 | } 258 | } 259 | 260 | // ---------------------------------------------------------------------------------- // 261 | 262 | #pragma kernel FFTVerticalRadix8_1_thread_8_signal 263 | [numthreads(SourceTextureSize/8,1,1)] 264 | void FFTVerticalRadix8_1_thread_8_signal (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 265 | { 266 | uint threadIndex = tid.x; 267 | uint groupIndex = gid.x; 268 | 269 | Complex inputs[4][8]; 270 | Complex outputs[4][8]; 271 | 272 | // 一个线程处理 8 个输入信号 273 | for(uint i=0; i<8; i++) 274 | { 275 | uint2 uvRG = uint2(groupIndex, threadIndex * 8 + i); 276 | uint2 uvBA = uint2(groupIndex + SourceTextureSize, threadIndex * 8 + i); 277 | float4 srcRG = FrequencyTexture[uvRG]; 278 | float4 srcBA = FrequencyTexture[uvBA]; 279 | 280 | inputs[0][i] = srcRG.rg; // R 281 | inputs[1][i] = srcRG.ba; // G 282 | inputs[2][i] = srcBA.rg; // B 283 | inputs[3][i] = srcBA.ba; // A 284 | } 285 | 286 | // 对 R, G, B, A 通道分别进行变换 287 | for(uint channel=0; channel<4; channel++) 288 | { 289 | Radix8FFT_1_thread_8_signal(inputs[channel], threadIndex, IsForward > 0); 290 | 291 | GroupMemoryBarrierWithGroupSync(); 292 | for(uint i=0; i<8; i++) 293 | { 294 | uint index = threadIndex * 8 + i; 295 | Complex F_k = groupSharedBuffer[index] / float(sqrt(SourceTextureSize)); 296 | outputs[channel][i] = F_k; 297 | } 298 | } 299 | 300 | // 一个线程处理 8 个输入信号 301 | for(uint i=0; i<8; i++) 302 | { 303 | uint2 uvRG = uint2(groupIndex, threadIndex * 8 + i); 304 | uint2 uvBA = uint2(groupIndex + SourceTextureSize, threadIndex * 8 + i); 305 | 306 | FrequencyTexture[uvRG] = float4(outputs[0][i], outputs[1][i]); 307 | FrequencyTexture[uvBA] = float4(outputs[2][i], outputs[3][i]); 308 | } 309 | } 310 | 311 | // ---------------------------------------------------------------------------------- // 312 | 313 | #pragma kernel TwoForOneFFTInverseHorizontalRadix8_1_thread_8_signal 314 | [numthreads(SourceTextureSize/8,1,1)] 315 | void TwoForOneFFTInverseHorizontalRadix8_1_thread_8_signal (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 316 | { 317 | uint threadIndex = tid.x; 318 | uint groupIndex = gid.x; 319 | 320 | Complex inputs[4][8]; 321 | float outputs[4][8]; 322 | 323 | // 一个线程处理 8 个输入信号 324 | for(uint i=0; i<8; i++) 325 | { 326 | uint2 uvRG = uint2(threadIndex * 8 + i, groupIndex); 327 | uint2 uvBA = uint2(threadIndex * 8 + i + SourceTextureSize, groupIndex); 328 | float4 srcRG = FrequencyTexture[uvRG]; 329 | float4 srcBA = FrequencyTexture[uvBA]; 330 | 331 | inputs[0][i] = srcRG.rg; // R 332 | inputs[1][i] = srcRG.ba; // G 333 | inputs[2][i] = srcBA.rg; // B 334 | inputs[3][i] = srcBA.ba; // A 335 | } 336 | 337 | // 对 RG, BA 通道分别进行变换 338 | for(uint channel=0; channel<2; channel++) 339 | { 340 | // merge two-for-one 341 | Complex twoForOneInput[8]; 342 | for(uint i=0; i<8; i++) 343 | { 344 | Complex X_k = inputs[channel * 2 + 0][i]; 345 | Complex Y_k = inputs[channel * 2 + 1][i]; 346 | Complex Z_k = X_k + ComplexMultiply(Complex(0, 1), Y_k); 347 | twoForOneInput[i] = Z_k; 348 | } 349 | 350 | Radix8FFT_1_thread_8_signal(twoForOneInput, threadIndex, false); 351 | 352 | // split two-for-one 353 | GroupMemoryBarrierWithGroupSync(); 354 | for(uint i=0; i<8; i++) 355 | { 356 | uint index = threadIndex * 8 + i; 357 | Complex z_n = groupSharedBuffer[index] / float(sqrt(SourceTextureSize)); 358 | float x_n = z_n.x; 359 | float y_n = z_n.y; 360 | 361 | outputs[channel * 2 + 0][i] = x_n; 362 | outputs[channel * 2 + 1][i] = y_n; 363 | } 364 | } 365 | 366 | // 一个线程处理 8 个输入信号 367 | for(uint i=0; i<8; i++) 368 | { 369 | uint2 uv = uint2(threadIndex * 8 + i, groupIndex); 370 | FrequencyTexture[uv] = float4(outputs[0][i], outputs[1][i], outputs[2][i], outputs[3][i]); 371 | } 372 | } 373 | 374 | // ---------------------------------------------------------------------------------- // 375 | 376 | #pragma kernel TwoForOneFFTForwardHorizontalRadix8 377 | [numthreads(SourceTextureSize,1,1)] 378 | void TwoForOneFFTForwardHorizontalRadix8 (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 379 | { 380 | uint threadIndex = tid.x; 381 | uint groupIndex = gid.x; 382 | 383 | Complex inputs[2]; 384 | Complex outputs[4]; 385 | 386 | float4 src = SourceTexture[uint2(threadIndex, groupIndex)]; 387 | inputs[0] = src.rg; 388 | inputs[1] = src.ba; 389 | 390 | // 对 RG, BA 通道分别进行变换 391 | for(uint channel=0; channel<2; channel++) 392 | { 393 | Radix8FFT(inputs[channel], threadIndex, true); 394 | 395 | GroupMemoryBarrierWithGroupSync(); 396 | 397 | // split two-for-one 398 | uint rollIndex = (SourceTextureSize - threadIndex) % SourceTextureSize; 399 | 400 | Complex Z_k = groupSharedBuffer[threadIndex] / float(sqrt(SourceTextureSize)); 401 | Complex Z_k_c = ComplexConjugate(groupSharedBuffer[rollIndex] / float(sqrt(SourceTextureSize))); 402 | 403 | Complex X_k = (Z_k + Z_k_c) / 2; 404 | Complex Y_k = ComplexMultiply(Complex(0, -1), (Z_k - Z_k_c) / 2); 405 | 406 | outputs[channel * 2 + 0] = X_k; 407 | outputs[channel * 2 + 1] = Y_k; 408 | } 409 | 410 | uint2 uvRG = uint2(threadIndex, groupIndex); 411 | uint2 uvBA = uint2(uvRG.x + SourceTextureSize, uvRG.y); 412 | 413 | FrequencyTexture[uvRG] = float4(outputs[0], outputs[1]); 414 | FrequencyTexture[uvBA] = float4(outputs[2], outputs[3]); 415 | } 416 | 417 | // ---------------------------------------------------------------------------------- // 418 | 419 | #pragma kernel FFTVerticalRadix8 420 | [numthreads(SourceTextureSize,1,1)] 421 | void FFTVerticalRadix8 (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 422 | { 423 | uint threadIndex = tid.x; 424 | uint groupIndex = gid.x; 425 | 426 | Complex inputs[4]; 427 | Complex outputs[4]; 428 | 429 | uint2 uvRG = uint2(groupIndex, threadIndex); 430 | uint2 uvBA = uint2(groupIndex + SourceTextureSize, threadIndex); 431 | float4 srcRG = FrequencyTexture[uvRG]; 432 | float4 srcBA = FrequencyTexture[uvBA]; 433 | 434 | inputs[0] = srcRG.rg; // R 435 | inputs[1] = srcRG.ba; // G 436 | inputs[2] = srcBA.rg; // B 437 | inputs[3] = srcBA.ba; // A 438 | 439 | // 对 R, G, B, A 通道分别进行变换 440 | for(uint channel=0; channel<4; channel++) 441 | { 442 | Radix8FFT(inputs[channel], threadIndex, IsForward > 0); 443 | 444 | GroupMemoryBarrierWithGroupSync(); 445 | Complex F_k = groupSharedBuffer[threadIndex] / float(sqrt(SourceTextureSize)); 446 | outputs[channel] = F_k; 447 | } 448 | 449 | FrequencyTexture[uvRG] = float4(outputs[0], outputs[1]); 450 | FrequencyTexture[uvBA] = float4(outputs[2], outputs[3]); 451 | } 452 | 453 | // ---------------------------------------------------------------------------------- // 454 | 455 | #pragma kernel TwoForOneFFTInverseHorizontalRadix8 456 | [numthreads(SourceTextureSize,1,1)] 457 | void TwoForOneFFTInverseHorizontalRadix8 (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 458 | { 459 | uint threadIndex = tid.x; 460 | uint groupIndex = gid.x; 461 | 462 | Complex inputs[4]; 463 | float outputs[4]; 464 | 465 | uint2 uvRG = uint2(threadIndex, groupIndex); 466 | uint2 uvBA = uint2(threadIndex + SourceTextureSize, groupIndex); 467 | float4 srcRG = FrequencyTexture[uvRG]; 468 | float4 srcBA = FrequencyTexture[uvBA]; 469 | 470 | inputs[0] = srcRG.rg; // R 471 | inputs[1] = srcRG.ba; // G 472 | inputs[2] = srcBA.rg; // B 473 | inputs[3] = srcBA.ba; // A 474 | 475 | // 对 RG, BA 通道分别进行变换 476 | for(uint channel=0; channel<2; channel++) 477 | { 478 | // merge two-for-one 479 | Complex X_k = inputs[channel * 2 + 0]; 480 | Complex Y_k = inputs[channel * 2 + 1]; 481 | Complex Z_k = X_k + ComplexMultiply(Complex(0, 1), Y_k); 482 | 483 | Radix8FFT(Z_k, threadIndex, false); 484 | 485 | GroupMemoryBarrierWithGroupSync(); 486 | 487 | // split two-for-one 488 | Complex z_n = groupSharedBuffer[threadIndex] / float(sqrt(SourceTextureSize)); 489 | float x_n = z_n.x; 490 | float y_n = z_n.y; 491 | 492 | outputs[channel * 2 + 0] = x_n; 493 | outputs[channel * 2 + 1] = y_n; 494 | } 495 | 496 | uint2 uv = uint2(threadIndex, groupIndex); 497 | FrequencyTexture[uv] = float4(outputs[0], outputs[1], outputs[2], outputs[3]); 498 | } 499 | 500 | // ---------------------------------------------------------------------------------- // 501 | 502 | /* 503 | [numthreads(SourceTextureSize,1,1)] 504 | void FFTForward (uint3 id : SV_DispatchThreadID, uint3 tid : SV_GroupThreadID, uint3 gid : SV_GroupID) 505 | { 506 | // dft for validate 507 | bool bIsHorizontal = IsHorizontal > 0; 508 | bool bIsForward = IsForward > 0; 509 | 510 | uint threadIndex = tid.x; 511 | uint groupIndex = gid.y; 512 | 513 | { 514 | uint k = threadIndex; 515 | uint N = SourceTextureSize; 516 | Complex F_k = Complex(0, 0); 517 | // forward 518 | for(int n=0; n> 16); 29 | bits = ( (bits & 0x00ff00ff) << 8 ) | ( (bits & 0xff00ff00) >> 8 ); 30 | bits = ( (bits & 0x0f0f0f0f) << 4 ) | ( (bits & 0xf0f0f0f0) >> 4 ); 31 | bits = ( (bits & 0x33333333) << 2 ) | ( (bits & 0xcccccccc) >> 2 ); 32 | bits = ( (bits & 0x55555555) << 1 ) | ( (bits & 0xaaaaaaaa) >> 1 ); 33 | return bits; 34 | } 35 | 36 | uint ReversLowerNBits(uint bits, uint N) 37 | { 38 | return ReverseBits32(bits) >> (32 - N); 39 | } 40 | 41 | // 3bit 一组反转 42 | uint GetInputIndexRadix8(uint index) 43 | { 44 | uint low3bits = index & 0x7; 45 | uint mid3bits = (index & (0x7 << 3)) >> 3; 46 | uint high3bits = (index & (0x7 << 6)) >> 6; 47 | return (low3bits << 6) + (mid3bits << 3) + high3bits; 48 | } 49 | 50 | void SplitTwoForOne(in uint index, in Complex X_k, in Complex Y_k) 51 | { 52 | uint rollIndex = (SourceTextureSize - index) % SourceTextureSize; 53 | 54 | Complex Z_k = groupSharedBuffer[index] / float(sqrt(SourceTextureSize)); 55 | Complex Z_k_c = ComplexConjugate(groupSharedBuffer[rollIndex] / float(sqrt(SourceTextureSize))); 56 | 57 | X_k = (Z_k + Z_k_c) / 2; 58 | Y_k = ComplexMultiply(Complex(0, -1), (Z_k - Z_k_c) / 2); 59 | } 60 | 61 | Complex DFT(in Complex f_n, in uint index, in bool bIsForward) 62 | { 63 | groupSharedBuffer[index] = f_n; 64 | GroupMemoryBarrierWithGroupSync(); 65 | 66 | uint n = index; 67 | uint N = SourceTextureSize; 68 | f_n = Complex(0, 0); 69 | for(uint k=0; k -0.5) 42 | { 43 | return u + 0.5; 44 | } 45 | if(u > 0.5 && u < 1) 46 | { 47 | return u - 0.5; 48 | } 49 | return -1; 50 | } 51 | 52 | SAMPLER(sampler_LinearRepeat); 53 | SAMPLER(sampler_LinearClamp); 54 | Texture2D _MainTex; 55 | 56 | float4 FFTBloomKernelGenParam; 57 | float4 FFTBloomKernelGenParam1; 58 | 59 | float Luma(float3 color) 60 | { 61 | return dot(color, float3(0.299f, 0.587f, 0.114f)); 62 | } 63 | 64 | float4 frag (v2f i) : SV_Target 65 | { 66 | float2 offset = FFTBloomKernelGenParam.xy; 67 | float2 scale = FFTBloomKernelGenParam.zw; 68 | float KernelDistanceExp = FFTBloomKernelGenParam1.x; 69 | float KernelDistanceExpClampMin = FFTBloomKernelGenParam1.y; 70 | float KernelDistanceExpScale = FFTBloomKernelGenParam1.z; 71 | bool bUseLuminance = FFTBloomKernelGenParam1.w > 0.0f; 72 | 73 | // 用来缩放那些不是 hdr 格式的滤波盒 74 | float dis = (1.0 - length(i.uv - float2(0.5, 0.5))); 75 | float kernelScale = max(pow(dis, KernelDistanceExp) * KernelDistanceExpScale, KernelDistanceExpClampMin); 76 | 77 | float2 xy = i.uv * 2 - 1; 78 | xy /= scale; 79 | xy = xy * 0.5 + 0.5; 80 | 81 | float2 uv = xy - 0.5; 82 | uv.x = WrapUV(uv.x); 83 | uv.y = WrapUV(uv.y); 84 | 85 | //return float4(_MainTex.Sample(sampler_LinearRepeat, i.uv - 0.5).rgb, 0.0); 86 | if(bUseLuminance) 87 | { 88 | float lum = Luma(_MainTex.Sample(sampler_LinearClamp, xy).rgb); 89 | return float4(float3(lum, lum, lum) * kernelScale, 0.0); 90 | } 91 | return float4(_MainTex.Sample(sampler_LinearClamp, xy).rgb * kernelScale, 0.0); 92 | } 93 | ENDHLSL 94 | } 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /Assets/Shaders/KernelGenerate.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 881c6fe5f3dcd8c4381c0fc1c7afee71 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | preprocessorOverride: 0 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/Shaders/SourceGenerate.shader: -------------------------------------------------------------------------------- 1 | Shader "ConvolutionBloom/SourceGenerate" 2 | { 3 | Properties 4 | { 5 | _MainTex ("_MainTex", 2D) = "black" {} 6 | } 7 | SubShader 8 | { 9 | Cull Off ZWrite Off ZTest Always 10 | 11 | Pass 12 | { 13 | HLSLPROGRAM 14 | #pragma vertex vert 15 | #pragma fragment frag 16 | 17 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 18 | 19 | struct appdata 20 | { 21 | float4 vertex : POSITION; 22 | float2 uv : TEXCOORD0; 23 | }; 24 | 25 | struct v2f 26 | { 27 | float2 uv : TEXCOORD0; 28 | float4 vertex : SV_POSITION; 29 | }; 30 | 31 | v2f vert (appdata v) 32 | { 33 | v2f o; 34 | o.vertex = TransformObjectToHClip(v.vertex); 35 | o.uv = v.uv; 36 | return o; 37 | } 38 | 39 | SAMPLER(sampler_LinearClamp); 40 | Texture2D _MainTex; 41 | float FFTBloomThreshold; 42 | 43 | float Luma(float3 color) 44 | { 45 | return dot(color, float3(0.299f, 0.587f, 0.114f)); 46 | } 47 | 48 | float4 frag (v2f i) : SV_Target 49 | { 50 | float2 uv = i.uv; 51 | uv.y = 1.0 - uv.y; 52 | float aspect = _ScreenParams.x / _ScreenParams.y; 53 | if(_ScreenParams.x > _ScreenParams.y) 54 | { 55 | uv.y *= aspect; 56 | } 57 | else 58 | { 59 | uv.x /= aspect; 60 | } 61 | if(uv.y > 1.0) return float4(0, 0, 0, 0); 62 | 63 | #define USE_FILTER 1 64 | #if USE_FILTER 65 | float3 color = float3(0, 0, 0); 66 | float weight = 0.0; 67 | const float2 offsets[4] = {float2(-0.5, -0.5), float2(-0.5, +0.5), float2(+0.5, -0.5), float2(+0.5, +0.5)}; 68 | for(int i=0; i<4; i++) 69 | { 70 | float2 offset = 2.0 * offsets[i] / _ScreenParams.xy; 71 | float3 c = _MainTex.Sample(sampler_LinearClamp, uv + offset).rgb; 72 | float lu = Luma(c); 73 | float w = 1.0 / (1.0 + lu); 74 | color += c * w; 75 | weight += w; 76 | } 77 | color /= weight; 78 | #else 79 | float3 color = _MainTex.Sample(sampler_LinearClamp, uv).rgb; 80 | #endif // USE_FILTER 81 | 82 | float luma = Luma(color); 83 | float scale = saturate(luma - FFTBloomThreshold); 84 | float3 finalColor = color * scale; 85 | return float4(finalColor, 0.0); 86 | } 87 | ENDHLSL 88 | } 89 | } 90 | } 91 | -------------------------------------------------------------------------------- /Assets/Shaders/SourceGenerate.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1a23996ec3bc69447b2860a6d2d591d1 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | preprocessorOverride: 0 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/Textures.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f696197356f5ccc4bb55df98dfed2ef1 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Textures/DefaultBloomKernel.HDR: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AKGWSB/FFTConvolutionBloom/3be9c3c19d58437295d633e2f4f341866e083779/Assets/Textures/DefaultBloomKernel.HDR -------------------------------------------------------------------------------- /Assets/Textures/DefaultBloomKernel.HDR.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: db0e1f70ad96a474598e0f2748ac048f 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 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 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 0 40 | wrapV: 0 41 | wrapW: 0 42 | nPOTScale: 1 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 0 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 0 55 | spriteTessellationDetail: -1 56 | textureType: 0 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | platformSettings: 67 | - serializedVersion: 3 68 | buildTarget: DefaultTexturePlatform 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | androidETC2FallbackOverride: 0 78 | forceMaximumCompressionQuality_BC6H_BC7: 0 79 | - serializedVersion: 3 80 | buildTarget: Standalone 81 | maxTextureSize: 2048 82 | resizeAlgorithm: 0 83 | textureFormat: -1 84 | textureCompression: 1 85 | compressionQuality: 50 86 | crunchedCompression: 0 87 | allowsAlphaSplitting: 0 88 | overridden: 0 89 | androidETC2FallbackOverride: 0 90 | forceMaximumCompressionQuality_BC6H_BC7: 0 91 | - serializedVersion: 3 92 | buildTarget: Server 93 | maxTextureSize: 2048 94 | resizeAlgorithm: 0 95 | textureFormat: -1 96 | textureCompression: 1 97 | compressionQuality: 50 98 | crunchedCompression: 0 99 | allowsAlphaSplitting: 0 100 | overridden: 0 101 | androidETC2FallbackOverride: 0 102 | forceMaximumCompressionQuality_BC6H_BC7: 0 103 | spriteSheet: 104 | serializedVersion: 2 105 | sprites: [] 106 | outline: [] 107 | physicsShape: [] 108 | bones: [] 109 | spriteID: 110 | internalID: 0 111 | vertices: [] 112 | indices: 113 | edges: [] 114 | weights: [] 115 | secondaryTextures: [] 116 | nameFileIdTable: {} 117 | spritePackingTag: 118 | pSDRemoveMatte: 0 119 | pSDShowRemoveMatteOption: 0 120 | userData: 121 | assetBundleName: 122 | assetBundleVariant: 123 | -------------------------------------------------------------------------------- /Assets/Textures/dikhololo_night_1k.hdr: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AKGWSB/FFTConvolutionBloom/3be9c3c19d58437295d633e2f4f341866e083779/Assets/Textures/dikhololo_night_1k.hdr -------------------------------------------------------------------------------- /Assets/Textures/dikhololo_night_1k.hdr.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 80c5784ba4edb5f45a14defe7a9da9b9 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 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 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 0 40 | wrapV: 0 41 | wrapW: 0 42 | nPOTScale: 1 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 0 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 0 55 | spriteTessellationDetail: -1 56 | textureType: 0 57 | textureShape: 2 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | platformSettings: 67 | - serializedVersion: 3 68 | buildTarget: DefaultTexturePlatform 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | androidETC2FallbackOverride: 0 78 | forceMaximumCompressionQuality_BC6H_BC7: 0 79 | - serializedVersion: 3 80 | buildTarget: Standalone 81 | maxTextureSize: 2048 82 | resizeAlgorithm: 0 83 | textureFormat: -1 84 | textureCompression: 1 85 | compressionQuality: 50 86 | crunchedCompression: 0 87 | allowsAlphaSplitting: 0 88 | overridden: 0 89 | androidETC2FallbackOverride: 0 90 | forceMaximumCompressionQuality_BC6H_BC7: 0 91 | - serializedVersion: 3 92 | buildTarget: Server 93 | maxTextureSize: 2048 94 | resizeAlgorithm: 0 95 | textureFormat: -1 96 | textureCompression: 1 97 | compressionQuality: 50 98 | crunchedCompression: 0 99 | allowsAlphaSplitting: 0 100 | overridden: 0 101 | androidETC2FallbackOverride: 0 102 | forceMaximumCompressionQuality_BC6H_BC7: 0 103 | spriteSheet: 104 | serializedVersion: 2 105 | sprites: [] 106 | outline: [] 107 | physicsShape: [] 108 | bones: [] 109 | spriteID: 110 | internalID: 0 111 | vertices: [] 112 | indices: 113 | edges: [] 114 | weights: [] 115 | secondaryTextures: [] 116 | nameFileIdTable: {} 117 | spritePackingTag: 118 | pSDRemoveMatte: 0 119 | pSDShowRemoveMatteOption: 0 120 | userData: 121 | assetBundleName: 122 | assetBundleVariant: 123 | -------------------------------------------------------------------------------- /Assets/Textures/kernel1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AKGWSB/FFTConvolutionBloom/3be9c3c19d58437295d633e2f4f341866e083779/Assets/Textures/kernel1.png -------------------------------------------------------------------------------- /Assets/Textures/kernel1.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5da78430cac78b9489ff7587315ff43e 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 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 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 0 40 | wrapV: 0 41 | wrapW: 0 42 | nPOTScale: 1 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 0 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 0 55 | spriteTessellationDetail: -1 56 | textureType: 0 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | platformSettings: 67 | - serializedVersion: 3 68 | buildTarget: DefaultTexturePlatform 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | androidETC2FallbackOverride: 0 78 | forceMaximumCompressionQuality_BC6H_BC7: 0 79 | - serializedVersion: 3 80 | buildTarget: Standalone 81 | maxTextureSize: 2048 82 | resizeAlgorithm: 0 83 | textureFormat: -1 84 | textureCompression: 1 85 | compressionQuality: 50 86 | crunchedCompression: 0 87 | allowsAlphaSplitting: 0 88 | overridden: 0 89 | androidETC2FallbackOverride: 0 90 | forceMaximumCompressionQuality_BC6H_BC7: 0 91 | - serializedVersion: 3 92 | buildTarget: Server 93 | maxTextureSize: 2048 94 | resizeAlgorithm: 0 95 | textureFormat: -1 96 | textureCompression: 1 97 | compressionQuality: 50 98 | crunchedCompression: 0 99 | allowsAlphaSplitting: 0 100 | overridden: 0 101 | androidETC2FallbackOverride: 0 102 | forceMaximumCompressionQuality_BC6H_BC7: 0 103 | spriteSheet: 104 | serializedVersion: 2 105 | sprites: [] 106 | outline: [] 107 | physicsShape: [] 108 | bones: [] 109 | spriteID: 110 | internalID: 0 111 | vertices: [] 112 | indices: 113 | edges: [] 114 | weights: [] 115 | secondaryTextures: [] 116 | nameFileIdTable: {} 117 | spritePackingTag: 118 | pSDRemoveMatte: 0 119 | pSDShowRemoveMatteOption: 0 120 | userData: 121 | assetBundleName: 122 | assetBundleVariant: 123 | -------------------------------------------------------------------------------- /Assets/Textures/kernel2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AKGWSB/FFTConvolutionBloom/3be9c3c19d58437295d633e2f4f341866e083779/Assets/Textures/kernel2.png -------------------------------------------------------------------------------- /Assets/Textures/kernel2.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dddfadcafba8ed64bb89044ece12201e 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 11 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 | isReadable: 0 24 | streamingMipmaps: 0 25 | streamingMipmapsPriority: 0 26 | vTOnly: 0 27 | ignoreMasterTextureLimit: 0 28 | grayScaleToAlpha: 0 29 | generateCubemap: 6 30 | cubemapConvolution: 0 31 | seamlessCubemap: 0 32 | textureFormat: 1 33 | maxTextureSize: 2048 34 | textureSettings: 35 | serializedVersion: 2 36 | filterMode: 1 37 | aniso: 1 38 | mipBias: 0 39 | wrapU: 0 40 | wrapV: 0 41 | wrapW: 0 42 | nPOTScale: 1 43 | lightmap: 0 44 | compressionQuality: 50 45 | spriteMode: 0 46 | spriteExtrude: 1 47 | spriteMeshType: 1 48 | alignment: 0 49 | spritePivot: {x: 0.5, y: 0.5} 50 | spritePixelsToUnits: 100 51 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 52 | spriteGenerateFallbackPhysicsShape: 1 53 | alphaUsage: 1 54 | alphaIsTransparency: 0 55 | spriteTessellationDetail: -1 56 | textureType: 0 57 | textureShape: 1 58 | singleChannelComponent: 0 59 | flipbookRows: 1 60 | flipbookColumns: 1 61 | maxTextureSizeSet: 0 62 | compressionQualitySet: 0 63 | textureFormatSet: 0 64 | ignorePngGamma: 0 65 | applyGammaDecoding: 0 66 | platformSettings: 67 | - serializedVersion: 3 68 | buildTarget: DefaultTexturePlatform 69 | maxTextureSize: 2048 70 | resizeAlgorithm: 0 71 | textureFormat: -1 72 | textureCompression: 1 73 | compressionQuality: 50 74 | crunchedCompression: 0 75 | allowsAlphaSplitting: 0 76 | overridden: 0 77 | androidETC2FallbackOverride: 0 78 | forceMaximumCompressionQuality_BC6H_BC7: 0 79 | - serializedVersion: 3 80 | buildTarget: Standalone 81 | maxTextureSize: 2048 82 | resizeAlgorithm: 0 83 | textureFormat: -1 84 | textureCompression: 1 85 | compressionQuality: 50 86 | crunchedCompression: 0 87 | allowsAlphaSplitting: 0 88 | overridden: 0 89 | androidETC2FallbackOverride: 0 90 | forceMaximumCompressionQuality_BC6H_BC7: 0 91 | - serializedVersion: 3 92 | buildTarget: Server 93 | maxTextureSize: 2048 94 | resizeAlgorithm: 0 95 | textureFormat: -1 96 | textureCompression: 1 97 | compressionQuality: 50 98 | crunchedCompression: 0 99 | allowsAlphaSplitting: 0 100 | overridden: 0 101 | androidETC2FallbackOverride: 0 102 | forceMaximumCompressionQuality_BC6H_BC7: 0 103 | spriteSheet: 104 | serializedVersion: 2 105 | sprites: [] 106 | outline: [] 107 | physicsShape: [] 108 | bones: [] 109 | spriteID: 110 | internalID: 0 111 | vertices: [] 112 | indices: 113 | edges: [] 114 | weights: [] 115 | secondaryTextures: [] 116 | nameFileIdTable: {} 117 | spritePackingTag: 118 | pSDRemoveMatte: 0 119 | pSDShowRemoveMatteOption: 0 120 | userData: 121 | assetBundleName: 122 | assetBundleVariant: 123 | -------------------------------------------------------------------------------- /Assets/UniversalRenderPipelineGlobalSettings.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: 2ec995e51a6e251468d2a3fd8a686257, type: 3} 13 | m_Name: UniversalRenderPipelineGlobalSettings 14 | m_EditorClassIdentifier: 15 | k_AssetVersion: 2 16 | lightLayerName0: Light Layer default 17 | lightLayerName1: Light Layer 1 18 | lightLayerName2: Light Layer 2 19 | lightLayerName3: Light Layer 3 20 | lightLayerName4: Light Layer 4 21 | lightLayerName5: Light Layer 5 22 | lightLayerName6: Light Layer 6 23 | lightLayerName7: Light Layer 7 24 | m_StripDebugVariants: 1 25 | m_StripUnusedPostProcessingVariants: 1 26 | m_StripUnusedVariants: 1 27 | supportRuntimeDebugDisplay: 0 28 | -------------------------------------------------------------------------------- /Assets/UniversalRenderPipelineGlobalSettings.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18dc0cd2c080841dea60987a38ce93fa 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) [year] [fullname] 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. -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.collab-proxy": "1.15.7", 4 | "com.unity.ide.rider": "3.0.12", 5 | "com.unity.ide.visualstudio": "2.0.14", 6 | "com.unity.ide.vscode": "1.2.4", 7 | "com.unity.render-pipelines.universal": "12.1.2", 8 | "com.unity.test-framework": "1.1.29", 9 | "com.unity.textmeshpro": "3.0.6", 10 | "com.unity.timeline": "1.6.3", 11 | "com.unity.ugui": "1.0.0", 12 | "com.unity.visualscripting": "1.7.6", 13 | "com.unity.modules.ai": "1.0.0", 14 | "com.unity.modules.androidjni": "1.0.0", 15 | "com.unity.modules.animation": "1.0.0", 16 | "com.unity.modules.assetbundle": "1.0.0", 17 | "com.unity.modules.audio": "1.0.0", 18 | "com.unity.modules.cloth": "1.0.0", 19 | "com.unity.modules.director": "1.0.0", 20 | "com.unity.modules.imageconversion": "1.0.0", 21 | "com.unity.modules.imgui": "1.0.0", 22 | "com.unity.modules.jsonserialize": "1.0.0", 23 | "com.unity.modules.particlesystem": "1.0.0", 24 | "com.unity.modules.physics": "1.0.0", 25 | "com.unity.modules.physics2d": "1.0.0", 26 | "com.unity.modules.screencapture": "1.0.0", 27 | "com.unity.modules.terrain": "1.0.0", 28 | "com.unity.modules.terrainphysics": "1.0.0", 29 | "com.unity.modules.tilemap": "1.0.0", 30 | "com.unity.modules.ui": "1.0.0", 31 | "com.unity.modules.uielements": "1.0.0", 32 | "com.unity.modules.umbra": "1.0.0", 33 | "com.unity.modules.unityanalytics": "1.0.0", 34 | "com.unity.modules.unitywebrequest": "1.0.0", 35 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 36 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 37 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 38 | "com.unity.modules.unitywebrequestwww": "1.0.0", 39 | "com.unity.modules.vehicles": "1.0.0", 40 | "com.unity.modules.video": "1.0.0", 41 | "com.unity.modules.vr": "1.0.0", 42 | "com.unity.modules.wind": "1.0.0", 43 | "com.unity.modules.xr": "1.0.0" 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Packages/packages-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.burst": { 4 | "version": "1.6.0", 5 | "depth": 1, 6 | "source": "registry", 7 | "dependencies": { 8 | "com.unity.mathematics": "1.2.1" 9 | }, 10 | "url": "https://packages.unity.cn" 11 | }, 12 | "com.unity.collab-proxy": { 13 | "version": "1.15.7", 14 | "depth": 0, 15 | "source": "registry", 16 | "dependencies": { 17 | "com.unity.nuget.newtonsoft-json": "2.0.0", 18 | "com.unity.services.core": "1.0.1" 19 | }, 20 | "url": "https://packages.unity.cn" 21 | }, 22 | "com.unity.ext.nunit": { 23 | "version": "1.0.6", 24 | "depth": 1, 25 | "source": "registry", 26 | "dependencies": {}, 27 | "url": "https://packages.unity.cn" 28 | }, 29 | "com.unity.ide.rider": { 30 | "version": "3.0.12", 31 | "depth": 0, 32 | "source": "registry", 33 | "dependencies": { 34 | "com.unity.ext.nunit": "1.0.6" 35 | }, 36 | "url": "https://packages.unity.cn" 37 | }, 38 | "com.unity.ide.visualstudio": { 39 | "version": "2.0.14", 40 | "depth": 0, 41 | "source": "registry", 42 | "dependencies": { 43 | "com.unity.test-framework": "1.1.9" 44 | }, 45 | "url": "https://packages.unity.cn" 46 | }, 47 | "com.unity.ide.vscode": { 48 | "version": "1.2.4", 49 | "depth": 0, 50 | "source": "registry", 51 | "dependencies": {}, 52 | "url": "https://packages.unity.cn" 53 | }, 54 | "com.unity.mathematics": { 55 | "version": "1.2.5", 56 | "depth": 1, 57 | "source": "registry", 58 | "dependencies": {}, 59 | "url": "https://packages.unity.cn" 60 | }, 61 | "com.unity.nuget.newtonsoft-json": { 62 | "version": "2.0.0", 63 | "depth": 1, 64 | "source": "registry", 65 | "dependencies": {}, 66 | "url": "https://packages.unity.cn" 67 | }, 68 | "com.unity.render-pipelines.core": { 69 | "version": "12.1.2", 70 | "depth": 1, 71 | "source": "builtin", 72 | "dependencies": { 73 | "com.unity.ugui": "1.0.0", 74 | "com.unity.modules.physics": "1.0.0", 75 | "com.unity.modules.jsonserialize": "1.0.0" 76 | } 77 | }, 78 | "com.unity.render-pipelines.universal": { 79 | "version": "12.1.2", 80 | "depth": 0, 81 | "source": "builtin", 82 | "dependencies": { 83 | "com.unity.mathematics": "1.2.1", 84 | "com.unity.burst": "1.5.0", 85 | "com.unity.render-pipelines.core": "12.1.2", 86 | "com.unity.shadergraph": "12.1.2" 87 | } 88 | }, 89 | "com.unity.searcher": { 90 | "version": "4.9.1", 91 | "depth": 2, 92 | "source": "registry", 93 | "dependencies": {}, 94 | "url": "https://packages.unity.cn" 95 | }, 96 | "com.unity.services.core": { 97 | "version": "1.0.1", 98 | "depth": 1, 99 | "source": "registry", 100 | "dependencies": { 101 | "com.unity.modules.unitywebrequest": "1.0.0" 102 | }, 103 | "url": "https://packages.unity.cn" 104 | }, 105 | "com.unity.shadergraph": { 106 | "version": "12.1.2", 107 | "depth": 1, 108 | "source": "builtin", 109 | "dependencies": { 110 | "com.unity.render-pipelines.core": "12.1.2", 111 | "com.unity.searcher": "4.9.1" 112 | } 113 | }, 114 | "com.unity.test-framework": { 115 | "version": "1.1.29", 116 | "depth": 0, 117 | "source": "registry", 118 | "dependencies": { 119 | "com.unity.ext.nunit": "1.0.6", 120 | "com.unity.modules.imgui": "1.0.0", 121 | "com.unity.modules.jsonserialize": "1.0.0" 122 | }, 123 | "url": "https://packages.unity.cn" 124 | }, 125 | "com.unity.textmeshpro": { 126 | "version": "3.0.6", 127 | "depth": 0, 128 | "source": "registry", 129 | "dependencies": { 130 | "com.unity.ugui": "1.0.0" 131 | }, 132 | "url": "https://packages.unity.cn" 133 | }, 134 | "com.unity.timeline": { 135 | "version": "1.6.3", 136 | "depth": 0, 137 | "source": "registry", 138 | "dependencies": { 139 | "com.unity.modules.director": "1.0.0", 140 | "com.unity.modules.animation": "1.0.0", 141 | "com.unity.modules.audio": "1.0.0", 142 | "com.unity.modules.particlesystem": "1.0.0" 143 | }, 144 | "url": "https://packages.unity.cn" 145 | }, 146 | "com.unity.ugui": { 147 | "version": "1.0.0", 148 | "depth": 0, 149 | "source": "builtin", 150 | "dependencies": { 151 | "com.unity.modules.ui": "1.0.0", 152 | "com.unity.modules.imgui": "1.0.0" 153 | } 154 | }, 155 | "com.unity.visualscripting": { 156 | "version": "1.7.6", 157 | "depth": 0, 158 | "source": "registry", 159 | "dependencies": { 160 | "com.unity.ugui": "1.0.0", 161 | "com.unity.modules.jsonserialize": "1.0.0" 162 | }, 163 | "url": "https://packages.unity.cn" 164 | }, 165 | "com.unity.modules.ai": { 166 | "version": "1.0.0", 167 | "depth": 0, 168 | "source": "builtin", 169 | "dependencies": {} 170 | }, 171 | "com.unity.modules.androidjni": { 172 | "version": "1.0.0", 173 | "depth": 0, 174 | "source": "builtin", 175 | "dependencies": {} 176 | }, 177 | "com.unity.modules.animation": { 178 | "version": "1.0.0", 179 | "depth": 0, 180 | "source": "builtin", 181 | "dependencies": {} 182 | }, 183 | "com.unity.modules.assetbundle": { 184 | "version": "1.0.0", 185 | "depth": 0, 186 | "source": "builtin", 187 | "dependencies": {} 188 | }, 189 | "com.unity.modules.audio": { 190 | "version": "1.0.0", 191 | "depth": 0, 192 | "source": "builtin", 193 | "dependencies": {} 194 | }, 195 | "com.unity.modules.cloth": { 196 | "version": "1.0.0", 197 | "depth": 0, 198 | "source": "builtin", 199 | "dependencies": { 200 | "com.unity.modules.physics": "1.0.0" 201 | } 202 | }, 203 | "com.unity.modules.director": { 204 | "version": "1.0.0", 205 | "depth": 0, 206 | "source": "builtin", 207 | "dependencies": { 208 | "com.unity.modules.audio": "1.0.0", 209 | "com.unity.modules.animation": "1.0.0" 210 | } 211 | }, 212 | "com.unity.modules.imageconversion": { 213 | "version": "1.0.0", 214 | "depth": 0, 215 | "source": "builtin", 216 | "dependencies": {} 217 | }, 218 | "com.unity.modules.imgui": { 219 | "version": "1.0.0", 220 | "depth": 0, 221 | "source": "builtin", 222 | "dependencies": {} 223 | }, 224 | "com.unity.modules.jsonserialize": { 225 | "version": "1.0.0", 226 | "depth": 0, 227 | "source": "builtin", 228 | "dependencies": {} 229 | }, 230 | "com.unity.modules.particlesystem": { 231 | "version": "1.0.0", 232 | "depth": 0, 233 | "source": "builtin", 234 | "dependencies": {} 235 | }, 236 | "com.unity.modules.physics": { 237 | "version": "1.0.0", 238 | "depth": 0, 239 | "source": "builtin", 240 | "dependencies": {} 241 | }, 242 | "com.unity.modules.physics2d": { 243 | "version": "1.0.0", 244 | "depth": 0, 245 | "source": "builtin", 246 | "dependencies": {} 247 | }, 248 | "com.unity.modules.screencapture": { 249 | "version": "1.0.0", 250 | "depth": 0, 251 | "source": "builtin", 252 | "dependencies": { 253 | "com.unity.modules.imageconversion": "1.0.0" 254 | } 255 | }, 256 | "com.unity.modules.subsystems": { 257 | "version": "1.0.0", 258 | "depth": 1, 259 | "source": "builtin", 260 | "dependencies": { 261 | "com.unity.modules.jsonserialize": "1.0.0" 262 | } 263 | }, 264 | "com.unity.modules.terrain": { 265 | "version": "1.0.0", 266 | "depth": 0, 267 | "source": "builtin", 268 | "dependencies": {} 269 | }, 270 | "com.unity.modules.terrainphysics": { 271 | "version": "1.0.0", 272 | "depth": 0, 273 | "source": "builtin", 274 | "dependencies": { 275 | "com.unity.modules.physics": "1.0.0", 276 | "com.unity.modules.terrain": "1.0.0" 277 | } 278 | }, 279 | "com.unity.modules.tilemap": { 280 | "version": "1.0.0", 281 | "depth": 0, 282 | "source": "builtin", 283 | "dependencies": { 284 | "com.unity.modules.physics2d": "1.0.0" 285 | } 286 | }, 287 | "com.unity.modules.ui": { 288 | "version": "1.0.0", 289 | "depth": 0, 290 | "source": "builtin", 291 | "dependencies": {} 292 | }, 293 | "com.unity.modules.uielements": { 294 | "version": "1.0.0", 295 | "depth": 0, 296 | "source": "builtin", 297 | "dependencies": { 298 | "com.unity.modules.ui": "1.0.0", 299 | "com.unity.modules.imgui": "1.0.0", 300 | "com.unity.modules.jsonserialize": "1.0.0", 301 | "com.unity.modules.uielementsnative": "1.0.0" 302 | } 303 | }, 304 | "com.unity.modules.uielementsnative": { 305 | "version": "1.0.0", 306 | "depth": 1, 307 | "source": "builtin", 308 | "dependencies": { 309 | "com.unity.modules.ui": "1.0.0", 310 | "com.unity.modules.imgui": "1.0.0", 311 | "com.unity.modules.jsonserialize": "1.0.0" 312 | } 313 | }, 314 | "com.unity.modules.umbra": { 315 | "version": "1.0.0", 316 | "depth": 0, 317 | "source": "builtin", 318 | "dependencies": {} 319 | }, 320 | "com.unity.modules.unityanalytics": { 321 | "version": "1.0.0", 322 | "depth": 0, 323 | "source": "builtin", 324 | "dependencies": { 325 | "com.unity.modules.unitywebrequest": "1.0.0", 326 | "com.unity.modules.jsonserialize": "1.0.0" 327 | } 328 | }, 329 | "com.unity.modules.unitywebrequest": { 330 | "version": "1.0.0", 331 | "depth": 0, 332 | "source": "builtin", 333 | "dependencies": {} 334 | }, 335 | "com.unity.modules.unitywebrequestassetbundle": { 336 | "version": "1.0.0", 337 | "depth": 0, 338 | "source": "builtin", 339 | "dependencies": { 340 | "com.unity.modules.assetbundle": "1.0.0", 341 | "com.unity.modules.unitywebrequest": "1.0.0" 342 | } 343 | }, 344 | "com.unity.modules.unitywebrequestaudio": { 345 | "version": "1.0.0", 346 | "depth": 0, 347 | "source": "builtin", 348 | "dependencies": { 349 | "com.unity.modules.unitywebrequest": "1.0.0", 350 | "com.unity.modules.audio": "1.0.0" 351 | } 352 | }, 353 | "com.unity.modules.unitywebrequesttexture": { 354 | "version": "1.0.0", 355 | "depth": 0, 356 | "source": "builtin", 357 | "dependencies": { 358 | "com.unity.modules.unitywebrequest": "1.0.0", 359 | "com.unity.modules.imageconversion": "1.0.0" 360 | } 361 | }, 362 | "com.unity.modules.unitywebrequestwww": { 363 | "version": "1.0.0", 364 | "depth": 0, 365 | "source": "builtin", 366 | "dependencies": { 367 | "com.unity.modules.unitywebrequest": "1.0.0", 368 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 369 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 370 | "com.unity.modules.audio": "1.0.0", 371 | "com.unity.modules.assetbundle": "1.0.0", 372 | "com.unity.modules.imageconversion": "1.0.0" 373 | } 374 | }, 375 | "com.unity.modules.vehicles": { 376 | "version": "1.0.0", 377 | "depth": 0, 378 | "source": "builtin", 379 | "dependencies": { 380 | "com.unity.modules.physics": "1.0.0" 381 | } 382 | }, 383 | "com.unity.modules.video": { 384 | "version": "1.0.0", 385 | "depth": 0, 386 | "source": "builtin", 387 | "dependencies": { 388 | "com.unity.modules.audio": "1.0.0", 389 | "com.unity.modules.ui": "1.0.0", 390 | "com.unity.modules.unitywebrequest": "1.0.0" 391 | } 392 | }, 393 | "com.unity.modules.vr": { 394 | "version": "1.0.0", 395 | "depth": 0, 396 | "source": "builtin", 397 | "dependencies": { 398 | "com.unity.modules.jsonserialize": "1.0.0", 399 | "com.unity.modules.physics": "1.0.0", 400 | "com.unity.modules.xr": "1.0.0" 401 | } 402 | }, 403 | "com.unity.modules.wind": { 404 | "version": "1.0.0", 405 | "depth": 0, 406 | "source": "builtin", 407 | "dependencies": {} 408 | }, 409 | "com.unity.modules.xr": { 410 | "version": "1.0.0", 411 | "depth": 0, 412 | "source": "builtin", 413 | "dependencies": { 414 | "com.unity.modules.physics": "1.0.0", 415 | "com.unity.modules.jsonserialize": "1.0.0", 416 | "com.unity.modules.subsystems": "1.0.0" 417 | } 418 | } 419 | } 420 | } 421 | -------------------------------------------------------------------------------- /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: 0 20 | -------------------------------------------------------------------------------- /ProjectSettings/AutoStreamingSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1200 &1 4 | AutoStreamingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | mSearchMode: 15 8 | mCustomSearchFile: 9 | mTextureSearchString: 10 | mMeshSearchString: 11 | mTextures: [] 12 | mAudios: [] 13 | mMeshes: [] 14 | mScenes: [] 15 | mConfigCCD: 16 | useCCD: 0 17 | cosKey: 18 | projectGuid: 19 | bucketUuid: 20 | bucketName: 21 | badgeName: 22 | -------------------------------------------------------------------------------- /ProjectSettings/BurstAotSettings_StandaloneWindows.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 3, 4 | "EnableBurstCompilation": true, 5 | "EnableOptimisations": true, 6 | "EnableSafetyChecks": false, 7 | "EnableDebugInAllBuilds": false, 8 | "UsePlatformSDKLinker": false, 9 | "CpuMinTargetX32": 0, 10 | "CpuMaxTargetX32": 0, 11 | "CpuMinTargetX64": 0, 12 | "CpuMaxTargetX64": 0, 13 | "CpuTargetsX32": 6, 14 | "CpuTargetsX64": 72 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /ProjectSettings/CommonBurstAotSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "MonoBehaviour": { 3 | "Version": 3, 4 | "DisabledWarnings": "" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /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: 13 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.1 18 | m_ClothInterCollisionStiffness: 0.2 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 0 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ClothGravity: {x: 0, y: -9.81, z: 0} 26 | m_ContactPairsMode: 0 27 | m_BroadphaseType: 0 28 | m_WorldBounds: 29 | m_Center: {x: 0, y: 0, z: 0} 30 | m_Extent: {x: 250, y: 250, z: 250} 31 | m_WorldSubdivisions: 8 32 | m_FrictionType: 0 33 | m_EnableEnhancedDeterminism: 0 34 | m_EnableUnifiedHeightmaps: 1 35 | m_SolverType: 0 36 | m_DefaultMaxAngularSpeed: 50 37 | -------------------------------------------------------------------------------- /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 | - enabled: 1 9 | path: Assets/Scenes/SampleScene.unity 10 | guid: 99c9720ab356a0642a771bea13969a05 11 | m_configObjects: {} 12 | -------------------------------------------------------------------------------- /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: 9 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_PrefabRegularEnvironment: {fileID: 0} 12 | m_PrefabUIEnvironment: {fileID: 0} 13 | m_SpritePackerMode: 0 14 | m_SpritePackerPaddingPower: 1 15 | m_EtcTextureCompressorBehavior: 1 16 | m_EtcTextureFastCompressor: 1 17 | m_EtcTextureNormalCompressor: 2 18 | m_EtcTextureBestCompressor: 4 19 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp 20 | m_ProjectGenerationRootNamespace: 21 | m_CollabEditorSettings: 22 | inProgressEnabled: 1 23 | m_EnableTextureStreamingInEditMode: 1 24 | m_EnableTextureStreamingInPlayMode: 1 25 | m_AsyncShaderCompilation: 1 26 | m_EnterPlayModeOptionsEnabled: 0 27 | m_EnterPlayModeOptions: 3 28 | m_ShowLightmapResolutionOverlay: 1 29 | m_UseLegacyProbeSampleCount: 0 30 | m_AssetPipelineMode: 1 31 | m_CacheServerMode: 0 32 | m_CacheServerEndpoint: 33 | m_CacheServerNamespacePrefix: default 34 | m_CacheServerEnableDownload: 1 35 | m_CacheServerEnableUpload: 1 36 | -------------------------------------------------------------------------------- /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: 14 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_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_VideoShadersIncludeMode: 2 32 | m_AlwaysIncludedShaders: 33 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} 40 | m_PreloadedShaders: [] 41 | m_PreloadShadersBatchTimeLimit: -1 42 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 43 | type: 0} 44 | m_CustomRenderPipeline: {fileID: 11400000, guid: 7b7fd9122c28c4d15b667c7040e3b3fd, 45 | type: 2} 46 | m_TransparencySortMode: 0 47 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 48 | m_DefaultRenderingPath: 1 49 | m_DefaultMobileRenderingPath: 1 50 | m_TierSettings: [] 51 | m_LightmapStripping: 0 52 | m_FogStripping: 0 53 | m_InstancingStripping: 0 54 | m_LightmapKeepPlain: 1 55 | m_LightmapKeepDirCombined: 1 56 | m_LightmapKeepDynamicPlain: 1 57 | m_LightmapKeepDynamicDirCombined: 1 58 | m_LightmapKeepShadowMask: 1 59 | m_LightmapKeepSubtractive: 1 60 | m_FogKeepLinear: 1 61 | m_FogKeepExp: 1 62 | m_FogKeepExp2: 1 63 | m_AlbedoSwatchInfos: [] 64 | m_LightsUseLinearIntensity: 1 65 | m_LightsUseColorTemperature: 1 66 | m_DefaultRenderingLayerMask: 1 67 | m_LogWhenShaderIsCompiled: 0 68 | m_SRPDefaultSettings: 69 | UnityEngine.Rendering.Universal.UniversalRenderPipeline: {fileID: 11400000, guid: 18dc0cd2c080841dea60987a38ce93fa, 70 | type: 2} 71 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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_EnablePackageDependencies: 0 17 | m_AdvancedSettingsExpanded: 1 18 | m_ScopedRegistriesSettingsExpanded: 1 19 | m_SeeAllPackageVersions: 0 20 | oneTimeWarningShown: 0 21 | m_Registries: 22 | - m_Id: main 23 | m_Name: 24 | m_Url: https://packages.unity.cn 25 | m_Scopes: [] 26 | m_IsDefault: 1 27 | m_Capabilities: 7 28 | m_UserSelectedRegistryName: 29 | m_UserAddingNewScopedRegistry: 0 30 | m_RegistryInfoDraft: 31 | m_Modified: 0 32 | m_ErrorMessage: 33 | m_UserModificationsInstanceId: -848 34 | m_OriginalInstanceId: -850 35 | m_LoadAssets: 0 36 | -------------------------------------------------------------------------------- /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: 0 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/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 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 23 7 | productGUID: 453ec8d50b5c83f4cb12df6c5698d989 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | AndroidEnableSustainedPerformanceMode: 0 11 | defaultScreenOrientation: 4 12 | targetDevice: 2 13 | useOnDemandResources: 0 14 | accelerometerFrequency: 60 15 | companyName: DefaultCompany 16 | productName: FFTConvolutionBloom 17 | defaultCursor: {fileID: 0} 18 | cursorHotspot: {x: 0, y: 0} 19 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 20 | m_ShowUnitySplashScreen: 1 21 | m_ShowUnitySplashLogo: 1 22 | m_SplashScreenOverlayOpacity: 1 23 | m_SplashScreenAnimation: 1 24 | m_SplashScreenLogoStyle: 1 25 | m_SplashScreenDrawMode: 0 26 | m_SplashScreenBackgroundAnimationZoom: 1 27 | m_SplashScreenLogoAnimationZoom: 1 28 | m_SplashScreenBackgroundLandscapeAspect: 1 29 | m_SplashScreenBackgroundPortraitAspect: 1 30 | m_SplashScreenBackgroundLandscapeUvs: 31 | serializedVersion: 2 32 | x: 0 33 | y: 0 34 | width: 1 35 | height: 1 36 | m_SplashScreenBackgroundPortraitUvs: 37 | serializedVersion: 2 38 | x: 0 39 | y: 0 40 | width: 1 41 | height: 1 42 | m_SplashScreenLogos: [] 43 | m_VirtualRealitySplashScreen: {fileID: 0} 44 | m_ShowUnitySplashAds: 0 45 | m_AdsAndroidGameId: 46 | m_AdsIosGameId: 47 | m_ShowSplashAdsSlogan: 0 48 | m_SloganImage: {fileID: 0} 49 | m_SloganHeight: 150 50 | m_HolographicTrackingLossScreen: {fileID: 0} 51 | defaultScreenWidth: 1024 52 | defaultScreenHeight: 768 53 | defaultScreenWidthWeb: 960 54 | defaultScreenHeightWeb: 600 55 | m_StereoRenderingPath: 0 56 | m_ActiveColorSpace: 1 57 | m_MTRendering: 1 58 | mipStripping: 0 59 | numberOfMipsStripped: 0 60 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 61 | iosShowActivityIndicatorOnLoading: -1 62 | androidShowActivityIndicatorOnLoading: -1 63 | iosUseCustomAppBackgroundBehavior: 0 64 | iosAllowHTTPDownload: 1 65 | allowedAutorotateToPortrait: 1 66 | allowedAutorotateToPortraitUpsideDown: 1 67 | allowedAutorotateToLandscapeRight: 1 68 | allowedAutorotateToLandscapeLeft: 1 69 | useOSAutorotation: 1 70 | use32BitDisplayBuffer: 1 71 | preserveFramebufferAlpha: 0 72 | disableDepthAndStencilBuffers: 0 73 | androidStartInFullscreen: 1 74 | androidRenderOutsideSafeArea: 1 75 | androidUseSwappy: 0 76 | androidBlitType: 0 77 | androidResizableWindow: 0 78 | androidDefaultWindowWidth: 1920 79 | androidDefaultWindowHeight: 1080 80 | androidMinimumWindowWidth: 400 81 | androidMinimumWindowHeight: 300 82 | androidFullscreenMode: 1 83 | defaultIsNativeResolution: 1 84 | macRetinaSupport: 1 85 | runInBackground: 0 86 | captureSingleScreen: 0 87 | muteOtherAudioSources: 0 88 | Prepare IOS For Recording: 0 89 | Force IOS Speakers When Recording: 0 90 | deferSystemGesturesMode: 0 91 | hideHomeButton: 0 92 | submitAnalytics: 1 93 | usePlayerLog: 1 94 | autoStreaming: 0 95 | useAnimationStreaming: 0 96 | useFontStreaming: 0 97 | autoStreamingId: 98 | instantGameAppId: 99 | bakeCollisionMeshes: 0 100 | forceSingleInstance: 0 101 | useFlipModelSwapchain: 1 102 | resizableWindow: 0 103 | useMacAppStoreValidation: 0 104 | macAppStoreCategory: public.app-category.games 105 | gpuSkinning: 0 106 | xboxPIXTextureCapture: 0 107 | xboxEnableAvatar: 0 108 | xboxEnableKinect: 0 109 | xboxEnableKinectAutoTracking: 0 110 | xboxEnableFitness: 0 111 | visibleInBackground: 1 112 | allowFullscreenSwitch: 1 113 | fullscreenMode: 1 114 | xboxSpeechDB: 0 115 | xboxEnableHeadOrientation: 0 116 | xboxEnableGuest: 0 117 | xboxEnablePIXSampling: 0 118 | metalFramebufferOnly: 0 119 | xboxOneResolution: 0 120 | xboxOneSResolution: 0 121 | xboxOneXResolution: 3 122 | xboxOneMonoLoggingLevel: 0 123 | xboxOneLoggingLevel: 1 124 | xboxOneDisableEsram: 0 125 | xboxOneEnableTypeOptimization: 0 126 | xboxOnePresentImmediateThreshold: 0 127 | switchQueueCommandMemory: 1048576 128 | switchQueueControlMemory: 16384 129 | switchQueueComputeMemory: 262144 130 | switchNVNShaderPoolsGranularity: 33554432 131 | switchNVNDefaultPoolsGranularity: 16777216 132 | switchNVNOtherPoolsGranularity: 16777216 133 | switchNVNMaxPublicTextureIDCount: 0 134 | switchNVNMaxPublicSamplerIDCount: 0 135 | stadiaPresentMode: 0 136 | stadiaTargetFramerate: 0 137 | vulkanNumSwapchainBuffers: 3 138 | vulkanEnableSetSRGBWrite: 0 139 | vulkanEnablePreTransform: 0 140 | vulkanEnableLateAcquireNextImage: 0 141 | vulkanEnableCommandBufferRecycling: 1 142 | m_SupportedAspectRatios: 143 | 4:3: 1 144 | 5:4: 1 145 | 16:10: 1 146 | 16:9: 1 147 | Others: 1 148 | bundleVersion: 0.1.0 149 | preloadedAssets: [] 150 | metroInputSource: 0 151 | wsaTransparentSwapchain: 0 152 | m_HolographicPauseOnTrackingLoss: 1 153 | xboxOneDisableKinectGpuReservation: 1 154 | xboxOneEnable7thCore: 1 155 | vrSettings: 156 | enable360StereoCapture: 0 157 | isWsaHolographicRemotingEnabled: 0 158 | enableFrameTimingStats: 0 159 | useHDRDisplay: 0 160 | D3DHDRBitDepth: 0 161 | m_ColorGamuts: 00000000 162 | targetPixelDensity: 30 163 | resolutionScalingMode: 0 164 | androidSupportedAspectRatio: 1 165 | androidMaxAspectRatio: 2.1 166 | applicationIdentifier: 167 | Standalone: com.UnityTechnologies.com.unity.template-starter-kit 168 | buildNumber: 169 | Standalone: 0 170 | iPhone: 0 171 | tvOS: 0 172 | overrideDefaultApplicationIdentifier: 1 173 | AndroidBundleVersionCode: 1 174 | AndroidMinSdkVersion: 22 175 | AndroidTargetSdkVersion: 0 176 | AndroidPreferredInstallLocation: 1 177 | aotOptions: 178 | stripEngineCode: 1 179 | iPhoneStrippingLevel: 0 180 | iPhoneScriptCallOptimization: 0 181 | ForceInternetPermission: 0 182 | ForceSDCardPermission: 0 183 | CreateWallpaper: 0 184 | APKExpansionFiles: 0 185 | keepLoadedShadersAlive: 0 186 | StripUnusedMeshComponents: 0 187 | VertexChannelCompressionMask: 4054 188 | iPhoneSdkVersion: 988 189 | iOSTargetOSVersionString: 11.0 190 | tvOSSdkVersion: 0 191 | tvOSRequireExtendedGameController: 0 192 | tvOSTargetOSVersionString: 11.0 193 | uIPrerenderedIcon: 0 194 | uIRequiresPersistentWiFi: 0 195 | uIRequiresFullScreen: 1 196 | uIStatusBarHidden: 1 197 | uIExitOnSuspend: 0 198 | uIStatusBarStyle: 0 199 | appleTVSplashScreen: {fileID: 0} 200 | appleTVSplashScreen2x: {fileID: 0} 201 | tvOSSmallIconLayers: [] 202 | tvOSSmallIconLayers2x: [] 203 | tvOSLargeIconLayers: [] 204 | tvOSLargeIconLayers2x: [] 205 | tvOSTopShelfImageLayers: [] 206 | tvOSTopShelfImageLayers2x: [] 207 | tvOSTopShelfImageWideLayers: [] 208 | tvOSTopShelfImageWideLayers2x: [] 209 | iOSLaunchScreenType: 0 210 | iOSLaunchScreenPortrait: {fileID: 0} 211 | iOSLaunchScreenLandscape: {fileID: 0} 212 | iOSLaunchScreenBackgroundColor: 213 | serializedVersion: 2 214 | rgba: 0 215 | iOSLaunchScreenFillPct: 100 216 | iOSLaunchScreenSize: 100 217 | iOSLaunchScreenCustomXibPath: 218 | iOSLaunchScreeniPadType: 0 219 | iOSLaunchScreeniPadImage: {fileID: 0} 220 | iOSLaunchScreeniPadBackgroundColor: 221 | serializedVersion: 2 222 | rgba: 0 223 | iOSLaunchScreeniPadFillPct: 100 224 | iOSLaunchScreeniPadSize: 100 225 | iOSLaunchScreeniPadCustomXibPath: 226 | iOSLaunchScreenCustomStoryboardPath: 227 | iOSLaunchScreeniPadCustomStoryboardPath: 228 | iOSDeviceRequirements: [] 229 | iOSURLSchemes: [] 230 | macOSURLSchemes: [] 231 | iOSBackgroundModes: 0 232 | iOSMetalForceHardShadows: 0 233 | metalEditorSupport: 1 234 | metalAPIValidation: 1 235 | iOSRenderExtraFrameOnPause: 0 236 | iosCopyPluginsCodeInsteadOfSymlink: 0 237 | appleDeveloperTeamID: 238 | iOSManualSigningProvisioningProfileID: 239 | tvOSManualSigningProvisioningProfileID: 240 | iOSManualSigningProvisioningProfileType: 0 241 | tvOSManualSigningProvisioningProfileType: 0 242 | appleEnableAutomaticSigning: 0 243 | iOSRequireARKit: 0 244 | iOSAutomaticallyDetectAndAddCapabilities: 1 245 | appleEnableProMotion: 0 246 | shaderPrecisionModel: 0 247 | clonedFromGUID: 3c72c65a16f0acb438eed22b8b16c24a 248 | templatePackageId: com.unity.template.urp-blank@2.0.3 249 | templateDefaultScene: Assets/Scenes/SampleScene.unity 250 | useCustomMainManifest: 0 251 | useCustomLauncherManifest: 0 252 | useCustomMainGradleTemplate: 0 253 | useCustomLauncherGradleManifest: 0 254 | useCustomBaseGradleTemplate: 0 255 | useCustomGradlePropertiesTemplate: 0 256 | useCustomProguardFile: 0 257 | AndroidTargetArchitectures: 1 258 | AndroidTargetDevices: 0 259 | AndroidSplashScreenScale: 0 260 | androidSplashScreen: {fileID: 0} 261 | AndroidKeystoreName: 262 | AndroidKeyaliasName: 263 | AndroidBuildApkPerCpuArchitecture: 0 264 | AndroidTVCompatibility: 0 265 | AndroidIsGame: 1 266 | AndroidEnableTango: 0 267 | androidEnableBanner: 1 268 | androidUseLowAccuracyLocation: 0 269 | androidUseCustomKeystore: 0 270 | m_AndroidBanners: 271 | - width: 320 272 | height: 180 273 | banner: {fileID: 0} 274 | androidGamepadSupportLevel: 0 275 | chromeosInputEmulation: 1 276 | AndroidMinifyWithR8: 0 277 | AndroidMinifyRelease: 0 278 | AndroidMinifyDebug: 0 279 | AndroidValidateAppBundleSize: 1 280 | AndroidAppBundleSizeToValidate: 150 281 | m_BuildTargetIcons: [] 282 | m_BuildTargetPlatformIcons: 283 | - m_BuildTarget: iPhone 284 | m_Icons: 285 | - m_Textures: [] 286 | m_Width: 180 287 | m_Height: 180 288 | m_Kind: 0 289 | m_SubKind: iPhone 290 | - m_Textures: [] 291 | m_Width: 120 292 | m_Height: 120 293 | m_Kind: 0 294 | m_SubKind: iPhone 295 | - m_Textures: [] 296 | m_Width: 167 297 | m_Height: 167 298 | m_Kind: 0 299 | m_SubKind: iPad 300 | - m_Textures: [] 301 | m_Width: 152 302 | m_Height: 152 303 | m_Kind: 0 304 | m_SubKind: iPad 305 | - m_Textures: [] 306 | m_Width: 76 307 | m_Height: 76 308 | m_Kind: 0 309 | m_SubKind: iPad 310 | - m_Textures: [] 311 | m_Width: 120 312 | m_Height: 120 313 | m_Kind: 3 314 | m_SubKind: iPhone 315 | - m_Textures: [] 316 | m_Width: 80 317 | m_Height: 80 318 | m_Kind: 3 319 | m_SubKind: iPhone 320 | - m_Textures: [] 321 | m_Width: 80 322 | m_Height: 80 323 | m_Kind: 3 324 | m_SubKind: iPad 325 | - m_Textures: [] 326 | m_Width: 40 327 | m_Height: 40 328 | m_Kind: 3 329 | m_SubKind: iPad 330 | - m_Textures: [] 331 | m_Width: 87 332 | m_Height: 87 333 | m_Kind: 1 334 | m_SubKind: iPhone 335 | - m_Textures: [] 336 | m_Width: 58 337 | m_Height: 58 338 | m_Kind: 1 339 | m_SubKind: iPhone 340 | - m_Textures: [] 341 | m_Width: 29 342 | m_Height: 29 343 | m_Kind: 1 344 | m_SubKind: iPhone 345 | - m_Textures: [] 346 | m_Width: 58 347 | m_Height: 58 348 | m_Kind: 1 349 | m_SubKind: iPad 350 | - m_Textures: [] 351 | m_Width: 29 352 | m_Height: 29 353 | m_Kind: 1 354 | m_SubKind: iPad 355 | - m_Textures: [] 356 | m_Width: 60 357 | m_Height: 60 358 | m_Kind: 2 359 | m_SubKind: iPhone 360 | - m_Textures: [] 361 | m_Width: 40 362 | m_Height: 40 363 | m_Kind: 2 364 | m_SubKind: iPhone 365 | - m_Textures: [] 366 | m_Width: 40 367 | m_Height: 40 368 | m_Kind: 2 369 | m_SubKind: iPad 370 | - m_Textures: [] 371 | m_Width: 20 372 | m_Height: 20 373 | m_Kind: 2 374 | m_SubKind: iPad 375 | - m_Textures: [] 376 | m_Width: 1024 377 | m_Height: 1024 378 | m_Kind: 4 379 | m_SubKind: App Store 380 | - m_BuildTarget: Android 381 | m_Icons: 382 | - m_Textures: [] 383 | m_Width: 432 384 | m_Height: 432 385 | m_Kind: 2 386 | m_SubKind: 387 | - m_Textures: [] 388 | m_Width: 324 389 | m_Height: 324 390 | m_Kind: 2 391 | m_SubKind: 392 | - m_Textures: [] 393 | m_Width: 216 394 | m_Height: 216 395 | m_Kind: 2 396 | m_SubKind: 397 | - m_Textures: [] 398 | m_Width: 162 399 | m_Height: 162 400 | m_Kind: 2 401 | m_SubKind: 402 | - m_Textures: [] 403 | m_Width: 108 404 | m_Height: 108 405 | m_Kind: 2 406 | m_SubKind: 407 | - m_Textures: [] 408 | m_Width: 81 409 | m_Height: 81 410 | m_Kind: 2 411 | m_SubKind: 412 | - m_Textures: [] 413 | m_Width: 192 414 | m_Height: 192 415 | m_Kind: 1 416 | m_SubKind: 417 | - m_Textures: [] 418 | m_Width: 144 419 | m_Height: 144 420 | m_Kind: 1 421 | m_SubKind: 422 | - m_Textures: [] 423 | m_Width: 96 424 | m_Height: 96 425 | m_Kind: 1 426 | m_SubKind: 427 | - m_Textures: [] 428 | m_Width: 72 429 | m_Height: 72 430 | m_Kind: 1 431 | m_SubKind: 432 | - m_Textures: [] 433 | m_Width: 48 434 | m_Height: 48 435 | m_Kind: 1 436 | m_SubKind: 437 | - m_Textures: [] 438 | m_Width: 36 439 | m_Height: 36 440 | m_Kind: 1 441 | m_SubKind: 442 | - m_Textures: [] 443 | m_Width: 192 444 | m_Height: 192 445 | m_Kind: 0 446 | m_SubKind: 447 | - m_Textures: [] 448 | m_Width: 144 449 | m_Height: 144 450 | m_Kind: 0 451 | m_SubKind: 452 | - m_Textures: [] 453 | m_Width: 96 454 | m_Height: 96 455 | m_Kind: 0 456 | m_SubKind: 457 | - m_Textures: [] 458 | m_Width: 72 459 | m_Height: 72 460 | m_Kind: 0 461 | m_SubKind: 462 | - m_Textures: [] 463 | m_Width: 48 464 | m_Height: 48 465 | m_Kind: 0 466 | m_SubKind: 467 | - m_Textures: [] 468 | m_Width: 36 469 | m_Height: 36 470 | m_Kind: 0 471 | m_SubKind: 472 | - m_BuildTarget: tvOS 473 | m_Icons: 474 | - m_Textures: [] 475 | m_Width: 1280 476 | m_Height: 768 477 | m_Kind: 0 478 | m_SubKind: 479 | - m_Textures: [] 480 | m_Width: 800 481 | m_Height: 480 482 | m_Kind: 0 483 | m_SubKind: 484 | - m_Textures: [] 485 | m_Width: 400 486 | m_Height: 240 487 | m_Kind: 0 488 | m_SubKind: 489 | - m_Textures: [] 490 | m_Width: 4640 491 | m_Height: 1440 492 | m_Kind: 1 493 | m_SubKind: 494 | - m_Textures: [] 495 | m_Width: 2320 496 | m_Height: 720 497 | m_Kind: 1 498 | m_SubKind: 499 | - m_Textures: [] 500 | m_Width: 3840 501 | m_Height: 1440 502 | m_Kind: 1 503 | m_SubKind: 504 | - m_Textures: [] 505 | m_Width: 1920 506 | m_Height: 720 507 | m_Kind: 1 508 | m_SubKind: 509 | m_BuildTargetBatching: [] 510 | m_BuildTargetGraphicsJobs: [] 511 | m_BuildTargetGraphicsJobMode: [] 512 | m_BuildTargetGraphicsAPIs: 513 | - m_BuildTarget: iOSSupport 514 | m_APIs: 10000000 515 | m_Automatic: 1 516 | - m_BuildTarget: AndroidPlayer 517 | m_APIs: 0b00000008000000 518 | m_Automatic: 0 519 | m_BuildTargetVRSettings: [] 520 | openGLRequireES31: 0 521 | openGLRequireES31AEP: 0 522 | openGLRequireES32: 0 523 | m_TemplateCustomTags: {} 524 | mobileMTRendering: 525 | Android: 1 526 | iPhone: 1 527 | tvOS: 1 528 | m_BuildTargetGroupLightmapEncodingQuality: [] 529 | m_BuildTargetGroupLightmapSettings: [] 530 | m_BuildTargetNormalMapEncoding: [] 531 | m_BuildTargetDefaultTextureCompressionFormat: [] 532 | playModeTestRunnerEnabled: 0 533 | runPlayModeTestAsEditModeTest: 0 534 | actionOnDotNetUnhandledException: 1 535 | enableInternalProfiler: 0 536 | logObjCUncaughtExceptions: 1 537 | enableCrashReportAPI: 0 538 | cameraUsageDescription: 539 | locationUsageDescription: 540 | microphoneUsageDescription: 541 | bluetoothUsageDescription: 542 | switchNMETAOverride: 543 | switchNetLibKey: 544 | switchSocketMemoryPoolSize: 6144 545 | switchSocketAllocatorPoolSize: 128 546 | switchSocketConcurrencyLimit: 14 547 | switchScreenResolutionBehavior: 2 548 | switchUseCPUProfiler: 0 549 | switchUseGOLDLinker: 0 550 | switchLTOSetting: 0 551 | switchApplicationID: 0x01004b9000490000 552 | switchNSODependencies: 553 | switchTitleNames_0: 554 | switchTitleNames_1: 555 | switchTitleNames_2: 556 | switchTitleNames_3: 557 | switchTitleNames_4: 558 | switchTitleNames_5: 559 | switchTitleNames_6: 560 | switchTitleNames_7: 561 | switchTitleNames_8: 562 | switchTitleNames_9: 563 | switchTitleNames_10: 564 | switchTitleNames_11: 565 | switchTitleNames_12: 566 | switchTitleNames_13: 567 | switchTitleNames_14: 568 | switchTitleNames_15: 569 | switchPublisherNames_0: 570 | switchPublisherNames_1: 571 | switchPublisherNames_2: 572 | switchPublisherNames_3: 573 | switchPublisherNames_4: 574 | switchPublisherNames_5: 575 | switchPublisherNames_6: 576 | switchPublisherNames_7: 577 | switchPublisherNames_8: 578 | switchPublisherNames_9: 579 | switchPublisherNames_10: 580 | switchPublisherNames_11: 581 | switchPublisherNames_12: 582 | switchPublisherNames_13: 583 | switchPublisherNames_14: 584 | switchPublisherNames_15: 585 | switchIcons_0: {fileID: 0} 586 | switchIcons_1: {fileID: 0} 587 | switchIcons_2: {fileID: 0} 588 | switchIcons_3: {fileID: 0} 589 | switchIcons_4: {fileID: 0} 590 | switchIcons_5: {fileID: 0} 591 | switchIcons_6: {fileID: 0} 592 | switchIcons_7: {fileID: 0} 593 | switchIcons_8: {fileID: 0} 594 | switchIcons_9: {fileID: 0} 595 | switchIcons_10: {fileID: 0} 596 | switchIcons_11: {fileID: 0} 597 | switchIcons_12: {fileID: 0} 598 | switchIcons_13: {fileID: 0} 599 | switchIcons_14: {fileID: 0} 600 | switchIcons_15: {fileID: 0} 601 | switchSmallIcons_0: {fileID: 0} 602 | switchSmallIcons_1: {fileID: 0} 603 | switchSmallIcons_2: {fileID: 0} 604 | switchSmallIcons_3: {fileID: 0} 605 | switchSmallIcons_4: {fileID: 0} 606 | switchSmallIcons_5: {fileID: 0} 607 | switchSmallIcons_6: {fileID: 0} 608 | switchSmallIcons_7: {fileID: 0} 609 | switchSmallIcons_8: {fileID: 0} 610 | switchSmallIcons_9: {fileID: 0} 611 | switchSmallIcons_10: {fileID: 0} 612 | switchSmallIcons_11: {fileID: 0} 613 | switchSmallIcons_12: {fileID: 0} 614 | switchSmallIcons_13: {fileID: 0} 615 | switchSmallIcons_14: {fileID: 0} 616 | switchSmallIcons_15: {fileID: 0} 617 | switchManualHTML: 618 | switchAccessibleURLs: 619 | switchLegalInformation: 620 | switchMainThreadStackSize: 1048576 621 | switchPresenceGroupId: 622 | switchLogoHandling: 0 623 | switchReleaseVersion: 0 624 | switchDisplayVersion: 1.0.0 625 | switchStartupUserAccount: 0 626 | switchTouchScreenUsage: 0 627 | switchSupportedLanguagesMask: 0 628 | switchLogoType: 0 629 | switchApplicationErrorCodeCategory: 630 | switchUserAccountSaveDataSize: 0 631 | switchUserAccountSaveDataJournalSize: 0 632 | switchApplicationAttribute: 0 633 | switchCardSpecSize: -1 634 | switchCardSpecClock: -1 635 | switchRatingsMask: 0 636 | switchRatingsInt_0: 0 637 | switchRatingsInt_1: 0 638 | switchRatingsInt_2: 0 639 | switchRatingsInt_3: 0 640 | switchRatingsInt_4: 0 641 | switchRatingsInt_5: 0 642 | switchRatingsInt_6: 0 643 | switchRatingsInt_7: 0 644 | switchRatingsInt_8: 0 645 | switchRatingsInt_9: 0 646 | switchRatingsInt_10: 0 647 | switchRatingsInt_11: 0 648 | switchRatingsInt_12: 0 649 | switchLocalCommunicationIds_0: 650 | switchLocalCommunicationIds_1: 651 | switchLocalCommunicationIds_2: 652 | switchLocalCommunicationIds_3: 653 | switchLocalCommunicationIds_4: 654 | switchLocalCommunicationIds_5: 655 | switchLocalCommunicationIds_6: 656 | switchLocalCommunicationIds_7: 657 | switchParentalControl: 0 658 | switchAllowsScreenshot: 1 659 | switchAllowsVideoCapturing: 1 660 | switchAllowsRuntimeAddOnContentInstall: 0 661 | switchDataLossConfirmation: 0 662 | switchUserAccountLockEnabled: 0 663 | switchSystemResourceMemory: 16777216 664 | switchSupportedNpadStyles: 22 665 | switchNativeFsCacheSize: 32 666 | switchIsHoldTypeHorizontal: 0 667 | switchSupportedNpadCount: 8 668 | switchSocketConfigEnabled: 0 669 | switchTcpInitialSendBufferSize: 32 670 | switchTcpInitialReceiveBufferSize: 64 671 | switchTcpAutoSendBufferSizeMax: 256 672 | switchTcpAutoReceiveBufferSizeMax: 256 673 | switchUdpSendBufferSize: 9 674 | switchUdpReceiveBufferSize: 42 675 | switchSocketBufferEfficiency: 4 676 | switchSocketInitializeEnabled: 1 677 | switchNetworkInterfaceManagerInitializeEnabled: 1 678 | switchPlayerConnectionEnabled: 1 679 | switchUseNewStyleFilepaths: 0 680 | switchUseMicroSleepForYield: 1 681 | switchEnableRamDiskSupport: 0 682 | switchMicroSleepForYieldTime: 25 683 | switchRamDiskSpaceSize: 12 684 | ps4NPAgeRating: 12 685 | ps4NPTitleSecret: 686 | ps4NPTrophyPackPath: 687 | ps4ParentalLevel: 11 688 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 689 | ps4Category: 0 690 | ps4MasterVersion: 01.00 691 | ps4AppVersion: 01.00 692 | ps4AppType: 0 693 | ps4ParamSfxPath: 694 | ps4VideoOutPixelFormat: 0 695 | ps4VideoOutInitialWidth: 1920 696 | ps4VideoOutBaseModeInitialWidth: 1920 697 | ps4VideoOutReprojectionRate: 60 698 | ps4PronunciationXMLPath: 699 | ps4PronunciationSIGPath: 700 | ps4BackgroundImagePath: 701 | ps4StartupImagePath: 702 | ps4StartupImagesFolder: 703 | ps4IconImagesFolder: 704 | ps4SaveDataImagePath: 705 | ps4SdkOverride: 706 | ps4BGMPath: 707 | ps4ShareFilePath: 708 | ps4ShareOverlayImagePath: 709 | ps4PrivacyGuardImagePath: 710 | ps4ExtraSceSysFile: 711 | ps4NPtitleDatPath: 712 | ps4RemotePlayKeyAssignment: -1 713 | ps4RemotePlayKeyMappingDir: 714 | ps4PlayTogetherPlayerCount: 0 715 | ps4EnterButtonAssignment: 2 716 | ps4ApplicationParam1: 0 717 | ps4ApplicationParam2: 0 718 | ps4ApplicationParam3: 0 719 | ps4ApplicationParam4: 0 720 | ps4DownloadDataSize: 0 721 | ps4GarlicHeapSize: 2048 722 | ps4ProGarlicHeapSize: 2560 723 | playerPrefsMaxSize: 32768 724 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 725 | ps4pnSessions: 1 726 | ps4pnPresence: 1 727 | ps4pnFriends: 1 728 | ps4pnGameCustomData: 1 729 | playerPrefsSupport: 0 730 | enableApplicationExit: 0 731 | resetTempFolder: 1 732 | restrictedAudioUsageRights: 0 733 | ps4UseResolutionFallback: 0 734 | ps4ReprojectionSupport: 0 735 | ps4UseAudio3dBackend: 0 736 | ps4UseLowGarlicFragmentationMode: 1 737 | ps4SocialScreenEnabled: 0 738 | ps4ScriptOptimizationLevel: 2 739 | ps4Audio3dVirtualSpeakerCount: 14 740 | ps4attribCpuUsage: 0 741 | ps4PatchPkgPath: 742 | ps4PatchLatestPkgPath: 743 | ps4PatchChangeinfoPath: 744 | ps4PatchDayOne: 0 745 | ps4attribUserManagement: 0 746 | ps4attribMoveSupport: 0 747 | ps4attrib3DSupport: 0 748 | ps4attribShareSupport: 0 749 | ps4attribExclusiveVR: 0 750 | ps4disableAutoHideSplash: 0 751 | ps4videoRecordingFeaturesUsed: 0 752 | ps4contentSearchFeaturesUsed: 0 753 | ps4CompatibilityPS5: 0 754 | ps4GPU800MHz: 1 755 | ps4attribEyeToEyeDistanceSettingVR: 0 756 | ps4IncludedModules: [] 757 | ps4attribVROutputEnabled: 0 758 | monoEnv: 759 | splashScreenBackgroundSourceLandscape: {fileID: 0} 760 | splashScreenBackgroundSourcePortrait: {fileID: 0} 761 | blurSplashScreenBackground: 1 762 | spritePackerPolicy: 763 | webGLMemorySize: 32 764 | webGLExceptionSupport: 1 765 | webGLNameFilesAsHashes: 0 766 | webGLDataCaching: 1 767 | webGLDebugSymbols: 0 768 | webGLEmscriptenArgs: 769 | webGLModulesDirectory: 770 | webGLTemplate: APPLICATION:Default 771 | webGLAnalyzeBuildSize: 0 772 | webGLUseEmbeddedResources: 0 773 | webGLCompressionFormat: 0 774 | webGLWasmArithmeticExceptions: 0 775 | webGLLinkerTarget: 1 776 | webGLThreadsSupport: 0 777 | webGLDecompressionFallback: 0 778 | scriptingDefineSymbols: {} 779 | additionalCompilerArguments: {} 780 | platformArchitecture: {} 781 | scriptingBackend: {} 782 | il2cppCompilerConfiguration: {} 783 | managedStrippingLevel: {} 784 | incrementalIl2cppBuild: {} 785 | suppressCommonWarnings: 1 786 | allowUnsafeCode: 0 787 | useDeterministicCompilation: 1 788 | enableRoslynAnalyzers: 1 789 | additionalIl2CppArgs: 790 | scriptingRuntimeVersion: 1 791 | gcIncremental: 0 792 | assemblyVersionValidation: 1 793 | gcWBarrierValidation: 0 794 | apiCompatibilityLevelPerPlatform: {} 795 | m_RenderingPath: 1 796 | m_MobileRenderingPath: 1 797 | metroPackageName: com.unity.template-starter-kit 798 | metroPackageVersion: 799 | metroCertificatePath: 800 | metroCertificatePassword: 801 | metroCertificateSubject: 802 | metroCertificateIssuer: 803 | metroCertificateNotAfter: 0000000000000000 804 | metroApplicationDescription: com.unity.template-starter-kit 805 | wsaImages: {} 806 | metroTileShortName: 807 | metroTileShowName: 0 808 | metroMediumTileShowName: 0 809 | metroLargeTileShowName: 0 810 | metroWideTileShowName: 0 811 | metroSupportStreamingInstall: 0 812 | metroLastRequiredScene: 0 813 | metroDefaultTileSize: 1 814 | metroTileForegroundText: 2 815 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 816 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 817 | a: 1} 818 | metroSplashScreenUseBackgroundColor: 0 819 | platformCapabilities: {} 820 | metroTargetDeviceFamilies: {} 821 | metroFTAName: 822 | metroFTAFileTypes: [] 823 | metroProtocolName: 824 | XboxOneProductId: 825 | XboxOneUpdateKey: 826 | XboxOneSandboxId: 827 | XboxOneContentId: 828 | XboxOneTitleId: 829 | XboxOneSCId: 830 | XboxOneGameOsOverridePath: 831 | XboxOnePackagingOverridePath: 832 | XboxOneAppManifestOverridePath: 833 | XboxOneVersion: 1.0.0.0 834 | XboxOnePackageEncryption: 0 835 | XboxOnePackageUpdateGranularity: 2 836 | XboxOneDescription: 837 | XboxOneLanguage: 838 | - enus 839 | XboxOneCapability: [] 840 | XboxOneGameRating: {} 841 | XboxOneIsContentPackage: 0 842 | XboxOneEnhancedXboxCompatibilityMode: 0 843 | XboxOneEnableGPUVariability: 1 844 | XboxOneSockets: {} 845 | XboxOneSplashScreen: {fileID: 0} 846 | XboxOneAllowedProductIds: [] 847 | XboxOnePersistentLocalStorageSize: 0 848 | XboxOneXTitleMemory: 8 849 | XboxOneOverrideIdentityName: 850 | XboxOneOverrideIdentityPublisher: 851 | vrEditorSettings: {} 852 | cloudServicesEnabled: {} 853 | luminIcon: 854 | m_Name: 855 | m_ModelFolderPath: 856 | m_PortalFolderPath: 857 | luminCert: 858 | m_CertPath: 859 | m_SignPackage: 1 860 | luminIsChannelApp: 0 861 | luminVersion: 862 | m_VersionCode: 1 863 | m_VersionName: 864 | apiCompatibilityLevel: 6 865 | activeInputHandler: 0 866 | cloudProjectId: 867 | framebufferDepthMemorylessMode: 0 868 | qualitySettingsNames: [] 869 | projectName: 870 | organizationId: 871 | cloudEnabled: 0 872 | legacyClampBlendShapeWeights: 0 873 | playerDataPath: 874 | forceSRGBBlit: 1 875 | virtualTexturingSupportEnabled: 0 876 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2021.2.7f1c1 2 | m_EditorVersionWithRevision: 2021.2.7f1c1 (f334abb85d22) 3 | -------------------------------------------------------------------------------- /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: 2 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Performant 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 20 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 2 22 | textureQuality: 0 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.4 31 | maximumLODLevel: 0 32 | streamingMipmapsActive: 0 33 | streamingMipmapsAddAllCameras: 1 34 | streamingMipmapsMemoryBudget: 512 35 | streamingMipmapsRenderersPerFrame: 512 36 | streamingMipmapsMaxLevelReduction: 2 37 | streamingMipmapsMaxFileIORequests: 1024 38 | particleRaycastBudget: 4 39 | asyncUploadTimeSlice: 2 40 | asyncUploadBufferSize: 16 41 | asyncUploadPersistentBuffer: 1 42 | resolutionScalingFixedDPIFactor: 1 43 | customRenderPipeline: {fileID: 11400000, guid: d0e2fc18fe036412f8223b3b3d9ad574, 44 | type: 2} 45 | excludedTargetPlatforms: [] 46 | - serializedVersion: 2 47 | name: Balanced 48 | pixelLightCount: 1 49 | shadows: 1 50 | shadowResolution: 0 51 | shadowProjection: 1 52 | shadowCascades: 1 53 | shadowDistance: 20 54 | shadowNearPlaneOffset: 3 55 | shadowCascade2Split: 0.33333334 56 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 57 | shadowmaskMode: 0 58 | skinWeights: 4 59 | textureQuality: 0 60 | anisotropicTextures: 1 61 | antiAliasing: 0 62 | softParticles: 0 63 | softVegetation: 0 64 | realtimeReflectionProbes: 0 65 | billboardsFaceCameraPosition: 0 66 | vSyncCount: 1 67 | lodBias: 1 68 | maximumLODLevel: 0 69 | streamingMipmapsActive: 0 70 | streamingMipmapsAddAllCameras: 1 71 | streamingMipmapsMemoryBudget: 512 72 | streamingMipmapsRenderersPerFrame: 512 73 | streamingMipmapsMaxLevelReduction: 2 74 | streamingMipmapsMaxFileIORequests: 1024 75 | particleRaycastBudget: 64 76 | asyncUploadTimeSlice: 2 77 | asyncUploadBufferSize: 16 78 | asyncUploadPersistentBuffer: 1 79 | resolutionScalingFixedDPIFactor: 1 80 | customRenderPipeline: {fileID: 11400000, guid: e1260c1148f6143b28bae5ace5e9c5d1, 81 | type: 2} 82 | excludedTargetPlatforms: [] 83 | - serializedVersion: 2 84 | name: High Fidelity 85 | pixelLightCount: 2 86 | shadows: 2 87 | shadowResolution: 1 88 | shadowProjection: 1 89 | shadowCascades: 2 90 | shadowDistance: 40 91 | shadowNearPlaneOffset: 3 92 | shadowCascade2Split: 0.33333334 93 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 94 | shadowmaskMode: 1 95 | skinWeights: 255 96 | textureQuality: 0 97 | anisotropicTextures: 2 98 | antiAliasing: 4 99 | softParticles: 0 100 | softVegetation: 1 101 | realtimeReflectionProbes: 1 102 | billboardsFaceCameraPosition: 1 103 | vSyncCount: 1 104 | lodBias: 2 105 | maximumLODLevel: 0 106 | streamingMipmapsActive: 0 107 | streamingMipmapsAddAllCameras: 1 108 | streamingMipmapsMemoryBudget: 512 109 | streamingMipmapsRenderersPerFrame: 512 110 | streamingMipmapsMaxLevelReduction: 2 111 | streamingMipmapsMaxFileIORequests: 1024 112 | particleRaycastBudget: 2048 113 | asyncUploadTimeSlice: 2 114 | asyncUploadBufferSize: 16 115 | asyncUploadPersistentBuffer: 1 116 | resolutionScalingFixedDPIFactor: 1 117 | customRenderPipeline: {fileID: 11400000, guid: 7b7fd9122c28c4d15b667c7040e3b3fd, 118 | type: 2} 119 | excludedTargetPlatforms: [] 120 | m_PerPlatformDefaultQuality: 121 | Android: 1 122 | CloudRendering: 2 123 | Lumin: 2 124 | GameCoreScarlett: 2 125 | GameCoreXboxOne: 2 126 | Nintendo Switch: 2 127 | PS4: 2 128 | PS5: 2 129 | Server: 0 130 | Stadia: 2 131 | Standalone: 2 132 | WebGL: 1 133 | Windows Store Apps: 2 134 | XboxOne: 2 135 | iPhone: 1 136 | tvOS: 1 137 | -------------------------------------------------------------------------------- /ProjectSettings/SceneTemplateSettings.json: -------------------------------------------------------------------------------- 1 | { 2 | "templatePinStates": [], 3 | "dependencyTypeInfos": [ 4 | { 5 | "userAdded": false, 6 | "type": "UnityEngine.AnimationClip", 7 | "ignore": false, 8 | "defaultInstantiationMode": 0, 9 | "supportsModification": true 10 | }, 11 | { 12 | "userAdded": false, 13 | "type": "UnityEditor.Animations.AnimatorController", 14 | "ignore": false, 15 | "defaultInstantiationMode": 0, 16 | "supportsModification": true 17 | }, 18 | { 19 | "userAdded": false, 20 | "type": "UnityEngine.AnimatorOverrideController", 21 | "ignore": false, 22 | "defaultInstantiationMode": 0, 23 | "supportsModification": true 24 | }, 25 | { 26 | "userAdded": false, 27 | "type": "UnityEditor.Audio.AudioMixerController", 28 | "ignore": false, 29 | "defaultInstantiationMode": 0, 30 | "supportsModification": true 31 | }, 32 | { 33 | "userAdded": false, 34 | "type": "UnityEngine.ComputeShader", 35 | "ignore": true, 36 | "defaultInstantiationMode": 1, 37 | "supportsModification": true 38 | }, 39 | { 40 | "userAdded": false, 41 | "type": "UnityEngine.Cubemap", 42 | "ignore": false, 43 | "defaultInstantiationMode": 0, 44 | "supportsModification": true 45 | }, 46 | { 47 | "userAdded": false, 48 | "type": "UnityEngine.GameObject", 49 | "ignore": false, 50 | "defaultInstantiationMode": 0, 51 | "supportsModification": true 52 | }, 53 | { 54 | "userAdded": false, 55 | "type": "UnityEditor.LightingDataAsset", 56 | "ignore": false, 57 | "defaultInstantiationMode": 0, 58 | "supportsModification": false 59 | }, 60 | { 61 | "userAdded": false, 62 | "type": "UnityEngine.LightingSettings", 63 | "ignore": false, 64 | "defaultInstantiationMode": 0, 65 | "supportsModification": true 66 | }, 67 | { 68 | "userAdded": false, 69 | "type": "UnityEngine.Material", 70 | "ignore": false, 71 | "defaultInstantiationMode": 0, 72 | "supportsModification": true 73 | }, 74 | { 75 | "userAdded": false, 76 | "type": "UnityEditor.MonoScript", 77 | "ignore": true, 78 | "defaultInstantiationMode": 1, 79 | "supportsModification": true 80 | }, 81 | { 82 | "userAdded": false, 83 | "type": "UnityEngine.PhysicMaterial", 84 | "ignore": false, 85 | "defaultInstantiationMode": 0, 86 | "supportsModification": true 87 | }, 88 | { 89 | "userAdded": false, 90 | "type": "UnityEngine.PhysicsMaterial2D", 91 | "ignore": false, 92 | "defaultInstantiationMode": 0, 93 | "supportsModification": true 94 | }, 95 | { 96 | "userAdded": false, 97 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessProfile", 98 | "ignore": false, 99 | "defaultInstantiationMode": 0, 100 | "supportsModification": true 101 | }, 102 | { 103 | "userAdded": false, 104 | "type": "UnityEngine.Rendering.PostProcessing.PostProcessResources", 105 | "ignore": false, 106 | "defaultInstantiationMode": 0, 107 | "supportsModification": true 108 | }, 109 | { 110 | "userAdded": false, 111 | "type": "UnityEngine.Rendering.VolumeProfile", 112 | "ignore": false, 113 | "defaultInstantiationMode": 0, 114 | "supportsModification": true 115 | }, 116 | { 117 | "userAdded": false, 118 | "type": "UnityEditor.SceneAsset", 119 | "ignore": false, 120 | "defaultInstantiationMode": 0, 121 | "supportsModification": false 122 | }, 123 | { 124 | "userAdded": false, 125 | "type": "UnityEngine.Shader", 126 | "ignore": true, 127 | "defaultInstantiationMode": 1, 128 | "supportsModification": true 129 | }, 130 | { 131 | "userAdded": false, 132 | "type": "UnityEngine.ShaderVariantCollection", 133 | "ignore": true, 134 | "defaultInstantiationMode": 1, 135 | "supportsModification": true 136 | }, 137 | { 138 | "userAdded": false, 139 | "type": "UnityEngine.Texture", 140 | "ignore": false, 141 | "defaultInstantiationMode": 0, 142 | "supportsModification": true 143 | }, 144 | { 145 | "userAdded": false, 146 | "type": "UnityEngine.Texture2D", 147 | "ignore": false, 148 | "defaultInstantiationMode": 0, 149 | "supportsModification": true 150 | }, 151 | { 152 | "userAdded": false, 153 | "type": "UnityEngine.Timeline.TimelineAsset", 154 | "ignore": false, 155 | "defaultInstantiationMode": 0, 156 | "supportsModification": true 157 | } 158 | ], 159 | "defaultDependencyTypeInfo": { 160 | "userAdded": false, 161 | "type": "", 162 | "ignore": false, 163 | "defaultInstantiationMode": 1, 164 | "supportsModification": true 165 | }, 166 | "newSceneOverride": 0 167 | } -------------------------------------------------------------------------------- /ProjectSettings/ShaderGraphSettings.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: de02f9e1d18f588468e474319d09a723, type: 3} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | customInterpolatorErrorThreshold: 32 16 | customInterpolatorWarningThreshold: 16 17 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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: 5 16 | -------------------------------------------------------------------------------- /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_CNEventUrl: https://cdp.cloud.unity.cn/v1/events 14 | m_CNConfigUrl: https://cdp.cloud.unity.cn/config 15 | m_TestInitMode: 0 16 | CrashReportingSettings: 17 | m_EventUrl: https://perf-events.cloud.unity3d.com 18 | m_Enabled: 0 19 | m_LogBufferSize: 10 20 | m_CaptureEditorExceptions: 1 21 | UnityPurchasingSettings: 22 | m_Enabled: 0 23 | m_TestMode: 0 24 | UnityAnalyticsSettings: 25 | m_Enabled: 1 26 | m_TestMode: 0 27 | m_InitializeOnStartup: 1 28 | UnityAdsSettings: 29 | m_Enabled: 0 30 | m_InitializeOnStartup: 1 31 | m_TestMode: 0 32 | m_IosGameId: 33 | m_AndroidGameId: 34 | m_GameIds: {} 35 | m_GameId: 36 | PerformanceReportingSettings: 37 | m_Enabled: 0 38 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /ProjectSettings/boot.config: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AKGWSB/FFTConvolutionBloom/3be9c3c19d58437295d633e2f4f341866e083779/ProjectSettings/boot.config -------------------------------------------------------------------------------- /README.assets/image-20230305231749655.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AKGWSB/FFTConvolutionBloom/3be9c3c19d58437295d633e2f4f341866e083779/README.assets/image-20230305231749655.png -------------------------------------------------------------------------------- /README.assets/image-20230305231818243.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AKGWSB/FFTConvolutionBloom/3be9c3c19d58437295d633e2f4f341866e083779/README.assets/image-20230305231818243.png -------------------------------------------------------------------------------- /README.assets/image-20230305231946900.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/AKGWSB/FFTConvolutionBloom/3be9c3c19d58437295d633e2f4f341866e083779/README.assets/image-20230305231946900.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # FFTConvolutionBloom 2 | Bloom using FFT to accelerate convolution, with Unity URP 3 | 4 | ![image-20230305231749655](README.assets/image-20230305231749655.png) 5 | 6 | ![image-20230305231818243](README.assets/image-20230305231818243.png) 7 | 8 | ![image-20230305231946900](README.assets/image-20230305231946900.png) 9 | 10 | # Reading Online 11 | 12 | https://zhuanlan.zhihu.com/p/611582936 13 | 14 | # Feature 15 | 16 | Two-for-one FFT 17 | 18 | Radix8 Cooley-Tukey FFT 19 | -------------------------------------------------------------------------------- /UserSettings/EditorUserSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!162 &1 4 | EditorUserSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 4 7 | m_ConfigSettings: 8 | RecentlyUsedSceneGuid-0: 9 | value: 570600075d060c0b555d5a7a40740e4443154c7a7d2d73362f714536bab66d6a 10 | flags: 0 11 | RecentlyUsedSceneGuid-1: 12 | value: 055752055603515808590f7744760d444616497f7b2c77362c7a1e36b2e56d6f 13 | flags: 0 14 | RecentlyUsedSceneGuid-2: 15 | value: 05030205010c0a09095e5e7549770e4412161b79792b733575701e66b4e4376f 16 | flags: 0 17 | RecentlyUsedSceneGuid-3: 18 | value: 5500575503565b585c0c09714477094946154973292e24607c7d4a37bbb3313d 19 | flags: 0 20 | RecentlyUsedSceneGuid-4: 21 | value: 5a08575f5207595a0f5d59741173094444164f7d7d2a23317c7a4465bbe1646d 22 | flags: 0 23 | vcSharedLogLevel: 24 | value: 0d5e400f0650 25 | flags: 0 26 | m_VCAutomaticAdd: 1 27 | m_VCDebugCom: 0 28 | m_VCDebugCmd: 0 29 | m_VCDebugOut: 0 30 | m_SemanticMergeMode: 2 31 | m_DesiredImportWorkerCount: 4 32 | m_StandbyImportWorkerCount: 2 33 | m_IdleImportWorkerShutdownDelay: 60000 34 | m_VCShowFailedCheckout: 1 35 | m_VCOverwriteFailedCheckoutAssets: 1 36 | m_VCProjectOverlayIcons: 1 37 | m_VCHierarchyOverlayIcons: 1 38 | m_VCOtherOverlayIcons: 1 39 | m_VCAllowAsyncUpdate: 1 40 | m_ArtifactGarbageCollection: 1 41 | -------------------------------------------------------------------------------- /UserSettings/Layouts/CurrentMaximizeLayout.dwlt: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &1 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 52 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: 1 12 | m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} 13 | m_Name: 14 | m_EditorClassIdentifier: 15 | m_Children: 16 | - {fileID: 3} 17 | - {fileID: 13} 18 | m_Position: 19 | serializedVersion: 2 20 | x: 0 21 | y: 30 22 | width: 1707 23 | height: 926 24 | m_MinSize: {x: 300, y: 200} 25 | m_MaxSize: {x: 24288, y: 16192} 26 | vertical: 0 27 | controlID: -1 28 | --- !u!114 &2 29 | MonoBehaviour: 30 | m_ObjectHideFlags: 52 31 | m_CorrespondingSourceObject: {fileID: 0} 32 | m_PrefabInstance: {fileID: 0} 33 | m_PrefabAsset: {fileID: 0} 34 | m_GameObject: {fileID: 0} 35 | m_Enabled: 1 36 | m_EditorHideFlags: 1 37 | m_Script: {fileID: 12015, guid: 0000000000000000e000000000000000, type: 0} 38 | m_Name: 39 | m_EditorClassIdentifier: 40 | m_MinSize: {x: 200, y: 200} 41 | m_MaxSize: {x: 4000, y: 4000} 42 | m_TitleContent: 43 | m_Text: Game 44 | m_Image: {fileID: 4621777727084837110, guid: 0000000000000000d000000000000000, 45 | type: 0} 46 | m_Tooltip: 47 | m_Pos: 48 | serializedVersion: 2 49 | x: 322.6667 50 | y: 72.66667 51 | width: 980 52 | height: 519 53 | m_ViewDataDictionary: {fileID: 0} 54 | m_OverlayCanvas: 55 | m_LastAppliedPresetName: Default 56 | m_SaveData: [] 57 | m_SerializedViewNames: [] 58 | m_SerializedViewValues: [] 59 | m_PlayModeViewName: GameView 60 | m_ShowGizmos: 0 61 | m_TargetDisplay: 0 62 | m_ClearColor: {r: 0, g: 0, b: 0, a: 0} 63 | m_TargetSize: {x: 980, y: 498} 64 | m_TextureFilterMode: 0 65 | m_TextureHideFlags: 61 66 | m_RenderIMGUI: 1 67 | m_EnterPlayModeBehavior: 0 68 | m_UseMipMap: 0 69 | m_VSyncEnabled: 0 70 | m_Gizmos: 0 71 | m_Stats: 0 72 | m_SelectedSizes: 00000000000000000000000000000000000000000000000000000000000000000000000000000000 73 | m_ZoomArea: 74 | m_HRangeLocked: 0 75 | m_VRangeLocked: 0 76 | hZoomLockedByDefault: 0 77 | vZoomLockedByDefault: 0 78 | m_HBaseRangeMin: -326.6667 79 | m_HBaseRangeMax: 326.6667 80 | m_VBaseRangeMin: -166 81 | m_VBaseRangeMax: 166 82 | m_HAllowExceedBaseRangeMin: 1 83 | m_HAllowExceedBaseRangeMax: 1 84 | m_VAllowExceedBaseRangeMin: 1 85 | m_VAllowExceedBaseRangeMax: 1 86 | m_ScaleWithWindow: 0 87 | m_HSlider: 0 88 | m_VSlider: 0 89 | m_IgnoreScrollWheelUntilClicked: 0 90 | m_EnableMouseInput: 1 91 | m_EnableSliderZoomHorizontal: 0 92 | m_EnableSliderZoomVertical: 0 93 | m_UniformScale: 1 94 | m_UpDirection: 1 95 | m_DrawArea: 96 | serializedVersion: 2 97 | x: 0 98 | y: 21 99 | width: 980 100 | height: 498 101 | m_Scale: {x: 1.4681407, y: 1.4681407} 102 | m_Translation: {x: 490, y: 248.99998} 103 | m_MarginLeft: 0 104 | m_MarginRight: 0 105 | m_MarginTop: 0 106 | m_MarginBottom: 0 107 | m_LastShownAreaInsideMargins: 108 | serializedVersion: 2 109 | x: -333.75546 110 | y: -169.60226 111 | width: 667.5109 112 | height: 339.20453 113 | m_MinimalGUI: 1 114 | m_defaultScale: 1 115 | m_LastWindowPixelSize: {x: 1470, y: 778.5} 116 | m_ClearInEditMode: 1 117 | m_NoCameraWarning: 1 118 | m_LowResolutionForAspectRatios: 01000000000000000000 119 | m_XRRenderMode: 0 120 | m_RenderTexture: {fileID: 0} 121 | --- !u!114 &3 122 | MonoBehaviour: 123 | m_ObjectHideFlags: 52 124 | m_CorrespondingSourceObject: {fileID: 0} 125 | m_PrefabInstance: {fileID: 0} 126 | m_PrefabAsset: {fileID: 0} 127 | m_GameObject: {fileID: 0} 128 | m_Enabled: 1 129 | m_EditorHideFlags: 1 130 | m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} 131 | m_Name: 132 | m_EditorClassIdentifier: 133 | m_Children: 134 | - {fileID: 4} 135 | - {fileID: 9} 136 | m_Position: 137 | serializedVersion: 2 138 | x: 0 139 | y: 0 140 | width: 1304.6666 141 | height: 926 142 | m_MinSize: {x: 200, y: 200} 143 | m_MaxSize: {x: 16192, y: 16192} 144 | vertical: 1 145 | controlID: -1 146 | --- !u!114 &4 147 | MonoBehaviour: 148 | m_ObjectHideFlags: 52 149 | m_CorrespondingSourceObject: {fileID: 0} 150 | m_PrefabInstance: {fileID: 0} 151 | m_PrefabAsset: {fileID: 0} 152 | m_GameObject: {fileID: 0} 153 | m_Enabled: 1 154 | m_EditorHideFlags: 1 155 | m_Script: {fileID: 12010, guid: 0000000000000000e000000000000000, type: 0} 156 | m_Name: 157 | m_EditorClassIdentifier: 158 | m_Children: 159 | - {fileID: 5} 160 | - {fileID: 7} 161 | m_Position: 162 | serializedVersion: 2 163 | x: 0 164 | y: 0 165 | width: 1304.6666 166 | height: 540 167 | m_MinSize: {x: 200, y: 100} 168 | m_MaxSize: {x: 16192, y: 8096} 169 | vertical: 0 170 | controlID: -1 171 | --- !u!114 &5 172 | MonoBehaviour: 173 | m_ObjectHideFlags: 52 174 | m_CorrespondingSourceObject: {fileID: 0} 175 | m_PrefabInstance: {fileID: 0} 176 | m_PrefabAsset: {fileID: 0} 177 | m_GameObject: {fileID: 0} 178 | m_Enabled: 1 179 | m_EditorHideFlags: 1 180 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 181 | m_Name: 182 | m_EditorClassIdentifier: 183 | m_Children: [] 184 | m_Position: 185 | serializedVersion: 2 186 | x: 0 187 | y: 0 188 | width: 322.66666 189 | height: 540 190 | m_MinSize: {x: 201, y: 221} 191 | m_MaxSize: {x: 4001, y: 4021} 192 | m_ActualView: {fileID: 6} 193 | m_Panes: 194 | - {fileID: 6} 195 | m_Selected: 0 196 | m_LastSelected: 0 197 | --- !u!114 &6 198 | MonoBehaviour: 199 | m_ObjectHideFlags: 52 200 | m_CorrespondingSourceObject: {fileID: 0} 201 | m_PrefabInstance: {fileID: 0} 202 | m_PrefabAsset: {fileID: 0} 203 | m_GameObject: {fileID: 0} 204 | m_Enabled: 1 205 | m_EditorHideFlags: 1 206 | m_Script: {fileID: 12061, guid: 0000000000000000e000000000000000, type: 0} 207 | m_Name: 208 | m_EditorClassIdentifier: 209 | m_MinSize: {x: 200, y: 200} 210 | m_MaxSize: {x: 4000, y: 4000} 211 | m_TitleContent: 212 | m_Text: Hierarchy 213 | m_Image: {fileID: -3734745235275155857, guid: 0000000000000000d000000000000000, 214 | type: 0} 215 | m_Tooltip: 216 | m_Pos: 217 | serializedVersion: 2 218 | x: 0 219 | y: 72.66667 220 | width: 321.66666 221 | height: 519 222 | m_ViewDataDictionary: {fileID: 0} 223 | m_OverlayCanvas: 224 | m_LastAppliedPresetName: Default 225 | m_SaveData: [] 226 | m_SceneHierarchy: 227 | m_TreeViewState: 228 | scrollPos: {x: 0, y: 0} 229 | m_SelectedIDs: 042c0000 230 | m_LastClickedID: 0 231 | m_ExpandedIDs: 24fbffff 232 | m_RenameOverlay: 233 | m_UserAcceptedRename: 0 234 | m_Name: 235 | m_OriginalName: 236 | m_EditFieldRect: 237 | serializedVersion: 2 238 | x: 0 239 | y: 0 240 | width: 0 241 | height: 0 242 | m_UserData: 0 243 | m_IsWaitingForDelay: 0 244 | m_IsRenaming: 0 245 | m_OriginalEventType: 11 246 | m_IsRenamingFilename: 0 247 | m_ClientGUIView: {fileID: 5} 248 | m_SearchString: 249 | m_ExpandedScenes: [] 250 | m_CurrenRootInstanceID: 0 251 | m_LockTracker: 252 | m_IsLocked: 0 253 | m_CurrentSortingName: TransformSorting 254 | m_WindowGUID: 4c969a2b90040154d917609493e03593 255 | --- !u!114 &7 256 | MonoBehaviour: 257 | m_ObjectHideFlags: 52 258 | m_CorrespondingSourceObject: {fileID: 0} 259 | m_PrefabInstance: {fileID: 0} 260 | m_PrefabAsset: {fileID: 0} 261 | m_GameObject: {fileID: 0} 262 | m_Enabled: 1 263 | m_EditorHideFlags: 1 264 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 265 | m_Name: GameView 266 | m_EditorClassIdentifier: 267 | m_Children: [] 268 | m_Position: 269 | serializedVersion: 2 270 | x: 322.66666 271 | y: 0 272 | width: 982 273 | height: 540 274 | m_MinSize: {x: 202, y: 221} 275 | m_MaxSize: {x: 4002, y: 4021} 276 | m_ActualView: {fileID: 2} 277 | m_Panes: 278 | - {fileID: 8} 279 | - {fileID: 2} 280 | m_Selected: 1 281 | m_LastSelected: 0 282 | --- !u!114 &8 283 | MonoBehaviour: 284 | m_ObjectHideFlags: 52 285 | m_CorrespondingSourceObject: {fileID: 0} 286 | m_PrefabInstance: {fileID: 0} 287 | m_PrefabAsset: {fileID: 0} 288 | m_GameObject: {fileID: 0} 289 | m_Enabled: 1 290 | m_EditorHideFlags: 1 291 | m_Script: {fileID: 12013, guid: 0000000000000000e000000000000000, type: 0} 292 | m_Name: 293 | m_EditorClassIdentifier: 294 | m_MinSize: {x: 200, y: 200} 295 | m_MaxSize: {x: 4000, y: 4000} 296 | m_TitleContent: 297 | m_Text: Scene 298 | m_Image: {fileID: 8634526014445323508, guid: 0000000000000000d000000000000000, 299 | type: 0} 300 | m_Tooltip: 301 | m_Pos: 302 | serializedVersion: 2 303 | x: 322.6667 304 | y: 72.66667 305 | width: 980 306 | height: 519 307 | m_ViewDataDictionary: {fileID: 0} 308 | m_OverlayCanvas: 309 | m_LastAppliedPresetName: Default 310 | m_SaveData: 311 | - dockPosition: 0 312 | containerId: overlay-toolbar__top 313 | floating: 0 314 | collapsed: 0 315 | displayed: 1 316 | snapOffset: {x: 0, y: 0} 317 | snapOffsetDelta: {x: -98.66669, y: -26} 318 | snapCorner: 3 319 | id: Tool Settings 320 | index: 0 321 | layout: 1 322 | - dockPosition: 0 323 | containerId: overlay-toolbar__top 324 | floating: 0 325 | collapsed: 0 326 | displayed: 1 327 | snapOffset: {x: -141, y: 149} 328 | snapOffsetDelta: {x: 0, y: 0} 329 | snapCorner: 1 330 | id: unity-grid-and-snap-toolbar 331 | index: 1 332 | layout: 1 333 | - dockPosition: 1 334 | containerId: overlay-toolbar__top 335 | floating: 0 336 | collapsed: 0 337 | displayed: 1 338 | snapOffset: {x: 0, y: 0} 339 | snapOffsetDelta: {x: 0, y: 0} 340 | snapCorner: 0 341 | id: unity-scene-view-toolbar 342 | index: 0 343 | layout: 1 344 | - dockPosition: 1 345 | containerId: overlay-toolbar__top 346 | floating: 0 347 | collapsed: 0 348 | displayed: 0 349 | snapOffset: {x: 0, y: 0} 350 | snapOffsetDelta: {x: 0, y: 0} 351 | snapCorner: 1 352 | id: unity-search-toolbar 353 | index: 1 354 | layout: 1 355 | - dockPosition: 0 356 | containerId: overlay-container--left 357 | floating: 0 358 | collapsed: 0 359 | displayed: 1 360 | snapOffset: {x: 0, y: 0} 361 | snapOffsetDelta: {x: 0, y: 0} 362 | snapCorner: 0 363 | id: unity-transform-toolbar 364 | index: 0 365 | layout: 2 366 | - dockPosition: 0 367 | containerId: overlay-container--right 368 | floating: 0 369 | collapsed: 0 370 | displayed: 1 371 | snapOffset: {x: 67.5, y: 86} 372 | snapOffsetDelta: {x: 0, y: 0} 373 | snapCorner: 0 374 | id: Orientation 375 | index: 0 376 | layout: 4 377 | - dockPosition: 1 378 | containerId: overlay-container--right 379 | floating: 0 380 | collapsed: 0 381 | displayed: 0 382 | snapOffset: {x: 0, y: 0} 383 | snapOffsetDelta: {x: 0, y: 0} 384 | snapCorner: 0 385 | id: Scene View/Light Settings 386 | index: 0 387 | layout: 4 388 | - dockPosition: 1 389 | containerId: overlay-container--right 390 | floating: 0 391 | collapsed: 0 392 | displayed: 0 393 | snapOffset: {x: 0, y: 0} 394 | snapOffsetDelta: {x: 0, y: 0} 395 | snapCorner: 0 396 | id: Scene View/Camera 397 | index: 1 398 | layout: 4 399 | - dockPosition: 1 400 | containerId: overlay-container--right 401 | floating: 0 402 | collapsed: 0 403 | displayed: 0 404 | snapOffset: {x: 0, y: 0} 405 | snapOffsetDelta: {x: 0, y: 0} 406 | snapCorner: 0 407 | id: Scene View/Cloth Constraints 408 | index: 2 409 | layout: 4 410 | - dockPosition: 1 411 | containerId: overlay-container--right 412 | floating: 0 413 | collapsed: 0 414 | displayed: 0 415 | snapOffset: {x: 0, y: 0} 416 | snapOffsetDelta: {x: 0, y: 0} 417 | snapCorner: 0 418 | id: Scene View/Cloth Collisions 419 | index: 3 420 | layout: 4 421 | - dockPosition: 1 422 | containerId: overlay-container--right 423 | floating: 0 424 | collapsed: 0 425 | displayed: 0 426 | snapOffset: {x: 0, y: 0} 427 | snapOffsetDelta: {x: 0, y: 0} 428 | snapCorner: 0 429 | id: Scene View/Navmesh Display 430 | index: 4 431 | layout: 4 432 | - dockPosition: 1 433 | containerId: overlay-container--right 434 | floating: 0 435 | collapsed: 0 436 | displayed: 0 437 | snapOffset: {x: 0, y: 0} 438 | snapOffsetDelta: {x: 0, y: 0} 439 | snapCorner: 0 440 | id: Scene View/Agent Display 441 | index: 5 442 | layout: 4 443 | - dockPosition: 1 444 | containerId: overlay-container--right 445 | floating: 0 446 | collapsed: 0 447 | displayed: 0 448 | snapOffset: {x: 0, y: 0} 449 | snapOffsetDelta: {x: 0, y: 0} 450 | snapCorner: 0 451 | id: Scene View/Obstacle Display 452 | index: 6 453 | layout: 4 454 | - dockPosition: 1 455 | containerId: overlay-container--right 456 | floating: 0 457 | collapsed: 0 458 | displayed: 0 459 | snapOffset: {x: 0, y: 0} 460 | snapOffsetDelta: {x: 0, y: 0} 461 | snapCorner: 0 462 | id: Scene View/Occlusion Culling 463 | index: 7 464 | layout: 4 465 | - dockPosition: 1 466 | containerId: overlay-container--right 467 | floating: 0 468 | collapsed: 0 469 | displayed: 0 470 | snapOffset: {x: 0, y: 0} 471 | snapOffsetDelta: {x: 0, y: 0} 472 | snapCorner: 0 473 | id: Scene View/Physics Debugger 474 | index: 8 475 | layout: 4 476 | - dockPosition: 1 477 | containerId: overlay-container--right 478 | floating: 0 479 | collapsed: 0 480 | displayed: 0 481 | snapOffset: {x: 0, y: 0} 482 | snapOffsetDelta: {x: 0, y: 0} 483 | snapCorner: 0 484 | id: Scene View/Scene Visibility 485 | index: 9 486 | layout: 4 487 | - dockPosition: 1 488 | containerId: overlay-container--right 489 | floating: 0 490 | collapsed: 0 491 | displayed: 0 492 | snapOffset: {x: 0, y: 0} 493 | snapOffsetDelta: {x: 0, y: 0} 494 | snapCorner: 0 495 | id: Scene View/Particles 496 | index: 10 497 | layout: 4 498 | m_WindowGUID: cc27987af1a868c49b0894db9c0f5429 499 | m_Gizmos: 1 500 | m_OverrideSceneCullingMask: 6917529027641081856 501 | m_SceneIsLit: 1 502 | m_SceneLighting: 1 503 | m_2DMode: 0 504 | m_isRotationLocked: 0 505 | m_PlayAudio: 0 506 | m_AudioPlay: 0 507 | m_Position: 508 | m_Target: {x: 0.3918385, y: 0.3488003, z: 6.1015415} 509 | speed: 2 510 | m_Value: {x: 0.3918385, y: 0.3488003, z: 6.1015415} 511 | m_RenderMode: 0 512 | m_CameraMode: 513 | drawMode: 0 514 | name: Shaded 515 | section: Shading Mode 516 | m_ValidateTrueMetals: 0 517 | m_DoValidateTrueMetals: 0 518 | m_ExposureSliderValue: 0 519 | m_SceneViewState: 520 | m_AlwaysRefresh: 0 521 | showFog: 1 522 | showSkybox: 1 523 | showFlares: 1 524 | showImageEffects: 1 525 | showParticleSystems: 1 526 | showVisualEffectGraphs: 1 527 | m_FxEnabled: 1 528 | m_Grid: 529 | xGrid: 530 | m_Fade: 531 | m_Target: 0 532 | speed: 2 533 | m_Value: 0 534 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 535 | m_Pivot: {x: 0, y: 0, z: 0} 536 | m_Size: {x: 0, y: 0} 537 | yGrid: 538 | m_Fade: 539 | m_Target: 1 540 | speed: 2 541 | m_Value: 1 542 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 543 | m_Pivot: {x: 0, y: 0, z: 0} 544 | m_Size: {x: 1, y: 1} 545 | zGrid: 546 | m_Fade: 547 | m_Target: 0 548 | speed: 2 549 | m_Value: 0 550 | m_Color: {r: 0.5, g: 0.5, b: 0.5, a: 0.4} 551 | m_Pivot: {x: 0, y: 0, z: 0} 552 | m_Size: {x: 0, y: 0} 553 | m_ShowGrid: 1 554 | m_GridAxis: 1 555 | m_gridOpacity: 0.5 556 | m_Rotation: 557 | m_Target: {x: -0.025443345, y: -0.9719806, z: 0.08472111, w: -0.22165744} 558 | speed: 2 559 | m_Value: {x: 0.025443343, y: 0.9719805, z: -0.08472111, w: 0.22165743} 560 | m_Size: 561 | m_Target: 0.6854149 562 | speed: 2 563 | m_Value: 0.6854149 564 | m_Ortho: 565 | m_Target: 0 566 | speed: 2 567 | m_Value: 0 568 | m_CameraSettings: 569 | m_Speed: 1 570 | m_SpeedNormalized: 0.5 571 | m_SpeedMin: 0.001 572 | m_SpeedMax: 2 573 | m_EasingEnabled: 1 574 | m_EasingDuration: 0.4 575 | m_AccelerationEnabled: 1 576 | m_FieldOfViewHorizontalOrVertical: 60 577 | m_NearClip: 0.03 578 | m_FarClip: 10000 579 | m_DynamicClip: 1 580 | m_OcclusionCulling: 0 581 | m_LastSceneViewRotation: {x: 0, y: 0, z: 0, w: 0} 582 | m_LastSceneViewOrtho: 0 583 | m_ReplacementShader: {fileID: 0} 584 | m_ReplacementString: 585 | m_SceneVisActive: 1 586 | m_LastLockedObject: {fileID: 0} 587 | m_ViewIsLockedToObject: 0 588 | --- !u!114 &9 589 | MonoBehaviour: 590 | m_ObjectHideFlags: 52 591 | m_CorrespondingSourceObject: {fileID: 0} 592 | m_PrefabInstance: {fileID: 0} 593 | m_PrefabAsset: {fileID: 0} 594 | m_GameObject: {fileID: 0} 595 | m_Enabled: 1 596 | m_EditorHideFlags: 1 597 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 598 | m_Name: ProjectBrowser 599 | m_EditorClassIdentifier: 600 | m_Children: [] 601 | m_Position: 602 | serializedVersion: 2 603 | x: 0 604 | y: 540 605 | width: 1304.6666 606 | height: 386 607 | m_MinSize: {x: 231, y: 271} 608 | m_MaxSize: {x: 10001, y: 10021} 609 | m_ActualView: {fileID: 10} 610 | m_Panes: 611 | - {fileID: 10} 612 | - {fileID: 11} 613 | - {fileID: 12} 614 | m_Selected: 0 615 | m_LastSelected: 2 616 | --- !u!114 &10 617 | MonoBehaviour: 618 | m_ObjectHideFlags: 52 619 | m_CorrespondingSourceObject: {fileID: 0} 620 | m_PrefabInstance: {fileID: 0} 621 | m_PrefabAsset: {fileID: 0} 622 | m_GameObject: {fileID: 0} 623 | m_Enabled: 1 624 | m_EditorHideFlags: 1 625 | m_Script: {fileID: 12014, guid: 0000000000000000e000000000000000, type: 0} 626 | m_Name: 627 | m_EditorClassIdentifier: 628 | m_MinSize: {x: 230, y: 250} 629 | m_MaxSize: {x: 10000, y: 10000} 630 | m_TitleContent: 631 | m_Text: Project 632 | m_Image: {fileID: -5179483145760003458, guid: 0000000000000000d000000000000000, 633 | type: 0} 634 | m_Tooltip: 635 | m_Pos: 636 | serializedVersion: 2 637 | x: 0 638 | y: 612.6667 639 | width: 1303.6666 640 | height: 365 641 | m_ViewDataDictionary: {fileID: 0} 642 | m_OverlayCanvas: 643 | m_LastAppliedPresetName: Default 644 | m_SaveData: [] 645 | m_SearchFilter: 646 | m_NameFilter: 647 | m_ClassNames: [] 648 | m_AssetLabels: [] 649 | m_AssetBundleNames: [] 650 | m_VersionControlStates: [] 651 | m_SoftLockControlStates: [] 652 | m_ReferencingInstanceIDs: 653 | m_SceneHandles: 654 | m_ShowAllHits: 0 655 | m_SkipHidden: 0 656 | m_SearchArea: 1 657 | m_Folders: 658 | - Assets/Settings 659 | m_Globs: [] 660 | m_OriginalText: 661 | m_ViewMode: 1 662 | m_StartGridSize: 64 663 | m_LastFolders: 664 | - Assets/Settings 665 | m_LastFoldersGridSize: -1 666 | m_LastProjectPath: D:\UnityProjects\FFTConvolutionBloom 667 | m_LockTracker: 668 | m_IsLocked: 0 669 | m_FolderTreeState: 670 | scrollPos: {x: 0, y: 0} 671 | m_SelectedIDs: 9e760000 672 | m_LastClickedID: 30366 673 | m_ExpandedIDs: 00000000d873000000ca9a3b 674 | m_RenameOverlay: 675 | m_UserAcceptedRename: 0 676 | m_Name: 677 | m_OriginalName: 678 | m_EditFieldRect: 679 | serializedVersion: 2 680 | x: 0 681 | y: 0 682 | width: 0 683 | height: 0 684 | m_UserData: 0 685 | m_IsWaitingForDelay: 0 686 | m_IsRenaming: 0 687 | m_OriginalEventType: 11 688 | m_IsRenamingFilename: 1 689 | m_ClientGUIView: {fileID: 0} 690 | m_SearchString: 691 | m_CreateAssetUtility: 692 | m_EndAction: {fileID: 0} 693 | m_InstanceID: 0 694 | m_Path: 695 | m_Icon: {fileID: 0} 696 | m_ResourceFile: 697 | m_AssetTreeState: 698 | scrollPos: {x: 0, y: 0} 699 | m_SelectedIDs: 700 | m_LastClickedID: 0 701 | m_ExpandedIDs: 00000000d873000000ca9a3b 702 | m_RenameOverlay: 703 | m_UserAcceptedRename: 0 704 | m_Name: 705 | m_OriginalName: 706 | m_EditFieldRect: 707 | serializedVersion: 2 708 | x: 0 709 | y: 0 710 | width: 0 711 | height: 0 712 | m_UserData: 0 713 | m_IsWaitingForDelay: 0 714 | m_IsRenaming: 0 715 | m_OriginalEventType: 11 716 | m_IsRenamingFilename: 1 717 | m_ClientGUIView: {fileID: 0} 718 | m_SearchString: 719 | m_CreateAssetUtility: 720 | m_EndAction: {fileID: 0} 721 | m_InstanceID: 0 722 | m_Path: 723 | m_Icon: {fileID: 0} 724 | m_ResourceFile: 725 | m_ListAreaState: 726 | m_SelectedInstanceIDs: 042c0000 727 | m_LastClickedInstanceID: 11268 728 | m_HadKeyboardFocusLastEvent: 1 729 | m_ExpandedInstanceIDs: c6230000000000004868000040680000 730 | m_RenameOverlay: 731 | m_UserAcceptedRename: 0 732 | m_Name: 733 | m_OriginalName: 734 | m_EditFieldRect: 735 | serializedVersion: 2 736 | x: 0 737 | y: 0 738 | width: 0 739 | height: 0 740 | m_UserData: 0 741 | m_IsWaitingForDelay: 0 742 | m_IsRenaming: 0 743 | m_OriginalEventType: 11 744 | m_IsRenamingFilename: 1 745 | m_ClientGUIView: {fileID: 0} 746 | m_CreateAssetUtility: 747 | m_EndAction: {fileID: 0} 748 | m_InstanceID: 0 749 | m_Path: 750 | m_Icon: {fileID: 0} 751 | m_ResourceFile: 752 | m_NewAssetIndexInList: -1 753 | m_ScrollPosition: {x: 0, y: 0} 754 | m_GridSize: 64 755 | m_SkipHiddenPackages: 0 756 | m_DirectoriesAreaWidth: 207 757 | --- !u!114 &11 758 | MonoBehaviour: 759 | m_ObjectHideFlags: 52 760 | m_CorrespondingSourceObject: {fileID: 0} 761 | m_PrefabInstance: {fileID: 0} 762 | m_PrefabAsset: {fileID: 0} 763 | m_GameObject: {fileID: 0} 764 | m_Enabled: 1 765 | m_EditorHideFlags: 1 766 | m_Script: {fileID: 12003, guid: 0000000000000000e000000000000000, type: 0} 767 | m_Name: 768 | m_EditorClassIdentifier: 769 | m_MinSize: {x: 100, y: 100} 770 | m_MaxSize: {x: 4000, y: 4000} 771 | m_TitleContent: 772 | m_Text: Console 773 | m_Image: {fileID: -4950941429401207979, guid: 0000000000000000d000000000000000, 774 | type: 0} 775 | m_Tooltip: 776 | m_Pos: 777 | serializedVersion: 2 778 | x: 0 779 | y: 612.6667 780 | width: 1303.6666 781 | height: 365 782 | m_ViewDataDictionary: {fileID: 0} 783 | m_OverlayCanvas: 784 | m_LastAppliedPresetName: Default 785 | m_SaveData: [] 786 | --- !u!114 &12 787 | MonoBehaviour: 788 | m_ObjectHideFlags: 52 789 | m_CorrespondingSourceObject: {fileID: 0} 790 | m_PrefabInstance: {fileID: 0} 791 | m_PrefabAsset: {fileID: 0} 792 | m_GameObject: {fileID: 0} 793 | m_Enabled: 1 794 | m_EditorHideFlags: 0 795 | m_Script: {fileID: 13202, guid: 0000000000000000e000000000000000, type: 0} 796 | m_Name: 797 | m_EditorClassIdentifier: 798 | m_MinSize: {x: 400, y: 200} 799 | m_MaxSize: {x: 4000, y: 4000} 800 | m_TitleContent: 801 | m_Text: Frame Debug 802 | m_Image: {fileID: 0} 803 | m_Tooltip: 804 | m_Pos: 805 | serializedVersion: 2 806 | x: 0 807 | y: 612.6667 808 | width: 1303.6666 809 | height: 365 810 | m_ViewDataDictionary: {fileID: 0} 811 | m_OverlayCanvas: 812 | m_LastAppliedPresetName: Default 813 | m_SaveData: [] 814 | m_ListWidth: 409 815 | m_TreeViewState: 816 | scrollPos: {x: 0, y: 0} 817 | m_SelectedIDs: 00000000 818 | m_LastClickedID: 0 819 | m_ExpandedIDs: ecffffffedffffffeffffffff0fffffff1fffffff2fffffff3fffffff4fffffff5fffffff6fffffff7fffffff8fffffff9fffffffafffffffcfffffffdfffffffeffffff00000000 820 | m_RenameOverlay: 821 | m_UserAcceptedRename: 0 822 | m_Name: 823 | m_OriginalName: 824 | m_EditFieldRect: 825 | serializedVersion: 2 826 | x: 0 827 | y: 0 828 | width: 0 829 | height: 0 830 | m_UserData: 0 831 | m_IsWaitingForDelay: 0 832 | m_IsRenaming: 0 833 | m_OriginalEventType: 11 834 | m_IsRenamingFilename: 0 835 | m_ClientGUIView: {fileID: 0} 836 | m_SearchString: 837 | --- !u!114 &13 838 | MonoBehaviour: 839 | m_ObjectHideFlags: 52 840 | m_CorrespondingSourceObject: {fileID: 0} 841 | m_PrefabInstance: {fileID: 0} 842 | m_PrefabAsset: {fileID: 0} 843 | m_GameObject: {fileID: 0} 844 | m_Enabled: 1 845 | m_EditorHideFlags: 1 846 | m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0} 847 | m_Name: InspectorWindow 848 | m_EditorClassIdentifier: 849 | m_Children: [] 850 | m_Position: 851 | serializedVersion: 2 852 | x: 1304.6666 853 | y: 0 854 | width: 402.33337 855 | height: 926 856 | m_MinSize: {x: 277, y: 71} 857 | m_MaxSize: {x: 4002, y: 4021} 858 | m_ActualView: {fileID: 14} 859 | m_Panes: 860 | - {fileID: 14} 861 | - {fileID: 15} 862 | m_Selected: 0 863 | m_LastSelected: 1 864 | --- !u!114 &14 865 | MonoBehaviour: 866 | m_ObjectHideFlags: 52 867 | m_CorrespondingSourceObject: {fileID: 0} 868 | m_PrefabInstance: {fileID: 0} 869 | m_PrefabAsset: {fileID: 0} 870 | m_GameObject: {fileID: 0} 871 | m_Enabled: 1 872 | m_EditorHideFlags: 1 873 | m_Script: {fileID: 12019, guid: 0000000000000000e000000000000000, type: 0} 874 | m_Name: 875 | m_EditorClassIdentifier: 876 | m_MinSize: {x: 275, y: 50} 877 | m_MaxSize: {x: 4000, y: 4000} 878 | m_TitleContent: 879 | m_Text: Inspector 880 | m_Image: {fileID: -440750813802333266, guid: 0000000000000000d000000000000000, 881 | type: 0} 882 | m_Tooltip: 883 | m_Pos: 884 | serializedVersion: 2 885 | x: 1304.6667 886 | y: 72.66667 887 | width: 400.33337 888 | height: 905 889 | m_ViewDataDictionary: {fileID: 0} 890 | m_OverlayCanvas: 891 | m_LastAppliedPresetName: Default 892 | m_SaveData: [] 893 | m_ObjectsLockedBeforeSerialization: 894 | - {fileID: 11400000, guid: 927c970a9a8ba754396b7e0f59856d89, type: 2} 895 | m_InstanceIDsLockedBeforeSerialization: 896 | m_PreviewResizer: 897 | m_CachedPref: 160 898 | m_ControlHash: -371814159 899 | m_PrefName: Preview_InspectorPreview 900 | m_LastInspectedObjectInstanceID: -1 901 | m_LastVerticalScrollValue: 0 902 | m_GlobalObjectId: 903 | m_InspectorMode: 0 904 | m_LockTracker: 905 | m_IsLocked: 1 906 | m_PreviewWindow: {fileID: 0} 907 | --- !u!114 &15 908 | MonoBehaviour: 909 | m_ObjectHideFlags: 52 910 | m_CorrespondingSourceObject: {fileID: 0} 911 | m_PrefabInstance: {fileID: 0} 912 | m_PrefabAsset: {fileID: 0} 913 | m_GameObject: {fileID: 0} 914 | m_Enabled: 1 915 | m_EditorHideFlags: 0 916 | m_Script: {fileID: 12079, guid: 0000000000000000e000000000000000, type: 0} 917 | m_Name: 918 | m_EditorClassIdentifier: 919 | m_MinSize: {x: 390, y: 390} 920 | m_MaxSize: {x: 4000, y: 4000} 921 | m_TitleContent: 922 | m_Text: Lighting 923 | m_Image: {fileID: -1477008817101679558, guid: 0000000000000000d000000000000000, 924 | type: 0} 925 | m_Tooltip: 926 | m_Pos: 927 | serializedVersion: 2 928 | x: 1304.6667 929 | y: 72.66667 930 | width: 400.33337 931 | height: 905 932 | m_ViewDataDictionary: {fileID: 0} 933 | m_OverlayCanvas: 934 | m_LastAppliedPresetName: Default 935 | m_SaveData: [] 936 | -------------------------------------------------------------------------------- /UserSettings/Search.settings: -------------------------------------------------------------------------------- 1 | {} --------------------------------------------------------------------------------