├── .collabignore ├── .gitignore ├── Assets ├── Demo.meta ├── Demo │ ├── Demo Box.unity │ ├── Demo Box.unity.meta │ ├── Demo Cave.unity │ ├── Demo Cave.unity.meta │ ├── Disco.cs │ ├── Disco.cs.meta │ ├── DiscoProjectile.cs │ ├── DiscoProjectile.cs.meta │ ├── Materials.meta │ ├── Materials │ │ ├── bg.mat │ │ ├── bg.mat.meta │ │ ├── blak.mat │ │ ├── blak.mat.meta │ │ ├── blu.mat │ │ ├── blu.mat.meta │ │ ├── dude.mat │ │ ├── dude.mat.meta │ │ ├── green.mat │ │ ├── green.mat.meta │ │ ├── mat.mat │ │ ├── mat.mat.meta │ │ ├── red.mat │ │ └── red.mat.meta │ ├── Post-process Volume Profile.asset │ ├── Post-process Volume Profile.asset.meta │ ├── Shaders.meta │ ├── bg.jpg │ ├── bg.jpg.meta │ ├── bouncy.physicsMaterial2D │ ├── bouncy.physicsMaterial2D.meta │ ├── dude.png │ └── dude.png.meta ├── Pathtracer.meta ├── Pathtracer │ ├── RaymarchSimple.cs │ ├── RaymarchSimple.cs.meta │ ├── SDF.compute │ ├── SDF.compute.meta │ ├── SimpleBoxdude.cs │ ├── SimpleBoxdude.cs.meta │ ├── Tracer.compute │ ├── Tracer.compute.meta │ ├── sdBox.cs │ └── sdBox.cs.meta ├── Scripts.meta ├── Scripts │ ├── BlurCore.cs │ ├── BlurCore.cs.meta │ ├── BombDestroyer.cs │ ├── BombDestroyer.cs.meta │ ├── BoxBlur.cs │ ├── BoxBlur.cs.meta │ ├── GaussianBlurDynamic.cs │ ├── GaussianBlurDynamic.cs.meta │ ├── GaussianBlurStatic.cs │ ├── GaussianBlurStatic.cs.meta │ ├── ObjectSpawner.cs │ ├── ObjectSpawner.cs.meta │ ├── PieMenuContoller.cs │ └── PieMenuContoller.cs.meta ├── Shaders.meta └── Shaders │ ├── AveragedMultiply.shader │ ├── AveragedMultiply.shader.meta │ ├── blurCommon.compute │ ├── blurCommon.compute.meta │ ├── boxBlur.compute │ ├── boxBlur.compute.meta │ ├── gaussianBlurDynamic.compute │ ├── gaussianBlurDynamic.compute.meta │ ├── gaussianBlurStatic.compute │ ├── gaussianBlurStatic.compute.meta │ ├── gradientLut.shader │ ├── gradientLut.shader.meta │ ├── particlesShader.shader │ └── particlesShader.shader.meta ├── Demo1.gif ├── Demo2.png ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset ├── UnityConnectSettings.asset ├── VFXManager.asset └── XRSettings.asset └── README.md /.collabignore: -------------------------------------------------------------------------------- 1 | # =========================== 2 | # Default Collab Ignore Rules 3 | # =========================== 4 | 5 | # OS Generated 6 | # ============ 7 | .DS_Store 8 | ._* 9 | .Spotlight-V100 10 | .Trashes 11 | Icon? 12 | ehthumbs.db 13 | [Tt]humbs.db 14 | [Dd]esktop.ini 15 | 16 | # Visual Studio / MonoDevelop generated 17 | # ===================================== 18 | [Ee]xported[Oo]bj/ 19 | *.userprefs 20 | *.csproj 21 | *.pidb 22 | *.suo 23 | *.sln 24 | *.user 25 | *.unityproj 26 | *.booproj 27 | 28 | # Unity generated 29 | # =============== 30 | [Oo]bj/ 31 | [Bb]uild 32 | sysinfo.txt 33 | *.stackdump 34 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # This .gitignore file should be placed at the root of your Unity project directory 2 | # 3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore 4 | # 5 | /[Ll]ibrary/ 6 | /[Tt]emp/ 7 | /[Oo]bj/ 8 | /[Bb]uild/ 9 | /[Bb]uilds/ 10 | /[Ll]ogs/ 11 | /[Mm]emoryCaptures/ 12 | 13 | # Asset meta data should only be ignored when the corresponding asset is also ignored 14 | !/[Aa]ssets/**/*.meta 15 | 16 | # Uncomment this line if you wish to ignore the asset store tools plugin 17 | # /[Aa]ssets/AssetStoreTools* 18 | 19 | # Autogenerated Jetbrains Rider plugin 20 | [Aa]ssets/Plugins/Editor/JetBrains* 21 | 22 | # Visual Studio cache directory 23 | .vs/ 24 | 25 | # Gradle cache directory 26 | .gradle/ 27 | 28 | # Autogenerated VS/MD/Consulo solution and project files 29 | ExportedObj/ 30 | .consulo/ 31 | *.csproj 32 | *.unityproj 33 | *.sln 34 | *.suo 35 | *.tmp 36 | *.user 37 | *.userprefs 38 | *.pidb 39 | *.booproj 40 | *.svd 41 | *.pdb 42 | *.mdb 43 | *.opendb 44 | *.VC.db 45 | 46 | # Unity3D generated meta files 47 | *.pidb.meta 48 | *.pdb.meta 49 | *.mdb.meta 50 | 51 | # Unity3D generated file on crash reports 52 | sysinfo.txt 53 | 54 | # Builds 55 | *.apk 56 | *.unitypackage 57 | 58 | # Crashlytics generated file 59 | crashlytics-build.properties 60 | 61 | -------------------------------------------------------------------------------- /Assets/Demo.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ca467e6e8c1bf7942a9a57ae6fb31f88 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/Demo Box.unity: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!29 &1 4 | OcclusionCullingSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_OcclusionBakeSettings: 8 | smallestOccluder: 5 9 | smallestHole: 0.25 10 | backfaceThreshold: 100 11 | m_SceneGUID: 00000000000000000000000000000000 12 | m_OcclusionCullingData: {fileID: 0} 13 | --- !u!104 &2 14 | RenderSettings: 15 | m_ObjectHideFlags: 0 16 | serializedVersion: 9 17 | m_Fog: 0 18 | m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} 19 | m_FogMode: 3 20 | m_FogDensity: 0.01 21 | m_LinearFogStart: 0 22 | m_LinearFogEnd: 300 23 | m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} 24 | m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} 25 | m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} 26 | m_AmbientIntensity: 1 27 | m_AmbientMode: 3 28 | m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} 29 | m_SkyboxMaterial: {fileID: 0} 30 | m_HaloStrength: 0.5 31 | m_FlareStrength: 1 32 | m_FlareFadeSpeed: 3 33 | m_HaloTexture: {fileID: 0} 34 | m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} 35 | m_DefaultReflectionMode: 0 36 | m_DefaultReflectionResolution: 128 37 | m_ReflectionBounces: 1 38 | m_ReflectionIntensity: 1 39 | m_CustomReflection: {fileID: 0} 40 | m_Sun: {fileID: 0} 41 | m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} 42 | m_UseRadianceAmbientProbe: 0 43 | --- !u!157 &3 44 | LightmapSettings: 45 | m_ObjectHideFlags: 0 46 | serializedVersion: 11 47 | m_GIWorkflowMode: 1 48 | m_GISettings: 49 | serializedVersion: 2 50 | m_BounceScale: 1 51 | m_IndirectOutputScale: 1 52 | m_AlbedoBoost: 1 53 | m_EnvironmentLightingMode: 0 54 | m_EnableBakedLightmaps: 0 55 | m_EnableRealtimeLightmaps: 0 56 | m_LightmapEditorSettings: 57 | serializedVersion: 12 58 | m_Resolution: 2 59 | m_BakeResolution: 40 60 | m_AtlasSize: 1024 61 | m_AO: 0 62 | m_AOMaxDistance: 1 63 | m_CompAOExponent: 1 64 | m_CompAOExponentDirect: 0 65 | m_ExtractAmbientOcclusion: 0 66 | m_Padding: 2 67 | m_LightmapParameters: {fileID: 0} 68 | m_LightmapsBakeMode: 1 69 | m_TextureCompression: 1 70 | m_FinalGather: 0 71 | m_FinalGatherFiltering: 1 72 | m_FinalGatherRayCount: 256 73 | m_ReflectionCompression: 2 74 | m_MixedBakeMode: 2 75 | m_BakeBackend: 0 76 | m_PVRSampling: 1 77 | m_PVRDirectSampleCount: 32 78 | m_PVRSampleCount: 500 79 | m_PVRBounces: 2 80 | m_PVREnvironmentSampleCount: 500 81 | m_PVREnvironmentReferencePointCount: 2048 82 | m_PVRFilteringMode: 2 83 | m_PVRDenoiserTypeDirect: 0 84 | m_PVRDenoiserTypeIndirect: 0 85 | m_PVRDenoiserTypeAO: 0 86 | m_PVRFilterTypeDirect: 0 87 | m_PVRFilterTypeIndirect: 0 88 | m_PVRFilterTypeAO: 0 89 | m_PVREnvironmentMIS: 0 90 | m_PVRCulling: 1 91 | m_PVRFilteringGaussRadiusDirect: 1 92 | m_PVRFilteringGaussRadiusIndirect: 5 93 | m_PVRFilteringGaussRadiusAO: 2 94 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5 95 | m_PVRFilteringAtrousPositionSigmaIndirect: 2 96 | m_PVRFilteringAtrousPositionSigmaAO: 1 97 | m_ExportTrainingData: 0 98 | m_TrainingDataDestination: TrainingData 99 | m_LightingDataAsset: {fileID: 0} 100 | m_UseShadowmask: 1 101 | --- !u!196 &4 102 | NavMeshSettings: 103 | serializedVersion: 2 104 | m_ObjectHideFlags: 0 105 | m_BuildSettings: 106 | serializedVersion: 2 107 | agentTypeID: 0 108 | agentRadius: 0.5 109 | agentHeight: 2 110 | agentSlope: 45 111 | agentClimb: 0.4 112 | ledgeDropHeight: 0 113 | maxJumpAcrossDistance: 0 114 | minRegionArea: 2 115 | manualCellSize: 0 116 | cellSize: 0.16666667 117 | manualTileSize: 0 118 | tileSize: 256 119 | accuratePlacement: 0 120 | debug: 121 | m_Flags: 0 122 | m_NavMeshData: {fileID: 0} 123 | --- !u!1 &50578532 124 | GameObject: 125 | m_ObjectHideFlags: 0 126 | m_CorrespondingSourceObject: {fileID: 0} 127 | m_PrefabInstance: {fileID: 0} 128 | m_PrefabAsset: {fileID: 0} 129 | serializedVersion: 6 130 | m_Component: 131 | - component: {fileID: 50578537} 132 | - component: {fileID: 50578536} 133 | - component: {fileID: 50578535} 134 | - component: {fileID: 50578534} 135 | - component: {fileID: 50578533} 136 | m_Layer: 0 137 | m_Name: Quad (7) 138 | m_TagString: Untagged 139 | m_Icon: {fileID: 0} 140 | m_NavMeshLayer: 0 141 | m_StaticEditorFlags: 0 142 | m_IsActive: 1 143 | --- !u!114 &50578533 144 | MonoBehaviour: 145 | m_ObjectHideFlags: 0 146 | m_CorrespondingSourceObject: {fileID: 0} 147 | m_PrefabInstance: {fileID: 0} 148 | m_PrefabAsset: {fileID: 0} 149 | m_GameObject: {fileID: 50578532} 150 | m_Enabled: 1 151 | m_EditorHideFlags: 0 152 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 153 | m_Name: 154 | m_EditorClassIdentifier: 155 | intensity: 1 156 | color: {r: 1, g: 1, b: 1, a: 0} 157 | --- !u!64 &50578534 158 | MeshCollider: 159 | m_ObjectHideFlags: 0 160 | m_CorrespondingSourceObject: {fileID: 0} 161 | m_PrefabInstance: {fileID: 0} 162 | m_PrefabAsset: {fileID: 0} 163 | m_GameObject: {fileID: 50578532} 164 | m_Material: {fileID: 0} 165 | m_IsTrigger: 0 166 | m_Enabled: 1 167 | serializedVersion: 3 168 | m_Convex: 0 169 | m_CookingOptions: 14 170 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 171 | --- !u!23 &50578535 172 | MeshRenderer: 173 | m_ObjectHideFlags: 0 174 | m_CorrespondingSourceObject: {fileID: 0} 175 | m_PrefabInstance: {fileID: 0} 176 | m_PrefabAsset: {fileID: 0} 177 | m_GameObject: {fileID: 50578532} 178 | m_Enabled: 1 179 | m_CastShadows: 1 180 | m_ReceiveShadows: 1 181 | m_DynamicOccludee: 1 182 | m_MotionVectors: 1 183 | m_LightProbeUsage: 1 184 | m_ReflectionProbeUsage: 1 185 | m_RenderingLayerMask: 1 186 | m_RendererPriority: 0 187 | m_Materials: 188 | - {fileID: 2100000, guid: 222a808cce549ec4f93f8d45dd28be85, type: 2} 189 | m_StaticBatchInfo: 190 | firstSubMesh: 0 191 | subMeshCount: 0 192 | m_StaticBatchRoot: {fileID: 0} 193 | m_ProbeAnchor: {fileID: 0} 194 | m_LightProbeVolumeOverride: {fileID: 0} 195 | m_ScaleInLightmap: 1 196 | m_ReceiveGI: 1 197 | m_PreserveUVs: 0 198 | m_IgnoreNormalsForChartDetection: 0 199 | m_ImportantGI: 0 200 | m_StitchLightmapSeams: 1 201 | m_SelectedEditorRenderState: 3 202 | m_MinimumChartSize: 4 203 | m_AutoUVMaxDistance: 0.5 204 | m_AutoUVMaxAngle: 89 205 | m_LightmapParameters: {fileID: 0} 206 | m_SortingLayerID: 0 207 | m_SortingLayer: 0 208 | m_SortingOrder: 0 209 | --- !u!33 &50578536 210 | MeshFilter: 211 | m_ObjectHideFlags: 0 212 | m_CorrespondingSourceObject: {fileID: 0} 213 | m_PrefabInstance: {fileID: 0} 214 | m_PrefabAsset: {fileID: 0} 215 | m_GameObject: {fileID: 50578532} 216 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 217 | --- !u!4 &50578537 218 | Transform: 219 | m_ObjectHideFlags: 0 220 | m_CorrespondingSourceObject: {fileID: 0} 221 | m_PrefabInstance: {fileID: 0} 222 | m_PrefabAsset: {fileID: 0} 223 | m_GameObject: {fileID: 50578532} 224 | m_LocalRotation: {x: 0, y: 0, z: 0.00023565853, w: 1} 225 | m_LocalPosition: {x: -0.501, y: -0.362, z: 0} 226 | m_LocalScale: {x: 0.22811785, y: 2.3126934, z: 1} 227 | m_Children: [] 228 | m_Father: {fileID: 0} 229 | m_RootOrder: 7 230 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0.027} 231 | --- !u!1 &429015555 232 | GameObject: 233 | m_ObjectHideFlags: 0 234 | m_CorrespondingSourceObject: {fileID: 0} 235 | m_PrefabInstance: {fileID: 0} 236 | m_PrefabAsset: {fileID: 0} 237 | serializedVersion: 6 238 | m_Component: 239 | - component: {fileID: 429015560} 240 | - component: {fileID: 429015559} 241 | - component: {fileID: 429015558} 242 | - component: {fileID: 429015557} 243 | - component: {fileID: 429015556} 244 | m_Layer: 0 245 | m_Name: Quad (9) 246 | m_TagString: Untagged 247 | m_Icon: {fileID: 0} 248 | m_NavMeshLayer: 0 249 | m_StaticEditorFlags: 0 250 | m_IsActive: 1 251 | --- !u!114 &429015556 252 | MonoBehaviour: 253 | m_ObjectHideFlags: 0 254 | m_CorrespondingSourceObject: {fileID: 0} 255 | m_PrefabInstance: {fileID: 0} 256 | m_PrefabAsset: {fileID: 0} 257 | m_GameObject: {fileID: 429015555} 258 | m_Enabled: 1 259 | m_EditorHideFlags: 0 260 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 261 | m_Name: 262 | m_EditorClassIdentifier: 263 | intensity: 1 264 | color: {r: 1, g: 0, b: 0, a: 1} 265 | --- !u!64 &429015557 266 | MeshCollider: 267 | m_ObjectHideFlags: 0 268 | m_CorrespondingSourceObject: {fileID: 0} 269 | m_PrefabInstance: {fileID: 0} 270 | m_PrefabAsset: {fileID: 0} 271 | m_GameObject: {fileID: 429015555} 272 | m_Material: {fileID: 0} 273 | m_IsTrigger: 0 274 | m_Enabled: 1 275 | serializedVersion: 3 276 | m_Convex: 0 277 | m_CookingOptions: 14 278 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 279 | --- !u!23 &429015558 280 | MeshRenderer: 281 | m_ObjectHideFlags: 0 282 | m_CorrespondingSourceObject: {fileID: 0} 283 | m_PrefabInstance: {fileID: 0} 284 | m_PrefabAsset: {fileID: 0} 285 | m_GameObject: {fileID: 429015555} 286 | m_Enabled: 1 287 | m_CastShadows: 1 288 | m_ReceiveShadows: 1 289 | m_DynamicOccludee: 1 290 | m_MotionVectors: 1 291 | m_LightProbeUsage: 1 292 | m_ReflectionProbeUsage: 1 293 | m_RenderingLayerMask: 1 294 | m_RendererPriority: 0 295 | m_Materials: 296 | - {fileID: 2100000, guid: e5d53b43f79a6f44bbd622460d19d81f, type: 2} 297 | m_StaticBatchInfo: 298 | firstSubMesh: 0 299 | subMeshCount: 0 300 | m_StaticBatchRoot: {fileID: 0} 301 | m_ProbeAnchor: {fileID: 0} 302 | m_LightProbeVolumeOverride: {fileID: 0} 303 | m_ScaleInLightmap: 1 304 | m_ReceiveGI: 1 305 | m_PreserveUVs: 0 306 | m_IgnoreNormalsForChartDetection: 0 307 | m_ImportantGI: 0 308 | m_StitchLightmapSeams: 1 309 | m_SelectedEditorRenderState: 3 310 | m_MinimumChartSize: 4 311 | m_AutoUVMaxDistance: 0.5 312 | m_AutoUVMaxAngle: 89 313 | m_LightmapParameters: {fileID: 0} 314 | m_SortingLayerID: 0 315 | m_SortingLayer: 0 316 | m_SortingOrder: 0 317 | --- !u!33 &429015559 318 | MeshFilter: 319 | m_ObjectHideFlags: 0 320 | m_CorrespondingSourceObject: {fileID: 0} 321 | m_PrefabInstance: {fileID: 0} 322 | m_PrefabAsset: {fileID: 0} 323 | m_GameObject: {fileID: 429015555} 324 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 325 | --- !u!4 &429015560 326 | Transform: 327 | m_ObjectHideFlags: 0 328 | m_CorrespondingSourceObject: {fileID: 0} 329 | m_PrefabInstance: {fileID: 0} 330 | m_PrefabAsset: {fileID: 0} 331 | m_GameObject: {fileID: 429015555} 332 | m_LocalRotation: {x: 0, y: 0, z: 0.00023565853, w: 1} 333 | m_LocalPosition: {x: -3.041, y: 3.631, z: 0} 334 | m_LocalScale: {x: 5.305066, y: 0.25872597, z: 1} 335 | m_Children: [] 336 | m_Father: {fileID: 0} 337 | m_RootOrder: 9 338 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0.027} 339 | --- !u!1 &475768348 340 | GameObject: 341 | m_ObjectHideFlags: 0 342 | m_CorrespondingSourceObject: {fileID: 0} 343 | m_PrefabInstance: {fileID: 0} 344 | m_PrefabAsset: {fileID: 0} 345 | serializedVersion: 6 346 | m_Component: 347 | - component: {fileID: 475768353} 348 | - component: {fileID: 475768352} 349 | - component: {fileID: 475768351} 350 | - component: {fileID: 475768350} 351 | - component: {fileID: 475768349} 352 | m_Layer: 0 353 | m_Name: Quad (4) 354 | m_TagString: Untagged 355 | m_Icon: {fileID: 0} 356 | m_NavMeshLayer: 0 357 | m_StaticEditorFlags: 0 358 | m_IsActive: 0 359 | --- !u!114 &475768349 360 | MonoBehaviour: 361 | m_ObjectHideFlags: 0 362 | m_CorrespondingSourceObject: {fileID: 0} 363 | m_PrefabInstance: {fileID: 0} 364 | m_PrefabAsset: {fileID: 0} 365 | m_GameObject: {fileID: 475768348} 366 | m_Enabled: 1 367 | m_EditorHideFlags: 0 368 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 369 | m_Name: 370 | m_EditorClassIdentifier: 371 | intensity: 1 372 | color: {r: 1, g: 0, b: 0, a: 0} 373 | --- !u!64 &475768350 374 | MeshCollider: 375 | m_ObjectHideFlags: 0 376 | m_CorrespondingSourceObject: {fileID: 0} 377 | m_PrefabInstance: {fileID: 0} 378 | m_PrefabAsset: {fileID: 0} 379 | m_GameObject: {fileID: 475768348} 380 | m_Material: {fileID: 0} 381 | m_IsTrigger: 0 382 | m_Enabled: 1 383 | serializedVersion: 3 384 | m_Convex: 0 385 | m_CookingOptions: 14 386 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 387 | --- !u!23 &475768351 388 | MeshRenderer: 389 | m_ObjectHideFlags: 0 390 | m_CorrespondingSourceObject: {fileID: 0} 391 | m_PrefabInstance: {fileID: 0} 392 | m_PrefabAsset: {fileID: 0} 393 | m_GameObject: {fileID: 475768348} 394 | m_Enabled: 1 395 | m_CastShadows: 1 396 | m_ReceiveShadows: 1 397 | m_DynamicOccludee: 1 398 | m_MotionVectors: 1 399 | m_LightProbeUsage: 1 400 | m_ReflectionProbeUsage: 1 401 | m_RenderingLayerMask: 1 402 | m_RendererPriority: 0 403 | m_Materials: 404 | - {fileID: 2100000, guid: 222a808cce549ec4f93f8d45dd28be85, type: 2} 405 | m_StaticBatchInfo: 406 | firstSubMesh: 0 407 | subMeshCount: 0 408 | m_StaticBatchRoot: {fileID: 0} 409 | m_ProbeAnchor: {fileID: 0} 410 | m_LightProbeVolumeOverride: {fileID: 0} 411 | m_ScaleInLightmap: 1 412 | m_ReceiveGI: 1 413 | m_PreserveUVs: 0 414 | m_IgnoreNormalsForChartDetection: 0 415 | m_ImportantGI: 0 416 | m_StitchLightmapSeams: 1 417 | m_SelectedEditorRenderState: 3 418 | m_MinimumChartSize: 4 419 | m_AutoUVMaxDistance: 0.5 420 | m_AutoUVMaxAngle: 89 421 | m_LightmapParameters: {fileID: 0} 422 | m_SortingLayerID: 0 423 | m_SortingLayer: 0 424 | m_SortingOrder: 0 425 | --- !u!33 &475768352 426 | MeshFilter: 427 | m_ObjectHideFlags: 0 428 | m_CorrespondingSourceObject: {fileID: 0} 429 | m_PrefabInstance: {fileID: 0} 430 | m_PrefabAsset: {fileID: 0} 431 | m_GameObject: {fileID: 475768348} 432 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 433 | --- !u!4 &475768353 434 | Transform: 435 | m_ObjectHideFlags: 0 436 | m_CorrespondingSourceObject: {fileID: 0} 437 | m_PrefabInstance: {fileID: 0} 438 | m_PrefabAsset: {fileID: 0} 439 | m_GameObject: {fileID: 475768348} 440 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 441 | m_LocalPosition: {x: 1.856, y: -0.812, z: 0} 442 | m_LocalScale: {x: 3.4033663, y: 0.13552904, z: 1.1024} 443 | m_Children: [] 444 | m_Father: {fileID: 0} 445 | m_RootOrder: 5 446 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 447 | --- !u!1 &519420028 448 | GameObject: 449 | m_ObjectHideFlags: 0 450 | m_CorrespondingSourceObject: {fileID: 0} 451 | m_PrefabInstance: {fileID: 0} 452 | m_PrefabAsset: {fileID: 0} 453 | serializedVersion: 6 454 | m_Component: 455 | - component: {fileID: 519420032} 456 | - component: {fileID: 519420031} 457 | - component: {fileID: 519420029} 458 | - component: {fileID: 519420030} 459 | - component: {fileID: 519420033} 460 | - component: {fileID: 519420034} 461 | m_Layer: 0 462 | m_Name: Main Camera 463 | m_TagString: MainCamera 464 | m_Icon: {fileID: 0} 465 | m_NavMeshLayer: 0 466 | m_StaticEditorFlags: 0 467 | m_IsActive: 1 468 | --- !u!81 &519420029 469 | AudioListener: 470 | m_ObjectHideFlags: 0 471 | m_CorrespondingSourceObject: {fileID: 0} 472 | m_PrefabInstance: {fileID: 0} 473 | m_PrefabAsset: {fileID: 0} 474 | m_GameObject: {fileID: 519420028} 475 | m_Enabled: 1 476 | --- !u!114 &519420030 477 | MonoBehaviour: 478 | m_ObjectHideFlags: 0 479 | m_CorrespondingSourceObject: {fileID: 0} 480 | m_PrefabInstance: {fileID: 0} 481 | m_PrefabAsset: {fileID: 0} 482 | m_GameObject: {fileID: 519420028} 483 | m_Enabled: 1 484 | m_EditorHideFlags: 0 485 | m_Script: {fileID: 11500000, guid: 5d5a4e0ac70a248cf80b366bbd7dba7c, type: 3} 486 | m_Name: 487 | m_EditorClassIdentifier: 488 | filterMode: 1 489 | resolution: 0.5 490 | lerp: 0.5 491 | gamma: 2.2 492 | shadowStrength: 1 493 | showShadowMap: 0 494 | dweight: 1 495 | dlerp: 0.5 496 | bounceBias: 0.1 497 | sdfShader: {fileID: 7200000, guid: 5a4af429521ad3949812111c02947f67, type: 3} 498 | tracer: {fileID: 7200000, guid: 6d5aa46692ba0480098266e435a0fc95, type: 3} 499 | blitShader: {fileID: 4800000, guid: c9d034c18c45c4a5399b0bcb70176ceb, type: 3} 500 | sdf: {fileID: 0} 501 | diffuseMap: {fileID: 0} 502 | shadowMap: {fileID: 0} 503 | tracerOutput: {fileID: 0} 504 | lightingMap: {fileID: 0} 505 | --- !u!20 &519420031 506 | Camera: 507 | m_ObjectHideFlags: 0 508 | m_CorrespondingSourceObject: {fileID: 0} 509 | m_PrefabInstance: {fileID: 0} 510 | m_PrefabAsset: {fileID: 0} 511 | m_GameObject: {fileID: 519420028} 512 | m_Enabled: 1 513 | serializedVersion: 2 514 | m_ClearFlags: 2 515 | m_BackGroundColor: {r: 1, g: 1, b: 1, a: 0} 516 | m_projectionMatrixMode: 1 517 | m_GateFitMode: 2 518 | m_FOVAxisMode: 0 519 | m_SensorSize: {x: 36, y: 24} 520 | m_LensShift: {x: 0, y: 0} 521 | m_FocalLength: 50 522 | m_NormalizedViewPortRect: 523 | serializedVersion: 2 524 | x: 0 525 | y: 0 526 | width: 1 527 | height: 1 528 | near clip plane: 0.3 529 | far clip plane: 1000 530 | field of view: 60 531 | orthographic: 1 532 | orthographic size: 5 533 | m_Depth: -1 534 | m_CullingMask: 535 | serializedVersion: 2 536 | m_Bits: 4294967295 537 | m_RenderingPath: -1 538 | m_TargetTexture: {fileID: 0} 539 | m_TargetDisplay: 0 540 | m_TargetEye: 0 541 | m_HDR: 1 542 | m_AllowMSAA: 0 543 | m_AllowDynamicResolution: 0 544 | m_ForceIntoRT: 0 545 | m_OcclusionCulling: 0 546 | m_StereoConvergence: 10 547 | m_StereoSeparation: 0.022 548 | --- !u!4 &519420032 549 | Transform: 550 | m_ObjectHideFlags: 0 551 | m_CorrespondingSourceObject: {fileID: 0} 552 | m_PrefabInstance: {fileID: 0} 553 | m_PrefabAsset: {fileID: 0} 554 | m_GameObject: {fileID: 519420028} 555 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 556 | m_LocalPosition: {x: 0.04, y: 1.04, z: -10} 557 | m_LocalScale: {x: 1, y: 1, z: 1} 558 | m_Children: 559 | - {fileID: 1214513512} 560 | m_Father: {fileID: 0} 561 | m_RootOrder: 0 562 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 563 | --- !u!114 &519420033 564 | MonoBehaviour: 565 | m_ObjectHideFlags: 0 566 | m_CorrespondingSourceObject: {fileID: 0} 567 | m_PrefabInstance: {fileID: 0} 568 | m_PrefabAsset: {fileID: 0} 569 | m_GameObject: {fileID: 519420028} 570 | m_Enabled: 1 571 | m_EditorHideFlags: 0 572 | m_Script: {fileID: 11500000, guid: 189b5acf892348b4bb17faa851a1fd7f, type: 3} 573 | m_Name: 574 | m_EditorClassIdentifier: 575 | screenScaling: 1 576 | radius: 10 577 | blurShader: {fileID: 7200000, guid: e4390d9af68fc42408df8dd4ecd5b394, type: 3} 578 | --- !u!114 &519420034 579 | MonoBehaviour: 580 | m_ObjectHideFlags: 0 581 | m_CorrespondingSourceObject: {fileID: 0} 582 | m_PrefabInstance: {fileID: 0} 583 | m_PrefabAsset: {fileID: 0} 584 | m_GameObject: {fileID: 519420028} 585 | m_Enabled: 1 586 | m_EditorHideFlags: 0 587 | m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3} 588 | m_Name: 589 | m_EditorClassIdentifier: 590 | volumeTrigger: {fileID: 519420032} 591 | volumeLayer: 592 | serializedVersion: 2 593 | m_Bits: 4294967295 594 | stopNaNPropagation: 1 595 | finalBlitToCameraTarget: 0 596 | antialiasingMode: 0 597 | temporalAntialiasing: 598 | jitterSpread: 0.75 599 | sharpness: 0.25 600 | stationaryBlending: 0.95 601 | motionBlending: 0.85 602 | subpixelMorphologicalAntialiasing: 603 | quality: 2 604 | fastApproximateAntialiasing: 605 | fastMode: 0 606 | keepAlpha: 0 607 | fog: 608 | enabled: 1 609 | excludeSkybox: 1 610 | debugLayer: 611 | lightMeter: 612 | width: 512 613 | height: 256 614 | showCurves: 1 615 | histogram: 616 | width: 512 617 | height: 256 618 | channel: 3 619 | waveform: 620 | exposure: 0.12 621 | height: 256 622 | vectorscope: 623 | size: 256 624 | exposure: 0.12 625 | overlaySettings: 626 | linearDepth: 0 627 | motionColorIntensity: 4 628 | motionGridSize: 64 629 | colorBlindnessType: 0 630 | colorBlindnessStrength: 1 631 | m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2} 632 | m_ShowToolkit: 0 633 | m_ShowCustomSorter: 0 634 | breakBeforeColorGrading: 0 635 | m_BeforeTransparentBundles: [] 636 | m_BeforeStackBundles: [] 637 | m_AfterStackBundles: [] 638 | --- !u!1 &605108834 639 | GameObject: 640 | m_ObjectHideFlags: 0 641 | m_CorrespondingSourceObject: {fileID: 0} 642 | m_PrefabInstance: {fileID: 0} 643 | m_PrefabAsset: {fileID: 0} 644 | serializedVersion: 6 645 | m_Component: 646 | - component: {fileID: 605108838} 647 | - component: {fileID: 605108837} 648 | - component: {fileID: 605108836} 649 | - component: {fileID: 605108835} 650 | - component: {fileID: 605108839} 651 | m_Layer: 0 652 | m_Name: Quad 653 | m_TagString: Untagged 654 | m_Icon: {fileID: 0} 655 | m_NavMeshLayer: 0 656 | m_StaticEditorFlags: 0 657 | m_IsActive: 0 658 | --- !u!64 &605108835 659 | MeshCollider: 660 | m_ObjectHideFlags: 0 661 | m_CorrespondingSourceObject: {fileID: 0} 662 | m_PrefabInstance: {fileID: 0} 663 | m_PrefabAsset: {fileID: 0} 664 | m_GameObject: {fileID: 605108834} 665 | m_Material: {fileID: 0} 666 | m_IsTrigger: 0 667 | m_Enabled: 1 668 | serializedVersion: 3 669 | m_Convex: 0 670 | m_CookingOptions: 14 671 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 672 | --- !u!23 &605108836 673 | MeshRenderer: 674 | m_ObjectHideFlags: 0 675 | m_CorrespondingSourceObject: {fileID: 0} 676 | m_PrefabInstance: {fileID: 0} 677 | m_PrefabAsset: {fileID: 0} 678 | m_GameObject: {fileID: 605108834} 679 | m_Enabled: 1 680 | m_CastShadows: 1 681 | m_ReceiveShadows: 1 682 | m_DynamicOccludee: 1 683 | m_MotionVectors: 1 684 | m_LightProbeUsage: 1 685 | m_ReflectionProbeUsage: 1 686 | m_RenderingLayerMask: 1 687 | m_RendererPriority: 0 688 | m_Materials: 689 | - {fileID: 2100000, guid: 222a808cce549ec4f93f8d45dd28be85, type: 2} 690 | m_StaticBatchInfo: 691 | firstSubMesh: 0 692 | subMeshCount: 0 693 | m_StaticBatchRoot: {fileID: 0} 694 | m_ProbeAnchor: {fileID: 0} 695 | m_LightProbeVolumeOverride: {fileID: 0} 696 | m_ScaleInLightmap: 1 697 | m_ReceiveGI: 1 698 | m_PreserveUVs: 0 699 | m_IgnoreNormalsForChartDetection: 0 700 | m_ImportantGI: 0 701 | m_StitchLightmapSeams: 1 702 | m_SelectedEditorRenderState: 3 703 | m_MinimumChartSize: 4 704 | m_AutoUVMaxDistance: 0.5 705 | m_AutoUVMaxAngle: 89 706 | m_LightmapParameters: {fileID: 0} 707 | m_SortingLayerID: 0 708 | m_SortingLayer: 0 709 | m_SortingOrder: 0 710 | --- !u!33 &605108837 711 | MeshFilter: 712 | m_ObjectHideFlags: 0 713 | m_CorrespondingSourceObject: {fileID: 0} 714 | m_PrefabInstance: {fileID: 0} 715 | m_PrefabAsset: {fileID: 0} 716 | m_GameObject: {fileID: 605108834} 717 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 718 | --- !u!4 &605108838 719 | Transform: 720 | m_ObjectHideFlags: 0 721 | m_CorrespondingSourceObject: {fileID: 0} 722 | m_PrefabInstance: {fileID: 0} 723 | m_PrefabAsset: {fileID: 0} 724 | m_GameObject: {fileID: 605108834} 725 | m_LocalRotation: {x: -0, y: -0, z: -0.31463706, w: 0.9492121} 726 | m_LocalPosition: {x: -2.49, y: 0.97, z: 0} 727 | m_LocalScale: {x: 4.842, y: 0.326, z: 1} 728 | m_Children: [] 729 | m_Father: {fileID: 0} 730 | m_RootOrder: 2 731 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: -36.678} 732 | --- !u!114 &605108839 733 | MonoBehaviour: 734 | m_ObjectHideFlags: 0 735 | m_CorrespondingSourceObject: {fileID: 0} 736 | m_PrefabInstance: {fileID: 0} 737 | m_PrefabAsset: {fileID: 0} 738 | m_GameObject: {fileID: 605108834} 739 | m_Enabled: 1 740 | m_EditorHideFlags: 0 741 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 742 | m_Name: 743 | m_EditorClassIdentifier: 744 | intensity: 1 745 | color: {r: 1, g: 0, b: 0, a: 0} 746 | --- !u!1 &973831040 747 | GameObject: 748 | m_ObjectHideFlags: 0 749 | m_CorrespondingSourceObject: {fileID: 0} 750 | m_PrefabInstance: {fileID: 0} 751 | m_PrefabAsset: {fileID: 0} 752 | serializedVersion: 6 753 | m_Component: 754 | - component: {fileID: 973831045} 755 | - component: {fileID: 973831044} 756 | - component: {fileID: 973831043} 757 | - component: {fileID: 973831042} 758 | - component: {fileID: 973831041} 759 | m_Layer: 0 760 | m_Name: Light (1) 761 | m_TagString: Untagged 762 | m_Icon: {fileID: 0} 763 | m_NavMeshLayer: 0 764 | m_StaticEditorFlags: 0 765 | m_IsActive: 1 766 | --- !u!114 &973831041 767 | MonoBehaviour: 768 | m_ObjectHideFlags: 0 769 | m_CorrespondingSourceObject: {fileID: 0} 770 | m_PrefabInstance: {fileID: 0} 771 | m_PrefabAsset: {fileID: 0} 772 | m_GameObject: {fileID: 973831040} 773 | m_Enabled: 1 774 | m_EditorHideFlags: 0 775 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 776 | m_Name: 777 | m_EditorClassIdentifier: 778 | intensity: 1 779 | color: {r: 1, g: 0, b: 0, a: 1} 780 | --- !u!64 &973831042 781 | MeshCollider: 782 | m_ObjectHideFlags: 0 783 | m_CorrespondingSourceObject: {fileID: 0} 784 | m_PrefabInstance: {fileID: 0} 785 | m_PrefabAsset: {fileID: 0} 786 | m_GameObject: {fileID: 973831040} 787 | m_Material: {fileID: 0} 788 | m_IsTrigger: 0 789 | m_Enabled: 1 790 | serializedVersion: 3 791 | m_Convex: 0 792 | m_CookingOptions: 14 793 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 794 | --- !u!23 &973831043 795 | MeshRenderer: 796 | m_ObjectHideFlags: 0 797 | m_CorrespondingSourceObject: {fileID: 0} 798 | m_PrefabInstance: {fileID: 0} 799 | m_PrefabAsset: {fileID: 0} 800 | m_GameObject: {fileID: 973831040} 801 | m_Enabled: 1 802 | m_CastShadows: 1 803 | m_ReceiveShadows: 1 804 | m_DynamicOccludee: 1 805 | m_MotionVectors: 1 806 | m_LightProbeUsage: 1 807 | m_ReflectionProbeUsage: 1 808 | m_RenderingLayerMask: 1 809 | m_RendererPriority: 0 810 | m_Materials: 811 | - {fileID: 2100000, guid: e5d53b43f79a6f44bbd622460d19d81f, type: 2} 812 | m_StaticBatchInfo: 813 | firstSubMesh: 0 814 | subMeshCount: 0 815 | m_StaticBatchRoot: {fileID: 0} 816 | m_ProbeAnchor: {fileID: 0} 817 | m_LightProbeVolumeOverride: {fileID: 0} 818 | m_ScaleInLightmap: 1 819 | m_ReceiveGI: 1 820 | m_PreserveUVs: 0 821 | m_IgnoreNormalsForChartDetection: 0 822 | m_ImportantGI: 0 823 | m_StitchLightmapSeams: 1 824 | m_SelectedEditorRenderState: 3 825 | m_MinimumChartSize: 4 826 | m_AutoUVMaxDistance: 0.5 827 | m_AutoUVMaxAngle: 89 828 | m_LightmapParameters: {fileID: 0} 829 | m_SortingLayerID: 0 830 | m_SortingLayer: 0 831 | m_SortingOrder: 0 832 | --- !u!33 &973831044 833 | MeshFilter: 834 | m_ObjectHideFlags: 0 835 | m_CorrespondingSourceObject: {fileID: 0} 836 | m_PrefabInstance: {fileID: 0} 837 | m_PrefabAsset: {fileID: 0} 838 | m_GameObject: {fileID: 973831040} 839 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 840 | --- !u!4 &973831045 841 | Transform: 842 | m_ObjectHideFlags: 0 843 | m_CorrespondingSourceObject: {fileID: 0} 844 | m_PrefabInstance: {fileID: 0} 845 | m_PrefabAsset: {fileID: 0} 846 | m_GameObject: {fileID: 973831040} 847 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 848 | m_LocalPosition: {x: -4.113, y: 2.528, z: 0} 849 | m_LocalScale: {x: 0.67075866, y: 0.7346751, z: 1} 850 | m_Children: [] 851 | m_Father: {fileID: 0} 852 | m_RootOrder: 12 853 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 854 | --- !u!1 &993629168 855 | GameObject: 856 | m_ObjectHideFlags: 0 857 | m_CorrespondingSourceObject: {fileID: 0} 858 | m_PrefabInstance: {fileID: 0} 859 | m_PrefabAsset: {fileID: 0} 860 | serializedVersion: 6 861 | m_Component: 862 | - component: {fileID: 993629172} 863 | - component: {fileID: 993629171} 864 | - component: {fileID: 993629170} 865 | - component: {fileID: 993629169} 866 | - component: {fileID: 993629173} 867 | - component: {fileID: 993629174} 868 | m_Layer: 0 869 | m_Name: Light 870 | m_TagString: Untagged 871 | m_Icon: {fileID: 0} 872 | m_NavMeshLayer: 0 873 | m_StaticEditorFlags: 0 874 | m_IsActive: 1 875 | --- !u!64 &993629169 876 | MeshCollider: 877 | m_ObjectHideFlags: 0 878 | m_CorrespondingSourceObject: {fileID: 0} 879 | m_PrefabInstance: {fileID: 0} 880 | m_PrefabAsset: {fileID: 0} 881 | m_GameObject: {fileID: 993629168} 882 | m_Material: {fileID: 0} 883 | m_IsTrigger: 0 884 | m_Enabled: 1 885 | serializedVersion: 3 886 | m_Convex: 0 887 | m_CookingOptions: 14 888 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 889 | --- !u!23 &993629170 890 | MeshRenderer: 891 | m_ObjectHideFlags: 0 892 | m_CorrespondingSourceObject: {fileID: 0} 893 | m_PrefabInstance: {fileID: 0} 894 | m_PrefabAsset: {fileID: 0} 895 | m_GameObject: {fileID: 993629168} 896 | m_Enabled: 1 897 | m_CastShadows: 1 898 | m_ReceiveShadows: 1 899 | m_DynamicOccludee: 1 900 | m_MotionVectors: 1 901 | m_LightProbeUsage: 1 902 | m_ReflectionProbeUsage: 1 903 | m_RenderingLayerMask: 1 904 | m_RendererPriority: 0 905 | m_Materials: 906 | - {fileID: 2100000, guid: 222a808cce549ec4f93f8d45dd28be85, type: 2} 907 | m_StaticBatchInfo: 908 | firstSubMesh: 0 909 | subMeshCount: 0 910 | m_StaticBatchRoot: {fileID: 0} 911 | m_ProbeAnchor: {fileID: 0} 912 | m_LightProbeVolumeOverride: {fileID: 0} 913 | m_ScaleInLightmap: 1 914 | m_ReceiveGI: 1 915 | m_PreserveUVs: 0 916 | m_IgnoreNormalsForChartDetection: 0 917 | m_ImportantGI: 0 918 | m_StitchLightmapSeams: 1 919 | m_SelectedEditorRenderState: 3 920 | m_MinimumChartSize: 4 921 | m_AutoUVMaxDistance: 0.5 922 | m_AutoUVMaxAngle: 89 923 | m_LightmapParameters: {fileID: 0} 924 | m_SortingLayerID: 0 925 | m_SortingLayer: 0 926 | m_SortingOrder: 0 927 | --- !u!33 &993629171 928 | MeshFilter: 929 | m_ObjectHideFlags: 0 930 | m_CorrespondingSourceObject: {fileID: 0} 931 | m_PrefabInstance: {fileID: 0} 932 | m_PrefabAsset: {fileID: 0} 933 | m_GameObject: {fileID: 993629168} 934 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 935 | --- !u!4 &993629172 936 | Transform: 937 | m_ObjectHideFlags: 0 938 | m_CorrespondingSourceObject: {fileID: 0} 939 | m_PrefabInstance: {fileID: 0} 940 | m_PrefabAsset: {fileID: 0} 941 | m_GameObject: {fileID: 993629168} 942 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 943 | m_LocalPosition: {x: 3.38, y: 0.69, z: 0} 944 | m_LocalScale: {x: 1.0960109, y: 1.1097811, z: 1} 945 | m_Children: [] 946 | m_Father: {fileID: 0} 947 | m_RootOrder: 1 948 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 949 | --- !u!114 &993629173 950 | MonoBehaviour: 951 | m_ObjectHideFlags: 0 952 | m_CorrespondingSourceObject: {fileID: 0} 953 | m_PrefabInstance: {fileID: 0} 954 | m_PrefabAsset: {fileID: 0} 955 | m_GameObject: {fileID: 993629168} 956 | m_Enabled: 1 957 | m_EditorHideFlags: 0 958 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 959 | m_Name: 960 | m_EditorClassIdentifier: 961 | intensity: 1 962 | color: {r: 1, g: 1, b: 1, a: 1} 963 | --- !u!114 &993629174 964 | MonoBehaviour: 965 | m_ObjectHideFlags: 0 966 | m_CorrespondingSourceObject: {fileID: 0} 967 | m_PrefabInstance: {fileID: 0} 968 | m_PrefabAsset: {fileID: 0} 969 | m_GameObject: {fileID: 993629168} 970 | m_Enabled: 1 971 | m_EditorHideFlags: 0 972 | m_Script: {fileID: 11500000, guid: ff505c453930ac64dbb683d29c6fb029, type: 3} 973 | m_Name: 974 | m_EditorClassIdentifier: 975 | duration: 3 976 | offset: 0 977 | --- !u!1 &1105798261 978 | GameObject: 979 | m_ObjectHideFlags: 0 980 | m_CorrespondingSourceObject: {fileID: 0} 981 | m_PrefabInstance: {fileID: 0} 982 | m_PrefabAsset: {fileID: 0} 983 | serializedVersion: 6 984 | m_Component: 985 | - component: {fileID: 1105798266} 986 | - component: {fileID: 1105798265} 987 | - component: {fileID: 1105798264} 988 | - component: {fileID: 1105798263} 989 | - component: {fileID: 1105798262} 990 | m_Layer: 0 991 | m_Name: Quad (5) 992 | m_TagString: Untagged 993 | m_Icon: {fileID: 0} 994 | m_NavMeshLayer: 0 995 | m_StaticEditorFlags: 0 996 | m_IsActive: 0 997 | --- !u!114 &1105798262 998 | MonoBehaviour: 999 | m_ObjectHideFlags: 0 1000 | m_CorrespondingSourceObject: {fileID: 0} 1001 | m_PrefabInstance: {fileID: 0} 1002 | m_PrefabAsset: {fileID: 0} 1003 | m_GameObject: {fileID: 1105798261} 1004 | m_Enabled: 1 1005 | m_EditorHideFlags: 0 1006 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 1007 | m_Name: 1008 | m_EditorClassIdentifier: 1009 | intensity: 1 1010 | color: {r: 1, g: 0, b: 0, a: 0} 1011 | --- !u!64 &1105798263 1012 | MeshCollider: 1013 | m_ObjectHideFlags: 0 1014 | m_CorrespondingSourceObject: {fileID: 0} 1015 | m_PrefabInstance: {fileID: 0} 1016 | m_PrefabAsset: {fileID: 0} 1017 | m_GameObject: {fileID: 1105798261} 1018 | m_Material: {fileID: 0} 1019 | m_IsTrigger: 0 1020 | m_Enabled: 1 1021 | serializedVersion: 3 1022 | m_Convex: 0 1023 | m_CookingOptions: 14 1024 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1025 | --- !u!23 &1105798264 1026 | MeshRenderer: 1027 | m_ObjectHideFlags: 0 1028 | m_CorrespondingSourceObject: {fileID: 0} 1029 | m_PrefabInstance: {fileID: 0} 1030 | m_PrefabAsset: {fileID: 0} 1031 | m_GameObject: {fileID: 1105798261} 1032 | m_Enabled: 1 1033 | m_CastShadows: 1 1034 | m_ReceiveShadows: 1 1035 | m_DynamicOccludee: 1 1036 | m_MotionVectors: 1 1037 | m_LightProbeUsage: 1 1038 | m_ReflectionProbeUsage: 1 1039 | m_RenderingLayerMask: 1 1040 | m_RendererPriority: 0 1041 | m_Materials: 1042 | - {fileID: 2100000, guid: 222a808cce549ec4f93f8d45dd28be85, type: 2} 1043 | m_StaticBatchInfo: 1044 | firstSubMesh: 0 1045 | subMeshCount: 0 1046 | m_StaticBatchRoot: {fileID: 0} 1047 | m_ProbeAnchor: {fileID: 0} 1048 | m_LightProbeVolumeOverride: {fileID: 0} 1049 | m_ScaleInLightmap: 1 1050 | m_ReceiveGI: 1 1051 | m_PreserveUVs: 0 1052 | m_IgnoreNormalsForChartDetection: 0 1053 | m_ImportantGI: 0 1054 | m_StitchLightmapSeams: 1 1055 | m_SelectedEditorRenderState: 3 1056 | m_MinimumChartSize: 4 1057 | m_AutoUVMaxDistance: 0.5 1058 | m_AutoUVMaxAngle: 89 1059 | m_LightmapParameters: {fileID: 0} 1060 | m_SortingLayerID: 0 1061 | m_SortingLayer: 0 1062 | m_SortingOrder: 0 1063 | --- !u!33 &1105798265 1064 | MeshFilter: 1065 | m_ObjectHideFlags: 0 1066 | m_CorrespondingSourceObject: {fileID: 0} 1067 | m_PrefabInstance: {fileID: 0} 1068 | m_PrefabAsset: {fileID: 0} 1069 | m_GameObject: {fileID: 1105798261} 1070 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1071 | --- !u!4 &1105798266 1072 | Transform: 1073 | m_ObjectHideFlags: 0 1074 | m_CorrespondingSourceObject: {fileID: 0} 1075 | m_PrefabInstance: {fileID: 0} 1076 | m_PrefabAsset: {fileID: 0} 1077 | m_GameObject: {fileID: 1105798261} 1078 | m_LocalRotation: {x: -0, y: -0, z: 0.0045951973, w: 0.99998945} 1079 | m_LocalPosition: {x: -0.313, y: 4.522, z: 0} 1080 | m_LocalScale: {x: 2.266056, y: 0.326, z: 1} 1081 | m_Children: [] 1082 | m_Father: {fileID: 0} 1083 | m_RootOrder: 6 1084 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0.527} 1085 | --- !u!1 &1214513509 1086 | GameObject: 1087 | m_ObjectHideFlags: 0 1088 | m_CorrespondingSourceObject: {fileID: 0} 1089 | m_PrefabInstance: {fileID: 0} 1090 | m_PrefabAsset: {fileID: 0} 1091 | serializedVersion: 6 1092 | m_Component: 1093 | - component: {fileID: 1214513512} 1094 | - component: {fileID: 1214513510} 1095 | m_Layer: 0 1096 | m_Name: Post-process Volume 1097 | m_TagString: Untagged 1098 | m_Icon: {fileID: 0} 1099 | m_NavMeshLayer: 0 1100 | m_StaticEditorFlags: 0 1101 | m_IsActive: 1 1102 | --- !u!114 &1214513510 1103 | MonoBehaviour: 1104 | m_ObjectHideFlags: 0 1105 | m_CorrespondingSourceObject: {fileID: 0} 1106 | m_PrefabInstance: {fileID: 0} 1107 | m_PrefabAsset: {fileID: 0} 1108 | m_GameObject: {fileID: 1214513509} 1109 | m_Enabled: 1 1110 | m_EditorHideFlags: 0 1111 | m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3} 1112 | m_Name: 1113 | m_EditorClassIdentifier: 1114 | sharedProfile: {fileID: 11400000, guid: ad8730d6b3639d94fa3549b199819ff2, type: 2} 1115 | isGlobal: 1 1116 | blendDistance: 0 1117 | weight: 1 1118 | priority: 0 1119 | --- !u!4 &1214513512 1120 | Transform: 1121 | m_ObjectHideFlags: 0 1122 | m_CorrespondingSourceObject: {fileID: 0} 1123 | m_PrefabInstance: {fileID: 0} 1124 | m_PrefabAsset: {fileID: 0} 1125 | m_GameObject: {fileID: 1214513509} 1126 | m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} 1127 | m_LocalPosition: {x: 0, y: 0, z: 0} 1128 | m_LocalScale: {x: 1, y: 1, z: 1} 1129 | m_Children: [] 1130 | m_Father: {fileID: 519420032} 1131 | m_RootOrder: 0 1132 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1133 | --- !u!1 &1280657436 1134 | GameObject: 1135 | m_ObjectHideFlags: 0 1136 | m_CorrespondingSourceObject: {fileID: 0} 1137 | m_PrefabInstance: {fileID: 0} 1138 | m_PrefabAsset: {fileID: 0} 1139 | serializedVersion: 6 1140 | m_Component: 1141 | - component: {fileID: 1280657441} 1142 | - component: {fileID: 1280657440} 1143 | - component: {fileID: 1280657439} 1144 | - component: {fileID: 1280657438} 1145 | - component: {fileID: 1280657437} 1146 | m_Layer: 0 1147 | m_Name: Quad (3) 1148 | m_TagString: Untagged 1149 | m_Icon: {fileID: 0} 1150 | m_NavMeshLayer: 0 1151 | m_StaticEditorFlags: 0 1152 | m_IsActive: 0 1153 | --- !u!114 &1280657437 1154 | MonoBehaviour: 1155 | m_ObjectHideFlags: 0 1156 | m_CorrespondingSourceObject: {fileID: 0} 1157 | m_PrefabInstance: {fileID: 0} 1158 | m_PrefabAsset: {fileID: 0} 1159 | m_GameObject: {fileID: 1280657436} 1160 | m_Enabled: 1 1161 | m_EditorHideFlags: 0 1162 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 1163 | m_Name: 1164 | m_EditorClassIdentifier: 1165 | intensity: 1 1166 | color: {r: 1, g: 0, b: 0, a: 0} 1167 | --- !u!64 &1280657438 1168 | MeshCollider: 1169 | m_ObjectHideFlags: 0 1170 | m_CorrespondingSourceObject: {fileID: 0} 1171 | m_PrefabInstance: {fileID: 0} 1172 | m_PrefabAsset: {fileID: 0} 1173 | m_GameObject: {fileID: 1280657436} 1174 | m_Material: {fileID: 0} 1175 | m_IsTrigger: 0 1176 | m_Enabled: 1 1177 | serializedVersion: 3 1178 | m_Convex: 0 1179 | m_CookingOptions: 14 1180 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1181 | --- !u!23 &1280657439 1182 | MeshRenderer: 1183 | m_ObjectHideFlags: 0 1184 | m_CorrespondingSourceObject: {fileID: 0} 1185 | m_PrefabInstance: {fileID: 0} 1186 | m_PrefabAsset: {fileID: 0} 1187 | m_GameObject: {fileID: 1280657436} 1188 | m_Enabled: 1 1189 | m_CastShadows: 1 1190 | m_ReceiveShadows: 1 1191 | m_DynamicOccludee: 1 1192 | m_MotionVectors: 1 1193 | m_LightProbeUsage: 1 1194 | m_ReflectionProbeUsage: 1 1195 | m_RenderingLayerMask: 1 1196 | m_RendererPriority: 0 1197 | m_Materials: 1198 | - {fileID: 2100000, guid: 222a808cce549ec4f93f8d45dd28be85, type: 2} 1199 | m_StaticBatchInfo: 1200 | firstSubMesh: 0 1201 | subMeshCount: 0 1202 | m_StaticBatchRoot: {fileID: 0} 1203 | m_ProbeAnchor: {fileID: 0} 1204 | m_LightProbeVolumeOverride: {fileID: 0} 1205 | m_ScaleInLightmap: 1 1206 | m_ReceiveGI: 1 1207 | m_PreserveUVs: 0 1208 | m_IgnoreNormalsForChartDetection: 0 1209 | m_ImportantGI: 0 1210 | m_StitchLightmapSeams: 1 1211 | m_SelectedEditorRenderState: 3 1212 | m_MinimumChartSize: 4 1213 | m_AutoUVMaxDistance: 0.5 1214 | m_AutoUVMaxAngle: 89 1215 | m_LightmapParameters: {fileID: 0} 1216 | m_SortingLayerID: 0 1217 | m_SortingLayer: 0 1218 | m_SortingOrder: 0 1219 | --- !u!33 &1280657440 1220 | MeshFilter: 1221 | m_ObjectHideFlags: 0 1222 | m_CorrespondingSourceObject: {fileID: 0} 1223 | m_PrefabInstance: {fileID: 0} 1224 | m_PrefabAsset: {fileID: 0} 1225 | m_GameObject: {fileID: 1280657436} 1226 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1227 | --- !u!4 &1280657441 1228 | Transform: 1229 | m_ObjectHideFlags: 0 1230 | m_CorrespondingSourceObject: {fileID: 0} 1231 | m_PrefabInstance: {fileID: 0} 1232 | m_PrefabAsset: {fileID: 0} 1233 | m_GameObject: {fileID: 1280657436} 1234 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1235 | m_LocalPosition: {x: 1.856, y: 3.57, z: 0} 1236 | m_LocalScale: {x: 3.4033663, y: 0.13552904, z: 1.1024} 1237 | m_Children: [] 1238 | m_Father: {fileID: 0} 1239 | m_RootOrder: 4 1240 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1241 | --- !u!1 &1388170477 1242 | GameObject: 1243 | m_ObjectHideFlags: 0 1244 | m_CorrespondingSourceObject: {fileID: 0} 1245 | m_PrefabInstance: {fileID: 0} 1246 | m_PrefabAsset: {fileID: 0} 1247 | serializedVersion: 6 1248 | m_Component: 1249 | - component: {fileID: 1388170482} 1250 | - component: {fileID: 1388170481} 1251 | - component: {fileID: 1388170480} 1252 | - component: {fileID: 1388170479} 1253 | - component: {fileID: 1388170478} 1254 | m_Layer: 0 1255 | m_Name: Light (2) 1256 | m_TagString: Untagged 1257 | m_Icon: {fileID: 0} 1258 | m_NavMeshLayer: 0 1259 | m_StaticEditorFlags: 0 1260 | m_IsActive: 1 1261 | --- !u!114 &1388170478 1262 | MonoBehaviour: 1263 | m_ObjectHideFlags: 0 1264 | m_CorrespondingSourceObject: {fileID: 0} 1265 | m_PrefabInstance: {fileID: 0} 1266 | m_PrefabAsset: {fileID: 0} 1267 | m_GameObject: {fileID: 1388170477} 1268 | m_Enabled: 1 1269 | m_EditorHideFlags: 0 1270 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 1271 | m_Name: 1272 | m_EditorClassIdentifier: 1273 | intensity: 1 1274 | color: {r: 0.08675194, g: 1, b: 0, a: 1} 1275 | --- !u!64 &1388170479 1276 | MeshCollider: 1277 | m_ObjectHideFlags: 0 1278 | m_CorrespondingSourceObject: {fileID: 0} 1279 | m_PrefabInstance: {fileID: 0} 1280 | m_PrefabAsset: {fileID: 0} 1281 | m_GameObject: {fileID: 1388170477} 1282 | m_Material: {fileID: 0} 1283 | m_IsTrigger: 0 1284 | m_Enabled: 1 1285 | serializedVersion: 3 1286 | m_Convex: 0 1287 | m_CookingOptions: 14 1288 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1289 | --- !u!23 &1388170480 1290 | MeshRenderer: 1291 | m_ObjectHideFlags: 0 1292 | m_CorrespondingSourceObject: {fileID: 0} 1293 | m_PrefabInstance: {fileID: 0} 1294 | m_PrefabAsset: {fileID: 0} 1295 | m_GameObject: {fileID: 1388170477} 1296 | m_Enabled: 1 1297 | m_CastShadows: 1 1298 | m_ReceiveShadows: 1 1299 | m_DynamicOccludee: 1 1300 | m_MotionVectors: 1 1301 | m_LightProbeUsage: 1 1302 | m_ReflectionProbeUsage: 1 1303 | m_RenderingLayerMask: 1 1304 | m_RendererPriority: 0 1305 | m_Materials: 1306 | - {fileID: 2100000, guid: 4990f247bfa8def48aa4990353f1352d, type: 2} 1307 | m_StaticBatchInfo: 1308 | firstSubMesh: 0 1309 | subMeshCount: 0 1310 | m_StaticBatchRoot: {fileID: 0} 1311 | m_ProbeAnchor: {fileID: 0} 1312 | m_LightProbeVolumeOverride: {fileID: 0} 1313 | m_ScaleInLightmap: 1 1314 | m_ReceiveGI: 1 1315 | m_PreserveUVs: 0 1316 | m_IgnoreNormalsForChartDetection: 0 1317 | m_ImportantGI: 0 1318 | m_StitchLightmapSeams: 1 1319 | m_SelectedEditorRenderState: 3 1320 | m_MinimumChartSize: 4 1321 | m_AutoUVMaxDistance: 0.5 1322 | m_AutoUVMaxAngle: 89 1323 | m_LightmapParameters: {fileID: 0} 1324 | m_SortingLayerID: 0 1325 | m_SortingLayer: 0 1326 | m_SortingOrder: 0 1327 | --- !u!33 &1388170481 1328 | MeshFilter: 1329 | m_ObjectHideFlags: 0 1330 | m_CorrespondingSourceObject: {fileID: 0} 1331 | m_PrefabInstance: {fileID: 0} 1332 | m_PrefabAsset: {fileID: 0} 1333 | m_GameObject: {fileID: 1388170477} 1334 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1335 | --- !u!4 &1388170482 1336 | Transform: 1337 | m_ObjectHideFlags: 0 1338 | m_CorrespondingSourceObject: {fileID: 0} 1339 | m_PrefabInstance: {fileID: 0} 1340 | m_PrefabAsset: {fileID: 0} 1341 | m_GameObject: {fileID: 1388170477} 1342 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1343 | m_LocalPosition: {x: -2.84, y: 0.35, z: 0} 1344 | m_LocalScale: {x: 0.67075866, y: 0.7346751, z: 1} 1345 | m_Children: [] 1346 | m_Father: {fileID: 0} 1347 | m_RootOrder: 13 1348 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1349 | --- !u!1 &1388578304 1350 | GameObject: 1351 | m_ObjectHideFlags: 0 1352 | m_CorrespondingSourceObject: {fileID: 0} 1353 | m_PrefabInstance: {fileID: 0} 1354 | m_PrefabAsset: {fileID: 0} 1355 | serializedVersion: 6 1356 | m_Component: 1357 | - component: {fileID: 1388578309} 1358 | - component: {fileID: 1388578308} 1359 | - component: {fileID: 1388578307} 1360 | - component: {fileID: 1388578306} 1361 | - component: {fileID: 1388578305} 1362 | m_Layer: 0 1363 | m_Name: Quad (10) 1364 | m_TagString: Untagged 1365 | m_Icon: {fileID: 0} 1366 | m_NavMeshLayer: 0 1367 | m_StaticEditorFlags: 0 1368 | m_IsActive: 1 1369 | --- !u!114 &1388578305 1370 | MonoBehaviour: 1371 | m_ObjectHideFlags: 0 1372 | m_CorrespondingSourceObject: {fileID: 0} 1373 | m_PrefabInstance: {fileID: 0} 1374 | m_PrefabAsset: {fileID: 0} 1375 | m_GameObject: {fileID: 1388578304} 1376 | m_Enabled: 1 1377 | m_EditorHideFlags: 0 1378 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 1379 | m_Name: 1380 | m_EditorClassIdentifier: 1381 | intensity: 1 1382 | color: {r: 0, g: 1, b: 0.025779486, a: 0} 1383 | --- !u!64 &1388578306 1384 | MeshCollider: 1385 | m_ObjectHideFlags: 0 1386 | m_CorrespondingSourceObject: {fileID: 0} 1387 | m_PrefabInstance: {fileID: 0} 1388 | m_PrefabAsset: {fileID: 0} 1389 | m_GameObject: {fileID: 1388578304} 1390 | m_Material: {fileID: 0} 1391 | m_IsTrigger: 0 1392 | m_Enabled: 1 1393 | serializedVersion: 3 1394 | m_Convex: 0 1395 | m_CookingOptions: 14 1396 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1397 | --- !u!23 &1388578307 1398 | MeshRenderer: 1399 | m_ObjectHideFlags: 0 1400 | m_CorrespondingSourceObject: {fileID: 0} 1401 | m_PrefabInstance: {fileID: 0} 1402 | m_PrefabAsset: {fileID: 0} 1403 | m_GameObject: {fileID: 1388578304} 1404 | m_Enabled: 1 1405 | m_CastShadows: 1 1406 | m_ReceiveShadows: 1 1407 | m_DynamicOccludee: 1 1408 | m_MotionVectors: 1 1409 | m_LightProbeUsage: 1 1410 | m_ReflectionProbeUsage: 1 1411 | m_RenderingLayerMask: 1 1412 | m_RendererPriority: 0 1413 | m_Materials: 1414 | - {fileID: 2100000, guid: 4990f247bfa8def48aa4990353f1352d, type: 2} 1415 | m_StaticBatchInfo: 1416 | firstSubMesh: 0 1417 | subMeshCount: 0 1418 | m_StaticBatchRoot: {fileID: 0} 1419 | m_ProbeAnchor: {fileID: 0} 1420 | m_LightProbeVolumeOverride: {fileID: 0} 1421 | m_ScaleInLightmap: 1 1422 | m_ReceiveGI: 1 1423 | m_PreserveUVs: 0 1424 | m_IgnoreNormalsForChartDetection: 0 1425 | m_ImportantGI: 0 1426 | m_StitchLightmapSeams: 1 1427 | m_SelectedEditorRenderState: 3 1428 | m_MinimumChartSize: 4 1429 | m_AutoUVMaxDistance: 0.5 1430 | m_AutoUVMaxAngle: 89 1431 | m_LightmapParameters: {fileID: 0} 1432 | m_SortingLayerID: 0 1433 | m_SortingLayer: 0 1434 | m_SortingOrder: 0 1435 | --- !u!33 &1388578308 1436 | MeshFilter: 1437 | m_ObjectHideFlags: 0 1438 | m_CorrespondingSourceObject: {fileID: 0} 1439 | m_PrefabInstance: {fileID: 0} 1440 | m_PrefabAsset: {fileID: 0} 1441 | m_GameObject: {fileID: 1388578304} 1442 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1443 | --- !u!4 &1388578309 1444 | Transform: 1445 | m_ObjectHideFlags: 0 1446 | m_CorrespondingSourceObject: {fileID: 0} 1447 | m_PrefabInstance: {fileID: 0} 1448 | m_PrefabAsset: {fileID: 0} 1449 | m_GameObject: {fileID: 1388578304} 1450 | m_LocalRotation: {x: 0, y: 0, z: 0.00023565853, w: 1} 1451 | m_LocalPosition: {x: -3.039, y: -1.405, z: 0} 1452 | m_LocalScale: {x: 5.305066, y: 0.23232536, z: 1} 1453 | m_Children: [] 1454 | m_Father: {fileID: 0} 1455 | m_RootOrder: 10 1456 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0.027} 1457 | --- !u!1 &1539993268 1458 | GameObject: 1459 | m_ObjectHideFlags: 0 1460 | m_CorrespondingSourceObject: {fileID: 0} 1461 | m_PrefabInstance: {fileID: 0} 1462 | m_PrefabAsset: {fileID: 0} 1463 | serializedVersion: 6 1464 | m_Component: 1465 | - component: {fileID: 1539993273} 1466 | - component: {fileID: 1539993272} 1467 | - component: {fileID: 1539993271} 1468 | - component: {fileID: 1539993270} 1469 | - component: {fileID: 1539993269} 1470 | m_Layer: 0 1471 | m_Name: Quad (8) 1472 | m_TagString: Untagged 1473 | m_Icon: {fileID: 0} 1474 | m_NavMeshLayer: 0 1475 | m_StaticEditorFlags: 0 1476 | m_IsActive: 1 1477 | --- !u!114 &1539993269 1478 | MonoBehaviour: 1479 | m_ObjectHideFlags: 0 1480 | m_CorrespondingSourceObject: {fileID: 0} 1481 | m_PrefabInstance: {fileID: 0} 1482 | m_PrefabAsset: {fileID: 0} 1483 | m_GameObject: {fileID: 1539993268} 1484 | m_Enabled: 1 1485 | m_EditorHideFlags: 0 1486 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 1487 | m_Name: 1488 | m_EditorClassIdentifier: 1489 | intensity: 1 1490 | color: {r: 1, g: 1, b: 1, a: 0} 1491 | --- !u!64 &1539993270 1492 | MeshCollider: 1493 | m_ObjectHideFlags: 0 1494 | m_CorrespondingSourceObject: {fileID: 0} 1495 | m_PrefabInstance: {fileID: 0} 1496 | m_PrefabAsset: {fileID: 0} 1497 | m_GameObject: {fileID: 1539993268} 1498 | m_Material: {fileID: 0} 1499 | m_IsTrigger: 0 1500 | m_Enabled: 1 1501 | serializedVersion: 3 1502 | m_Convex: 0 1503 | m_CookingOptions: 14 1504 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1505 | --- !u!23 &1539993271 1506 | MeshRenderer: 1507 | m_ObjectHideFlags: 0 1508 | m_CorrespondingSourceObject: {fileID: 0} 1509 | m_PrefabInstance: {fileID: 0} 1510 | m_PrefabAsset: {fileID: 0} 1511 | m_GameObject: {fileID: 1539993268} 1512 | m_Enabled: 1 1513 | m_CastShadows: 1 1514 | m_ReceiveShadows: 1 1515 | m_DynamicOccludee: 1 1516 | m_MotionVectors: 1 1517 | m_LightProbeUsage: 1 1518 | m_ReflectionProbeUsage: 1 1519 | m_RenderingLayerMask: 1 1520 | m_RendererPriority: 0 1521 | m_Materials: 1522 | - {fileID: 2100000, guid: 222a808cce549ec4f93f8d45dd28be85, type: 2} 1523 | m_StaticBatchInfo: 1524 | firstSubMesh: 0 1525 | subMeshCount: 0 1526 | m_StaticBatchRoot: {fileID: 0} 1527 | m_ProbeAnchor: {fileID: 0} 1528 | m_LightProbeVolumeOverride: {fileID: 0} 1529 | m_ScaleInLightmap: 1 1530 | m_ReceiveGI: 1 1531 | m_PreserveUVs: 0 1532 | m_IgnoreNormalsForChartDetection: 0 1533 | m_ImportantGI: 0 1534 | m_StitchLightmapSeams: 1 1535 | m_SelectedEditorRenderState: 3 1536 | m_MinimumChartSize: 4 1537 | m_AutoUVMaxDistance: 0.5 1538 | m_AutoUVMaxAngle: 89 1539 | m_LightmapParameters: {fileID: 0} 1540 | m_SortingLayerID: 0 1541 | m_SortingLayer: 0 1542 | m_SortingOrder: 0 1543 | --- !u!33 &1539993272 1544 | MeshFilter: 1545 | m_ObjectHideFlags: 0 1546 | m_CorrespondingSourceObject: {fileID: 0} 1547 | m_PrefabInstance: {fileID: 0} 1548 | m_PrefabAsset: {fileID: 0} 1549 | m_GameObject: {fileID: 1539993268} 1550 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1551 | --- !u!4 &1539993273 1552 | Transform: 1553 | m_ObjectHideFlags: 0 1554 | m_CorrespondingSourceObject: {fileID: 0} 1555 | m_PrefabInstance: {fileID: 0} 1556 | m_PrefabAsset: {fileID: 0} 1557 | m_GameObject: {fileID: 1539993268} 1558 | m_LocalRotation: {x: 0, y: 0, z: 0.00023565853, w: 1} 1559 | m_LocalPosition: {x: -5.579, y: 1.119, z: 0} 1560 | m_LocalScale: {x: 0.22811785, y: 5.280122, z: 1} 1561 | m_Children: [] 1562 | m_Father: {fileID: 0} 1563 | m_RootOrder: 8 1564 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0.027} 1565 | --- !u!1 &1730106812 1566 | GameObject: 1567 | m_ObjectHideFlags: 0 1568 | m_CorrespondingSourceObject: {fileID: 0} 1569 | m_PrefabInstance: {fileID: 0} 1570 | m_PrefabAsset: {fileID: 0} 1571 | serializedVersion: 6 1572 | m_Component: 1573 | - component: {fileID: 1730106817} 1574 | - component: {fileID: 1730106816} 1575 | - component: {fileID: 1730106815} 1576 | - component: {fileID: 1730106814} 1577 | - component: {fileID: 1730106813} 1578 | m_Layer: 0 1579 | m_Name: Light (3) 1580 | m_TagString: Untagged 1581 | m_Icon: {fileID: 0} 1582 | m_NavMeshLayer: 0 1583 | m_StaticEditorFlags: 0 1584 | m_IsActive: 1 1585 | --- !u!114 &1730106813 1586 | MonoBehaviour: 1587 | m_ObjectHideFlags: 0 1588 | m_CorrespondingSourceObject: {fileID: 0} 1589 | m_PrefabInstance: {fileID: 0} 1590 | m_PrefabAsset: {fileID: 0} 1591 | m_GameObject: {fileID: 1730106812} 1592 | m_Enabled: 1 1593 | m_EditorHideFlags: 0 1594 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 1595 | m_Name: 1596 | m_EditorClassIdentifier: 1597 | intensity: 1 1598 | color: {r: 0, g: 0.20125055, b: 1, a: 1} 1599 | --- !u!64 &1730106814 1600 | MeshCollider: 1601 | m_ObjectHideFlags: 0 1602 | m_CorrespondingSourceObject: {fileID: 0} 1603 | m_PrefabInstance: {fileID: 0} 1604 | m_PrefabAsset: {fileID: 0} 1605 | m_GameObject: {fileID: 1730106812} 1606 | m_Material: {fileID: 0} 1607 | m_IsTrigger: 0 1608 | m_Enabled: 1 1609 | serializedVersion: 3 1610 | m_Convex: 0 1611 | m_CookingOptions: 14 1612 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1613 | --- !u!23 &1730106815 1614 | MeshRenderer: 1615 | m_ObjectHideFlags: 0 1616 | m_CorrespondingSourceObject: {fileID: 0} 1617 | m_PrefabInstance: {fileID: 0} 1618 | m_PrefabAsset: {fileID: 0} 1619 | m_GameObject: {fileID: 1730106812} 1620 | m_Enabled: 1 1621 | m_CastShadows: 1 1622 | m_ReceiveShadows: 1 1623 | m_DynamicOccludee: 1 1624 | m_MotionVectors: 1 1625 | m_LightProbeUsage: 1 1626 | m_ReflectionProbeUsage: 1 1627 | m_RenderingLayerMask: 1 1628 | m_RendererPriority: 0 1629 | m_Materials: 1630 | - {fileID: 2100000, guid: 011b08f1c9959804da3d1696d03a78c1, type: 2} 1631 | m_StaticBatchInfo: 1632 | firstSubMesh: 0 1633 | subMeshCount: 0 1634 | m_StaticBatchRoot: {fileID: 0} 1635 | m_ProbeAnchor: {fileID: 0} 1636 | m_LightProbeVolumeOverride: {fileID: 0} 1637 | m_ScaleInLightmap: 1 1638 | m_ReceiveGI: 1 1639 | m_PreserveUVs: 0 1640 | m_IgnoreNormalsForChartDetection: 0 1641 | m_ImportantGI: 0 1642 | m_StitchLightmapSeams: 1 1643 | m_SelectedEditorRenderState: 3 1644 | m_MinimumChartSize: 4 1645 | m_AutoUVMaxDistance: 0.5 1646 | m_AutoUVMaxAngle: 89 1647 | m_LightmapParameters: {fileID: 0} 1648 | m_SortingLayerID: 0 1649 | m_SortingLayer: 0 1650 | m_SortingOrder: 0 1651 | --- !u!33 &1730106816 1652 | MeshFilter: 1653 | m_ObjectHideFlags: 0 1654 | m_CorrespondingSourceObject: {fileID: 0} 1655 | m_PrefabInstance: {fileID: 0} 1656 | m_PrefabAsset: {fileID: 0} 1657 | m_GameObject: {fileID: 1730106812} 1658 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1659 | --- !u!4 &1730106817 1660 | Transform: 1661 | m_ObjectHideFlags: 0 1662 | m_CorrespondingSourceObject: {fileID: 0} 1663 | m_PrefabInstance: {fileID: 0} 1664 | m_PrefabAsset: {fileID: 0} 1665 | m_GameObject: {fileID: 1730106812} 1666 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1667 | m_LocalPosition: {x: -1.61, y: 2.03, z: 0} 1668 | m_LocalScale: {x: 0.67075866, y: 0.7346751, z: 1} 1669 | m_Children: [] 1670 | m_Father: {fileID: 0} 1671 | m_RootOrder: 14 1672 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1673 | --- !u!1 &1848579593 1674 | GameObject: 1675 | m_ObjectHideFlags: 0 1676 | m_CorrespondingSourceObject: {fileID: 0} 1677 | m_PrefabInstance: {fileID: 0} 1678 | m_PrefabAsset: {fileID: 0} 1679 | serializedVersion: 6 1680 | m_Component: 1681 | - component: {fileID: 1848579598} 1682 | - component: {fileID: 1848579597} 1683 | - component: {fileID: 1848579596} 1684 | - component: {fileID: 1848579595} 1685 | - component: {fileID: 1848579594} 1686 | m_Layer: 0 1687 | m_Name: Quad (11) 1688 | m_TagString: Untagged 1689 | m_Icon: {fileID: 0} 1690 | m_NavMeshLayer: 0 1691 | m_StaticEditorFlags: 0 1692 | m_IsActive: 1 1693 | --- !u!114 &1848579594 1694 | MonoBehaviour: 1695 | m_ObjectHideFlags: 0 1696 | m_CorrespondingSourceObject: {fileID: 0} 1697 | m_PrefabInstance: {fileID: 0} 1698 | m_PrefabAsset: {fileID: 0} 1699 | m_GameObject: {fileID: 1848579593} 1700 | m_Enabled: 1 1701 | m_EditorHideFlags: 0 1702 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 1703 | m_Name: 1704 | m_EditorClassIdentifier: 1705 | intensity: 1 1706 | color: {r: 1, g: 1, b: 1, a: 0} 1707 | --- !u!64 &1848579595 1708 | MeshCollider: 1709 | m_ObjectHideFlags: 0 1710 | m_CorrespondingSourceObject: {fileID: 0} 1711 | m_PrefabInstance: {fileID: 0} 1712 | m_PrefabAsset: {fileID: 0} 1713 | m_GameObject: {fileID: 1848579593} 1714 | m_Material: {fileID: 0} 1715 | m_IsTrigger: 0 1716 | m_Enabled: 1 1717 | serializedVersion: 3 1718 | m_Convex: 0 1719 | m_CookingOptions: 14 1720 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1721 | --- !u!23 &1848579596 1722 | MeshRenderer: 1723 | m_ObjectHideFlags: 0 1724 | m_CorrespondingSourceObject: {fileID: 0} 1725 | m_PrefabInstance: {fileID: 0} 1726 | m_PrefabAsset: {fileID: 0} 1727 | m_GameObject: {fileID: 1848579593} 1728 | m_Enabled: 1 1729 | m_CastShadows: 1 1730 | m_ReceiveShadows: 1 1731 | m_DynamicOccludee: 1 1732 | m_MotionVectors: 1 1733 | m_LightProbeUsage: 1 1734 | m_ReflectionProbeUsage: 1 1735 | m_RenderingLayerMask: 1 1736 | m_RendererPriority: 0 1737 | m_Materials: 1738 | - {fileID: 2100000, guid: 222a808cce549ec4f93f8d45dd28be85, type: 2} 1739 | m_StaticBatchInfo: 1740 | firstSubMesh: 0 1741 | subMeshCount: 0 1742 | m_StaticBatchRoot: {fileID: 0} 1743 | m_ProbeAnchor: {fileID: 0} 1744 | m_LightProbeVolumeOverride: {fileID: 0} 1745 | m_ScaleInLightmap: 1 1746 | m_ReceiveGI: 1 1747 | m_PreserveUVs: 0 1748 | m_IgnoreNormalsForChartDetection: 0 1749 | m_ImportantGI: 0 1750 | m_StitchLightmapSeams: 1 1751 | m_SelectedEditorRenderState: 3 1752 | m_MinimumChartSize: 4 1753 | m_AutoUVMaxDistance: 0.5 1754 | m_AutoUVMaxAngle: 89 1755 | m_LightmapParameters: {fileID: 0} 1756 | m_SortingLayerID: 0 1757 | m_SortingLayer: 0 1758 | m_SortingOrder: 0 1759 | --- !u!33 &1848579597 1760 | MeshFilter: 1761 | m_ObjectHideFlags: 0 1762 | m_CorrespondingSourceObject: {fileID: 0} 1763 | m_PrefabInstance: {fileID: 0} 1764 | m_PrefabAsset: {fileID: 0} 1765 | m_GameObject: {fileID: 1848579593} 1766 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1767 | --- !u!4 &1848579598 1768 | Transform: 1769 | m_ObjectHideFlags: 0 1770 | m_CorrespondingSourceObject: {fileID: 0} 1771 | m_PrefabInstance: {fileID: 0} 1772 | m_PrefabAsset: {fileID: 0} 1773 | m_GameObject: {fileID: 1848579593} 1774 | m_LocalRotation: {x: 0, y: 0, z: 0.00023565853, w: 1} 1775 | m_LocalPosition: {x: -0.508, y: 2.645, z: 0} 1776 | m_LocalScale: {x: 0.23872799, y: 2.2334917, z: 1} 1777 | m_Children: [] 1778 | m_Father: {fileID: 0} 1779 | m_RootOrder: 11 1780 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0.027} 1781 | --- !u!1 &1988912048 1782 | GameObject: 1783 | m_ObjectHideFlags: 0 1784 | m_CorrespondingSourceObject: {fileID: 0} 1785 | m_PrefabInstance: {fileID: 0} 1786 | m_PrefabAsset: {fileID: 0} 1787 | serializedVersion: 6 1788 | m_Component: 1789 | - component: {fileID: 1988912053} 1790 | - component: {fileID: 1988912052} 1791 | - component: {fileID: 1988912051} 1792 | - component: {fileID: 1988912050} 1793 | - component: {fileID: 1988912049} 1794 | m_Layer: 0 1795 | m_Name: Quad (2) 1796 | m_TagString: Untagged 1797 | m_Icon: {fileID: 0} 1798 | m_NavMeshLayer: 0 1799 | m_StaticEditorFlags: 0 1800 | m_IsActive: 0 1801 | --- !u!114 &1988912049 1802 | MonoBehaviour: 1803 | m_ObjectHideFlags: 0 1804 | m_CorrespondingSourceObject: {fileID: 0} 1805 | m_PrefabInstance: {fileID: 0} 1806 | m_PrefabAsset: {fileID: 0} 1807 | m_GameObject: {fileID: 1988912048} 1808 | m_Enabled: 1 1809 | m_EditorHideFlags: 0 1810 | m_Script: {fileID: 11500000, guid: 988c011f5c2e3b34c9edf938ad94436d, type: 3} 1811 | m_Name: 1812 | m_EditorClassIdentifier: 1813 | intensity: 1 1814 | color: {r: 1, g: 0, b: 0, a: 0} 1815 | --- !u!64 &1988912050 1816 | MeshCollider: 1817 | m_ObjectHideFlags: 0 1818 | m_CorrespondingSourceObject: {fileID: 0} 1819 | m_PrefabInstance: {fileID: 0} 1820 | m_PrefabAsset: {fileID: 0} 1821 | m_GameObject: {fileID: 1988912048} 1822 | m_Material: {fileID: 0} 1823 | m_IsTrigger: 0 1824 | m_Enabled: 1 1825 | serializedVersion: 3 1826 | m_Convex: 0 1827 | m_CookingOptions: 14 1828 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1829 | --- !u!23 &1988912051 1830 | MeshRenderer: 1831 | m_ObjectHideFlags: 0 1832 | m_CorrespondingSourceObject: {fileID: 0} 1833 | m_PrefabInstance: {fileID: 0} 1834 | m_PrefabAsset: {fileID: 0} 1835 | m_GameObject: {fileID: 1988912048} 1836 | m_Enabled: 1 1837 | m_CastShadows: 1 1838 | m_ReceiveShadows: 1 1839 | m_DynamicOccludee: 1 1840 | m_MotionVectors: 1 1841 | m_LightProbeUsage: 1 1842 | m_ReflectionProbeUsage: 1 1843 | m_RenderingLayerMask: 1 1844 | m_RendererPriority: 0 1845 | m_Materials: 1846 | - {fileID: 2100000, guid: 222a808cce549ec4f93f8d45dd28be85, type: 2} 1847 | m_StaticBatchInfo: 1848 | firstSubMesh: 0 1849 | subMeshCount: 0 1850 | m_StaticBatchRoot: {fileID: 0} 1851 | m_ProbeAnchor: {fileID: 0} 1852 | m_LightProbeVolumeOverride: {fileID: 0} 1853 | m_ScaleInLightmap: 1 1854 | m_ReceiveGI: 1 1855 | m_PreserveUVs: 0 1856 | m_IgnoreNormalsForChartDetection: 0 1857 | m_ImportantGI: 0 1858 | m_StitchLightmapSeams: 1 1859 | m_SelectedEditorRenderState: 3 1860 | m_MinimumChartSize: 4 1861 | m_AutoUVMaxDistance: 0.5 1862 | m_AutoUVMaxAngle: 89 1863 | m_LightmapParameters: {fileID: 0} 1864 | m_SortingLayerID: 0 1865 | m_SortingLayer: 0 1866 | m_SortingOrder: 0 1867 | --- !u!33 &1988912052 1868 | MeshFilter: 1869 | m_ObjectHideFlags: 0 1870 | m_CorrespondingSourceObject: {fileID: 0} 1871 | m_PrefabInstance: {fileID: 0} 1872 | m_PrefabAsset: {fileID: 0} 1873 | m_GameObject: {fileID: 1988912048} 1874 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1875 | --- !u!4 &1988912053 1876 | Transform: 1877 | m_ObjectHideFlags: 0 1878 | m_CorrespondingSourceObject: {fileID: 0} 1879 | m_PrefabInstance: {fileID: 0} 1880 | m_PrefabAsset: {fileID: 0} 1881 | m_GameObject: {fileID: 1988912048} 1882 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1883 | m_LocalPosition: {x: 3.467, y: 1.379, z: 0} 1884 | m_LocalScale: {x: 0.1803784, y: 4.517635, z: 1.1024} 1885 | m_Children: [] 1886 | m_Father: {fileID: 0} 1887 | m_RootOrder: 3 1888 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1889 | --- !u!1 &2136454730 1890 | GameObject: 1891 | m_ObjectHideFlags: 0 1892 | m_CorrespondingSourceObject: {fileID: 0} 1893 | m_PrefabInstance: {fileID: 0} 1894 | m_PrefabAsset: {fileID: 0} 1895 | serializedVersion: 6 1896 | m_Component: 1897 | - component: {fileID: 2136454736} 1898 | - component: {fileID: 2136454735} 1899 | - component: {fileID: 2136454734} 1900 | m_Layer: 0 1901 | m_Name: BG 1902 | m_TagString: Untagged 1903 | m_Icon: {fileID: 0} 1904 | m_NavMeshLayer: 0 1905 | m_StaticEditorFlags: 0 1906 | m_IsActive: 1 1907 | --- !u!23 &2136454734 1908 | MeshRenderer: 1909 | m_ObjectHideFlags: 0 1910 | m_CorrespondingSourceObject: {fileID: 0} 1911 | m_PrefabInstance: {fileID: 0} 1912 | m_PrefabAsset: {fileID: 0} 1913 | m_GameObject: {fileID: 2136454730} 1914 | m_Enabled: 1 1915 | m_CastShadows: 1 1916 | m_ReceiveShadows: 1 1917 | m_DynamicOccludee: 1 1918 | m_MotionVectors: 1 1919 | m_LightProbeUsage: 1 1920 | m_ReflectionProbeUsage: 1 1921 | m_RenderingLayerMask: 1 1922 | m_RendererPriority: 0 1923 | m_Materials: 1924 | - {fileID: 2100000, guid: f523478a7199ae84ba9daa48cf976933, type: 2} 1925 | m_StaticBatchInfo: 1926 | firstSubMesh: 0 1927 | subMeshCount: 0 1928 | m_StaticBatchRoot: {fileID: 0} 1929 | m_ProbeAnchor: {fileID: 0} 1930 | m_LightProbeVolumeOverride: {fileID: 0} 1931 | m_ScaleInLightmap: 1 1932 | m_ReceiveGI: 1 1933 | m_PreserveUVs: 0 1934 | m_IgnoreNormalsForChartDetection: 0 1935 | m_ImportantGI: 0 1936 | m_StitchLightmapSeams: 1 1937 | m_SelectedEditorRenderState: 3 1938 | m_MinimumChartSize: 4 1939 | m_AutoUVMaxDistance: 0.5 1940 | m_AutoUVMaxAngle: 89 1941 | m_LightmapParameters: {fileID: 0} 1942 | m_SortingLayerID: 0 1943 | m_SortingLayer: 0 1944 | m_SortingOrder: 0 1945 | --- !u!33 &2136454735 1946 | MeshFilter: 1947 | m_ObjectHideFlags: 0 1948 | m_CorrespondingSourceObject: {fileID: 0} 1949 | m_PrefabInstance: {fileID: 0} 1950 | m_PrefabAsset: {fileID: 0} 1951 | m_GameObject: {fileID: 2136454730} 1952 | m_Mesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} 1953 | --- !u!4 &2136454736 1954 | Transform: 1955 | m_ObjectHideFlags: 0 1956 | m_CorrespondingSourceObject: {fileID: 0} 1957 | m_PrefabInstance: {fileID: 0} 1958 | m_PrefabAsset: {fileID: 0} 1959 | m_GameObject: {fileID: 2136454730} 1960 | m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} 1961 | m_LocalPosition: {x: 0, y: 0, z: 1} 1962 | m_LocalScale: {x: 30, y: 20, z: 1} 1963 | m_Children: [] 1964 | m_Father: {fileID: 0} 1965 | m_RootOrder: 15 1966 | m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} 1967 | -------------------------------------------------------------------------------- /Assets/Demo/Demo Box.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 9368988cef08cdd4492ee4a6ee9e6de6 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Demo/Demo Cave.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 37a3e785ac702114287936ca4ca90737 3 | DefaultImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/Demo/Disco.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class Disco : MonoBehaviour 6 | { 7 | public float duration = 3f; 8 | 9 | [Range(0f, 1f)] 10 | public float offset = 0f; 11 | 12 | private void Update() 13 | { 14 | GetComponent().color = Color.HSVToRGB(((Time.realtimeSinceStartup / duration) + offset) % 1, 1f, 1f); 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /Assets/Demo/Disco.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ff505c453930ac64dbb683d29c6fb029 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Demo/DiscoProjectile.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class DiscoProjectile : MonoBehaviour 6 | { 7 | void OnCollisionEnter2D(Collision2D col) 8 | { 9 | GetComponent().color = Random.ColorHSV(0f, 1f, 1f, 1f, 1f, 1f); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /Assets/Demo/DiscoProjectile.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 18da6399042e0e2469ecabb720eb223f 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Demo/Materials.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f658f0306ca3b7743a2a409a85e46e25 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/bg.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: bg 11 | m_Shader: {fileID: 10752, 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 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 2800000, guid: 7e8fcdb1cefdfa040bd3af1221a133ea, type: 3} 44 | m_Scale: {x: 3, y: 2} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 1, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/bg.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f523478a7199ae84ba9daa48cf976933 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/blak.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: blak 11 | m_Shader: {fileID: 46, 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 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0, g: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/blak.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ec6297547dfe6594a9e8680ef3e89411 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/blu.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: blu 11 | m_Shader: {fileID: 10755, 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 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0, g: 0.20125055, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/blu.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 011b08f1c9959804da3d1696d03a78c1 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/dude.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: dude 11 | m_Shader: {fileID: 10751, 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 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 2800000, guid: fed0cf1ba26da0d4694217b986c56949, type: 3} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 1, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/dude.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1b485d088a62d504389df24bd80ecb19 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/green.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: green 11 | m_Shader: {fileID: 10755, 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 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 0.08675194, g: 1, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/green.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 4990f247bfa8def48aa4990353f1352d 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/mat.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: mat 11 | m_Shader: {fileID: 10755, 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 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 1, b: 1, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/mat.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 222a808cce549ec4f93f8d45dd28be85 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/red.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: red 11 | m_Shader: {fileID: 10755, 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 | - _BumpMap: 23 | m_Texture: {fileID: 0} 24 | m_Scale: {x: 1, y: 1} 25 | m_Offset: {x: 0, y: 0} 26 | - _DetailAlbedoMap: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | - _DetailMask: 31 | m_Texture: {fileID: 0} 32 | m_Scale: {x: 1, y: 1} 33 | m_Offset: {x: 0, y: 0} 34 | - _DetailNormalMap: 35 | m_Texture: {fileID: 0} 36 | m_Scale: {x: 1, y: 1} 37 | m_Offset: {x: 0, y: 0} 38 | - _EmissionMap: 39 | m_Texture: {fileID: 0} 40 | m_Scale: {x: 1, y: 1} 41 | m_Offset: {x: 0, y: 0} 42 | - _MainTex: 43 | m_Texture: {fileID: 0} 44 | m_Scale: {x: 1, y: 1} 45 | m_Offset: {x: 0, y: 0} 46 | - _MetallicGlossMap: 47 | m_Texture: {fileID: 0} 48 | m_Scale: {x: 1, y: 1} 49 | m_Offset: {x: 0, y: 0} 50 | - _OcclusionMap: 51 | m_Texture: {fileID: 0} 52 | m_Scale: {x: 1, y: 1} 53 | m_Offset: {x: 0, y: 0} 54 | - _ParallaxMap: 55 | m_Texture: {fileID: 0} 56 | m_Scale: {x: 1, y: 1} 57 | m_Offset: {x: 0, y: 0} 58 | m_Floats: 59 | - _BumpScale: 1 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _GlossMapScale: 1 64 | - _Glossiness: 0.5 65 | - _GlossyReflections: 1 66 | - _Metallic: 0 67 | - _Mode: 0 68 | - _OcclusionStrength: 1 69 | - _Parallax: 0.02 70 | - _SmoothnessTextureChannel: 0 71 | - _SpecularHighlights: 1 72 | - _SrcBlend: 1 73 | - _UVSec: 0 74 | - _ZWrite: 1 75 | m_Colors: 76 | - _Color: {r: 1, g: 0, b: 0, a: 1} 77 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 78 | -------------------------------------------------------------------------------- /Assets/Demo/Materials/red.mat.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e5d53b43f79a6f44bbd622460d19d81f 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 2100000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/Post-process Volume Profile.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &-4324874875767133062 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: 6050e2d5de785ce4d931e4dbdbf2d755, type: 3} 13 | m_Name: ChromaticAberration 14 | m_EditorClassIdentifier: 15 | active: 1 16 | enabled: 17 | overrideState: 1 18 | value: 1 19 | spectralLut: 20 | overrideState: 1 21 | value: {fileID: 0} 22 | defaultState: 1 23 | intensity: 24 | overrideState: 1 25 | value: 0.1 26 | fastMode: 27 | overrideState: 1 28 | value: 0 29 | --- !u!114 &11400000 30 | MonoBehaviour: 31 | m_ObjectHideFlags: 0 32 | m_CorrespondingSourceObject: {fileID: 0} 33 | m_PrefabInstance: {fileID: 0} 34 | m_PrefabAsset: {fileID: 0} 35 | m_GameObject: {fileID: 0} 36 | m_Enabled: 1 37 | m_EditorHideFlags: 0 38 | m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3} 39 | m_Name: Post-process Volume Profile 40 | m_EditorClassIdentifier: 41 | settings: 42 | - {fileID: -4324874875767133062} 43 | - {fileID: 876391258342951849} 44 | --- !u!114 &876391258342951849 45 | MonoBehaviour: 46 | m_ObjectHideFlags: 3 47 | m_CorrespondingSourceObject: {fileID: 0} 48 | m_PrefabInstance: {fileID: 0} 49 | m_PrefabAsset: {fileID: 0} 50 | m_GameObject: {fileID: 0} 51 | m_Enabled: 1 52 | m_EditorHideFlags: 0 53 | m_Script: {fileID: 11500000, guid: 48a79b01ea5641d4aa6daa2e23605641, type: 3} 54 | m_Name: Bloom 55 | m_EditorClassIdentifier: 56 | active: 1 57 | enabled: 58 | overrideState: 1 59 | value: 1 60 | intensity: 61 | overrideState: 1 62 | value: 5 63 | threshold: 64 | overrideState: 1 65 | value: 0.8 66 | softKnee: 67 | overrideState: 1 68 | value: 0.5 69 | clamp: 70 | overrideState: 1 71 | value: 65472 72 | diffusion: 73 | overrideState: 1 74 | value: 7 75 | anamorphicRatio: 76 | overrideState: 1 77 | value: 1 78 | color: 79 | overrideState: 1 80 | value: {r: 1, g: 1, b: 1, a: 1} 81 | fastMode: 82 | overrideState: 1 83 | value: 0 84 | dirtTexture: 85 | overrideState: 1 86 | value: {fileID: 0} 87 | defaultState: 1 88 | dirtIntensity: 89 | overrideState: 1 90 | value: 0 91 | -------------------------------------------------------------------------------- /Assets/Demo/Post-process Volume Profile.asset.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ad8730d6b3639d94fa3549b199819ff2 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 11400000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 61804c460a23ba648b3b92ee7f6c28bf 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/bg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddupont808/Unity2D-Pathtracer/aa766249fea4daa4db3fbf28322f9059724d497e/Assets/Demo/bg.jpg -------------------------------------------------------------------------------- /Assets/Demo/bg.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 7e8fcdb1cefdfa040bd3af1221a133ea 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 0 38 | wrapV: 0 39 | wrapW: 0 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 0 53 | spriteTessellationDetail: -1 54 | textureType: 0 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 2048 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | spriteSheet: 86 | serializedVersion: 2 87 | sprites: [] 88 | outline: [] 89 | physicsShape: [] 90 | bones: [] 91 | spriteID: 5e97eb03825dee720800000000000000 92 | internalID: 0 93 | vertices: [] 94 | indices: 95 | edges: [] 96 | weights: [] 97 | secondaryTextures: [] 98 | spritePackingTag: 99 | pSDRemoveMatte: 0 100 | pSDShowRemoveMatteOption: 0 101 | userData: 102 | assetBundleName: 103 | assetBundleVariant: 104 | -------------------------------------------------------------------------------- /Assets/Demo/bouncy.physicsMaterial2D: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!62 &6200000 4 | PhysicsMaterial2D: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_Name: bouncy 10 | friction: 0 11 | bounciness: 0.25 12 | -------------------------------------------------------------------------------- /Assets/Demo/bouncy.physicsMaterial2D.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2de8b6334ff8c9748bbe867ecceef2ac 3 | NativeFormatImporter: 4 | externalObjects: {} 5 | mainObjectFileID: 6200000 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Demo/dude.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddupont808/Unity2D-Pathtracer/aa766249fea4daa4db3fbf28322f9059724d497e/Assets/Demo/dude.png -------------------------------------------------------------------------------- /Assets/Demo/dude.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fed0cf1ba26da0d4694217b986c56949 3 | TextureImporter: 4 | internalIDToNameTable: [] 5 | externalObjects: {} 6 | serializedVersion: 10 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 0 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 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: 0 35 | aniso: -1 36 | mipBias: -100 37 | wrapU: 1 38 | wrapV: 1 39 | wrapW: 1 40 | nPOTScale: 0 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 1 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spritePixelsToUnits: 100 49 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 50 | spriteGenerateFallbackPhysicsShape: 1 51 | alphaUsage: 1 52 | alphaIsTransparency: 1 53 | spriteTessellationDetail: -1 54 | textureType: 8 55 | textureShape: 1 56 | singleChannelComponent: 0 57 | maxTextureSizeSet: 0 58 | compressionQualitySet: 0 59 | textureFormatSet: 0 60 | platformSettings: 61 | - serializedVersion: 3 62 | buildTarget: DefaultTexturePlatform 63 | maxTextureSize: 2048 64 | resizeAlgorithm: 0 65 | textureFormat: -1 66 | textureCompression: 1 67 | compressionQuality: 50 68 | crunchedCompression: 0 69 | allowsAlphaSplitting: 0 70 | overridden: 0 71 | androidETC2FallbackOverride: 0 72 | forceMaximumCompressionQuality_BC6H_BC7: 0 73 | - serializedVersion: 3 74 | buildTarget: Standalone 75 | maxTextureSize: 2048 76 | resizeAlgorithm: 0 77 | textureFormat: -1 78 | textureCompression: 1 79 | compressionQuality: 50 80 | crunchedCompression: 0 81 | allowsAlphaSplitting: 0 82 | overridden: 0 83 | androidETC2FallbackOverride: 0 84 | forceMaximumCompressionQuality_BC6H_BC7: 0 85 | spriteSheet: 86 | serializedVersion: 2 87 | sprites: [] 88 | outline: [] 89 | physicsShape: [] 90 | bones: [] 91 | spriteID: 5e97eb03825dee720800000000000000 92 | internalID: 0 93 | vertices: [] 94 | indices: 95 | edges: [] 96 | weights: [] 97 | secondaryTextures: [] 98 | spritePackingTag: 99 | pSDRemoveMatte: 0 100 | pSDShowRemoveMatteOption: 0 101 | userData: 102 | assetBundleName: 103 | assetBundleVariant: 104 | -------------------------------------------------------------------------------- /Assets/Pathtracer.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e16cec698240bc64990d06eb7a5e7563 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Pathtracer/RaymarchSimple.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using System.Collections; 3 | 4 | [RequireComponent(typeof(Camera))] 5 | [AddComponentMenu("Effects/Raymarch (Generic)")] 6 | public class RaymarchSimple : MonoBehaviour 7 | { 8 | 9 | Material blitMaterial; 10 | 11 | [Header("Rendering")] 12 | public FilterMode filterMode = FilterMode.Bilinear; 13 | 14 | public float resolution = 0.5f; 15 | [Range(0f, 1f)] 16 | public float lerp = 1f; 17 | 18 | [Range(0f, 5f)] 19 | public float gamma = 2.2f; 20 | [Range(0f, 1f)] 21 | public float shadowStrength = 1f; 22 | 23 | [Header("Direct lighting")] 24 | public bool showShadowMap = false; 25 | [Range(0f, 5f)] 26 | public float dweight = 1f; 27 | [Range(0f, 1f)] 28 | public float dlerp = 1f; 29 | 30 | [System.Serializable] 31 | struct Box 32 | { 33 | public Vector2 position; 34 | public Vector2 halfSize; 35 | public float theta; 36 | 37 | public Color diffuse; 38 | } 39 | 40 | [Header("Tracer Settings")] 41 | 42 | public float bounceBias = 0.1f; 43 | 44 | Texture2D randomTex; 45 | Camera camera; 46 | 47 | ComputeBuffer objBuffer; 48 | Box[] boxes; 49 | 50 | [Header("Shaders")] 51 | public ComputeShader sdfShader; 52 | public ComputeShader tracer; 53 | public Shader blitShader; 54 | 55 | [Header("Render Textures")] 56 | public RenderTexture sdf; 57 | public RenderTexture diffuseMap; 58 | public RenderTexture shadowMap; 59 | public RenderTexture tracerOutput; 60 | public RenderTexture lightingMap; 61 | 62 | GaussianBlurStatic blur; 63 | 64 | void Start() 65 | { 66 | blur = GetComponent(); 67 | diffuseMap = new RenderTexture((int)(Screen.width * resolution / 8) * 8, (int)(Screen.height * resolution / 8) * 8, 1, RenderTextureFormat.ARGBFloat); 68 | diffuseMap.enableRandomWrite = true; 69 | diffuseMap.Create(); 70 | 71 | sdfShader.SetTexture(0, "Diffuse", diffuseMap); 72 | tracer.SetTexture(0, "_Diffuse", diffuseMap); 73 | tracer.SetTexture(1, "_Diffuse", diffuseMap); 74 | 75 | sdf = new RenderTexture((int)(Screen.width * resolution / 8) * 8, (int)(Screen.height * resolution / 8) * 8, 1, RenderTextureFormat.RFloat); 76 | sdf.enableRandomWrite = true; 77 | sdf.Create(); 78 | 79 | sdfShader.SetTexture(0, "SDF", sdf); 80 | tracer.SetTexture(0, "_SDF", sdf); 81 | tracer.SetTexture(1, "_SDF", sdf); 82 | tracer.SetInt("SDFWidth", sdf.width); 83 | tracer.SetInt("SDFHeight", sdf.height); 84 | 85 | tracerOutput = new RenderTexture((int)(Screen.width * resolution / 8) * 8, (int)(Screen.height * resolution / 8) * 8, 1, RenderTextureFormat.ARGBFloat); 86 | tracerOutput.enableRandomWrite = true; 87 | tracerOutput.Create(); 88 | 89 | tracer.SetTexture(0, "Result", tracerOutput); 90 | 91 | shadowMap = new RenderTexture((int)(Screen.width * resolution / 8) * 8, (int)(Screen.height * resolution / 8) * 8, 1, RenderTextureFormat.ARGBFloat); 92 | shadowMap.enableRandomWrite = true; 93 | shadowMap.Create(); 94 | 95 | tracer.SetTexture(1, "Result", shadowMap); 96 | tracer.SetTexture(0, "_ShadowMap", shadowMap); 97 | 98 | lightingMap = new RenderTexture((int)(Screen.width * resolution / 8) * 8, (int)(Screen.height * resolution / 8) * 8, 1, RenderTextureFormat.ARGBFloat); 99 | lightingMap.enableRandomWrite = true; 100 | lightingMap.Create(); 101 | 102 | camera = GetComponent(); 103 | 104 | blitMaterial = new Material(blitShader); 105 | //blitMaterial.SetTexture("_Traced", tracerOutput); 106 | 107 | sdBox[] sdboxes = FindObjectsOfType(); 108 | boxes = new Box[sdboxes.Length]; 109 | 110 | for(int i = 0; i < sdboxes.Length; i++) 111 | { 112 | Box box; 113 | 114 | box.position = sdboxes[i].transform.position; 115 | box.theta = sdboxes[i].transform.eulerAngles.z * Mathf.Deg2Rad; 116 | box.halfSize = sdboxes[i].transform.localScale * 0.5f; 117 | box.diffuse = sdboxes[i].color * sdboxes[i].intensity; 118 | 119 | boxes[i] = box; 120 | } 121 | 122 | objBuffer = new ComputeBuffer(sdboxes.Length, sizeof(float) * 9); 123 | objBuffer.SetData(boxes); 124 | 125 | sdfShader.SetBuffer(0, "Objects", objBuffer); 126 | } 127 | 128 | private void OnDestroy() 129 | { 130 | if(objBuffer != null) 131 | objBuffer.Dispose(); 132 | } 133 | 134 | void Update() 135 | { 136 | Vector3 rorg = camera.ScreenPointToRay(Vector3.zero).origin; 137 | Vector3 roff = camera.ScreenPointToRay(new Vector3(Screen.width, Screen.height)).origin - rorg; 138 | roff.x /= sdf.width; 139 | roff.y /= sdf.height; 140 | 141 | /** Calculate SDF **/ 142 | sdBox[] sdboxes = FindObjectsOfType(); 143 | if (boxes.Length != sdboxes.Length) 144 | { 145 | Debug.Log("Object buffer rebuilt"); 146 | 147 | objBuffer.Dispose(); 148 | objBuffer = new ComputeBuffer(sdboxes.Length, sizeof(float) * 9); 149 | sdfShader.SetBuffer(0, "Objects", objBuffer); 150 | 151 | boxes = new Box[sdboxes.Length]; 152 | } 153 | 154 | for (int i = 0; i < sdboxes.Length; i++) 155 | { 156 | Box box; 157 | 158 | box.position = sdboxes[i].transform.position; 159 | box.theta = sdboxes[i].transform.eulerAngles.z * Mathf.Deg2Rad; 160 | box.halfSize = sdboxes[i].transform.localScale * 0.5f; 161 | box.diffuse = sdboxes[i].color * sdboxes[i].intensity; 162 | 163 | boxes[i] = box; 164 | } 165 | 166 | objBuffer.SetData(boxes); 167 | sdfShader.SetInt("ObjLength", sdboxes.Length); 168 | 169 | sdfShader.SetVector("CameraOrigin", new Vector2(rorg.x, rorg.y)); 170 | sdfShader.SetVector("CameraOffset", new Vector2(roff.x, roff.y)); 171 | sdfShader.Dispatch(0, sdf.width / 8, sdf.height / 8, 1); 172 | 173 | /** Calculate Lighting **/ 174 | 175 | tracer.SetFloat("seed", Random.Range(0, 15.0f)); 176 | tracer.SetFloat("DirectLerp", dlerp); 177 | tracer.SetFloat("Lerp", lerp); 178 | tracer.SetFloat("BounceBias", bounceBias); 179 | tracer.SetFloat("DirectWeight", dweight); 180 | 181 | tracer.SetVector("CameraOrigin", new Vector2(rorg.x, rorg.y)); 182 | tracer.SetVector("CameraOffset", new Vector2(roff.x, roff.y)); 183 | 184 | tracer.Dispatch(1, tracerOutput.width / 8, tracerOutput.height / 8, 1); 185 | tracer.Dispatch(0, tracerOutput.width / 8, tracerOutput.height / 8, 1); 186 | 187 | /** Apply post FX **/ 188 | blur.BlurImage(tracerOutput, lightingMap); 189 | 190 | if (lightingMap.filterMode != filterMode) 191 | lightingMap.filterMode = filterMode; 192 | 193 | blitMaterial.SetFloat("_InvGamma", 1f / gamma); 194 | blitMaterial.SetFloat("_ShadowStrength", shadowStrength); 195 | blitMaterial.SetTexture("_Traced", showShadowMap ? shadowMap : lightingMap); 196 | } 197 | 198 | [ImageEffectOpaque] 199 | void OnRenderImage(RenderTexture source, RenderTexture destination) 200 | { 201 | Graphics.Blit(source, destination, blitMaterial, 0); // use given effect shader as image effect 202 | } 203 | } -------------------------------------------------------------------------------- /Assets/Pathtracer/RaymarchSimple.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5d5a4e0ac70a248cf80b366bbd7dba7c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Pathtracer/SDF.compute: -------------------------------------------------------------------------------- 1 | #pragma kernel CSMain 2 | 3 | struct Box 4 | { 5 | float2 position; 6 | float2 halfSize; 7 | float theta; 8 | 9 | float4 diffuse; 10 | }; 11 | 12 | RWStructuredBuffer Objects; 13 | uint ObjLength; 14 | 15 | float2 CameraOrigin; 16 | float2 CameraOffset; 17 | 18 | // Adapted from: http://www.iquilezles.org/www/articles/distfunctions2d/distfunctions2d.htm 19 | float sdCircle(float2 p, float r) 20 | { 21 | return length(p) - r; 22 | } 23 | 24 | float sdBox(float2 p, float2 b) 25 | { 26 | float2 d = abs(p) - b; 27 | return length(max(d, float2(0, 0))) + min(max(d.x, d.y), 0.0); 28 | } 29 | 30 | float2 rotate(float2 samplePosition, float angle) { 31 | float sine, cosine; 32 | sincos(angle, sine, cosine); 33 | return float2(cosine * samplePosition.x + sine * samplePosition.y, cosine * samplePosition.y - sine * samplePosition.x); 34 | } 35 | 36 | float sdfBox(float2 p, Box box) { 37 | return sdBox(rotate(p - box.position, box.theta), box.halfSize); 38 | } 39 | 40 | RWTexture2D SDF; 41 | RWTexture2D Diffuse; 42 | 43 | [numthreads(8,8,1)] 44 | void CSMain (uint3 id : SV_DispatchThreadID) 45 | { 46 | float2 p = CameraOrigin + (float2(id.xy) * CameraOffset); 47 | 48 | float4 diffuse = float4(0, 0, 0, 0); 49 | float d = 10000.0; 50 | float d1 = 0; 51 | for (uint i = 0; i < ObjLength; i++) { 52 | d1 = sdfBox(p, Objects[i]); 53 | if (d1 < d) { 54 | diffuse = Objects[i].diffuse; 55 | d = d1; 56 | } 57 | } 58 | 59 | SDF[id.xy] = d; 60 | Diffuse[id.xy] = diffuse; 61 | } 62 | -------------------------------------------------------------------------------- /Assets/Pathtracer/SDF.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5a4af429521ad3949812111c02947f67 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 4 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Pathtracer/SimpleBoxdude.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class SimpleBoxdude : MonoBehaviour 6 | { 7 | public float torque = 50f; 8 | 9 | public float shootSpeed = 3f; 10 | public float recoil = 30f; 11 | public GameObject projectile; 12 | public float attractorForce = 10f; 13 | public float attractorMaxForce = 20f; 14 | 15 | List projectiles = new List(); 16 | 17 | void Start() 18 | { 19 | 20 | } 21 | 22 | void Update() 23 | { 24 | if (Input.GetKeyDown(KeyCode.A)) 25 | GetComponent().AddForce(Vector2.left * torque); 26 | if (Input.GetKeyDown(KeyCode.D)) 27 | GetComponent().AddForce(Vector2.right * torque); 28 | 29 | if(Input.GetMouseButtonDown(0) || Input.GetMouseButton(2)) 30 | { 31 | GameObject proj = Instantiate(projectile); 32 | Vector3 mpos = Camera.main.ScreenToWorldPoint(Input.mousePosition); 33 | mpos.z = transform.position.z; 34 | Vector3 dir = (mpos - transform.position).normalized; 35 | proj.transform.position = transform.position + dir; 36 | proj.SetActive(true); 37 | proj.GetComponent().velocity = dir * shootSpeed; 38 | 39 | projectiles.Add(proj.GetComponent()); 40 | } 41 | 42 | if(Input.GetMouseButton(1)) 43 | { 44 | foreach(var p in projectiles) 45 | { 46 | Vector3 mpos = Camera.main.ScreenToWorldPoint(Input.mousePosition); 47 | Vector2 diff = new Vector2(mpos.x, mpos.y) - p.position; 48 | p.AddForce(diff.normalized * Mathf.Max(attractorMaxForce, attractorForce * diff.magnitude)); 49 | } 50 | } 51 | 52 | if(Input.GetKeyDown(KeyCode.W)) 53 | { 54 | GetComponent().AddForce(Vector2.up * recoil); 55 | } 56 | } 57 | 58 | private void OnGUI() 59 | { 60 | GUILayout.Label("W/A/D - move"); 61 | GUILayout.Label("left click - shoot once"); 62 | GUILayout.Label("middle click - spam shoot"); 63 | GUILayout.Label("right click - attract"); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /Assets/Pathtracer/SimpleBoxdude.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5ac06fc0f2255894fa1546bca345862c 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Pathtracer/Tracer.compute: -------------------------------------------------------------------------------- 1 | // Each #kernel tells which function to compile; you can have many kernels 2 | #pragma kernel CSMain 3 | #pragma kernel DirectTrace 4 | 5 | float DirectWeight; 6 | float BounceBias; 7 | float Lerp; 8 | float DirectLerp; 9 | 10 | Texture2D _Diffuse; 11 | SamplerState sampler_Diffuse; 12 | 13 | Texture2D _SDF; 14 | SamplerState sampler_SDF; 15 | 16 | Texture2D _ShadowMap; 17 | SamplerState sampler_ShadowMap; 18 | 19 | int SDFWidth; 20 | int SDFHeight; 21 | 22 | RWTexture2D Result; 23 | 24 | float2 CameraOrigin; 25 | float2 CameraOffset; 26 | 27 | #define PI 3.14159265359 28 | 29 | float seed = 0; 30 | float rand(float nseed) { return frac(sin(seed + nseed)*43758.5453123); } 31 | 32 | float2 diffuse(float2 samplePosition, float angle) { 33 | float sine, cosine; 34 | sincos(angle, sine, cosine); 35 | return float2(cosine * samplePosition.x + sine * samplePosition.y, cosine * samplePosition.y - sine * samplePosition.x); 36 | } 37 | 38 | // This is the distance field function. The distance field represents the closest distance to the surface 39 | // of any object we put in the scene. If the given point (point p) is inside of an object, we return a 40 | // negative answer. 41 | float map(float2 p) { 42 | float2 uv = ((p - CameraOrigin) / CameraOffset) / float2(SDFWidth, SDFHeight); 43 | return _SDF.SampleLevel(sampler_SDF, uv, 0); 44 | } 45 | 46 | float4 mapDiffuse(float2 p) { 47 | float2 uv = ((p - CameraOrigin) / CameraOffset) / float2(SDFWidth, SDFHeight); 48 | return _Diffuse.SampleLevel(sampler_Diffuse, uv, 0); 49 | } 50 | 51 | float3 mapShadow(float2 p) { 52 | float2 uv = ((p - CameraOrigin) / CameraOffset) / float2(SDFWidth, SDFHeight); 53 | float4 col = _ShadowMap.SampleLevel(sampler_ShadowMap, uv, 0); 54 | return col.rgb / max(1, col.a); 55 | } 56 | 57 | float2 calcNormal(in float2 pos) 58 | { 59 | // epsilon - used to approximate dx when taking the derivative 60 | const float2 eps = float2(0.001, 0.0); 61 | 62 | // The idea here is to find the "gradient" of the distance field at pos 63 | // Remember, the distance field is not boolean - even if you are inside an object 64 | // the number is negative, so this calculation still works. 65 | // Essentially you are approximating the derivative of the distance field at this point. 66 | float2 nor = float2( 67 | map(pos + eps.xy).x - map(pos - eps.xy).x, 68 | map(pos + eps.yx).x - map(pos - eps.yx).x); 69 | return normalize(nor); 70 | } 71 | 72 | float3 raymarch(float2 ro, float2 rd) { 73 | const int maxstep = 64; 74 | float t = 0; // current distance traveled along ray 75 | for (int i = 0; i < maxstep; ++i) { 76 | float2 p = ro + rd * t; // World space position of sample 77 | float d = map(p); // Sample of distance field (see map()) 78 | 79 | // If the sample <= 0, we have hit something (see map()). 80 | if (d < 0.001) { 81 | return float3(p.xy, 1.0); 82 | } 83 | 84 | // If the sample > 0, we haven't hit anything yet so we should march forward 85 | // We step forward by distance d, because d is the minimum distance possible to intersect 86 | // an object (see map()). 87 | t += d; 88 | } 89 | 90 | return float3(0, 0, 0); 91 | } 92 | 93 | [numthreads(8,8,1)] 94 | void DirectTrace (uint3 id : SV_DispatchThreadID) 95 | { 96 | float2 ro = CameraOrigin + (float2(id.xy) * CameraOffset); 97 | float4 col = float4(0, 0, 0, 0); 98 | 99 | if(map(ro) < length(CameraOffset) * 1.5) { 100 | const float nseed = (id.x * 281.487977) + (id.y * 492.384134); 101 | 102 | float2 n = calcNormal(ro.xy); 103 | const int samples_per_pixel = 10; 104 | for (int i = 0; i < samples_per_pixel; i++) { 105 | float3 light = float3(1.0, 1.0, 1.0); 106 | 107 | float r = rand(nseed + (i * 323.3192)); 108 | float2 R = diffuse(n, (r - 0.5) * PI * 2.0); 109 | 110 | float3 p = raymarch(ro, R); 111 | if (p.z < 0.5) { //no hit 112 | break; 113 | } 114 | 115 | float4 color = mapDiffuse(p.xy); 116 | 117 | if (color.a > 0) { //hit light 118 | col.rgb += light * color.rgb; 119 | break; 120 | } 121 | } 122 | 123 | col.a += samples_per_pixel; 124 | } 125 | 126 | Result[id.xy] = lerp(Result.Load(id.xy) + col, col, DirectLerp); 127 | } 128 | 129 | 130 | [numthreads(8,8,1)] 131 | void CSMain (uint3 id : SV_DispatchThreadID) 132 | { 133 | float2 ro = CameraOrigin + (float2(id.xy) * CameraOffset); 134 | float4 col = float4(0, 0, 0, 0); 135 | 136 | const float nseed = (id.x * 281.487977) + (id.y * 492.384134); 137 | 138 | const int samples_per_pixel = 100; 139 | const int bounces = 2; 140 | for (int i = 0; i < samples_per_pixel; i++) { 141 | float3 light = float3(1.0, 1.0, 1.0); 142 | float3 p = raymarch(ro, normalize(float2(rand(nseed - i * 323.3192) - 0.5, rand(nseed + i * 323.3192) - 0.5))); 143 | for (int j = 0; j < bounces; j++) { 144 | if (p.z < 0.5) { //no hit 145 | break; 146 | } 147 | 148 | float4 color = mapDiffuse(p.xy); 149 | 150 | if (color.a > 0) { //hit light 151 | col.rgb += light * color.rgb; 152 | break; 153 | } 154 | 155 | //hit object 156 | 157 | float2 n = calcNormal(p.xy); 158 | float r = rand(nseed + (i * 323.3192) + (j * 218.5324)); 159 | float2 R = diffuse(n, (r - 0.5) * PI * 2.0); 160 | 161 | light *= color.rgb; 162 | col.rgb += light * mapShadow(p.xy + (n * length(CameraOffset))) * DirectWeight; 163 | 164 | p = raymarch(p.xy + (n * BounceBias), R); 165 | } 166 | } 167 | 168 | col.a += samples_per_pixel; 169 | 170 | Result[id.xy] = lerp(Result.Load(id.xy) + col, col, Lerp); 171 | } 172 | -------------------------------------------------------------------------------- /Assets/Pathtracer/Tracer.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6d5aa46692ba0480098266e435a0fc95 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 65536 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Pathtracer/sdBox.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class sdBox : MonoBehaviour 6 | { 7 | public float intensity = 1.0f; 8 | public Color color = Color.white; 9 | } 10 | -------------------------------------------------------------------------------- /Assets/Pathtracer/sdBox.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 988c011f5c2e3b34c9edf938ad94436d 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.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2e9cc91ef7d13f14c8a80a968367b880 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Scripts/BlurCore.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | [RequireComponent(typeof(Camera))] 6 | public class BlurCore : MonoBehaviour 7 | { 8 | #if UNITY_IOS || UNITY_IPHONE || UNITY_STANDALONE_OSX || UNITY_EDITOR_OSX 9 | protected const int gpuMemoryBlockSizeBlur = 484; 10 | protected const int maxRadius = 64; 11 | #elif UNITY_ANDROID 12 | protected const int gpuMemoryBlockSizeBlur = 64; 13 | protected const int maxRadius = 32; 14 | #else 15 | protected const int gpuMemoryBlockSizeBlur = 1024; 16 | protected const int maxRadius = 92; 17 | #endif 18 | 19 | protected private bool init = false; 20 | 21 | [Range(0.01f, 1.0f)] 22 | public float screenScaling = 1.0f; 23 | 24 | [Range(0.0f, maxRadius)] 25 | public float radius = 1; 26 | 27 | public ComputeShader blurShader; 28 | 29 | protected int texWidthVisibleSize, texHeightVisibleSize = 0; 30 | protected Camera thisCamera; 31 | 32 | protected RenderTexture verBlurOutput = null; 33 | protected RenderTexture horBlurOutput = null; 34 | protected RenderTexture tempSource = null; 35 | 36 | protected private int blurHorID; 37 | protected private int blurVerID; 38 | 39 | protected List kernelsList = new List(); 40 | 41 | void ReportCompuetShaderError() 42 | { 43 | Debug.LogError("Error in compute shader, connect proper compute shader"); 44 | } 45 | 46 | protected void CheckForErrorsAndResolution() 47 | { 48 | if (!blurShader) 49 | { 50 | init = false; 51 | ClearBuffers(); 52 | ClearTextures(); 53 | } 54 | 55 | texWidthVisibleSize = Mathf.RoundToInt(thisCamera.pixelWidth * screenScaling); 56 | texHeightVisibleSize = Mathf.RoundToInt(thisCamera.pixelHeight * screenScaling); 57 | checkForKernels(); 58 | if (texWidthVisibleSize != thisCamera.pixelWidth || texHeightVisibleSize != thisCamera.pixelHeight) 59 | { 60 | warmUpTextures(); 61 | } 62 | } 63 | 64 | public void ClearTexture(ref RenderTexture textureToClear) 65 | { 66 | if (null != textureToClear) 67 | { 68 | textureToClear.Release(); 69 | textureToClear = null; 70 | } 71 | } 72 | 73 | protected virtual void ClearBuffers() 74 | { 75 | 76 | } 77 | 78 | protected void ClearTextures() 79 | { 80 | ClearTexture(ref verBlurOutput); 81 | ClearTexture(ref horBlurOutput); 82 | ClearTexture(ref tempSource); 83 | } 84 | 85 | public void CreateTextue(ref RenderTexture textureToMake) 86 | { 87 | textureToMake = new RenderTexture(texWidthVisibleSize, texHeightVisibleSize, 0, RenderTextureFormat.ARGBFloat, RenderTextureReadWrite.Linear); 88 | textureToMake.enableRandomWrite = true; 89 | textureToMake.wrapMode = TextureWrapMode.Clamp; 90 | textureToMake.Create(); 91 | 92 | Debug.Log("F"); 93 | } 94 | 95 | 96 | protected void warmUpTextures() 97 | { 98 | 99 | texWidthVisibleSize = Mathf.RoundToInt(thisCamera.pixelWidth * screenScaling); 100 | texHeightVisibleSize = Mathf.RoundToInt(thisCamera.pixelHeight * screenScaling); 101 | 102 | CreateTextue(ref verBlurOutput); 103 | CreateTextue(ref horBlurOutput); 104 | CreateTextue(ref tempSource); 105 | 106 | blurShader.SetTexture(blurHorID, "source", tempSource); 107 | blurShader.SetTexture(blurHorID, "horBlurOutput", horBlurOutput); 108 | 109 | blurShader.SetTexture(blurVerID, "horBlurOutput", horBlurOutput); 110 | blurShader.SetTexture(blurVerID, "verBlurOutput", verBlurOutput); 111 | } 112 | protected void SetRadius() 113 | { 114 | blurShader.SetInt("blurRadius", (int)radius); 115 | } 116 | 117 | protected virtual void Init() 118 | { 119 | if (!SystemInfo.supportsComputeShaders) 120 | { 121 | Debug.LogError(" It seems your target Hardware does not support Compute Shaders."); 122 | return; 123 | } 124 | 125 | if (!blurShader) 126 | { 127 | Debug.LogError("No BlurShader"); 128 | return; 129 | } 130 | 131 | blurHorID = blurShader.FindKernel("HorzBlurCs"); 132 | blurVerID = blurShader.FindKernel("VertBlurCs"); 133 | kernelsList.Add(blurHorID); 134 | kernelsList.Add(blurVerID); 135 | 136 | SetRadius(); 137 | thisCamera = GetComponent(); 138 | 139 | if (!thisCamera) 140 | { 141 | Debug.LogError("Object has no Camera"); 142 | return; 143 | } 144 | warmUpTextures(); 145 | 146 | } 147 | 148 | protected void checkForKernels() 149 | { 150 | foreach (int kernel in kernelsList) 151 | { 152 | if (kernel < 0) 153 | { 154 | ReportCompuetShaderError(); 155 | } 156 | } 157 | } 158 | 159 | 160 | 161 | private void OnEnable() 162 | { 163 | OnBlurEnable(); 164 | } 165 | private void OnDisable() 166 | { 167 | OnBlurDisable(); 168 | } 169 | 170 | private void OnDestroy() 171 | { 172 | OnBlurDestroy(); 173 | } 174 | 175 | protected virtual void OnBlurEnable() 176 | { 177 | kernelsList = new List(); 178 | Init(); 179 | warmUpTextures(); 180 | init = true; 181 | } 182 | 183 | protected virtual void OnBlurDisable() 184 | { 185 | ClearTextures(); 186 | ClearBuffers(); 187 | init = false; 188 | } 189 | 190 | protected virtual void OnBlurDestroy() 191 | { 192 | ClearTextures(); 193 | ClearBuffers(); 194 | init = false; 195 | } 196 | 197 | protected void DisptachWithSource(ref RenderTexture source, ref RenderTexture destination) 198 | { 199 | if (!init) 200 | return; 201 | int horizontalBlurDisX = Mathf.CeilToInt(((float)texWidthVisibleSize / (float)gpuMemoryBlockSizeBlur)); // it is here becouse res of window can change 202 | int horizontalBlurDisY = Mathf.CeilToInt(((float)texHeightVisibleSize / (float)gpuMemoryBlockSizeBlur)); 203 | 204 | Graphics.Blit(source, tempSource); 205 | blurShader.Dispatch(blurHorID, horizontalBlurDisX, texHeightVisibleSize, 1); 206 | blurShader.Dispatch(blurVerID, texWidthVisibleSize, horizontalBlurDisY, 1); 207 | 208 | Graphics.Blit(verBlurOutput, destination); 209 | } 210 | protected void DisptachWithSource(ref RenderTexture source, ref RenderTexture destination, Material postProcessMat) 211 | { 212 | if (!init) 213 | return; 214 | int horizontalBlurDisX = Mathf.CeilToInt(((float)texWidthVisibleSize / (float)gpuMemoryBlockSizeBlur)); // it is here becouse res of window can change 215 | int horizontalBlurDisY = Mathf.CeilToInt(((float)texHeightVisibleSize / (float)gpuMemoryBlockSizeBlur)); 216 | 217 | Graphics.Blit(source, tempSource, postProcessMat); 218 | blurShader.Dispatch(blurHorID, horizontalBlurDisX, texHeightVisibleSize, 1); 219 | blurShader.Dispatch(blurVerID, texWidthVisibleSize, horizontalBlurDisY, 1); 220 | 221 | Graphics.Blit(verBlurOutput, destination, postProcessMat); 222 | } 223 | 224 | } 225 | -------------------------------------------------------------------------------- /Assets/Scripts/BlurCore.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ce803b1dd80c45148bb197a8dca7b9e7 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/BombDestroyer.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class BombDestroyer : MonoBehaviour 6 | { 7 | public GameObject bombObject; 8 | public ParticleSystem bombParticleSystem; 9 | 10 | bool markParticlesForDestory = false; 11 | void Update() 12 | { 13 | if(markParticlesForDestory) 14 | { 15 | if(!bombParticleSystem.isPlaying) 16 | { 17 | Destroy(this.gameObject); 18 | } 19 | } 20 | } 21 | 22 | void OnCollisionEnter(Collision collision) 23 | { 24 | Destroy(bombObject); 25 | markParticlesForDestory = true; 26 | bombParticleSystem.Play(); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Assets/Scripts/BombDestroyer.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1214ddc3c455539488fe42cbde079689 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/BoxBlur.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | [ExecuteInEditMode] 6 | public class BoxBlur : BlurCore 7 | { 8 | protected override void Init() 9 | { 10 | base.Init(); 11 | base.checkForKernels(); 12 | init = true; 13 | } 14 | 15 | private void OnValidate() 16 | { 17 | if(!init) 18 | Init(); 19 | 20 | SetRadius(); 21 | 22 | } 23 | 24 | void OnRenderImage(RenderTexture source, RenderTexture destination) 25 | { 26 | CheckForErrorsAndResolution(); 27 | DisptachWithSource(ref source, ref destination); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /Assets/Scripts/BoxBlur.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 55200b8e9501d904089dce9217784e57 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/GaussianBlurDynamic.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | [ExecuteInEditMode] 6 | public class GaussianBlurDynamic : BlurCore 7 | { 8 | protected int sumsResetID; 9 | protected int weightsCalculatorID; 10 | protected int weightsNormalizerID; 11 | 12 | private ComputeBuffer weightsBuffer; 13 | private ComputeBuffer weightsSum; 14 | 15 | public float GetSigma(float r) 16 | { float clampedRadius = Mathf.Min(r,gpuMemoryBlockSizeBlur/2); 17 | return r/3.0f; 18 | } 19 | 20 | protected override void ClearBuffers() 21 | { 22 | if(weightsBuffer!=null) 23 | weightsBuffer.Dispose(); 24 | if(weightsSum!=null) 25 | weightsSum.Dispose(); 26 | } 27 | 28 | protected override void Init() 29 | { 30 | base.Init(); 31 | weightsCalculatorID = blurShader.FindKernel("WeightCaculatorCs"); 32 | weightsNormalizerID = blurShader.FindKernel("WeightNormalizerCs"); 33 | sumsResetID = blurShader.FindKernel("SumsDeleteCS"); 34 | 35 | kernelsList.Add(weightsCalculatorID); 36 | kernelsList.Add(weightsNormalizerID); 37 | kernelsList.Add(sumsResetID); 38 | 39 | base.checkForKernels(); 40 | 41 | weightsSum = new ComputeBuffer(1, sizeof(float)); 42 | weightsBuffer = new ComputeBuffer(Mathf.Min((int)maxRadius * 2 + 1,gpuMemoryBlockSizeBlur/2), sizeof(float)); 43 | 44 | blurShader.SetBuffer(blurHorID, "gWeights", weightsBuffer); 45 | blurShader.SetBuffer(blurVerID, "gWeights", weightsBuffer); 46 | blurShader.SetBuffer(weightsCalculatorID, "gWeights", weightsBuffer); 47 | blurShader.SetBuffer(weightsNormalizerID, "gWeights", weightsBuffer); 48 | blurShader.SetFloat("sigma", GetSigma(radius)); 49 | 50 | blurShader.SetBuffer(sumsResetID,"weightsSum",weightsSum); 51 | blurShader.SetBuffer(weightsCalculatorID,"weightsSum",weightsSum); 52 | blurShader.SetBuffer(weightsNormalizerID,"weightsSum",weightsSum); 53 | 54 | init = true; 55 | } 56 | private void OnValidate() 57 | { 58 | if(!init) 59 | Init(); 60 | } 61 | 62 | protected virtual void OnRenderImage(RenderTexture source, RenderTexture destination) 63 | { 64 | float pingPongRadius = Mathf.PingPong(Time.time*40.0f, radius); 65 | if (pingPongRadius < 0.5f || blurShader == null) 66 | { 67 | Graphics.Blit(source, destination); // just copy 68 | return; 69 | } 70 | CheckForErrorsAndResolution(); 71 | 72 | blurShader.SetInt("blurRadius", (int)(pingPongRadius)); 73 | blurShader.SetFloat("sigma", GetSigma(pingPongRadius)); 74 | 75 | blurShader.Dispatch(sumsResetID,1,1,1); 76 | blurShader.Dispatch(weightsCalculatorID,(int)pingPongRadius + 1,1,1); 77 | blurShader.Dispatch(weightsNormalizerID,(int)pingPongRadius * 2 + 1,1,1); 78 | /// use with this block if you want to debug weights 79 | /* 80 | float[] blurWeights = new float[Mathf.Min((int)maxRadius * 2 + 1,gpuMemoryBlockSizeBlur/2)]; 81 | weightsBuffer.GetData(blurWeights); 82 | for (int t = 0; t < radius * 2 + 1; t++) 83 | { 84 | Debug.Log(blurWeights[t]); 85 | } 86 | 87 | uint[] weightsSumData = new uint[1]; 88 | weightsSum.GetData(weightsSumData); 89 | Debug.Log("sum data: " + weightsSumData[0] / uintToFloatConvert); 90 | */ 91 | DisptachWithSource(ref source, ref destination); 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /Assets/Scripts/GaussianBlurDynamic.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 1796992dbf8d13048a0975ea76002f91 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/GaussianBlurStatic.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class GaussianBlurStatic : BlurCore 6 | { 7 | private ComputeBuffer weightsBuffer; 8 | 9 | protected override void Init() 10 | { 11 | base.Init(); 12 | base.checkForKernels(); 13 | init = true; 14 | } 15 | 16 | float[] OneDimensinalKernel(int radius, float sigma) 17 | { 18 | float[] kernelResult = new float[radius * 2 + 1]; 19 | float sum = 0.0f; 20 | for(int t = 0; t< radius; t++) 21 | { 22 | double newBlurWalue = 0.39894 * Mathf.Exp(-0.5f * t*t / (sigma * sigma)) / sigma; 23 | kernelResult[radius+t] = (float)newBlurWalue; 24 | kernelResult[radius-t] = (float)newBlurWalue; 25 | if(t!=0) 26 | sum += (float)newBlurWalue*2.0f; 27 | else 28 | sum += (float)newBlurWalue; 29 | } 30 | // normalize kernels 31 | for(int k = 0; k< radius*2 +1; k++) 32 | { 33 | kernelResult[k]/=sum; 34 | } 35 | return kernelResult; 36 | } 37 | private void CalculateWeights() 38 | { 39 | 40 | if (weightsBuffer != null) 41 | weightsBuffer.Dispose(); 42 | 43 | float sigma = ((int)radius)/1.5f; 44 | 45 | weightsBuffer = new ComputeBuffer((int)radius * 2 + 1, sizeof(float)); 46 | float[] blurWeights = OneDimensinalKernel((int)radius,sigma); 47 | weightsBuffer.SetData(blurWeights); 48 | 49 | blurShader.SetBuffer(blurHorID, "gWeights", weightsBuffer); 50 | blurShader.SetBuffer(blurVerID, "gWeights", weightsBuffer); 51 | blurShader.SetInt("blurRadius", (int)radius); 52 | } 53 | 54 | private void OnValidate() 55 | { 56 | if(!init) 57 | { 58 | base.Init(); 59 | init = true; 60 | } 61 | 62 | SetRadius(); 63 | CalculateWeights(); 64 | } 65 | 66 | 67 | public void BlurImage(RenderTexture source, RenderTexture destination) 68 | { 69 | CheckForErrorsAndResolution(); 70 | DisptachWithSource(ref source, ref destination); 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /Assets/Scripts/GaussianBlurStatic.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 189b5acf892348b4bb17faa851a1fd7f 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/ObjectSpawner.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | public class ObjectSpawner : MonoBehaviour 6 | { 7 | public float sphereRadius; 8 | public GameObject objectToSpawn; 9 | public float minDelay = 0.0f; 10 | public float maxDelay = 5.0f; 11 | public bool spawn = true; 12 | 13 | void Start() 14 | { 15 | StartCoroutine(Spawner()); 16 | } 17 | 18 | 19 | IEnumerator Spawner() 20 | { 21 | while(spawn) 22 | { 23 | yield return new WaitForSeconds(Random.Range(minDelay,maxDelay)); 24 | Vector3 SpawnerPosition = this.transform.position; 25 | Vector3 newRandomPos = new Vector3(SpawnerPosition.x+ Random.Range(sphereRadius * (-1.0f), sphereRadius), SpawnerPosition.y ,SpawnerPosition.z + Random.Range(sphereRadius * (-1.0f), sphereRadius)); 26 | Instantiate(objectToSpawn,newRandomPos,Quaternion.identity); 27 | } 28 | 29 | yield return null; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /Assets/Scripts/ObjectSpawner.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 86ce8ddb25a77f24c998f6593675c7eb 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/PieMenuContoller.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.UI; 5 | 6 | public class PieMenuContoller : GaussianBlurDynamic 7 | { 8 | public float mouseDistanceToEnable = 0.3f; 9 | public Button[] elements; 10 | public Material postProcessMaterial; 11 | public float timeToLerp = 5.0f; 12 | public float timeSlowScale = 0.001f; 13 | 14 | Vector2 upVector = new Vector2(0.0f, 1.0f); 15 | Vector2 mousePositionCapture; 16 | bool mousePressed = false; 17 | int actualIndex = 0; 18 | 19 | float lerp = 1.0f; 20 | float innerTimer = 0.0f; 21 | 22 | private void Start() 23 | { 24 | lerp = 0.0f; 25 | foreach(Button btn in elements) 26 | btn.gameObject.SetActive(false); 27 | } 28 | // Update is called once per frame 29 | void Update() 30 | { 31 | if (innerTimer>0.0f) 32 | { 33 | lerp = Mathf.SmoothStep(0.0f,1.0f, innerTimer/timeToLerp); 34 | Time.timeScale = Mathf.Lerp(1.0f, timeSlowScale,lerp); 35 | Debug.Log(lerp); 36 | 37 | postProcessMaterial.SetFloat("_effectStrength",lerp); 38 | if(!mousePressed) 39 | { 40 | innerTimer-=Time.deltaTime* 1.0f/Time.timeScale; 41 | } 42 | } 43 | if(innerTimer<0.0f) 44 | { 45 | lerp = 0.0f; 46 | postProcessMaterial.SetFloat("_effectStrength",lerp); 47 | } 48 | 49 | 50 | if (Input.GetKeyDown("space")) 51 | { 52 | foreach(Button btn in elements) 53 | btn.gameObject.SetActive(true); 54 | mousePressed = true; 55 | Cursor.lockState = CursorLockMode.None; 56 | innerTimer = 0.0f; 57 | } 58 | if (Input.GetKeyUp("space")) 59 | { 60 | foreach(Button btn in elements) 61 | btn.gameObject.SetActive(false); 62 | mousePressed = false; 63 | Cursor.lockState = CursorLockMode.Locked; 64 | GameObject myEventSystem = GameObject.Find("EventSystem"); 65 | myEventSystem.GetComponent().SetSelectedGameObject(null); 66 | } 67 | if (mousePressed) 68 | { 69 | innerTimer = Mathf.Clamp(innerTimer + Time.deltaTime * 1.0f/Time.timeScale,0.0f, timeToLerp); 70 | 71 | mousePositionCapture = new Vector2(Input.mousePosition.x, Input.mousePosition.y); 72 | Vector2 screenCenter = new Vector2(Screen.width * 0.5f, Screen.height * 0.5f); 73 | if (Vector2.Distance(mousePositionCapture, screenCenter) > mouseDistanceToEnable) 74 | { 75 | Vector2 mouseVector = mousePositionCapture - screenCenter; 76 | float angle = Mathf.Atan2(mouseVector.normalized.y, mouseVector.normalized.x) - Mathf.Atan2(upVector.y, upVector.x) - Mathf.PI / (elements.Length); 77 | if (angle < 0) { angle += 2 * Mathf.PI; } 78 | float normalizedRange = angle / (Mathf.PI * 2.0f); 79 | int actualIndex = Mathf.FloorToInt(normalizedRange * elements.Length); 80 | 81 | elements[actualIndex].Select(); 82 | } 83 | } 84 | 85 | 86 | 87 | 88 | } 89 | protected override void OnBlurDestroy() 90 | { 91 | base.OnBlurDestroy(); 92 | lerp = 1.0f; 93 | foreach(Button btn in elements) 94 | { 95 | if (btn) 96 | btn.gameObject.SetActive(true); 97 | } 98 | 99 | } 100 | 101 | protected override void OnRenderImage(RenderTexture source, RenderTexture destination) 102 | { 103 | 104 | float _radius = radius * lerp; 105 | 106 | if (_radius < 0.5f || blurShader == null) 107 | { 108 | Graphics.Blit(source, destination,postProcessMaterial); 109 | return; 110 | } 111 | CheckForErrorsAndResolution(); 112 | blurShader.SetInt("blurRadius", (int)(_radius)); 113 | blurShader.SetFloat("sigma", GetSigma(_radius)); 114 | 115 | blurShader.Dispatch(sumsResetID, 1, 1, 1); 116 | blurShader.Dispatch(weightsCalculatorID, (int)_radius + 1, 1, 1); 117 | blurShader.Dispatch(weightsNormalizerID, (int)_radius * 2 + 1, 1, 1); 118 | DisptachWithSource(ref source, ref destination, postProcessMaterial); 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /Assets/Scripts/PieMenuContoller.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 09d18256c92e2404185870dc44ca27f1 3 | MonoImporter: 4 | externalObjects: {} 5 | serializedVersion: 2 6 | defaultReferences: [] 7 | executionOrder: 0 8 | icon: {instanceID: 0} 9 | userData: 10 | assetBundleName: 11 | assetBundleVariant: 12 | -------------------------------------------------------------------------------- /Assets/Shaders.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 39a61e6d8dab1404e93d312638e16943 3 | folderAsset: yes 4 | DefaultImporter: 5 | externalObjects: {} 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/AveragedMultiply.shader: -------------------------------------------------------------------------------- 1 | Shader "Hidden/AveragedMultiply" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Texture", 2D) = "white" {} 6 | _Traced ("Texture", 2D) = "white" {} 7 | _InvGamma("Inverse Gamma", Float) = 2.2 8 | _ShadowStrength("Shadow Strength", Float) = 1.0 9 | } 10 | SubShader 11 | { 12 | // No culling or depth 13 | Cull Off ZWrite Off ZTest Always 14 | 15 | Pass 16 | { 17 | CGPROGRAM 18 | #pragma vertex vert 19 | #pragma fragment frag 20 | 21 | #include "UnityCG.cginc" 22 | 23 | struct appdata 24 | { 25 | float4 vertex : POSITION; 26 | float2 uv : TEXCOORD0; 27 | }; 28 | 29 | struct v2f 30 | { 31 | float2 uv : TEXCOORD0; 32 | float4 vertex : SV_POSITION; 33 | }; 34 | 35 | v2f vert (appdata v) 36 | { 37 | v2f o; 38 | o.vertex = UnityObjectToClipPos(v.vertex); 39 | o.uv = v.uv; 40 | 41 | return o; 42 | } 43 | 44 | sampler2D _MainTex; 45 | sampler2D _Traced; 46 | 47 | float _InvGamma; 48 | float _ShadowStrength; 49 | 50 | fixed4 frag (v2f i) : SV_Target 51 | { 52 | fixed4 col = tex2D(_MainTex, i.uv); 53 | float4 light = tex2D(_Traced, i.uv); 54 | col.rgb *= max(pow(light.rgb / light.a, float3(_InvGamma, _InvGamma, _InvGamma)), float3(1.0 - _ShadowStrength, 1.0 - _ShadowStrength, 1.0 - _ShadowStrength)); 55 | return col; 56 | } 57 | ENDCG 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Assets/Shaders/AveragedMultiply.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: c9d034c18c45c4a5399b0bcb70176ceb 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/blurCommon.compute: -------------------------------------------------------------------------------- 1 | #ifndef BLUR_COMMON 2 | #define BLUR_COMMON 3 | 4 | #if SHADER_API_GLES3 5 | #define threadCount 64 6 | #define maxRadius 32 7 | #elif SHADER_API_METAL 8 | #define threadCount 484 9 | #define maxRadius 64 10 | #else 11 | #define threadCount 1024 12 | #define maxRadius 92 13 | 14 | #endif 15 | 16 | #endif -------------------------------------------------------------------------------- /Assets/Shaders/blurCommon.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: eb189edc99e182a44b79c30dfa30c30b 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 0 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/boxBlur.compute: -------------------------------------------------------------------------------- 1 | // Each #kernel tells which function to compile; you can have many kernels 2 | #pragma kernel HorzBlurCs 3 | #pragma kernel VertBlurCs 4 | 5 | #include "blurCommon.compute" 6 | 7 | #define maxRadius 92 // cant be larger then N/2 8 | 9 | Texture2D source; 10 | RWTexture2D verBlurOutput; 11 | shared RWTexture2D horBlurOutput; 12 | 13 | #define CacheSize (threadCount + 2*maxRadius) 14 | groupshared float4 gCache[CacheSize]; 15 | 16 | 17 | cbuffer onValidate 18 | { 19 | int blurRadius; 20 | } 21 | 22 | 23 | [numthreads(threadCount, 1, 1)] 24 | void HorzBlurCs(uint3 groupThreadID : SV_GroupThreadID, uint3 dispatchThreadId : SV_DispatchThreadID) 25 | { 26 | int clamedDisX = min(dispatchThreadId.x, source.Length.x - 1); 27 | int clamedDisY = min(dispatchThreadId.y, source.Length.y - 1); 28 | uint bRadius = (uint) blurRadius; 29 | if (groupThreadID.x < bRadius) 30 | { 31 | int x = max(clamedDisX - blurRadius, 0); 32 | uint2 clampedPos = uint2(x, clamedDisY); 33 | gCache[groupThreadID.x] = source[clampedPos]; 34 | 35 | } 36 | else if (groupThreadID.x >= threadCount - bRadius) // 2 zakres 37 | { 38 | int x = min(clamedDisX + blurRadius, source.Length.x - 1); 39 | uint2 clampedPos = uint2(x, clamedDisY); 40 | gCache[groupThreadID.x + 2 * blurRadius] = source[clampedPos]; 41 | 42 | } 43 | 44 | uint2 clampedPos = uint2(clamedDisX, clamedDisY); 45 | gCache[groupThreadID.x + blurRadius] = source[clampedPos]; 46 | 47 | GroupMemoryBarrierWithGroupSync(); 48 | float4 blurColor = float4(0.0f, 0.0f, 0.0f, 0.0f); 49 | 50 | [unroll(2*maxRadius)] 51 | for (int i = -blurRadius; i <= blurRadius; i++) 52 | { 53 | int k = groupThreadID.x + blurRadius + i; 54 | blurColor += gCache[k]; 55 | 56 | } 57 | horBlurOutput[uint2(dispatchThreadId.x, dispatchThreadId.y)] = blurColor * 1.0f / (blurRadius*2 +1); 58 | 59 | } 60 | 61 | [numthreads(1, threadCount, 1)] 62 | void VertBlurCs(uint3 groupThreadID : SV_GroupThreadID, uint3 dispatchThreadId : SV_DispatchThreadID) 63 | { 64 | int clamedDisX = min(max(dispatchThreadId.x, 0), horBlurOutput.Length.x - 1); 65 | int clamedDisY = min(max(dispatchThreadId.y, 0), horBlurOutput.Length.y - 1); 66 | uint bRadius = (uint) blurRadius; 67 | if (groupThreadID.y < bRadius) 68 | { 69 | int y = max(clamedDisY - blurRadius, 0); 70 | uint2 clampedPos = uint2(clamedDisX, y); 71 | gCache[groupThreadID.y] = horBlurOutput.Load(clampedPos); 72 | } 73 | else if (groupThreadID.y >= threadCount - bRadius) 74 | { 75 | int y = min(clamedDisY + blurRadius, horBlurOutput.Length.y - 1); 76 | uint2 clampedPos = uint2(clamedDisX, y); 77 | gCache[groupThreadID.y + 2 * blurRadius] = horBlurOutput.Load(clampedPos); 78 | 79 | } 80 | gCache[groupThreadID.y + blurRadius] = horBlurOutput.Load(uint2(clamedDisX, clamedDisY)); 81 | 82 | GroupMemoryBarrierWithGroupSync(); 83 | float4 blurColor = float4(0.0f, 0.0f, 0.0f, 0.0f); 84 | 85 | [unroll(2*maxRadius)] 86 | for (int i = -blurRadius; i <= blurRadius; i++) 87 | { 88 | int k = groupThreadID.y + blurRadius + i; 89 | blurColor += gCache[k]; 90 | } 91 | verBlurOutput[uint2(dispatchThreadId.x, dispatchThreadId.y)] = blurColor * 1.0f / (blurRadius * 2 + 1); 92 | } -------------------------------------------------------------------------------- /Assets/Shaders/boxBlur.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 420dfe0f45efbf242aaddf79768db121 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 4 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/gaussianBlurDynamic.compute: -------------------------------------------------------------------------------- 1 | // Each #kernel tells which function to compile; you can have many kernels 2 | #pragma kernel HorzBlurCs 3 | #pragma kernel VertBlurCs 4 | #pragma kernel SumsDeleteCS 5 | #pragma kernel WeightCaculatorCs 6 | #pragma kernel WeightNormalizerCs 7 | #include "blurCommon.compute" 8 | 9 | #define maxRadius 92 // cant be larger then N/2 10 | #define uintAndFloatRange 2147483647 11 | 12 | Texture2D source; 13 | RWTexture2D verBlurOutput; 14 | shared RWTexture2D horBlurOutput; 15 | shared RWStructuredBuffer gWeights; 16 | RWStructuredBuffer weightsSum; 17 | 18 | #define CacheSize (threadCount + 2*maxRadius) 19 | groupshared float4 gCache[CacheSize]; 20 | 21 | 22 | cbuffer onValidate 23 | { 24 | int blurRadius; 25 | float sigma; 26 | } 27 | 28 | [numthreads(1, 1, 1)] 29 | void SumsDeleteCS() 30 | { 31 | weightsSum[0] = 0; 32 | } 33 | 34 | 35 | [numthreads(1, 1, 1)] 36 | void WeightCaculatorCs(uint3 dispatchThreadId : SV_DispatchThreadID) 37 | { 38 | float newBlurWalue = 0.39894 * exp(-0.5 * float(dispatchThreadId.x) * float(dispatchThreadId.x) / (sigma * sigma)) / sigma; 39 | uint kSize = (uint) blurRadius; 40 | 41 | if (dispatchThreadId.x!=0) 42 | { 43 | gWeights[kSize + dispatchThreadId.x] = newBlurWalue; 44 | gWeights[kSize - dispatchThreadId.x] = newBlurWalue; 45 | 46 | InterlockedAdd(weightsSum[0], (uint) (newBlurWalue * 2 * uintAndFloatRange)); 47 | } 48 | else 49 | { 50 | gWeights[kSize] = newBlurWalue; 51 | InterlockedAdd(weightsSum[0], (uint) (newBlurWalue * uintAndFloatRange)); 52 | } 53 | } 54 | 55 | [numthreads(1, 1, 1)] 56 | void WeightNormalizerCs(uint3 dispatchThreadId : SV_DispatchThreadID) 57 | { 58 | float floatSum = ((float) weightsSum[0]) / uintAndFloatRange; 59 | gWeights[dispatchThreadId.x] /= floatSum; 60 | } 61 | 62 | [numthreads(threadCount, 1, 1)] 63 | void HorzBlurCs(uint3 groupThreadID : SV_GroupThreadID, uint3 dispatchThreadId : SV_DispatchThreadID) 64 | { 65 | int clamedDisX = min(dispatchThreadId.x, source.Length.x - 1); 66 | int clamedDisY = min(dispatchThreadId.y, source.Length.y - 1); 67 | uint bRadius = (uint) blurRadius; 68 | if (groupThreadID.x < bRadius) 69 | { 70 | int x = max(clamedDisX - blurRadius, 0); 71 | uint2 clampedPos = uint2(x, clamedDisY); 72 | gCache[groupThreadID.x] = source[clampedPos]; 73 | 74 | } 75 | else if (groupThreadID.x >= threadCount - bRadius) // 2 zakres 76 | { 77 | int x = min(clamedDisX + blurRadius, source.Length.x - 1); 78 | uint2 clampedPos = uint2(x, clamedDisY); 79 | gCache[groupThreadID.x + 2 * blurRadius] = source[clampedPos]; 80 | 81 | } 82 | 83 | uint2 clampedPos = uint2(clamedDisX, clamedDisY); 84 | gCache[groupThreadID.x + blurRadius] = source[clampedPos]; 85 | 86 | GroupMemoryBarrierWithGroupSync(); 87 | float4 blurColor = float4(0.0f, 0.0f, 0.0f, 0.0f); 88 | 89 | [unroll(2*maxRadius)] 90 | for (int i = -blurRadius; i <= blurRadius; i++) 91 | { 92 | int k = groupThreadID.x + blurRadius + i; 93 | blurColor += gCache[k] * gWeights[i + blurRadius]; 94 | 95 | } 96 | horBlurOutput[uint2(dispatchThreadId.x, dispatchThreadId.y)] = blurColor; 97 | 98 | } 99 | 100 | [numthreads(1, threadCount, 1)] 101 | void VertBlurCs(uint3 groupThreadID : SV_GroupThreadID, uint3 dispatchThreadId : SV_DispatchThreadID) 102 | { 103 | int clamedDisX = min(max(dispatchThreadId.x, 0), horBlurOutput.Length.x - 1); 104 | int clamedDisY = min(max(dispatchThreadId.y, 0), horBlurOutput.Length.y - 1); 105 | uint bRadius = (uint) blurRadius; 106 | if (groupThreadID.y < bRadius) 107 | { 108 | int y = max(clamedDisY - blurRadius, 0); 109 | uint2 clampedPos = uint2(clamedDisX, y); 110 | gCache[groupThreadID.y] = horBlurOutput.Load(clampedPos); 111 | } 112 | else if (groupThreadID.y >= threadCount - bRadius) 113 | { 114 | int y = min(clamedDisY + blurRadius, horBlurOutput.Length.y - 1); 115 | uint2 clampedPos = uint2(clamedDisX, y); 116 | gCache[groupThreadID.y + 2 * blurRadius] = horBlurOutput.Load(clampedPos); 117 | 118 | } 119 | gCache[groupThreadID.y + blurRadius] = horBlurOutput.Load(uint2(clamedDisX, clamedDisY)); 120 | 121 | GroupMemoryBarrierWithGroupSync(); 122 | float4 blurColor = float4(0.0f, 0.0f, 0.0f, 0.0f); 123 | 124 | [unroll(2*maxRadius)] 125 | for (int i = -blurRadius; i <= blurRadius; i++) 126 | { 127 | int k = groupThreadID.y + blurRadius + i; 128 | blurColor += gCache[k] * gWeights[i + blurRadius]; 129 | } 130 | verBlurOutput[uint2(dispatchThreadId.x, dispatchThreadId.y)] = blurColor; 131 | } -------------------------------------------------------------------------------- /Assets/Shaders/gaussianBlurDynamic.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 34eb5ef0a6674e147ae483e34c3eeb93 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 4 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/gaussianBlurStatic.compute: -------------------------------------------------------------------------------- 1 | // Each #kernel tells which function to compile; you can have many kernels 2 | #pragma kernel HorzBlurCs 3 | #pragma kernel VertBlurCs 4 | #include "blurCommon.compute" 5 | 6 | #define maxRadius 92 // cant be larger then N/2 7 | 8 | Texture2D source; 9 | RWTexture2D verBlurOutput; 10 | shared RWTexture2D horBlurOutput; 11 | shared RWStructuredBuffer gWeights; 12 | 13 | 14 | #define CacheSize (threadCount + 2*maxRadius) 15 | groupshared float4 gCache[CacheSize]; 16 | 17 | 18 | cbuffer onValidate 19 | { 20 | int blurRadius; 21 | } 22 | 23 | 24 | 25 | [numthreads(threadCount, 1, 1)] 26 | void HorzBlurCs(uint3 groupThreadID : SV_GroupThreadID, uint3 dispatchThreadId : SV_DispatchThreadID) 27 | { 28 | int clamedDisX = min(dispatchThreadId.x, source.Length.x - 1); 29 | int clamedDisY = min(dispatchThreadId.y, source.Length.y - 1); 30 | uint bRadius = (uint) blurRadius; 31 | if (groupThreadID.x < bRadius) 32 | { 33 | int x = max(clamedDisX - blurRadius, 0); 34 | uint2 clampedPos = uint2(x, clamedDisY); 35 | gCache[groupThreadID.x] = source[clampedPos]; 36 | 37 | } 38 | else if (groupThreadID.x >= threadCount - bRadius) // 2 zakres 39 | { 40 | int x = min(clamedDisX + blurRadius, source.Length.x - 1); 41 | uint2 clampedPos = uint2(x, clamedDisY); 42 | gCache[groupThreadID.x + 2 * blurRadius] = source[clampedPos]; 43 | 44 | } 45 | 46 | uint2 clampedPos = uint2(clamedDisX, clamedDisY); 47 | gCache[groupThreadID.x + blurRadius] = source[clampedPos]; 48 | 49 | GroupMemoryBarrierWithGroupSync(); 50 | float4 blurColor = float4(0.0f, 0.0f, 0.0f, 0.0f); 51 | 52 | [unroll(2*maxRadius)] 53 | for (int i = -blurRadius; i <= blurRadius; i++) 54 | { 55 | int k = groupThreadID.x + blurRadius + i; 56 | blurColor += gCache[k] * gWeights[i + blurRadius]; 57 | 58 | } 59 | horBlurOutput[uint2(dispatchThreadId.x, dispatchThreadId.y)] = blurColor; 60 | 61 | } 62 | 63 | [numthreads(1, threadCount, 1)] 64 | void VertBlurCs(uint3 groupThreadID : SV_GroupThreadID, uint3 dispatchThreadId : SV_DispatchThreadID) 65 | { 66 | int clamedDisX = min(max(dispatchThreadId.x, 0), horBlurOutput.Length.x - 1); 67 | int clamedDisY = min(max(dispatchThreadId.y, 0), horBlurOutput.Length.y - 1); 68 | uint bRadius = (uint) blurRadius; 69 | if (groupThreadID.y < bRadius) 70 | { 71 | int y = max(clamedDisY - blurRadius, 0); 72 | uint2 clampedPos = uint2(clamedDisX, y); 73 | gCache[groupThreadID.y] = horBlurOutput.Load(clampedPos); 74 | } 75 | else if (groupThreadID.y >= threadCount - bRadius) 76 | { 77 | int y = min(clamedDisY + blurRadius, horBlurOutput.Length.y - 1); 78 | uint2 clampedPos = uint2(clamedDisX, y); 79 | gCache[groupThreadID.y + 2 * blurRadius] = horBlurOutput.Load(clampedPos); 80 | 81 | } 82 | gCache[groupThreadID.y + blurRadius] = horBlurOutput.Load(uint2(clamedDisX, clamedDisY)); 83 | 84 | GroupMemoryBarrierWithGroupSync(); 85 | float4 blurColor = float4(0.0f, 0.0f, 0.0f, 0.0f); 86 | 87 | [unroll(2*maxRadius)] 88 | for (int i = -blurRadius; i <= blurRadius; i++) 89 | { 90 | int k = groupThreadID.y + blurRadius + i; 91 | blurColor += gCache[k] * gWeights[i + blurRadius]; 92 | } 93 | verBlurOutput[uint2(dispatchThreadId.x, dispatchThreadId.y)] = blurColor; 94 | } -------------------------------------------------------------------------------- /Assets/Shaders/gaussianBlurStatic.compute.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e4390d9af68fc42408df8dd4ecd5b394 3 | ComputeShaderImporter: 4 | externalObjects: {} 5 | currentAPIMask: 4 6 | userData: 7 | assetBundleName: 8 | assetBundleVariant: 9 | -------------------------------------------------------------------------------- /Assets/Shaders/gradientLut.shader: -------------------------------------------------------------------------------- 1 | // Made with Amplify Shader Editor 2 | // Available at the Unity Asset Store - http://u3d.as/y3X 3 | // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' 4 | 5 | Shader "gtaPrototype" 6 | { 7 | Properties 8 | { 9 | _MainTex ( "Screen", 2D ) = "black" {} 10 | _effectStrength("effectStrength", Range( 0 , 1)) = 0 11 | _GradientLut("Gradient Lut", 2D) = "white" {} 12 | [HideInInspector] _texcoord( "", 2D ) = "white" {} 13 | } 14 | 15 | SubShader 16 | { 17 | 18 | 19 | ZTest Always 20 | Cull Off 21 | ZWrite Off 22 | 23 | 24 | Pass 25 | { 26 | CGPROGRAM 27 | 28 | 29 | 30 | #pragma vertex vert_img_custom 31 | #pragma fragment frag 32 | #pragma target 3.0 33 | #include "UnityCG.cginc" 34 | 35 | 36 | struct appdata_img_custom 37 | { 38 | float4 vertex : POSITION; 39 | half2 texcoord : TEXCOORD0; 40 | 41 | }; 42 | 43 | struct v2f_img_custom 44 | { 45 | float4 pos : SV_POSITION; 46 | half2 uv : TEXCOORD0; 47 | half2 stereoUV : TEXCOORD2; 48 | #if UNITY_UV_STARTS_AT_TOP 49 | half4 uv2 : TEXCOORD1; 50 | half4 stereoUV2 : TEXCOORD3; 51 | #endif 52 | 53 | }; 54 | 55 | uniform sampler2D _MainTex; 56 | uniform half4 _MainTex_TexelSize; 57 | uniform half4 _MainTex_ST; 58 | 59 | uniform sampler2D _GradientLut; 60 | uniform float _effectStrength; 61 | 62 | v2f_img_custom vert_img_custom ( appdata_img_custom v ) 63 | { 64 | v2f_img_custom o; 65 | 66 | o.pos = UnityObjectToClipPos ( v.vertex ); 67 | o.uv = float4( v.texcoord.xy, 1, 1 ); 68 | 69 | #if UNITY_UV_STARTS_AT_TOP 70 | o.uv2 = float4( v.texcoord.xy, 1, 1 ); 71 | o.stereoUV2 = UnityStereoScreenSpaceUVAdjust ( o.uv2, _MainTex_ST ); 72 | 73 | if ( _MainTex_TexelSize.y < 0.0 ) 74 | o.uv.y = 1.0 - o.uv.y; 75 | #endif 76 | o.stereoUV = UnityStereoScreenSpaceUVAdjust ( o.uv, _MainTex_ST ); 77 | return o; 78 | } 79 | 80 | half4 frag ( v2f_img_custom i ) : SV_Target 81 | { 82 | #ifdef UNITY_UV_STARTS_AT_TOP 83 | half2 uv = i.uv2; 84 | half2 stereoUV = i.stereoUV2; 85 | #else 86 | half2 uv = i.uv; 87 | half2 stereoUV = i.stereoUV; 88 | #endif 89 | 90 | half4 finalColor; 91 | 92 | // ase common template code 93 | float2 uv_MainTex = i.uv.xy * _MainTex_ST.xy + _MainTex_ST.zw; 94 | float4 tex2DNode2 = tex2D( _MainTex, uv_MainTex ); 95 | float3 desaturateInitialColor54 = tex2DNode2.rgb; 96 | float desaturateDot54 = dot( desaturateInitialColor54, float3( 0.299, 0.587, 0.114 )); 97 | float3 desaturateVar54 = lerp( desaturateInitialColor54, desaturateDot54.xxx, 1.0 ); 98 | float2 appendResult61 = (float2(saturate( desaturateVar54.x ) , 0.5)); 99 | float4 lerpResult62 = lerp( tex2D( _GradientLut, appendResult61 ) , tex2DNode2 , 0.5); 100 | float2 uv048 = i.uv.xy * float2( 1,1 ) + float2( 0,0 ); 101 | float4 lerpResult57 = lerp( saturate( tex2DNode2 ) , ( lerpResult62 * ( 1.0 - saturate( ( length( ( ( uv048 * float2( 2,2 ) ) - float2( 1,1 ) ) ) - 0.75 ) ) ) ) , _effectStrength); 102 | 103 | 104 | finalColor = lerpResult57; 105 | 106 | return finalColor; 107 | } 108 | ENDCG 109 | } 110 | } 111 | CustomEditor "ASEMaterialInspector" 112 | 113 | 114 | } 115 | /*ASEBEGIN 116 | Version=17000 117 | 330;316;1906;1016;612.8983;725.287;1.3;True;False 118 | Node;AmplifyShaderEditor.TemplateShaderPropertyNode;1;-1020.102,-214.4006;Float;False;0;0;_MainTex;Shader;0;5;SAMPLER2D;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 119 | Node;AmplifyShaderEditor.TextureCoordinatesNode;48;-636.1278,75.32414;Float;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 120 | Node;AmplifyShaderEditor.SamplerNode;2;-290.9369,-208.1905;Float;True;Property;_TextureSample0;Texture Sample 0;0;0;Create;True;0;0;False;0;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;1;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 121 | Node;AmplifyShaderEditor.SimpleMultiplyOpNode;49;-347.666,96.63898;Float;False;2;2;0;FLOAT2;0,0;False;1;FLOAT2;2,2;False;1;FLOAT2;0 122 | Node;AmplifyShaderEditor.DesaturateOpNode;54;69.97827,-380.133;Float;False;2;0;FLOAT3;0,0,0;False;1;FLOAT;1;False;1;FLOAT3;0 123 | Node;AmplifyShaderEditor.SimpleSubtractOpNode;50;97.10428,75.32419;Float;False;2;0;FLOAT2;0,0;False;1;FLOAT2;1,1;False;1;FLOAT2;0 124 | Node;AmplifyShaderEditor.BreakToComponentsNode;60;345.3539,-434.6389;Float;False;FLOAT3;1;0;FLOAT3;0,0,0;False;16;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT;5;FLOAT;6;FLOAT;7;FLOAT;8;FLOAT;9;FLOAT;10;FLOAT;11;FLOAT;12;FLOAT;13;FLOAT;14;FLOAT;15 125 | Node;AmplifyShaderEditor.SaturateNode;64;482.9572,-521.9146;Float;False;1;0;FLOAT;0;False;1;FLOAT;0 126 | Node;AmplifyShaderEditor.LengthOpNode;47;258.4709,112.9853;Float;False;1;0;FLOAT2;0,0;False;1;FLOAT;0 127 | Node;AmplifyShaderEditor.SimpleSubtractOpNode;56;514.1268,200.3406;Float;False;2;0;FLOAT;0;False;1;FLOAT;0.75;False;1;FLOAT;0 128 | Node;AmplifyShaderEditor.DynamicAppendNode;61;660.3539,-438.6389;Float;False;FLOAT2;4;0;FLOAT;0;False;1;FLOAT;0.5;False;2;FLOAT;0;False;3;FLOAT;0;False;1;FLOAT2;0 129 | Node;AmplifyShaderEditor.SaturateNode;51;426.9086,49.15776;Float;False;1;0;FLOAT;0;False;1;FLOAT;0 130 | Node;AmplifyShaderEditor.SamplerNode;59;822.3539,-492.6389;Float;True;Property;_GradientLut;Gradient Lut;1;0;Create;True;0;0;False;0;None;ac754491755b6cb4aabc499666954fd5;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 131 | Node;AmplifyShaderEditor.RangedFloatNode;63;981.3539,-238.6389;Float;False;Constant;_Float0;Float 0;2;0;Create;True;0;0;False;0;0.5;0;0;0;0;1;FLOAT;0 132 | Node;AmplifyShaderEditor.LerpOp;62;1185.354,-379.6389;Float;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0 133 | Node;AmplifyShaderEditor.OneMinusNode;52;614.062,39.07064;Float;False;1;0;FLOAT;0;False;1;FLOAT;0 134 | Node;AmplifyShaderEditor.SimpleMultiplyOpNode;53;746.5265,-86.94321;Float;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT;0;False;1;COLOR;0 135 | Node;AmplifyShaderEditor.RangedFloatNode;58;845.5231,41.42181;Float;False;Property;_effectStrength;effectStrength;0;0;Create;True;0;0;False;0;0;0;0;1;0;1;FLOAT;0 136 | Node;AmplifyShaderEditor.SaturateNode;65;594.802,-181.8869;Float;False;1;0;COLOR;0,0,0,0;False;1;COLOR;0 137 | Node;AmplifyShaderEditor.LerpOp;57;1099.932,-157.9461;Float;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0 138 | Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;0;1345.46,-204.3788;Float;False;True;2;Float;ASEMaterialInspector;0;2;gtaPrototype;c71b220b631b6344493ea3cf87110c93;True;SubShader 0 Pass 0;0;0;;1;False;False;False;True;2;False;-1;False;False;True;2;False;-1;True;7;False;-1;False;True;0;False;0;False;False;False;False;False;False;False;False;False;False;True;2;0;;0;0;Standard;0;0;1;True;False;1;0;FLOAT4;0,0,0,0;False;0 139 | WireConnection;2;0;1;0 140 | WireConnection;49;0;48;0 141 | WireConnection;54;0;2;0 142 | WireConnection;50;0;49;0 143 | WireConnection;60;0;54;0 144 | WireConnection;64;0;60;0 145 | WireConnection;47;0;50;0 146 | WireConnection;56;0;47;0 147 | WireConnection;61;0;64;0 148 | WireConnection;51;0;56;0 149 | WireConnection;59;1;61;0 150 | WireConnection;62;0;59;0 151 | WireConnection;62;1;2;0 152 | WireConnection;62;2;63;0 153 | WireConnection;52;0;51;0 154 | WireConnection;53;0;62;0 155 | WireConnection;53;1;52;0 156 | WireConnection;65;0;2;0 157 | WireConnection;57;0;65;0 158 | WireConnection;57;1;53;0 159 | WireConnection;57;2;58;0 160 | WireConnection;0;0;57;0 161 | ASEEND*/ 162 | //CHKSM=6AAE804525EE2282B94D235627B54DF63822C085 -------------------------------------------------------------------------------- /Assets/Shaders/gradientLut.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ccbff37e1b9d1c849a805c3cd8b99454 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/Shaders/particlesShader.shader: -------------------------------------------------------------------------------- 1 | // Made with Amplify Shader Editor 2 | // Available at the Unity Asset Store - http://u3d.as/y3X 3 | Shader "hdrParticle" 4 | { 5 | Properties 6 | { 7 | 8 | [HDR]_TintColor ("Tint Color", Color) = (0.5,0.5,0.5,0.5) 9 | _MainTex ("Particle Texture", 2D) = "white" {} 10 | _InvFade ("Soft Particles Factor", Range(0.01,3.0)) = 1.0 11 | [HideInInspector] _texcoord( "", 2D ) = "white" {} 12 | } 13 | 14 | 15 | Category 16 | { 17 | SubShader 18 | { 19 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" } 20 | Blend SrcAlpha OneMinusSrcAlpha , SrcAlpha OneMinusSrcAlpha 21 | ColorMask RGB 22 | Cull Off 23 | Lighting Off 24 | ZWrite Off 25 | ZTest LEqual 26 | 27 | Pass { 28 | 29 | CGPROGRAM 30 | 31 | #pragma vertex vert 32 | #pragma fragment frag 33 | #pragma target 2.0 34 | #pragma multi_compile_particles 35 | #pragma multi_compile_fog 36 | 37 | 38 | #include "UnityCG.cginc" 39 | 40 | struct appdata_t 41 | { 42 | float4 vertex : POSITION; 43 | fixed4 color : COLOR; 44 | float4 texcoord : TEXCOORD0; 45 | UNITY_VERTEX_INPUT_INSTANCE_ID 46 | 47 | }; 48 | 49 | struct v2f 50 | { 51 | float4 vertex : SV_POSITION; 52 | fixed4 color : COLOR; 53 | float4 texcoord : TEXCOORD0; 54 | UNITY_FOG_COORDS(1) 55 | #ifdef SOFTPARTICLES_ON 56 | float4 projPos : TEXCOORD2; 57 | #endif 58 | UNITY_VERTEX_INPUT_INSTANCE_ID 59 | UNITY_VERTEX_OUTPUT_STEREO 60 | 61 | }; 62 | 63 | 64 | #if UNITY_VERSION >= 560 65 | UNITY_DECLARE_DEPTH_TEXTURE( _CameraDepthTexture ); 66 | #else 67 | uniform sampler2D_float _CameraDepthTexture; 68 | #endif 69 | 70 | //Don't delete this comment 71 | // uniform sampler2D_float _CameraDepthTexture; 72 | 73 | uniform sampler2D _MainTex; 74 | uniform fixed4 _TintColor; 75 | uniform float4 _MainTex_ST; 76 | uniform float _InvFade; 77 | 78 | v2f vert ( appdata_t v ) 79 | { 80 | v2f o; 81 | UNITY_SETUP_INSTANCE_ID(v); 82 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); 83 | UNITY_TRANSFER_INSTANCE_ID(v, o); 84 | 85 | 86 | v.vertex.xyz += float3( 0, 0, 0 ) ; 87 | o.vertex = UnityObjectToClipPos(v.vertex); 88 | #ifdef SOFTPARTICLES_ON 89 | o.projPos = ComputeScreenPos (o.vertex); 90 | COMPUTE_EYEDEPTH(o.projPos.z); 91 | #endif 92 | o.color = v.color; 93 | o.texcoord = v.texcoord; 94 | UNITY_TRANSFER_FOG(o,o.vertex); 95 | return o; 96 | } 97 | 98 | fixed4 frag ( v2f i ) : SV_Target 99 | { 100 | #ifdef SOFTPARTICLES_ON 101 | float sceneZ = LinearEyeDepth (SAMPLE_DEPTH_TEXTURE_PROJ(_CameraDepthTexture, UNITY_PROJ_COORD(i.projPos))); 102 | float partZ = i.projPos.z; 103 | float fade = saturate (_InvFade * (sceneZ-partZ)); 104 | i.color.a *= fade; 105 | #endif 106 | 107 | float2 uv_MainTex = i.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw; 108 | 109 | 110 | fixed4 col = ( tex2D( _MainTex, uv_MainTex ) * _TintColor * i.color ); 111 | UNITY_APPLY_FOG(i.fogCoord, col); 112 | return col; 113 | } 114 | ENDCG 115 | } 116 | } 117 | } 118 | CustomEditor "ASEMaterialInspector" 119 | 120 | 121 | } 122 | /*ASEBEGIN 123 | Version=17000 124 | 155;776;1906;1035;849.6505;307.762;1.033883;True;False 125 | Node;AmplifyShaderEditor.TemplateShaderPropertyNode;2;-373,36.5;Float;False;0;0;_MainTex;Shader;0;5;SAMPLER2D;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 126 | Node;AmplifyShaderEditor.SamplerNode;4;-132,-219.5;Float;True;Property;_TextureSample0;Texture Sample 0;0;0;Create;True;0;0;False;0;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;6;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 127 | Node;AmplifyShaderEditor.TemplateShaderPropertyNode;1;-335,-123.5;Float;False;0;0;_TintColor;Shader;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 128 | Node;AmplifyShaderEditor.VertexColorNode;6;567.8032,116.13;Float;False;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 129 | Node;AmplifyShaderEditor.TemplateShaderPropertyNode;3;-265,124.5;Float;False;0;0;_InvFade;Shader;0;5;FLOAT;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4 130 | Node;AmplifyShaderEditor.SimpleMultiplyOpNode;5;336.8792,-170.9762;Float;False;3;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;1;COLOR;0 131 | Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;0;0,0;Float;False;True;2;Float;ASEMaterialInspector;0;7;hdrParticle;0b6a9f8b4f707c74ca64c0be8e590de0;True;SubShader 0 Pass 0;0;0;SubShader 0 Pass 0;2;True;2;5;False;-1;10;False;-1;2;5;False;-1;10;False;-1;False;False;True;2;False;-1;True;True;True;True;False;0;False;-1;False;True;2;False;-1;True;3;False;-1;False;True;4;Queue=Transparent=Queue=0;IgnoreProjector=True;RenderType=Transparent=RenderType;PreviewType=Plane;False;0;False;False;False;False;False;False;False;False;False;False;True;0;0;;0;0;Standard;0;0;1;True;False;2;0;FLOAT4;0,0,0,0;False;1;FLOAT3;0,0,0;False;0 132 | WireConnection;4;0;2;0 133 | WireConnection;5;0;4;0 134 | WireConnection;5;1;1;0 135 | WireConnection;5;2;6;0 136 | WireConnection;0;0;5;0 137 | ASEEND*/ 138 | //CHKSM=EF9802C7296E3FC3193995B39CA671B5914F179A -------------------------------------------------------------------------------- /Assets/Shaders/particlesShader.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: ea3b871daddcfe747abd1be1ac45d958 3 | ShaderImporter: 4 | externalObjects: {} 5 | defaultTextures: [] 6 | nonModifiableTextures: [] 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Demo1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddupont808/Unity2D-Pathtracer/aa766249fea4daa4db3fbf28322f9059724d497e/Demo1.gif -------------------------------------------------------------------------------- /Demo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ddupont808/Unity2D-Pathtracer/aa766249fea4daa4db3fbf28322f9059724d497e/Demo2.png -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.2d.sprite": "1.0.0", 4 | "com.unity.2d.tilemap": "1.0.0", 5 | "com.unity.collab-proxy": "1.2.16", 6 | "com.unity.ext.nunit": "1.0.0", 7 | "com.unity.ide.rider": "1.1.0", 8 | "com.unity.ide.vscode": "1.1.2", 9 | "com.unity.package-manager-ui": "2.2.0", 10 | "com.unity.postprocessing": "2.1.7", 11 | "com.unity.test-framework": "1.0.13", 12 | "com.unity.textmeshpro": "2.0.1", 13 | "com.unity.timeline": "1.1.0", 14 | "com.unity.ugui": "1.0.0", 15 | "com.unity.modules.ai": "1.0.0", 16 | "com.unity.modules.androidjni": "1.0.0", 17 | "com.unity.modules.animation": "1.0.0", 18 | "com.unity.modules.assetbundle": "1.0.0", 19 | "com.unity.modules.audio": "1.0.0", 20 | "com.unity.modules.cloth": "1.0.0", 21 | "com.unity.modules.director": "1.0.0", 22 | "com.unity.modules.imageconversion": "1.0.0", 23 | "com.unity.modules.imgui": "1.0.0", 24 | "com.unity.modules.jsonserialize": "1.0.0", 25 | "com.unity.modules.particlesystem": "1.0.0", 26 | "com.unity.modules.physics": "1.0.0", 27 | "com.unity.modules.physics2d": "1.0.0", 28 | "com.unity.modules.screencapture": "1.0.0", 29 | "com.unity.modules.terrain": "1.0.0", 30 | "com.unity.modules.terrainphysics": "1.0.0", 31 | "com.unity.modules.tilemap": "1.0.0", 32 | "com.unity.modules.ui": "1.0.0", 33 | "com.unity.modules.uielements": "1.0.0", 34 | "com.unity.modules.umbra": "1.0.0", 35 | "com.unity.modules.unityanalytics": "1.0.0", 36 | "com.unity.modules.unitywebrequest": "1.0.0", 37 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 38 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 39 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 40 | "com.unity.modules.unitywebrequestwww": "1.0.0", 41 | "com.unity.modules.vehicles": "1.0.0", 42 | "com.unity.modules.video": "1.0.0", 43 | "com.unity.modules.vr": "1.0.0", 44 | "com.unity.modules.wind": "1.0.0", 45 | "com.unity.modules.xr": "1.0.0" 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /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 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 1024 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /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/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: 7 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 0 23 | m_ReuseCollisionCallbacks: 1 24 | m_ClothInterCollisionSettingsToggle: 0 25 | m_ContactPairsMode: 0 26 | m_BroadphaseType: 0 27 | m_WorldBounds: 28 | m_Center: {x: 0, y: 0, z: 0} 29 | m_Extent: {x: 250, y: 250, z: 250} 30 | m_WorldSubdivisions: 8 31 | -------------------------------------------------------------------------------- /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: 2cda990e2423bbf4892e6590ba056729 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: 7 7 | m_ExternalVersionControlSupport: Visible Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 1 11 | m_SpritePackerMode: 4 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /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: 12 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_AlwaysIncludedShaders: 32 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 34 | m_PreloadedShaders: [] 35 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 36 | type: 0} 37 | m_CustomRenderPipeline: {fileID: 0} 38 | m_TransparencySortMode: 0 39 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 40 | m_DefaultRenderingPath: 1 41 | m_DefaultMobileRenderingPath: 1 42 | m_TierSettings: [] 43 | m_LightmapStripping: 0 44 | m_FogStripping: 0 45 | m_InstancingStripping: 0 46 | m_LightmapKeepPlain: 1 47 | m_LightmapKeepDirCombined: 1 48 | m_LightmapKeepDynamicPlain: 1 49 | m_LightmapKeepDynamicDirCombined: 1 50 | m_LightmapKeepShadowMask: 1 51 | m_LightmapKeepSubtractive: 1 52 | m_FogKeepLinear: 1 53 | m_FogKeepExp: 1 54 | m_FogKeepExp2: 1 55 | m_AlbedoSwatchInfos: [] 56 | m_LightsUseLinearIntensity: 0 57 | m_LightsUseColorTemperature: 0 58 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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/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: fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 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 | m_DefaultList: [] 7 | -------------------------------------------------------------------------------- /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: 18 7 | productGUID: 5c8e5b2031be74c4b8519e3526560f96 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: black friday 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_HolographicTrackingLossScreen: {fileID: 0} 45 | defaultScreenWidth: 1024 46 | defaultScreenHeight: 768 47 | defaultScreenWidthWeb: 960 48 | defaultScreenHeightWeb: 600 49 | m_StereoRenderingPath: 0 50 | m_ActiveColorSpace: 0 51 | m_MTRendering: 1 52 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 53 | iosShowActivityIndicatorOnLoading: -1 54 | androidShowActivityIndicatorOnLoading: -1 55 | displayResolutionDialog: 0 56 | iosUseCustomAppBackgroundBehavior: 0 57 | iosAllowHTTPDownload: 1 58 | allowedAutorotateToPortrait: 1 59 | allowedAutorotateToPortraitUpsideDown: 1 60 | allowedAutorotateToLandscapeRight: 1 61 | allowedAutorotateToLandscapeLeft: 1 62 | useOSAutorotation: 1 63 | use32BitDisplayBuffer: 1 64 | preserveFramebufferAlpha: 0 65 | disableDepthAndStencilBuffers: 0 66 | androidStartInFullscreen: 1 67 | androidRenderOutsideSafeArea: 1 68 | androidUseSwappy: 0 69 | androidBlitType: 0 70 | defaultIsNativeResolution: 1 71 | macRetinaSupport: 1 72 | runInBackground: 1 73 | captureSingleScreen: 0 74 | muteOtherAudioSources: 0 75 | Prepare IOS For Recording: 0 76 | Force IOS Speakers When Recording: 0 77 | deferSystemGesturesMode: 0 78 | hideHomeButton: 0 79 | submitAnalytics: 1 80 | usePlayerLog: 1 81 | bakeCollisionMeshes: 0 82 | forceSingleInstance: 0 83 | useFlipModelSwapchain: 1 84 | resizableWindow: 0 85 | useMacAppStoreValidation: 0 86 | macAppStoreCategory: public.app-category.games 87 | gpuSkinning: 0 88 | graphicsJobs: 0 89 | xboxPIXTextureCapture: 0 90 | xboxEnableAvatar: 0 91 | xboxEnableKinect: 0 92 | xboxEnableKinectAutoTracking: 0 93 | xboxEnableFitness: 0 94 | visibleInBackground: 1 95 | allowFullscreenSwitch: 1 96 | graphicsJobMode: 0 97 | fullscreenMode: 1 98 | xboxSpeechDB: 0 99 | xboxEnableHeadOrientation: 0 100 | xboxEnableGuest: 0 101 | xboxEnablePIXSampling: 0 102 | metalFramebufferOnly: 0 103 | xboxOneResolution: 0 104 | xboxOneSResolution: 0 105 | xboxOneXResolution: 3 106 | xboxOneMonoLoggingLevel: 0 107 | xboxOneLoggingLevel: 1 108 | xboxOneDisableEsram: 0 109 | xboxOnePresentImmediateThreshold: 0 110 | switchQueueCommandMemory: 0 111 | switchQueueControlMemory: 16384 112 | switchQueueComputeMemory: 262144 113 | switchNVNShaderPoolsGranularity: 33554432 114 | switchNVNDefaultPoolsGranularity: 16777216 115 | switchNVNOtherPoolsGranularity: 16777216 116 | vulkanEnableSetSRGBWrite: 0 117 | m_SupportedAspectRatios: 118 | 4:3: 1 119 | 5:4: 1 120 | 16:10: 1 121 | 16:9: 1 122 | Others: 1 123 | bundleVersion: 0.1 124 | preloadedAssets: [] 125 | metroInputSource: 0 126 | wsaTransparentSwapchain: 0 127 | m_HolographicPauseOnTrackingLoss: 1 128 | xboxOneDisableKinectGpuReservation: 1 129 | xboxOneEnable7thCore: 1 130 | vrSettings: 131 | cardboard: 132 | depthFormat: 0 133 | enableTransitionView: 0 134 | daydream: 135 | depthFormat: 0 136 | useSustainedPerformanceMode: 0 137 | enableVideoLayer: 0 138 | useProtectedVideoMemory: 0 139 | minimumSupportedHeadTracking: 0 140 | maximumSupportedHeadTracking: 1 141 | hololens: 142 | depthFormat: 1 143 | depthBufferSharingEnabled: 1 144 | lumin: 145 | depthFormat: 0 146 | frameTiming: 2 147 | enableGLCache: 0 148 | glCacheMaxBlobSize: 524288 149 | glCacheMaxFileSize: 8388608 150 | oculus: 151 | sharedDepthBuffer: 1 152 | dashSupport: 1 153 | lowOverheadMode: 0 154 | protectedContext: 0 155 | v2Signing: 0 156 | enable360StereoCapture: 0 157 | isWsaHolographicRemotingEnabled: 0 158 | protectGraphicsMemory: 0 159 | enableFrameTimingStats: 0 160 | useHDRDisplay: 0 161 | m_ColorGamuts: 00000000 162 | targetPixelDensity: 30 163 | resolutionScalingMode: 0 164 | androidSupportedAspectRatio: 1 165 | androidMaxAspectRatio: 2.1 166 | applicationIdentifier: 167 | Standalone: com.Company.ProductName 168 | buildNumber: {} 169 | AndroidBundleVersionCode: 1 170 | AndroidMinSdkVersion: 16 171 | AndroidTargetSdkVersion: 0 172 | AndroidPreferredInstallLocation: 1 173 | aotOptions: 174 | stripEngineCode: 1 175 | iPhoneStrippingLevel: 0 176 | iPhoneScriptCallOptimization: 0 177 | ForceInternetPermission: 0 178 | ForceSDCardPermission: 0 179 | CreateWallpaper: 0 180 | APKExpansionFiles: 0 181 | keepLoadedShadersAlive: 0 182 | StripUnusedMeshComponents: 1 183 | VertexChannelCompressionMask: 4054 184 | iPhoneSdkVersion: 988 185 | iOSTargetOSVersionString: 9.0 186 | tvOSSdkVersion: 0 187 | tvOSRequireExtendedGameController: 0 188 | tvOSTargetOSVersionString: 9.0 189 | uIPrerenderedIcon: 0 190 | uIRequiresPersistentWiFi: 0 191 | uIRequiresFullScreen: 1 192 | uIStatusBarHidden: 1 193 | uIExitOnSuspend: 0 194 | uIStatusBarStyle: 0 195 | iPhoneSplashScreen: {fileID: 0} 196 | iPhoneHighResSplashScreen: {fileID: 0} 197 | iPhoneTallHighResSplashScreen: {fileID: 0} 198 | iPhone47inSplashScreen: {fileID: 0} 199 | iPhone55inPortraitSplashScreen: {fileID: 0} 200 | iPhone55inLandscapeSplashScreen: {fileID: 0} 201 | iPhone58inPortraitSplashScreen: {fileID: 0} 202 | iPhone58inLandscapeSplashScreen: {fileID: 0} 203 | iPadPortraitSplashScreen: {fileID: 0} 204 | iPadHighResPortraitSplashScreen: {fileID: 0} 205 | iPadLandscapeSplashScreen: {fileID: 0} 206 | iPadHighResLandscapeSplashScreen: {fileID: 0} 207 | iPhone65inPortraitSplashScreen: {fileID: 0} 208 | iPhone65inLandscapeSplashScreen: {fileID: 0} 209 | iPhone61inPortraitSplashScreen: {fileID: 0} 210 | iPhone61inLandscapeSplashScreen: {fileID: 0} 211 | appleTVSplashScreen: {fileID: 0} 212 | appleTVSplashScreen2x: {fileID: 0} 213 | tvOSSmallIconLayers: [] 214 | tvOSSmallIconLayers2x: [] 215 | tvOSLargeIconLayers: [] 216 | tvOSLargeIconLayers2x: [] 217 | tvOSTopShelfImageLayers: [] 218 | tvOSTopShelfImageLayers2x: [] 219 | tvOSTopShelfImageWideLayers: [] 220 | tvOSTopShelfImageWideLayers2x: [] 221 | iOSLaunchScreenType: 0 222 | iOSLaunchScreenPortrait: {fileID: 0} 223 | iOSLaunchScreenLandscape: {fileID: 0} 224 | iOSLaunchScreenBackgroundColor: 225 | serializedVersion: 2 226 | rgba: 0 227 | iOSLaunchScreenFillPct: 100 228 | iOSLaunchScreenSize: 100 229 | iOSLaunchScreenCustomXibPath: 230 | iOSLaunchScreeniPadType: 0 231 | iOSLaunchScreeniPadImage: {fileID: 0} 232 | iOSLaunchScreeniPadBackgroundColor: 233 | serializedVersion: 2 234 | rgba: 0 235 | iOSLaunchScreeniPadFillPct: 100 236 | iOSLaunchScreeniPadSize: 100 237 | iOSLaunchScreeniPadCustomXibPath: 238 | iOSUseLaunchScreenStoryboard: 0 239 | iOSLaunchScreenCustomStoryboardPath: 240 | iOSDeviceRequirements: [] 241 | iOSURLSchemes: [] 242 | iOSBackgroundModes: 0 243 | iOSMetalForceHardShadows: 0 244 | metalEditorSupport: 1 245 | metalAPIValidation: 1 246 | iOSRenderExtraFrameOnPause: 0 247 | appleDeveloperTeamID: 248 | iOSManualSigningProvisioningProfileID: 249 | tvOSManualSigningProvisioningProfileID: 250 | iOSManualSigningProvisioningProfileType: 0 251 | tvOSManualSigningProvisioningProfileType: 0 252 | appleEnableAutomaticSigning: 0 253 | iOSRequireARKit: 0 254 | iOSAutomaticallyDetectAndAddCapabilities: 1 255 | appleEnableProMotion: 0 256 | clonedFromGUID: 5f34be1353de5cf4398729fda238591b 257 | templatePackageId: com.unity.template.2d@3.2.0 258 | templateDefaultScene: Assets/Scenes/SampleScene.unity 259 | AndroidTargetArchitectures: 1 260 | AndroidSplashScreenScale: 0 261 | androidSplashScreen: {fileID: 0} 262 | AndroidKeystoreName: '{inproject}: ' 263 | AndroidKeyaliasName: 264 | AndroidBuildApkPerCpuArchitecture: 0 265 | AndroidTVCompatibility: 0 266 | AndroidIsGame: 1 267 | AndroidEnableTango: 0 268 | androidEnableBanner: 1 269 | androidUseLowAccuracyLocation: 0 270 | androidUseCustomKeystore: 0 271 | m_AndroidBanners: 272 | - width: 320 273 | height: 180 274 | banner: {fileID: 0} 275 | androidGamepadSupportLevel: 0 276 | AndroidValidateAppBundleSize: 1 277 | AndroidAppBundleSizeToValidate: 150 278 | resolutionDialogBanner: {fileID: 0} 279 | m_BuildTargetIcons: [] 280 | m_BuildTargetPlatformIcons: [] 281 | m_BuildTargetBatching: [] 282 | m_BuildTargetGraphicsAPIs: 283 | - m_BuildTarget: AndroidPlayer 284 | m_APIs: 150000000b000000 285 | m_Automatic: 0 286 | m_BuildTargetVRSettings: [] 287 | openGLRequireES31: 0 288 | openGLRequireES31AEP: 0 289 | openGLRequireES32: 0 290 | vuforiaEnabled: 0 291 | m_TemplateCustomTags: {} 292 | mobileMTRendering: 293 | Android: 1 294 | iPhone: 1 295 | tvOS: 1 296 | m_BuildTargetGroupLightmapEncodingQuality: [] 297 | m_BuildTargetGroupLightmapSettings: [] 298 | playModeTestRunnerEnabled: 0 299 | runPlayModeTestAsEditModeTest: 0 300 | actionOnDotNetUnhandledException: 1 301 | enableInternalProfiler: 0 302 | logObjCUncaughtExceptions: 1 303 | enableCrashReportAPI: 0 304 | cameraUsageDescription: 305 | locationUsageDescription: 306 | microphoneUsageDescription: 307 | switchNetLibKey: 308 | switchSocketMemoryPoolSize: 6144 309 | switchSocketAllocatorPoolSize: 128 310 | switchSocketConcurrencyLimit: 14 311 | switchScreenResolutionBehavior: 2 312 | switchUseCPUProfiler: 0 313 | switchApplicationID: 0x01004b9000490000 314 | switchNSODependencies: 315 | switchTitleNames_0: 316 | switchTitleNames_1: 317 | switchTitleNames_2: 318 | switchTitleNames_3: 319 | switchTitleNames_4: 320 | switchTitleNames_5: 321 | switchTitleNames_6: 322 | switchTitleNames_7: 323 | switchTitleNames_8: 324 | switchTitleNames_9: 325 | switchTitleNames_10: 326 | switchTitleNames_11: 327 | switchTitleNames_12: 328 | switchTitleNames_13: 329 | switchTitleNames_14: 330 | switchPublisherNames_0: 331 | switchPublisherNames_1: 332 | switchPublisherNames_2: 333 | switchPublisherNames_3: 334 | switchPublisherNames_4: 335 | switchPublisherNames_5: 336 | switchPublisherNames_6: 337 | switchPublisherNames_7: 338 | switchPublisherNames_8: 339 | switchPublisherNames_9: 340 | switchPublisherNames_10: 341 | switchPublisherNames_11: 342 | switchPublisherNames_12: 343 | switchPublisherNames_13: 344 | switchPublisherNames_14: 345 | switchIcons_0: {fileID: 0} 346 | switchIcons_1: {fileID: 0} 347 | switchIcons_2: {fileID: 0} 348 | switchIcons_3: {fileID: 0} 349 | switchIcons_4: {fileID: 0} 350 | switchIcons_5: {fileID: 0} 351 | switchIcons_6: {fileID: 0} 352 | switchIcons_7: {fileID: 0} 353 | switchIcons_8: {fileID: 0} 354 | switchIcons_9: {fileID: 0} 355 | switchIcons_10: {fileID: 0} 356 | switchIcons_11: {fileID: 0} 357 | switchIcons_12: {fileID: 0} 358 | switchIcons_13: {fileID: 0} 359 | switchIcons_14: {fileID: 0} 360 | switchSmallIcons_0: {fileID: 0} 361 | switchSmallIcons_1: {fileID: 0} 362 | switchSmallIcons_2: {fileID: 0} 363 | switchSmallIcons_3: {fileID: 0} 364 | switchSmallIcons_4: {fileID: 0} 365 | switchSmallIcons_5: {fileID: 0} 366 | switchSmallIcons_6: {fileID: 0} 367 | switchSmallIcons_7: {fileID: 0} 368 | switchSmallIcons_8: {fileID: 0} 369 | switchSmallIcons_9: {fileID: 0} 370 | switchSmallIcons_10: {fileID: 0} 371 | switchSmallIcons_11: {fileID: 0} 372 | switchSmallIcons_12: {fileID: 0} 373 | switchSmallIcons_13: {fileID: 0} 374 | switchSmallIcons_14: {fileID: 0} 375 | switchManualHTML: 376 | switchAccessibleURLs: 377 | switchLegalInformation: 378 | switchMainThreadStackSize: 1048576 379 | switchPresenceGroupId: 380 | switchLogoHandling: 0 381 | switchReleaseVersion: 0 382 | switchDisplayVersion: 1.0.0 383 | switchStartupUserAccount: 0 384 | switchTouchScreenUsage: 0 385 | switchSupportedLanguagesMask: 0 386 | switchLogoType: 0 387 | switchApplicationErrorCodeCategory: 388 | switchUserAccountSaveDataSize: 0 389 | switchUserAccountSaveDataJournalSize: 0 390 | switchApplicationAttribute: 0 391 | switchCardSpecSize: -1 392 | switchCardSpecClock: -1 393 | switchRatingsMask: 0 394 | switchRatingsInt_0: 0 395 | switchRatingsInt_1: 0 396 | switchRatingsInt_2: 0 397 | switchRatingsInt_3: 0 398 | switchRatingsInt_4: 0 399 | switchRatingsInt_5: 0 400 | switchRatingsInt_6: 0 401 | switchRatingsInt_7: 0 402 | switchRatingsInt_8: 0 403 | switchRatingsInt_9: 0 404 | switchRatingsInt_10: 0 405 | switchRatingsInt_11: 0 406 | switchLocalCommunicationIds_0: 407 | switchLocalCommunicationIds_1: 408 | switchLocalCommunicationIds_2: 409 | switchLocalCommunicationIds_3: 410 | switchLocalCommunicationIds_4: 411 | switchLocalCommunicationIds_5: 412 | switchLocalCommunicationIds_6: 413 | switchLocalCommunicationIds_7: 414 | switchParentalControl: 0 415 | switchAllowsScreenshot: 1 416 | switchAllowsVideoCapturing: 1 417 | switchAllowsRuntimeAddOnContentInstall: 0 418 | switchDataLossConfirmation: 0 419 | switchUserAccountLockEnabled: 0 420 | switchSystemResourceMemory: 16777216 421 | switchSupportedNpadStyles: 3 422 | switchNativeFsCacheSize: 32 423 | switchIsHoldTypeHorizontal: 0 424 | switchSupportedNpadCount: 8 425 | switchSocketConfigEnabled: 0 426 | switchTcpInitialSendBufferSize: 32 427 | switchTcpInitialReceiveBufferSize: 64 428 | switchTcpAutoSendBufferSizeMax: 256 429 | switchTcpAutoReceiveBufferSizeMax: 256 430 | switchUdpSendBufferSize: 9 431 | switchUdpReceiveBufferSize: 42 432 | switchSocketBufferEfficiency: 4 433 | switchSocketInitializeEnabled: 1 434 | switchNetworkInterfaceManagerInitializeEnabled: 1 435 | switchPlayerConnectionEnabled: 1 436 | ps4NPAgeRating: 12 437 | ps4NPTitleSecret: 438 | ps4NPTrophyPackPath: 439 | ps4ParentalLevel: 11 440 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 441 | ps4Category: 0 442 | ps4MasterVersion: 01.00 443 | ps4AppVersion: 01.00 444 | ps4AppType: 0 445 | ps4ParamSfxPath: 446 | ps4VideoOutPixelFormat: 0 447 | ps4VideoOutInitialWidth: 1920 448 | ps4VideoOutBaseModeInitialWidth: 1920 449 | ps4VideoOutReprojectionRate: 60 450 | ps4PronunciationXMLPath: 451 | ps4PronunciationSIGPath: 452 | ps4BackgroundImagePath: 453 | ps4StartupImagePath: 454 | ps4StartupImagesFolder: 455 | ps4IconImagesFolder: 456 | ps4SaveDataImagePath: 457 | ps4SdkOverride: 458 | ps4BGMPath: 459 | ps4ShareFilePath: 460 | ps4ShareOverlayImagePath: 461 | ps4PrivacyGuardImagePath: 462 | ps4NPtitleDatPath: 463 | ps4RemotePlayKeyAssignment: -1 464 | ps4RemotePlayKeyMappingDir: 465 | ps4PlayTogetherPlayerCount: 0 466 | ps4EnterButtonAssignment: 1 467 | ps4ApplicationParam1: 0 468 | ps4ApplicationParam2: 0 469 | ps4ApplicationParam3: 0 470 | ps4ApplicationParam4: 0 471 | ps4DownloadDataSize: 0 472 | ps4GarlicHeapSize: 2048 473 | ps4ProGarlicHeapSize: 2560 474 | playerPrefsMaxSize: 32768 475 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 476 | ps4pnSessions: 1 477 | ps4pnPresence: 1 478 | ps4pnFriends: 1 479 | ps4pnGameCustomData: 1 480 | playerPrefsSupport: 0 481 | enableApplicationExit: 0 482 | resetTempFolder: 1 483 | restrictedAudioUsageRights: 0 484 | ps4UseResolutionFallback: 0 485 | ps4ReprojectionSupport: 0 486 | ps4UseAudio3dBackend: 0 487 | ps4SocialScreenEnabled: 0 488 | ps4ScriptOptimizationLevel: 0 489 | ps4Audio3dVirtualSpeakerCount: 14 490 | ps4attribCpuUsage: 0 491 | ps4PatchPkgPath: 492 | ps4PatchLatestPkgPath: 493 | ps4PatchChangeinfoPath: 494 | ps4PatchDayOne: 0 495 | ps4attribUserManagement: 0 496 | ps4attribMoveSupport: 0 497 | ps4attrib3DSupport: 0 498 | ps4attribShareSupport: 0 499 | ps4attribExclusiveVR: 0 500 | ps4disableAutoHideSplash: 0 501 | ps4videoRecordingFeaturesUsed: 0 502 | ps4contentSearchFeaturesUsed: 0 503 | ps4attribEyeToEyeDistanceSettingVR: 0 504 | ps4IncludedModules: [] 505 | monoEnv: 506 | splashScreenBackgroundSourceLandscape: {fileID: 0} 507 | splashScreenBackgroundSourcePortrait: {fileID: 0} 508 | blurSplashScreenBackground: 1 509 | spritePackerPolicy: 510 | webGLMemorySize: 16 511 | webGLExceptionSupport: 1 512 | webGLNameFilesAsHashes: 0 513 | webGLDataCaching: 1 514 | webGLDebugSymbols: 0 515 | webGLEmscriptenArgs: 516 | webGLModulesDirectory: 517 | webGLTemplate: APPLICATION:Default 518 | webGLAnalyzeBuildSize: 0 519 | webGLUseEmbeddedResources: 0 520 | webGLCompressionFormat: 1 521 | webGLLinkerTarget: 1 522 | webGLThreadsSupport: 0 523 | webGLWasmStreaming: 0 524 | scriptingDefineSymbols: 525 | 1: UNITY_POST_PROCESSING_STACK_V2 526 | 7: UNITY_POST_PROCESSING_STACK_V2 527 | 13: UNITY_POST_PROCESSING_STACK_V2 528 | 19: UNITY_POST_PROCESSING_STACK_V2 529 | 21: UNITY_POST_PROCESSING_STACK_V2 530 | 25: UNITY_POST_PROCESSING_STACK_V2 531 | 26: UNITY_POST_PROCESSING_STACK_V2 532 | 27: UNITY_POST_PROCESSING_STACK_V2 533 | 28: UNITY_POST_PROCESSING_STACK_V2 534 | 29: UNITY_POST_PROCESSING_STACK_V2 535 | platformArchitecture: {} 536 | scriptingBackend: {} 537 | il2cppCompilerConfiguration: {} 538 | managedStrippingLevel: {} 539 | incrementalIl2cppBuild: {} 540 | allowUnsafeCode: 0 541 | additionalIl2CppArgs: 542 | scriptingRuntimeVersion: 1 543 | gcIncremental: 0 544 | gcWBarrierValidation: 0 545 | apiCompatibilityLevelPerPlatform: {} 546 | m_RenderingPath: 1 547 | m_MobileRenderingPath: 1 548 | metroPackageName: Template_2D 549 | metroPackageVersion: 550 | metroCertificatePath: 551 | metroCertificatePassword: 552 | metroCertificateSubject: 553 | metroCertificateIssuer: 554 | metroCertificateNotAfter: 0000000000000000 555 | metroApplicationDescription: Template_2D 556 | wsaImages: {} 557 | metroTileShortName: 558 | metroTileShowName: 0 559 | metroMediumTileShowName: 0 560 | metroLargeTileShowName: 0 561 | metroWideTileShowName: 0 562 | metroSupportStreamingInstall: 0 563 | metroLastRequiredScene: 0 564 | metroDefaultTileSize: 1 565 | metroTileForegroundText: 2 566 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 567 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 568 | a: 1} 569 | metroSplashScreenUseBackgroundColor: 0 570 | platformCapabilities: {} 571 | metroTargetDeviceFamilies: {} 572 | metroFTAName: 573 | metroFTAFileTypes: [] 574 | metroProtocolName: 575 | XboxOneProductId: 576 | XboxOneUpdateKey: 577 | XboxOneSandboxId: 578 | XboxOneContentId: 579 | XboxOneTitleId: 580 | XboxOneSCId: 581 | XboxOneGameOsOverridePath: 582 | XboxOnePackagingOverridePath: 583 | XboxOneAppManifestOverridePath: 584 | XboxOneVersion: 1.0.0.0 585 | XboxOnePackageEncryption: 0 586 | XboxOnePackageUpdateGranularity: 2 587 | XboxOneDescription: 588 | XboxOneLanguage: 589 | - enus 590 | XboxOneCapability: [] 591 | XboxOneGameRating: {} 592 | XboxOneIsContentPackage: 0 593 | XboxOneEnableGPUVariability: 1 594 | XboxOneSockets: {} 595 | XboxOneSplashScreen: {fileID: 0} 596 | XboxOneAllowedProductIds: [] 597 | XboxOnePersistentLocalStorageSize: 0 598 | XboxOneXTitleMemory: 8 599 | xboxOneScriptCompiler: 1 600 | XboxOneOverrideIdentityName: 601 | vrEditorSettings: 602 | daydream: 603 | daydreamIconForeground: {fileID: 0} 604 | daydreamIconBackground: {fileID: 0} 605 | cloudServicesEnabled: 606 | Collab: 1 607 | UNet: 1 608 | luminIcon: 609 | m_Name: 610 | m_ModelFolderPath: 611 | m_PortalFolderPath: 612 | luminCert: 613 | m_CertPath: 614 | m_SignPackage: 1 615 | luminIsChannelApp: 0 616 | luminVersion: 617 | m_VersionCode: 1 618 | m_VersionName: 619 | facebookSdkVersion: 7.9.4 620 | facebookAppId: 621 | facebookCookies: 1 622 | facebookLogging: 1 623 | facebookStatus: 1 624 | facebookXfbml: 0 625 | facebookFrictionlessRequests: 1 626 | apiCompatibilityLevel: 6 627 | cloudProjectId: aa45b097-22d9-4729-9f8e-85443189447f 628 | framebufferDepthMemorylessMode: 0 629 | projectName: black friday 630 | organizationId: urban420 631 | cloudEnabled: 0 632 | enableNativePlatformBackendsForNewInputSystem: 0 633 | disableOldInputManagerSupport: 0 634 | legacyClampBlendShapeWeights: 1 635 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2019.2.13f1 2 | m_EditorVersionWithRevision: 2019.2.13f1 (e20f6c7e5017) 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: 3 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | skinWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 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 | excludedTargetPlatforms: [] 44 | - serializedVersion: 2 45 | name: Low 46 | pixelLightCount: 0 47 | shadows: 0 48 | shadowResolution: 0 49 | shadowProjection: 1 50 | shadowCascades: 1 51 | shadowDistance: 20 52 | shadowNearPlaneOffset: 3 53 | shadowCascade2Split: 0.33333334 54 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 55 | shadowmaskMode: 0 56 | skinWeights: 2 57 | textureQuality: 0 58 | anisotropicTextures: 0 59 | antiAliasing: 0 60 | softParticles: 0 61 | softVegetation: 0 62 | realtimeReflectionProbes: 0 63 | billboardsFaceCameraPosition: 0 64 | vSyncCount: 0 65 | lodBias: 0.4 66 | maximumLODLevel: 0 67 | streamingMipmapsActive: 0 68 | streamingMipmapsAddAllCameras: 1 69 | streamingMipmapsMemoryBudget: 512 70 | streamingMipmapsRenderersPerFrame: 512 71 | streamingMipmapsMaxLevelReduction: 2 72 | streamingMipmapsMaxFileIORequests: 1024 73 | particleRaycastBudget: 16 74 | asyncUploadTimeSlice: 2 75 | asyncUploadBufferSize: 16 76 | asyncUploadPersistentBuffer: 1 77 | resolutionScalingFixedDPIFactor: 1 78 | excludedTargetPlatforms: [] 79 | - serializedVersion: 2 80 | name: Medium 81 | pixelLightCount: 1 82 | shadows: 0 83 | shadowResolution: 0 84 | shadowProjection: 1 85 | shadowCascades: 1 86 | shadowDistance: 20 87 | shadowNearPlaneOffset: 3 88 | shadowCascade2Split: 0.33333334 89 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 90 | shadowmaskMode: 0 91 | skinWeights: 2 92 | textureQuality: 0 93 | anisotropicTextures: 0 94 | antiAliasing: 0 95 | softParticles: 0 96 | softVegetation: 0 97 | realtimeReflectionProbes: 0 98 | billboardsFaceCameraPosition: 0 99 | vSyncCount: 1 100 | lodBias: 0.7 101 | maximumLODLevel: 0 102 | streamingMipmapsActive: 0 103 | streamingMipmapsAddAllCameras: 1 104 | streamingMipmapsMemoryBudget: 512 105 | streamingMipmapsRenderersPerFrame: 512 106 | streamingMipmapsMaxLevelReduction: 2 107 | streamingMipmapsMaxFileIORequests: 1024 108 | particleRaycastBudget: 64 109 | asyncUploadTimeSlice: 2 110 | asyncUploadBufferSize: 16 111 | asyncUploadPersistentBuffer: 1 112 | resolutionScalingFixedDPIFactor: 1 113 | excludedTargetPlatforms: [] 114 | - serializedVersion: 2 115 | name: High 116 | pixelLightCount: 2 117 | shadows: 0 118 | shadowResolution: 1 119 | shadowProjection: 1 120 | shadowCascades: 2 121 | shadowDistance: 40 122 | shadowNearPlaneOffset: 3 123 | shadowCascade2Split: 0.33333334 124 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 125 | shadowmaskMode: 1 126 | skinWeights: 2 127 | textureQuality: 0 128 | anisotropicTextures: 0 129 | antiAliasing: 0 130 | softParticles: 0 131 | softVegetation: 1 132 | realtimeReflectionProbes: 0 133 | billboardsFaceCameraPosition: 0 134 | vSyncCount: 1 135 | lodBias: 1 136 | maximumLODLevel: 0 137 | streamingMipmapsActive: 0 138 | streamingMipmapsAddAllCameras: 1 139 | streamingMipmapsMemoryBudget: 512 140 | streamingMipmapsRenderersPerFrame: 512 141 | streamingMipmapsMaxLevelReduction: 2 142 | streamingMipmapsMaxFileIORequests: 1024 143 | particleRaycastBudget: 256 144 | asyncUploadTimeSlice: 2 145 | asyncUploadBufferSize: 16 146 | asyncUploadPersistentBuffer: 1 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Very High 151 | pixelLightCount: 3 152 | shadows: 0 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 2 156 | shadowDistance: 70 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | skinWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 0 164 | antiAliasing: 0 165 | softParticles: 0 166 | softVegetation: 1 167 | realtimeReflectionProbes: 0 168 | billboardsFaceCameraPosition: 0 169 | vSyncCount: 1 170 | lodBias: 1.5 171 | maximumLODLevel: 0 172 | streamingMipmapsActive: 0 173 | streamingMipmapsAddAllCameras: 1 174 | streamingMipmapsMemoryBudget: 512 175 | streamingMipmapsRenderersPerFrame: 512 176 | streamingMipmapsMaxLevelReduction: 2 177 | streamingMipmapsMaxFileIORequests: 1024 178 | particleRaycastBudget: 1024 179 | asyncUploadTimeSlice: 2 180 | asyncUploadBufferSize: 16 181 | asyncUploadPersistentBuffer: 1 182 | resolutionScalingFixedDPIFactor: 1 183 | excludedTargetPlatforms: [] 184 | - serializedVersion: 2 185 | name: Ultra 186 | pixelLightCount: 4 187 | shadows: 0 188 | shadowResolution: 0 189 | shadowProjection: 1 190 | shadowCascades: 4 191 | shadowDistance: 150 192 | shadowNearPlaneOffset: 3 193 | shadowCascade2Split: 0.33333334 194 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 195 | shadowmaskMode: 1 196 | skinWeights: 4 197 | textureQuality: 0 198 | anisotropicTextures: 0 199 | antiAliasing: 0 200 | softParticles: 0 201 | softVegetation: 1 202 | realtimeReflectionProbes: 0 203 | billboardsFaceCameraPosition: 0 204 | vSyncCount: 1 205 | lodBias: 2 206 | maximumLODLevel: 0 207 | streamingMipmapsActive: 0 208 | streamingMipmapsAddAllCameras: 1 209 | streamingMipmapsMemoryBudget: 512 210 | streamingMipmapsRenderersPerFrame: 512 211 | streamingMipmapsMaxLevelReduction: 2 212 | streamingMipmapsMaxFileIORequests: 1024 213 | particleRaycastBudget: 4096 214 | asyncUploadTimeSlice: 2 215 | asyncUploadBufferSize: 16 216 | asyncUploadPersistentBuffer: 1 217 | resolutionScalingFixedDPIFactor: 1 218 | excludedTargetPlatforms: [] 219 | m_PerPlatformDefaultQuality: {} 220 | -------------------------------------------------------------------------------- /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 | - Player 17 | - Projectile 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.1 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /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: 1 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_TestInitMode: 0 13 | CrashReportingSettings: 14 | m_EventUrl: https://perf-events.cloud.unity3d.com 15 | m_Enabled: 1 16 | m_LogBufferSize: 10 17 | m_CaptureEditorExceptions: 1 18 | UnityPurchasingSettings: 19 | m_Enabled: 0 20 | m_TestMode: 0 21 | UnityAnalyticsSettings: 22 | m_Enabled: 1 23 | m_TestMode: 0 24 | m_InitializeOnStartup: 1 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /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_RenderPipeSettingsPath: 8 | -------------------------------------------------------------------------------- /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 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # 2D lighting experiment 2 | 3 | Demo scene included 4 | 5 | ![Demo gif](https://raw.githubusercontent.com/Cryption/Unity2D-Pathtracer/master/Demo1.gif) 6 | ![Demo img](https://raw.githubusercontent.com/Cryption/Unity2D-Pathtracer/master/Demo2.png) --------------------------------------------------------------------------------