diff --git a/Unity_2018_Frozen/Assets/Frozen/CosineGradient.asset b/Unity_2018_Frozen/Assets/Frozen/CosineGradient.asset new file mode 100644 index 0000000..a2d2daf --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/CosineGradient.asset @@ -0,0 +1,16 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 54276434dda9c694e85abaf98cdd981d, type: 3} + m_Name: CosineGradient + m_EditorClassIdentifier: + _redCoeffs: {x: 0.743, y: 0.14, z: 0.56, w: 0.453} + _greenCoeffs: {x: 0.711, y: 0.177, z: 0.3, w: 0.825} + _blueCoeffs: {x: 0.835, y: 0.131, z: 0.27, w: 0} diff --git a/Unity_2018_Frozen/Assets/Frozen/CosineGradient.asset.meta b/Unity_2018_Frozen/Assets/Frozen/CosineGradient.asset.meta new file mode 100644 index 0000000..dd00292 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/CosineGradient.asset.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 2138651e11178d04ba510ef9164baf46 +timeCreated: 1513340684 +licenseType: Free +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Frozen/Frozen.unity b/Unity_2018_Frozen/Assets/Frozen/Frozen.unity index 99131e2..4d50356 100644 --- a/Unity_2018_Frozen/Assets/Frozen/Frozen.unity +++ b/Unity_2018_Frozen/Assets/Frozen/Frozen.unity @@ -26,7 +26,7 @@ RenderSettings: m_AmbientIntensity: 1 m_AmbientMode: 0 m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} - m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_SkyboxMaterial: {fileID: 2100000, guid: d8da8ee0c05959f40b595cff10460db1, type: 2} m_HaloStrength: 0.5 m_FlareStrength: 1 m_FlareFadeSpeed: 3 @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} + m_IndirectSpecularColor: {r: 0.060945295, g: 0.054545894, b: 0.039643742, a: 1} --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 @@ -189,6 +189,8 @@ GameObject: - component: {fileID: 151858423} - component: {fileID: 151858422} - component: {fileID: 151858421} + - component: {fileID: 151858426} + - component: {fileID: 151858425} m_Layer: 0 m_Name: Main Camera m_TagString: MainCamera @@ -235,14 +237,14 @@ Camera: m_CullingMask: serializedVersion: 2 m_Bits: 4294967295 - m_RenderingPath: -1 + m_RenderingPath: 3 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 m_TargetEye: 3 m_HDR: 1 m_AllowMSAA: 0 m_AllowDynamicResolution: 0 - m_ForceIntoRT: 0 + m_ForceIntoRT: 1 m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 @@ -259,6 +261,79 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &151858425 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 151858420} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3} + m_Name: + m_EditorClassIdentifier: + sharedProfile: {fileID: 11400000, guid: 79182fbaf32faca4ca265d09dbd05840, type: 2} + isGlobal: 1 + blendDistance: 0 + weight: 1 + priority: 0 +--- !u!114 &151858426 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 151858420} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3} + m_Name: + m_EditorClassIdentifier: + volumeTrigger: {fileID: 151858424} + volumeLayer: + serializedVersion: 2 + m_Bits: 4294967295 + stopNaNPropagation: 1 + antialiasingMode: 2 + temporalAntialiasing: + jitterSpread: 0.75 + sharpness: 0.25 + stationaryBlending: 0.95 + motionBlending: 0.85 + subpixelMorphologicalAntialiasing: + quality: 2 + fastApproximateAntialiasing: + fastMode: 0 + keepAlpha: 0 + fog: + enabled: 1 + excludeSkybox: 1 + debugLayer: + lightMeter: + width: 512 + height: 256 + showCurves: 1 + histogram: + width: 512 + height: 256 + channel: 3 + waveform: + exposure: 0.12 + height: 256 + vectorscope: + size: 256 + exposure: 0.12 + overlaySettings: + motionColorIntensity: 4 + motionGridSize: 64 + colorBlindnessType: 0 + colorBlindnessStrength: 1 + m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2} + m_ShowToolkit: 0 + m_ShowCustomSorter: 0 + breakBeforeColorGrading: 0 + m_BeforeTransparentBundles: [] + m_BeforeStackBundles: [] + m_AfterStackBundles: [] --- !u!1 &182553293 GameObject: m_ObjectHideFlags: 0 @@ -382,7 +457,7 @@ Transform: m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} - m_RootOrder: 4 + m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &343589998 GameObject: @@ -449,6 +524,55 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 +--- !u!1 &350883107 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 350883108} + - component: {fileID: 350883109} + m_Layer: 0 + m_Name: ParticleUpdater + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &350883108 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 350883107} + 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: 732632615} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &350883109 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 350883107} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 364a6df5fc849f7448e97efcaa6cefdc, type: 3} + m_Name: + m_EditorClassIdentifier: + reset: 0 + maxParticles: 500000 + 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} + debug: --- !u!1 &386695295 GameObject: m_ObjectHideFlags: 0 @@ -464,7 +588,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!95 &386695296 Animator: serializedVersion: 3 @@ -496,7 +620,7 @@ Transform: - {fileID: 850228141} - {fileID: 1848145250} m_Father: {fileID: 0} - m_RootOrder: 2 + m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &401185750 GameObject: @@ -512,7 +636,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!4 &401185751 Transform: m_ObjectHideFlags: 0 @@ -528,8 +652,104 @@ Transform: - {fileID: 1579390333} - {fileID: 343589999} m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &438615021 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 438615023} + - component: {fileID: 438615022} + m_Layer: 0 + m_Name: StructuredBuffer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &438615022 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 438615021} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afa75a2a1fe8aff4ab1d6418df9d62dd, type: 3} + m_Name: + m_EditorClassIdentifier: + bufferName: ssbo +--- !u!4 &438615023 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 438615021} + 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: 732632615} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &441718963 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 441718964} + - component: {fileID: 441718966} + - component: {fileID: 441718965} + m_Layer: 0 + m_Name: Uniforms + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &441718964 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 441718963} + 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: 732632615} m_RootOrder: 3 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &441718965 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 441718963} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 799fd07762a67b348818cbe8e6502e21, type: 3} + m_Name: + m_EditorClassIdentifier: + impule: {fileID: 0} +--- !u!114 &441718966 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 441718963} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: de2687c4b3b02dc4ebc0495697f1cfb0, type: 3} + m_Name: + m_EditorClassIdentifier: + bufferName: uniform_buffer + uniform: {fileID: 11400000, guid: 86d4ce704ed55d343a52fed03681663d, type: 2} --- !u!1 &528715328 GameObject: m_ObjectHideFlags: 0 @@ -614,6 +834,126 @@ MeshFilter: m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 528715328} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &569878373 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 569878377} + - component: {fileID: 569878376} + - component: {fileID: 569878375} + - component: {fileID: 569878374} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &569878374 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 569878373} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!64 &569878375 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 569878373} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 3 + m_Convex: 0 + m_CookingOptions: 14 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &569878376 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 569878373} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &569878377 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 569878373} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 2, z: 2} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &732632614 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 732632615} + m_Layer: 0 + m_Name: ParticleWorks + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &732632615 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 732632614} + 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: + - {fileID: 438615023} + - {fileID: 350883108} + - {fileID: 776169028} + - {fileID: 441718964} + - {fileID: 1375512056} + - {fileID: 1924148041} + m_Father: {fileID: 0} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1001 &774429922 Prefab: m_ObjectHideFlags: 0 @@ -758,6 +1098,93 @@ MonoBehaviour: Transform: m_PrefabParentObject: {fileID: 400000, guid: 0b40c0b4ea4208b4792d95085b850676, type: 2} m_PrefabInternal: {fileID: 774429922} +--- !u!1 &776169027 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 776169028} + - component: {fileID: 776169031} + - component: {fileID: 776169030} + - component: {fileID: 776169029} + m_Layer: 0 + m_Name: ParticleViewerMesh + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &776169028 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 776169027} + 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: 732632615} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &776169029 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 776169027} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 0858735f439783448b9cc855a56a9e94, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &776169030 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 776169027} + m_Mesh: {fileID: 0} +--- !u!114 &776169031 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 776169027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4d54292eb10cbcf43a98b855de6807e7, type: 3} + m_Name: + m_EditorClassIdentifier: + buffer: {fileID: 438615022} + material: {fileID: 2100000, guid: 0858735f439783448b9cc855a56a9e94, type: 2} + shader: {fileID: 7200000, guid: 226ca53b2a6b1f34cb8e462337683d07, type: 3} + references: [] --- !u!1 &850228140 GameObject: m_ObjectHideFlags: 0 @@ -941,13 +1368,13 @@ Transform: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1071731253} - m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalRotation: {x: 0.04213311, y: -0.2585727, z: 0.011289531, w: 0.96500653} m_LocalPosition: {x: 0, y: 3, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 0} m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} + m_LocalEulerAnglesHint: {x: 5, y: -30, z: 0} --- !u!1 &1196719910 GameObject: m_ObjectHideFlags: 0 @@ -1028,6 +1455,47 @@ CanvasRenderer: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 1196719910} +--- !u!1 &1375512055 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1375512056} + - component: {fileID: 1375512057} + m_Layer: 0 + m_Name: HomeBuffer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1375512056 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1375512055} + 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: 732632615} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1375512057 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1375512055} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afa75a2a1fe8aff4ab1d6418df9d62dd, type: 3} + m_Name: + m_EditorClassIdentifier: + bufferName: home_buffer --- !u!1 &1430681566 GameObject: m_ObjectHideFlags: 0 @@ -1276,4 +1744,44 @@ MonoBehaviour: renderTextures: - {fileID: 8400000, guid: da32e5550d217674aa980199f6a84db3, type: 2} - {fileID: 8400000, guid: 3d63e39cdb1f2e5419672e7560e22145, type: 2} - num: 217088 +--- !u!1 &1924148040 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1924148041} + - component: {fileID: 1924148042} + m_Layer: 0 + m_Name: HomeVelocityBuffer + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1924148041 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1924148040} + 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: 732632615} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1924148042 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1924148040} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: afa75a2a1fe8aff4ab1d6418df9d62dd, type: 3} + m_Name: + m_EditorClassIdentifier: + bufferName: home_buffer diff --git a/Unity_2018_Frozen/Assets/Frozen/Material.meta b/Unity_2018_Frozen/Assets/Frozen/Material.meta new file mode 100644 index 0000000..e7bee7e --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Material.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 46de75946e19e49428096ef4806d1a1b +folderAsset: yes +timeCreated: 1519742084 +licenseType: Free +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Frozen/Material/Snowflake.mat b/Unity_2018_Frozen/Assets/Frozen/Material/Snowflake.mat new file mode 100644 index 0000000..eca2ca6 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Material/Snowflake.mat @@ -0,0 +1,97 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Snowflake + m_Shader: {fileID: 210, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHATEST_ON + m_LightmapFlags: 0 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: 2450 + stringTagMap: + RenderType: TransparentCutout + disabledShaderPasses: + - ALWAYS + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 2800000, guid: b7b95dd54aad284499b5eb8ae14f1a6e, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BlendOp: 0 + - _BumpScale: 1 + - _CameraFadingEnabled: 0 + - _CameraFarFadeDistance: 2 + - _CameraNearFadeDistance: 1 + - _ColorMode: 0 + - _Cull: 0 + - _Cutoff: 0.408 + - _DetailNormalMapScale: 1 + - _DistortionBlend: 0.5 + - _DistortionEnabled: 0 + - _DistortionStrength: 1 + - _DistortionStrengthScaled: 0 + - _DstBlend: 0 + - _EmissionEnabled: 0 + - _FlipbookMode: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.342 + - _GlossyReflections: 1 + - _LightingEnabled: 1 + - _Metallic: 0.846 + - _Mode: 1 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SoftParticlesEnabled: 0 + - _SoftParticlesFarFadeDistance: 1 + - _SoftParticlesNearFadeDistance: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _CameraFadeParams: {r: 0, g: Infinity, b: 0, a: 0} + - _Color: {r: 7.763, g: 7.763, b: 7.763, 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/Material/Snowflake.mat.meta b/Unity_2018_Frozen/Assets/Frozen/Material/Snowflake.mat.meta new file mode 100644 index 0000000..a9c640d --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Material/Snowflake.mat.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 0858735f439783448b9cc855a56a9e94 +timeCreated: 1519742076 +licenseType: Free +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset b/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset new file mode 100644 index 0000000..521afd3 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset @@ -0,0 +1,30 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 852ced439e5120c44bd352e9c29a164f, type: 3} + m_Name: ParticleUniforms + m_EditorClassIdentifier: + numRate: 1 + movement: 1 + geomSize: 0.079 + velocityDamping: 1 + lifeDuration: 0 + lifeVariation: 0 + convergence: 0.082 + homeStrength: 0 + noiseStrength: 0.064 + noiseSeed: 0.5 + noiseTimeScale: 1 + noiseFrequency: 0.29 + forceDirection: {x: 0, y: -1, z: 0} + forceStrength: 0.015 + impulsePosition: {x: 0, y: 0, z: 0} + impulseRadius: 3 + impulseStrength: -1 diff --git a/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset.meta b/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset.meta new file mode 100644 index 0000000..b2f49a6 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 86d4ce704ed55d343a52fed03681663d +timeCreated: 1513320663 +licenseType: Free +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Frozen/PostProcessingProfile.asset b/Unity_2018_Frozen/Assets/Frozen/PostProcessingProfile.asset new file mode 100644 index 0000000..0abf6c6 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/PostProcessingProfile.asset @@ -0,0 +1,372 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3} + m_Name: PostProcessingProfile + m_EditorClassIdentifier: + settings: + - {fileID: 114067151945234240} + - {fileID: 114157877957889540} + - {fileID: 114891676506052672} + - {fileID: 114967782660637982} +--- !u!114 &114067151945234240 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 48a79b01ea5641d4aa6daa2e23605641, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + intensity: + overrideState: 1 + value: 1 + threshold: + overrideState: 0 + value: 1 + softKnee: + overrideState: 0 + value: 0.5 + diffusion: + overrideState: 0 + value: 7 + anamorphicRatio: + overrideState: 0 + value: 0 + color: + overrideState: 0 + value: {r: 1, g: 1, b: 1, a: 1} + fastMode: + overrideState: 0 + value: 0 + dirtTexture: + overrideState: 1 + value: {fileID: 2800000, guid: 3884f7a2d04ffe8409ad9200b275896f, type: 3} + dirtIntensity: + overrideState: 0 + value: 0 +--- !u!114 &114157877957889540 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: adb84e30e02715445aeb9959894e3b4d, type: 3} + m_Name: ColorGrading + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + gradingMode: + overrideState: 1 + value: 1 + externalLut: + overrideState: 0 + value: {fileID: 0} + tonemapper: + overrideState: 1 + value: 2 + toneCurveToeStrength: + overrideState: 0 + value: 0 + toneCurveToeLength: + overrideState: 0 + value: 0.5 + toneCurveShoulderStrength: + overrideState: 0 + value: 0 + toneCurveShoulderLength: + overrideState: 0 + value: 0.5 + toneCurveShoulderAngle: + overrideState: 0 + value: 0 + toneCurveGamma: + overrideState: 0 + value: 1 + logLut: + overrideState: 0 + value: {fileID: 0} + ldrLut: + overrideState: 0 + value: {fileID: 0} + temperature: + overrideState: 0 + value: 0 + tint: + overrideState: 0 + value: 0 + colorFilter: + overrideState: 0 + value: {r: 1, g: 1, b: 1, a: 1} + hueShift: + overrideState: 0 + value: 0 + saturation: + overrideState: 0 + value: 0 + brightness: + overrideState: 0 + value: 0 + postExposure: + overrideState: 0 + value: 0 + contrast: + overrideState: 0 + value: 0 + mixerRedOutRedIn: + overrideState: 0 + value: 100 + mixerRedOutGreenIn: + overrideState: 0 + value: 0 + mixerRedOutBlueIn: + overrideState: 0 + value: 0 + mixerGreenOutRedIn: + overrideState: 0 + value: 0 + mixerGreenOutGreenIn: + overrideState: 0 + value: 100 + mixerGreenOutBlueIn: + overrideState: 0 + value: 0 + mixerBlueOutRedIn: + overrideState: 0 + value: 0 + mixerBlueOutGreenIn: + overrideState: 0 + value: 0 + mixerBlueOutBlueIn: + overrideState: 0 + value: 100 + lift: + overrideState: 0 + value: {x: 1, y: 1, z: 1, w: 0} + gamma: + overrideState: 0 + value: {x: 1, y: 1, z: 1, w: 0} + gain: + overrideState: 0 + value: {x: 1, y: 1, z: 1, w: 0} + masterCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + redCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + greenCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + blueCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 2 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + - serializedVersion: 2 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + hueVsHueCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 0 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + hueVsSatCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + satVsSatCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + lumVsSatCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 +--- !u!114 &114891676506052672 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6050e2d5de785ce4d931e4dbdbf2d755, type: 3} + m_Name: ChromaticAberration + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + spectralLut: + overrideState: 0 + value: {fileID: 0} + intensity: + overrideState: 1 + value: 0.181 + fastMode: + overrideState: 0 + value: 0 +--- !u!114 &114967782660637982 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a34fa72bd4185749832024e9c8010bf, type: 3} + m_Name: ScreenSpaceReflections + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + preset: + overrideState: 0 + value: 2 + maximumIterationCount: + overrideState: 0 + value: 16 + resolution: + overrideState: 0 + value: 0 + thickness: + overrideState: 0 + value: 8 + maximumMarchDistance: + overrideState: 0 + value: 100 + distanceFade: + overrideState: 0 + value: 0.5 + vignette: + overrideState: 0 + value: 0.5 diff --git a/Unity_2018_Frozen/Assets/Frozen/PostProcessingProfile.asset.meta b/Unity_2018_Frozen/Assets/Frozen/PostProcessingProfile.asset.meta new file mode 100644 index 0000000..59f49c7 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/PostProcessingProfile.asset.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 79182fbaf32faca4ca265d09dbd05840 +timeCreated: 1519744123 +licenseType: Free +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Frozen/Shader.meta b/Unity_2018_Frozen/Assets/Frozen/Shader.meta new file mode 100644 index 0000000..2dbcd4d --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: cd68b247a0f637043a3ca89ad53227c3 +folderAsset: yes +timeCreated: 1519743659 +licenseType: Free +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute b/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute new file mode 100644 index 0000000..6051024 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute @@ -0,0 +1,157 @@ +#pragma kernel CSMain + +#include "UnityCG.cginc" +#include "../../ParticleWorks/Shader/Inc/Defines.cginc" +#include "../../ParticleWorks/Shader/Inc/Math.cginc" +#include "../../ParticleWorks/Shader/Noise/noise3Dgrad.cginc" +#include "../../ParticleWorks/Shader/ParticleUniforms.cginc" + +CBUFFER_START(Variables) + float timeStep; + float timeValue; + float bufferCount; + int home_count; + float3 coeffsA; + float3 coeffsB; + float3 coeffsC; + float3 coeffsD; +CBUFFER_END + +RWStructuredBuffer ssbo; +RWStructuredBuffer uniform_buffer; +RWStructuredBuffer home_buffer; +RWStructuredBuffer home_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); + 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) + { + float duration = uni.lifeDuration * (1.0f + factor * uni.lifeVariation); + float current_life = p.life * duration + timeStep; + //bool is_reset = false; + //if (current_life > duration) + //{ + // current_life -= duration; + // is_reset = true; + //} + //if (is_reset || p.life < 0.0f) + if (current_life > duration && uni.lifeDuration > 0.1f) + { + current_life -= duration; + //if (isEmit == 0 && current_life > 0.0) current_life -= duration; + p.position = home.xyz; + p.color.rgb = float3(1, 1, 1); + p.velocity = home_velcity.xyz * uni.forceStrength * 100.0f; + //p.velocity = forceDirection * 3.0f; + } + p.life = current_life / duration; + } + + // noise + { + //float n_seed = p.seed * 0.12f; + //float time_seed = timeValue * noiseTimeScale; + float3 np = p.position * uni.noiseFrequency; + float3 n1, n2; + snoise(np, n1); + snoise(np + float3(uni.noiseSeed, p.seed * 0.12f, timeValue * uni.noiseTimeScale), n2); + F = cross(n1, n2); + acc += F * uni.noiseStrength; + } + + // convergence + { + F = -p.position; + acc += F * uni.convergence; + } + + // home as tangential + { + F = cross(p.position, float3(0, 1, 0)); + float d = clamp(abs(p.position.y), 1, 100); + F = normalize(F) * 10.0f / pow(d, 2 * 2); + acc += F * uni.homeStrength; + } + + // force + { + F = float3(0, 0, 0); + if (length(uni.forceDirection) > 0.1f) + F = normalize(uni.forceDirection) * 10.0f; + acc += F * uni.forceStrength; + } + + // 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; + } + + // cosine gradient + { + float t = (uni.lifeDuration > 0.1f) ? clamp(p.life, 0.0f, 1.0f) : factor; + half3 rgb = cosine_gradient(coeffsA, coeffsB, coeffsC, coeffsD, t); +#if !defined(UNITY_COLORSPACE_GAMMA) + rgb = GammaToLinearSpace(rgb); +#endif + p.color.rgb = rgb; + } + + acc *= uni.movement; + p.velocity += acc * timeStep; + p.position += p.velocity * timeStep; + + //float damping = lerp(0.965f, 0.985f, p.seed) * velocityDamping; + p.velocity *= lerp(0.965f, 0.985f, p.seed) * uni.velocityDamping; + + // calculate rotate quat + { + float vel = length(p.velocity); + float a = (1 + factor) * vel * 0.05f; + float4 q = quat_from_axis_angle(normalize(p.velocity + float3(0, FLT_EPSILON, 0)), a); + q = quat_mult(p.quat, q); + q = normalize(q); + p.quat = lerp(p.quat, q, saturate(vel - 0.01f)); + } + + // calculate model matrix + { + float size = uni.geomSize * lerp(1, pow(1.0f - saturate(p.life), 1.0f / 2.2f), any(uni.lifeDuration)); + size *= lerp(0.5, 1.0, p.seed); + if (idx > (uint)(uni.numRate * bufferCount) || (p.life < 0.0f && uni.lifeDuration > 0.1f)) + { + size = 0.0f; + } + + float4x4 mat = make_translation_matrix(p.position); + mat = mul(mat, quat_to_rotation_matrix(p.quat)); + mat = mul(mat, make_scaling_matrix(size)); + p.model_matrix = mat; + } + + // ground collision + { + float3 pos = mul(p.model_matrix, float4(p.position, 1.0f)).xyz; + pos = p.position; + if (pos.y < 0.0f) + { + p.velocity.y = abs(p.velocity.y); + p.position.y = 0.0f; + } + } + + ssbo[id.x] = p; +} diff --git a/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute.meta b/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute.meta new file mode 100644 index 0000000..e8d6b5b --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: d6604fabdbb13e9428c849c59feccdac +timeCreated: 1513318067 +licenseType: Free +ComputeShaderImporter: + externalObjects: {} + currentAPIMask: 4 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Frozen/Texture.meta b/Unity_2018_Frozen/Assets/Frozen/Texture.meta new file mode 100644 index 0000000..6b7bdf7 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Texture.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 33919134f003a9b4790e2cd95edff94e +folderAsset: yes +timeCreated: 1519742561 +licenseType: Free +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Frozen/Texture/Snowflake.png b/Unity_2018_Frozen/Assets/Frozen/Texture/Snowflake.png new file mode 100644 index 0000000..773553c Binary files /dev/null and b/Unity_2018_Frozen/Assets/Frozen/Texture/Snowflake.png differ diff --git a/Unity_2018_Frozen/Assets/Frozen/Texture/Snowflake.png.meta b/Unity_2018_Frozen/Assets/Frozen/Texture/Snowflake.png.meta new file mode 100644 index 0000000..5bd014b --- /dev/null +++ b/Unity_2018_Frozen/Assets/Frozen/Texture/Snowflake.png.meta @@ -0,0 +1,87 @@ +fileFormatVersion: 2 +guid: b7b95dd54aad284499b5eb8ae14f1a6e +timeCreated: 1519742554 +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: 2 + 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/ParticleWorks/ParticleWorks.unity b/Unity_2018_Frozen/Assets/ParticleWorks/ParticleWorks.unity index 6110677..b4ce2bd 100644 --- a/Unity_2018_Frozen/Assets/ParticleWorks/ParticleWorks.unity +++ b/Unity_2018_Frozen/Assets/ParticleWorks/ParticleWorks.unity @@ -368,8 +368,7 @@ MonoBehaviour: buffer: {fileID: 1503302983} material: {fileID: 2100000, guid: 6c404ebf6ff877a46a9ac3132b7c648d, type: 2} shader: {fileID: 7200000, guid: 226ca53b2a6b1f34cb8e462337683d07, type: 3} - references: - - {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} + references: [] --- !u!23 &590004643 MeshRenderer: m_ObjectHideFlags: 0 diff --git a/Unity_2018_Frozen/Assets/ParticleWorks/Script/ParticleViewerMesh.cs b/Unity_2018_Frozen/Assets/ParticleWorks/Script/ParticleViewerMesh.cs index be500cc..1102fc8 100644 --- a/Unity_2018_Frozen/Assets/ParticleWorks/Script/ParticleViewerMesh.cs +++ b/Unity_2018_Frozen/Assets/ParticleWorks/Script/ParticleViewerMesh.cs @@ -57,6 +57,37 @@ namespace UltraCombos protected override IEnumerator Initialize() { + if (references.Count == 0) + { + var vertices = new List(); + var normals = new List(); + var colors = new List(); + var uvs = new List(); + var indices = new List(); + int side = 3; + float delta = Mathf.PI * 2.0f / side; + for (int i = 0; i < side; i++) + { + float a = delta * i; + float x = Mathf.Cos(a); + float y = Mathf.Sin(a); + vertices.Add(new Vector3(x, 0, y)); + normals.Add(new Vector3(0, 1, 0)); + colors.Add(Color.white); + uvs.Add(new Vector2(x * 0.5f + 0.5f, y * 0.5f + 0.5f)); + indices.Add(i); + } + var m = new Mesh(); + m.SetVertices(vertices); + m.SetNormals(normals); + m.SetColors(colors); + m.SetUVs(0, uvs); + m.SetIndices(indices.ToArray(), MeshTopology.Triangles, 0); + m.UploadMeshData(false); + m.name = string.Format("{0} sides mesh", side); + references.Add(m); + } + mesh = new Mesh(); yield return Utilities.GetReferencesParticleMesh(references, buffer.count, mesh); diff --git a/Unity_2018_Frozen/Assets/ParticleWorks/Script/Utilities.cs b/Unity_2018_Frozen/Assets/ParticleWorks/Script/Utilities.cs index 066b05e..c197bec 100644 --- a/Unity_2018_Frozen/Assets/ParticleWorks/Script/Utilities.cs +++ b/Unity_2018_Frozen/Assets/ParticleWorks/Script/Utilities.cs @@ -152,6 +152,7 @@ namespace UltraCombos int i = 0; var vertices = new List(); var normals = new List(); + var colors = new List(); var uvs = new List(); var indices = new List(); var custom_uvs = new List(); @@ -165,6 +166,15 @@ namespace UltraCombos vertices.AddRange(mesh.vertices); normals.AddRange(mesh.normals); uvs.AddRange(mesh.uv); + if (mesh.colors.Length == mesh.vertices.Length) + { + colors.AddRange(mesh.colors); + } + else + { + for (int ci = 0; ci < mesh.vertices.Length; ci++) + colors.Add(Color.white); + } foreach (var idx in mesh.GetIndices(0)) indices.Add(begin_index + idx); for (int l = 0; l < mesh.vertexCount; l++) @@ -184,6 +194,10 @@ namespace UltraCombos result.indexFormat = UnityEngine.Rendering.IndexFormat.UInt32; result.SetVertices(vertices); result.SetNormals(normals); + if (colors.Count == vertices.Count) + { + result.SetColors(colors); + } //result.SetUVs(0, uvs); result.SetUVs(0, custom_uvs); result.SetIndices(indices.ToArray(), referenceMeshes[0].GetTopology(0), 0); diff --git a/Unity_2018_Frozen/Assets/ParticleWorks/Shader/VertexBufferUpdate.compute b/Unity_2018_Frozen/Assets/ParticleWorks/Shader/VertexBufferUpdate.compute index c331215..7fcbc0a 100644 --- a/Unity_2018_Frozen/Assets/ParticleWorks/Shader/VertexBufferUpdate.compute +++ b/Unity_2018_Frozen/Assets/ParticleWorks/Shader/VertexBufferUpdate.compute @@ -7,7 +7,7 @@ struct Vertex { float3 position; float3 normal; - //float4 color; + float4 color; float4 uv; //float2 uv2; //float4 tangent; @@ -29,6 +29,7 @@ void CSMain(uint3 id : SV_DispatchThreadID) v.position = mul(p.model_matrix, float4(o.position, 1)).xyz; v.normal = mul((float3x3)p.model_matrix, o.normal); + v.color = float4(p.color.rgb, 1.0f); v.uv = float4(o.uv.xy, 0, 0); vertex_buffer[id.x] = v;