From f4a85669a57d46e293199892742134677112cb02 Mon Sep 17 00:00:00 2001 From: uc-hoba Date: Thu, 1 Mar 2018 17:17:07 +0800 Subject: [PATCH] update Particle with Kinect --- Unity_2018_Frozen/Assets/Frozen/Frozen.unity | 311 ++++++++++++++++-- .../Assets/Frozen/FrozenCanvas.renderTexture | 33 ++ .../Frozen/FrozenCanvas.renderTexture.meta | 10 + .../Assets/Frozen/Material/Ground.mat | 6 +- .../Assets/Frozen/Material/Snowflake.mat | 6 +- .../Assets/Frozen/ParticleUniforms.asset | 16 +- .../Assets/Frozen/PostProcessingProfile.asset | 2 +- Unity_2018_Frozen/Assets/Frozen/Script.meta | 10 + .../Frozen/Script/SnowflakeParticleUpdater.cs | 115 +++++++ .../Script/SnowflakeParticleUpdater.cs.meta | 13 + .../Shader/SnowflakeParticleUpdate.compute | 34 +- .../Assets/Frozen/Texture/Frozen-CC065205.tif | Bin 0 -> 282280 bytes .../Frozen/Texture/Frozen-CC065205.tif.meta | 87 +++++ .../KinectOpticalFlow/KinectOpticalFlow.cs | 41 +-- .../KinectUpdateShader.compute | 22 +- .../ProjectSettings/EditorBuildSettings.asset | 5 +- .../ProjectSettings/GraphicsSettings.asset | 2 + 17 files changed, 632 insertions(+), 81 deletions(-) create mode 100644 Unity_2018_Frozen/Assets/Frozen/FrozenCanvas.renderTexture create mode 100644 Unity_2018_Frozen/Assets/Frozen/FrozenCanvas.renderTexture.meta create mode 100644 Unity_2018_Frozen/Assets/Frozen/Script.meta create mode 100644 Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs create mode 100644 Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs.meta create mode 100644 Unity_2018_Frozen/Assets/Frozen/Texture/Frozen-CC065205.tif create mode 100644 Unity_2018_Frozen/Assets/Frozen/Texture/Frozen-CC065205.tif.meta diff --git a/Unity_2018_Frozen/Assets/Frozen/Frozen.unity b/Unity_2018_Frozen/Assets/Frozen/Frozen.unity index 5660d61..c87c0ae 100644 --- a/Unity_2018_Frozen/Assets/Frozen/Frozen.unity +++ b/Unity_2018_Frozen/Assets/Frozen/Frozen.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.060945295, g: 0.054545894, b: 0.039643742, a: 1} + m_IndirectSpecularColor: {r: 0.021216419, g: 0.053037528, b: 0.08577963, a: 1} --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 @@ -236,7 +236,7 @@ Camera: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 - m_RenderingPath: 3 + m_RenderingPath: 1 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 m_TargetEye: 3 @@ -254,7 +254,7 @@ Transform: m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 151858420} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalPosition: {x: 0, y: 1, z: -5} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} @@ -544,17 +544,17 @@ MonoBehaviour: m_GameObject: {fileID: 350883107} m_Enabled: 1 m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 364a6df5fc849f7448e97efcaa6cefdc, type: 3} + m_Script: {fileID: 11500000, guid: 15ad9c9a8c81d2c4184b50d96a669c7d, type: 3} m_Name: m_EditorClassIdentifier: reset: 0 maxParticles: 100000 particleBuffer: {fileID: 438615022} - homeBuffer: {fileID: 1375512057} - homeVelocityBuffer: {fileID: 1924148042} shader: {fileID: 7200000, guid: d6604fabdbb13e9428c849c59feccdac, type: 3} uniformBuffer: {fileID: 441718966} cosineGradient: {fileID: 11400000, guid: 2138651e11178d04ba510ef9164baf46, type: 2} + kinectOpticalFlow: {fileID: 1848145251} + smokeFluidSim: {fileID: 774429923} debug: --- !u!1 &368967883 GameObject: @@ -649,14 +649,14 @@ Camera: near clip plane: 0.3 far clip plane: 1000 field of view: 60 - orthographic: 0 + orthographic: 1 orthographic size: 5 m_Depth: 0 m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 - m_RenderingPath: 3 - m_TargetTexture: {fileID: 0} + m_RenderingPath: 1 + m_TargetTexture: {fileID: 8400000, guid: 6921d0717fba0654597a7ad3fb5c47e7, type: 2} m_TargetDisplay: 1 m_TargetEye: 3 m_HDR: 1 @@ -672,13 +672,13 @@ Transform: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 368967883} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -0.08047724, y: 0.520406, z: -0.95207787} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 10, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!1 &386695295 GameObject: m_ObjectHideFlags: 0 @@ -708,7 +708,7 @@ Transform: - {fileID: 850228141} - {fileID: 1848145250} m_Father: {fileID: 0} - m_RootOrder: 5 + m_RootOrder: 7 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &401185750 GameObject: @@ -740,7 +740,7 @@ Transform: - {fileID: 1579390333} - {fileID: 343589999} m_Father: {fileID: 0} - m_RootOrder: 6 + m_RootOrder: 8 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &438615021 GameObject: @@ -783,6 +783,100 @@ Transform: m_Father: {fileID: 732632615} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &439594035 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 439594039} + - component: {fileID: 439594038} + - component: {fileID: 439594037} + - component: {fileID: 439594036} + m_Layer: 5 + m_Name: Canvas + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &439594036 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 439594035} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_IgnoreReversedGraphics: 1 + m_BlockingObjects: 0 + m_BlockingMask: + serializedVersion: 2 + m_Bits: 4294967295 +--- !u!114 &439594037 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 439594035} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_UiScaleMode: 0 + m_ReferencePixelsPerUnit: 100 + m_ScaleFactor: 1 + m_ReferenceResolution: {x: 800, y: 600} + m_ScreenMatchMode: 0 + m_MatchWidthOrHeight: 0 + m_PhysicalUnit: 3 + m_FallbackScreenDPI: 96 + m_DefaultSpriteDPI: 96 + m_DynamicPixelsPerUnit: 1 +--- !u!223 &439594038 +Canvas: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 439594035} + m_Enabled: 1 + serializedVersion: 3 + m_RenderMode: 0 + m_Camera: {fileID: 151858423} + m_PlaneDistance: 100 + m_PixelPerfect: 0 + m_ReceivesEvents: 1 + m_OverrideSorting: 0 + m_OverridePixelPerfect: 0 + m_SortingBucketNormalizedSize: 0 + m_AdditionalShaderChannelsFlag: 0 + m_SortingLayerID: 0 + m_SortingOrder: 0 + m_TargetDisplay: 0 +--- !u!224 &439594039 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 439594035} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 0, y: 0, z: 0} + m_Children: + - {fileID: 770059767} + m_Father: {fileID: 0} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 0, y: 0} + m_AnchorMax: {x: 0, y: 0} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 0, y: 0} + m_Pivot: {x: 0, y: 0} --- !u!1 &441718963 GameObject: m_ObjectHideFlags: 0 @@ -1047,7 +1141,7 @@ Transform: m_LocalScale: {x: 2, y: 2, z: 2} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 8 + m_RootOrder: 10 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &618046638 GameObject: @@ -1139,8 +1233,75 @@ Transform: - {fileID: 1375512056} - {fileID: 1924148041} m_Father: {fileID: 0} - m_RootOrder: 7 + m_RootOrder: 9 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &770059766 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 770059767} + - component: {fileID: 770059769} + - component: {fileID: 770059768} + m_Layer: 5 + m_Name: RawImage + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!224 &770059767 +RectTransform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 770059766} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 439594039} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} + m_AnchorMin: {x: 1, y: 1} + m_AnchorMax: {x: 1, y: 1} + m_AnchoredPosition: {x: 0, y: 0} + m_SizeDelta: {x: 640, y: 360} + m_Pivot: {x: 1, y: 1} +--- !u!114 &770059768 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 770059766} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -98529514, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Material: {fileID: 0} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_RaycastTarget: 1 + m_OnCullStateChanged: + m_PersistentCalls: + m_Calls: [] + m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI, + Version=1.0.0.0, Culture=neutral, PublicKeyToken=null + m_Texture: {fileID: 8400000, guid: 6921d0717fba0654597a7ad3fb5c47e7, type: 2} + m_UVRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 +--- !u!222 &770059769 +CanvasRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 770059766} --- !u!1001 &774429922 Prefab: m_ObjectHideFlags: 0 @@ -1262,7 +1423,7 @@ Prefab: objectReference: {fileID: 0} - target: {fileID: 11400000, guid: 0b40c0b4ea4208b4792d95085b850676, type: 2} propertyPath: doDraw - value: 1 + value: 0 objectReference: {fileID: 0} - target: {fileID: 100000, guid: 0b40c0b4ea4208b4792d95085b850676, type: 2} propertyPath: m_Layer @@ -1564,7 +1725,7 @@ Light: serializedVersion: 8 m_Type: 1 m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} - m_Intensity: 1 + m_Intensity: 0.2 m_Range: 10 m_SpotAngle: 30 m_CookieSize: 10 @@ -1596,13 +1757,13 @@ Transform: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1071731253} - m_LocalRotation: {x: 0.04213311, y: -0.2585727, z: 0.011289531, w: 0.96500653} - m_LocalPosition: {x: 0, y: 3, z: 0} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0, y: 10, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 5, y: -30, z: 0} + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} --- !u!1 &1196719910 GameObject: m_ObjectHideFlags: 0 @@ -1724,6 +1885,50 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: bufferName: home_buffer +--- !u!1 &1390635887 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1390635888} + - component: {fileID: 1390635889} + m_Layer: 0 + m_Name: Misc + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1390635888 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1390635887} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1390635889 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1390635887} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 400c2cde369742e4690d5216c5c3b3c3, type: 3} + m_Name: + m_EditorClassIdentifier: + width: 1280 + height: 720 + fps: 60 + fullscreen: 0 --- !u!1 &1430681566 GameObject: m_ObjectHideFlags: 0 @@ -1964,7 +2169,7 @@ MonoBehaviour: - {fileID: 810572923} - {fileID: 563719738} updateShader: {fileID: 7200000, guid: 514ebfeae1aec6342b486c73b1fbfa32, type: 3} - clearShader: {fileID: 7200000, guid: 5a8d2c045ee23f743a54f85301ca1c0b, type: 3} + applyShader: {fileID: 7200000, guid: 5a8d2c045ee23f743a54f85301ca1c0b, type: 3} flipX: 1 clipMin: {x: -0.85, y: 0.3, z: 0} clipMax: {x: 0.71, y: 0.45, z: 1.63} @@ -2018,3 +2223,65 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: bufferName: home_buffer +--- !u!1 &2129467936 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2129467939} + - component: {fileID: 2129467938} + - component: {fileID: 2129467937} + m_Layer: 0 + m_Name: EventSystem + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2129467937 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2129467936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_HorizontalAxis: Horizontal + m_VerticalAxis: Vertical + m_SubmitButton: Submit + m_CancelButton: Cancel + m_InputActionsPerSecond: 10 + m_RepeatDelay: 0.5 + m_ForceModuleActive: 0 +--- !u!114 &2129467938 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2129467936} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3} + m_Name: + m_EditorClassIdentifier: + m_FirstSelected: {fileID: 0} + m_sendNavigationEvents: 1 + m_DragThreshold: 5 +--- !u!4 &2129467939 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2129467936} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Unity_2018_Frozen/Assets/Frozen/FrozenCanvas.renderTexture b/Unity_2018_Frozen/Assets/Frozen/FrozenCanvas.renderTexture new file mode 100644 index 0000000..b84ce4d --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/FrozenCanvas.renderTexture @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!84 &8400000 +RenderTexture: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: FrozenCanvas + m_ImageContentsHash: + serializedVersion: 2 + Hash: 00000000000000000000000000000000 + m_ForcedFallbackFormat: 4 + m_DownscaleFallback: 0 + m_Width: 3840 + m_Height: 2160 + m_AntiAliasing: 1 + m_DepthFormat: 0 + m_ColorFormat: 0 + m_MipMap: 0 + m_GenerateMips: 1 + m_SRGB: 0 + m_UseDynamicScale: 0 + m_BindMS: 0 + m_TextureSettings: + serializedVersion: 2 + m_FilterMode: 1 + m_Aniso: 0 + m_MipBias: 0 + m_WrapU: 1 + m_WrapV: 1 + m_WrapW: 1 + m_Dimension: 2 + m_VolumeDepth: 1 diff --git a/Unity_2018_Frozen/Assets/Frozen/FrozenCanvas.renderTexture.meta b/Unity_2018_Frozen/Assets/Frozen/FrozenCanvas.renderTexture.meta new file mode 100644 index 0000000..152bd9c --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/FrozenCanvas.renderTexture.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6921d0717fba0654597a7ad3fb5c47e7 +timeCreated: 1519894816 +licenseType: Free +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 8400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Frozen/Material/Ground.mat b/Unity_2018_Frozen/Assets/Frozen/Material/Ground.mat index 52b9352..f9ee034 100644 --- a/Unity_2018_Frozen/Assets/Frozen/Material/Ground.mat +++ b/Unity_2018_Frozen/Assets/Frozen/Material/Ground.mat @@ -8,8 +8,8 @@ Material: m_PrefabInternal: {fileID: 0} m_Name: Ground m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} - m_ShaderKeywords: - m_LightmapFlags: 4 + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 m_EnableInstancingVariants: 0 m_DoubleSidedGI: 0 m_CustomRenderQueue: -1 @@ -72,5 +72,5 @@ Material: - _UVSec: 0 - _ZWrite: 1 m_Colors: - - _Color: {r: 1, g: 1, b: 1, a: 0.9019608} + - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/Unity_2018_Frozen/Assets/Frozen/Material/Snowflake.mat b/Unity_2018_Frozen/Assets/Frozen/Material/Snowflake.mat index 0a00373..088cc74 100644 --- a/Unity_2018_Frozen/Assets/Frozen/Material/Snowflake.mat +++ b/Unity_2018_Frozen/Assets/Frozen/Material/Snowflake.mat @@ -41,7 +41,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MainTex: - m_Texture: {fileID: 2800000, guid: f59ee687c02517e45819a3f0bcf97b7f, type: 3} + m_Texture: {fileID: 2800000, guid: 6dc1e348a9a1d8340b408bdddc7a63f8, type: 3} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - _MetallicGlossMap: @@ -64,7 +64,7 @@ Material: - _CameraNearFadeDistance: 1 - _ColorMode: 0 - _Cull: 0 - - _Cutoff: 0.068 + - _Cutoff: 0.5 - _DetailNormalMapScale: 1 - _DistortionBlend: 0.5 - _DistortionEnabled: 0 @@ -91,7 +91,7 @@ Material: - _ZWrite: 1 m_Colors: - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} - - _Color: {r: 5.153, g: 5.153, b: 5.153, a: 1} + - _Color: {r: 5.168, g: 5.168, b: 5.168, a: 1} - _ColorAddSubDiff: {r: 0, g: 0, b: 0, a: 0} - _EmissionColor: {r: 0.787, g: 0.787, b: 0.787, a: 1} - _SoftParticleFadeParams: {r: 0, g: 0, b: 0, a: 0} diff --git a/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset b/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset index 2859616..f01b917 100644 --- a/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset +++ b/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset @@ -13,18 +13,18 @@ MonoBehaviour: m_EditorClassIdentifier: numRate: 1 movement: 1 - geomSize: 0.037 - velocityDamping: 1 - lifeDuration: 0 + geomSize: 0.2 + velocityDamping: 0.95 + lifeDuration: 7 lifeVariation: 0 - convergence: 0.053 - homeStrength: 0.116 - noiseStrength: 0.126 + convergence: 0 + homeStrength: 0 + noiseStrength: 0.037 noiseSeed: 0.5 noiseTimeScale: 1 noiseFrequency: 0.29 forceDirection: {x: 0, y: -1, z: 0} - forceStrength: 0.015 + forceStrength: 0.05 impulsePosition: {x: 0, y: 0, z: 0} impulseRadius: 3 - impulseStrength: -1 + impulseStrength: 1 diff --git a/Unity_2018_Frozen/Assets/Frozen/PostProcessingProfile.asset b/Unity_2018_Frozen/Assets/Frozen/PostProcessingProfile.asset index 578de02..afcef81 100644 --- a/Unity_2018_Frozen/Assets/Frozen/PostProcessingProfile.asset +++ b/Unity_2018_Frozen/Assets/Frozen/PostProcessingProfile.asset @@ -33,7 +33,7 @@ MonoBehaviour: value: 1 intensity: overrideState: 1 - value: 3 + value: 1 threshold: overrideState: 1 value: 1.1 diff --git a/Unity_2018_Frozen/Assets/Frozen/Script.meta b/Unity_2018_Frozen/Assets/Frozen/Script.meta new file mode 100644 index 0000000..4777430 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Script.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 6635fe3fb7aa6f747bbde014546ee9ad +folderAsset: yes +timeCreated: 1519889654 +licenseType: Free +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs b/Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs new file mode 100644 index 0000000..7c58740 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs @@ -0,0 +1,115 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace UltraCombos.Frozen +{ + public class SnowflakeParticleUpdater : MonoBehaviour + { + public bool reset = false; + [Range(1, 1 << 20)] + public int maxParticles = 1 << 15; + public StructuredBuffer particleBuffer = null; + List buffer_data = null; + + public ComputeShader shader = null; + ComputeBuffer args_buffer = null; + + public UniformStructuredBuffer uniformBuffer; + ParticleUniforms uniforms = null; + + public Klak.Chromatics.CosineGradient cosineGradient = null; + + bool is_initialized = false; + + [SerializeField] + KinectOpticalFlow kinectOpticalFlow; + [SerializeField] + FluidSim3DProject.SmokeFluidSim smokeFluidSim; + + [SerializeField] + string debug; + + private void Start() + { + uniforms = uniformBuffer.uniform as ParticleUniforms; + StartCoroutine(Initialize()); + } + + private void FixedUpdate() + { + if (is_initialized == false) + return; + + if (reset) + { + reset = false; + OnReset(); + } + + UpdateParticle(Time.fixedDeltaTime); + } + + private void OnDestroy() + { + Utilities.Release(ref args_buffer); + } + + private void OnReset() + { + particleBuffer.SetData(buffer_data); + } + + private IEnumerator Initialize() + { +#if false + { + uint[] args = new uint[3] { (uint)Mathf.CeilToInt((float)maxHomes / WORK_GROUP_SIZE), 1, 1 }; + home_args_buffer = new ComputeBuffer(1, args.Length * sizeof(uint), ComputeBufferType.IndirectArguments); + home_args_buffer.SetData(args); + } +#endif + { + args_buffer = shader.CreateIndirectComputeArgsBuffer(maxParticles, 1, 1); + } + + { + buffer_data = new List(); + yield return Utilities.GetRandomParticleData(maxParticles, buffer_data); + } + + is_initialized = true; + OnReset(); + } + + private void UpdateParticle(float time_step) + { + { + shader.SetFloat("timeStep", time_step); + shader.SetFloat("timeValue", Utilities.GetTimeValue()); + shader.SetInt("home_count", kinectOpticalFlow.HomeCount); + shader.SetFloat("bufferCount", particleBuffer.count); + + if (cosineGradient != null) + { + shader.SetVector("coeffsA", cosineGradient.coeffsA); + shader.SetVector("coeffsB", cosineGradient.coeffsB); + shader.SetVector("coeffsC", cosineGradient.coeffsC2); + shader.SetVector("coeffsD", cosineGradient.coeffsD2); + } + + shader.SetVector("FluidGridDim", smokeFluidSim.GridDim); + shader.SetVector("FluidGridRoot", smokeFluidSim.GridRoot); + shader.SetVector("FluidGridSize", smokeFluidSim.GridSize); + + shader.SetBuffer(0, particleBuffer.bufferName, particleBuffer.obj); + shader.SetBuffer(0, uniformBuffer.bufferName, uniformBuffer.obj); + shader.SetBuffer(0, "home_position_buffer", kinectOpticalFlow.HomePositionBuffer); + shader.SetBuffer(0, "home_velocity_buffer", kinectOpticalFlow.HomeVelocityBuffer); + shader.SetBuffer(0, "fluid_velocity_buffer", smokeFluidSim.VelocityBuffer); + + shader.DispatchIndirect(0, args_buffer); + } + } + } +} \ No newline at end of file diff --git a/Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs.meta b/Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs.meta new file mode 100644 index 0000000..4f5c71d --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: 15ad9c9a8c81d2c4184b50d96a669c7d +timeCreated: 1519889674 +licenseType: Free +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute b/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute index 6051024..00f27a9 100644 --- a/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute +++ b/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute @@ -15,27 +15,31 @@ CBUFFER_START(Variables) float3 coeffsB; float3 coeffsC; float3 coeffsD; + float4 FluidGridDim; + float4 FluidGridRoot; + float4 FluidGridSize; CBUFFER_END RWStructuredBuffer ssbo; RWStructuredBuffer uniform_buffer; -RWStructuredBuffer home_buffer; +RWStructuredBuffer home_position_buffer; RWStructuredBuffer home_velocity_buffer; +RWStructuredBuffer fluid_velocity_buffer; [numthreads(WORK_GROUP_SIZE, 1, 1)] void CSMain(uint3 id : SV_DispatchThreadID) { uint idx = id.x; Particle p = ssbo[idx]; - float4 home = (home_count > 0) ? home_buffer[p.seed * home_count] : float4(0, 0, 0, 1); - float4 home_velcity = (home_count > 0) ? home_velocity_buffer[p.seed * home_count] : float4(0, 0, 0, 1); + float4 home_position = (home_count > 0) ? home_position_buffer[p.seed * home_count] : float4(0, 0, 0, 1); + float4 home_velocity = (home_count > 0) ? home_velocity_buffer[p.seed * home_count] : float4(0, 0, 0, 1); ParticleUniforms uni = uniform_buffer[0]; float factor = p.color.a; float3 acc = float3(0, 0, 0); float3 F = float3(0, 0, 0); - //if (lifeDuration > 0.1f) + if (home_count > 0) { float duration = uni.lifeDuration * (1.0f + factor * uni.lifeVariation); float current_life = p.life * duration + timeStep; @@ -50,9 +54,9 @@ void CSMain(uint3 id : SV_DispatchThreadID) { current_life -= duration; //if (isEmit == 0 && current_life > 0.0) current_life -= duration; - p.position = home.xyz; + p.position = home_position.xyz; p.color.rgb = float3(1, 1, 1); - p.velocity = home_velcity.xyz * uni.forceStrength * 100.0f; + p.velocity = home_velocity.xyz * 20.0f * pow(length(home_velocity.xyz), 2.0f); //p.velocity = forceDirection * 3.0f; } p.life = current_life / duration; @@ -94,10 +98,18 @@ void CSMain(uint3 id : SV_DispatchThreadID) // impulse { - F = uni.impulsePosition - p.position; - float mag = F.x*F.x + F.y*F.y + F.z*F.z; - float rad2 = uni.impulseRadius * uni.impulseRadius; - acc += F * exp(-mag / rad2) * uni.impulseStrength; + //F = uni.impulsePosition - p.position; + //float mag = F.x*F.x + F.y*F.y + F.z*F.z; + //float rad2 = uni.impulseRadius * uni.impulseRadius; + //acc += F * exp(-mag / rad2) * uni.impulseStrength; + } + + // fluid + { + float3 dim = ((p.position - FluidGridRoot) / FluidGridSize) * FluidGridDim; + int idx = (int)dim.x + (int)dim.y * FluidGridDim.x + (int)dim.z * FluidGridDim.x * FluidGridDim.y; + float3 F = fluid_velocity_buffer[idx].xyz * 1.0f; + acc += F * uni.impulseStrength; } // cosine gradient @@ -148,7 +160,7 @@ void CSMain(uint3 id : SV_DispatchThreadID) pos = p.position; if (pos.y < 0.0f) { - p.velocity.y = abs(p.velocity.y); + p.velocity.y = abs(p.velocity.y) * 0.8f; p.position.y = 0.0f; } } diff --git a/Unity_2018_Frozen/Assets/Frozen/Texture/Frozen-CC065205.tif b/Unity_2018_Frozen/Assets/Frozen/Texture/Frozen-CC065205.tif new file mode 100644 index 0000000000000000000000000000000000000000..b67b3c20a8a5ec1af5da16b6a5d4e924699e8b67 GIT binary patch literal 282280 zcmeIa3zXi|{qO&b$W8| z_uk+A-OuOy{_MTK-)CkfP5NH0M=qD!Hus;oO>bQQkf)$3li!5=rZm`=@-D@4 z&*@goZ$iFbRiU5L4$tMb%(U62m@k~)-v4&R_Bnd)U)42#-JR%khhqLaQKc(1)!`zZhs&bF)m&?^r{=nJYbA2h>+lMm@shI(CU!` z_n1Drv94);%Xf1eju|&}__(3f1FJ`k8$NQ}h*7z{_ggTxruL-z)`2tXXU%ThXV7~O zEFCm(cHKUMrjMLFbn@H@^(W3ghYT8+Z_;|wK7$GaJ7)5c11B^!*AE=I*Qmj@Lr0AsIC|_} z)gwob9x-~){6L2c9X@3E(80roj~g*`+=yWVi#BNAUgY*}uA4b-%7F(JFUQe7gHCL1 zojY#GkooiH?=^q;UQNxjhE$IoJ9fy>VMB%u8%&GAEvGiN)+`v@*s@EZlhn_F^)0o{ zv*)(XZfYE8zcn+O=C$rKXpk3bv*PEPGk5ajwo5g(?3MqNd(}408M2^e?vU!eh7OrC zXGpm-TUw{ow-2)HnJv>!om)R-N_|Vyyyn_^n(tD+qlu?5y5gtpL`M@(sc&p8+ZFe$ za!2K^Usv09&fIy;4S7e`)efm|sGq}iTJS-2SqIEbN^CoQwXwHV=bhMggYf^}40H12 zaR)Zl&hrYB4&1jOt-7Y#*>&UE&KoysW_A70dhT;|-LM&htE=nB3?5TEbNJx;p><=2 z*NhliJG`!b?;&e+)_#|Z7n;=A(puA4ThE1Pyw_|lGI~Va$m;r;)q}^5o-uUr%;6*G zx@K(M;IVbpwPWi?&Kxsr^oZ1T=JYkXKCr%d_9^vs2Q@d%$t!JcO>;}VcYU8h>9%J- zxgS2Sn{l((98*p8$od)e!)6YynK`0n@QfM!H)hnxp@XYyMvbbQSv_Osn7ZM64_V{% z_A#~hjwh3A{ls;A;)xT64D&KJ}bA zwOr3l&9j+BY8o;(Z*8wori=C~C8uW`o1Y&FVOzYRM|_b%6!cQ2i_9PjZ4Q~;(%RH~ zYUcWS*a>B7{mHABrizByos>cG^R%=Q`{QbAovQY2sXz0;9zAZvh;bvve19nG%+S**$KBVS zSkpMGzHZ+k>BLk}ddl8Iymbw;*T*~8+1OVZYkTL04<1@Qt*{@c9vXM97(T_At8HpL zrM|g!E#i(TzJ?u8eRIpcGoAKl SJKV)v>tbwgf#e>$_Guz@U)BGzGWL;rhN+D7F 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 literal 0 HcmV?d00001 diff --git a/Unity_2018_Frozen/Assets/Frozen/Texture/Frozen-CC065205.tif.meta b/Unity_2018_Frozen/Assets/Frozen/Texture/Frozen-CC065205.tif.meta new file mode 100644 index 0000000..bfd4878 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Texture/Frozen-CC065205.tif.meta @@ -0,0 +1,87 @@ +fileFormatVersion: 2 +guid: 6dc1e348a9a1d8340b408bdddc7a63f8 +timeCreated: 1519893270 +licenseType: Free +TextureImporter: + fileIDToRecycleName: {} + externalObjects: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapU: -1 + wrapV: -1 + wrapW: -1 + nPOTScale: 1 + lightmap: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectOpticalFlow.cs b/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectOpticalFlow.cs index c188324..8623815 100644 --- a/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectOpticalFlow.cs +++ b/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectOpticalFlow.cs @@ -46,8 +46,13 @@ namespace UltraCombos [SerializeField] string debugInfo; - ComputeBuffer home_buffer; - int home_count; + ComputeBuffer home_position_buffer; + public ComputeBuffer HomePositionBuffer { get { return home_position_buffer; } } + ComputeBuffer home_velocity_buffer; + public ComputeBuffer HomeVelocityBuffer { get { return home_velocity_buffer; } } + ComputeBuffer count_buffer; + int home_count = 0; + public int HomeCount { get { return home_count; } } private void Start() @@ -64,7 +69,9 @@ namespace UltraCombos } { - home_buffer = new ComputeBuffer(512 * 424, sizeof(float) * 4, ComputeBufferType.Append); + home_position_buffer = new ComputeBuffer(512 * 424, sizeof(float) * 4, ComputeBufferType.Append); + home_velocity_buffer = new ComputeBuffer(512 * 424, sizeof(float) * 4, ComputeBufferType.Append); + count_buffer = new ComputeBuffer(1, sizeof(int), ComputeBufferType.Raw); } } @@ -72,15 +79,7 @@ namespace UltraCombos { if (args_buffer == null) { -#if false - int work_group_size = 512; - int num_groups = (width * height + work_group_size - 1) / work_group_size; - uint[] args = new uint[3] { (uint)num_groups, 1, 1 }; - args_buffer = new ComputeBuffer(1, args.Length * sizeof(uint), ComputeBufferType.IndirectArguments); - args_buffer.SetData(args); -#else args_buffer = updateShader.CreateIndirectComputeArgsBuffer(width * height, 1, 1); -#endif } // update @@ -105,21 +104,25 @@ namespace UltraCombos foreach (var buf in kinectBuffers) updateShader.SetBuffer(0, buf.bufferName, buf.obj); updateShader.SetBuffer(0, "KinectGridBuffer", kinect_grid_buffer); + updateShader.SetBuffer(0, "HomePositionBuffer", home_position_buffer); + updateShader.SetBuffer(0, "HomeVelocityBuffer", home_velocity_buffer); updateShader.DispatchIndirect(0, args_buffer); } + { + ComputeBuffer.CopyCount(home_position_buffer, count_buffer, 0); + var data = new int[count_buffer.count]; + count_buffer.GetData(data); + home_count = data[0]; + debugInfo = string.Format("{0}", home_count); + home_position_buffer.SetCounterValue(0); + home_velocity_buffer.SetCounterValue(0); + } + if (clear_grid_buffer_args_buffer == null) { -#if false - uint work_group_size = 8; - Vector3 dim = fluidSimulation.GridDim; - uint[] args = new uint[3] { (uint)dim.x / work_group_size, (uint)dim.y / work_group_size, (uint)dim.z / work_group_size }; - clear_grid_buffer_args_buffer = new ComputeBuffer(1, args.Length * sizeof(uint), ComputeBufferType.IndirectArguments); - clear_grid_buffer_args_buffer.SetData(args); -#else Vector3Int dim = Vector3Int.FloorToInt(fluidSimulation.GridDim); clear_grid_buffer_args_buffer = applyShader.CreateIndirectComputeArgsBuffer(dim.x, dim.y, dim.z); -#endif } { diff --git a/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectUpdateShader.compute b/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectUpdateShader.compute index 6349ecc..f350c2e 100644 --- a/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectUpdateShader.compute +++ b/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectUpdateShader.compute @@ -5,6 +5,9 @@ RWStructuredBuffer KinectPositionBuffer; RWStructuredBuffer KinectVelocityBuffer; RWStructuredBuffer KinectGridBuffer; +AppendStructuredBuffer HomePositionBuffer; +AppendStructuredBuffer HomeVelocityBuffer; + Texture2D PositionTexture; Texture2D VelocityTexture; @@ -47,24 +50,17 @@ void CSMain (uint3 id : SV_DispatchThreadID) grid_index = (int)grid_pos.x + (int)grid_pos.y * FluidDim.x + (int)grid_pos.z * FluidDim.x * FluidDim.y; KinectGridBuffer[grid_index] += float4(vel.xyz, 1); - //const int layer = 0; - //for (int i = 0; i < layer; i++) - //{ - // grid_index += FluidDim.x * FluidDim.y; - // KinectGridBuffer[grid_index] += float4(vel.xyz, 1); - //} - - ///PositionBuffer.Append(float4(pos.xyz, grid_index)); - ///VelocityBuffer.Append(float4(vel.xyz, 0)); + if (pos_mag > 1.0f) + { + HomePositionBuffer.Append(float4(pos.xyz, 0)); + HomeVelocityBuffer.Append(float4(vel.xyz, 0)); + } + } KinectPositionBuffer[id.x] = float4(pos.xyz, grid_index); KinectVelocityBuffer[id.x] = float4((pos_mag == 0.0f) ? float3(0, 0, 0) : vel.xyz, 0); - //FullPositionBuffer[id.x] = float4(pos.xyz, grid_index); - //FullVelocityBuffer[id.x] = float4((pos_mag == 0.0f) ? float3(0, 0, 0) : vel.xyz, 0); } - //PositionBuffer.Append(float4(0, 0, 0, 1)); - //Result[id.xy] = float4(id.x & id.y, (id.x & 15)/15.0, (id.y & 15)/15.0, 0.0); } diff --git a/Unity_2018_Frozen/ProjectSettings/EditorBuildSettings.asset b/Unity_2018_Frozen/ProjectSettings/EditorBuildSettings.asset index 6dc24f7..a79beb8 100644 --- a/Unity_2018_Frozen/ProjectSettings/EditorBuildSettings.asset +++ b/Unity_2018_Frozen/ProjectSettings/EditorBuildSettings.asset @@ -4,4 +4,7 @@ EditorBuildSettings: m_ObjectHideFlags: 0 serializedVersion: 2 - m_Scenes: [] + m_Scenes: + - enabled: 1 + path: Assets/Frozen/Frozen.unity + guid: 34b4afb9026442541b75a5cc9009882b diff --git a/Unity_2018_Frozen/ProjectSettings/GraphicsSettings.asset b/Unity_2018_Frozen/ProjectSettings/GraphicsSettings.asset index 74d7b53..9e432d1 100644 --- a/Unity_2018_Frozen/ProjectSettings/GraphicsSettings.asset +++ b/Unity_2018_Frozen/ProjectSettings/GraphicsSettings.asset @@ -35,6 +35,8 @@ GraphicsSettings: - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} m_PreloadedShaders: [] m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}