diff --git a/Unity_2018_Frozen/Assets/Frozen/Frozen.unity b/Unity_2018_Frozen/Assets/Frozen/Frozen.unity index 6fd3590..6aa89b5 100644 --- a/Unity_2018_Frozen/Assets/Frozen/Frozen.unity +++ b/Unity_2018_Frozen/Assets/Frozen/Frozen.unity @@ -557,7 +557,96 @@ MonoBehaviour: smokeFluidSim: {fileID: 774429923} particleViewerMesh: {fileID: 776169031} rate: 0.001 + volumeData: {fileID: 11400000, guid: bddc8b83040ed4c4a83cd1283d458790, type: 2} + value: 0 debug: +--- !u!1 &353335467 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 353335468} + - component: {fileID: 353335469} + m_Layer: 0 + m_Name: Visualizer Grad + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &353335468 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 353335467} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5.94, y: -3.88, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_Children: [] + m_Father: {fileID: 1007466426} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &353335469 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 353335467} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86572f0349d91434d90f40861f708217, type: 3} + m_Name: + m_EditorClassIdentifier: + _data: {fileID: 11400000, guid: bddc8b83040ed4c4a83cd1283d458790, type: 2} + _mode: 1 + _depth: 0 + _quadMesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} + _shader: {fileID: 4800000, guid: e87e89fb693f01e47ac90f63e832ed83, type: 3} +--- !u!1 &362245701 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 362245702} + - component: {fileID: 362245703} + m_Layer: 0 + m_Name: Sampler + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &362245702 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 362245701} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 4, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1007466426} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &362245703 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 362245701} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b8cecf65d18af24daf10718a8526e01, type: 3} + m_Name: + m_EditorClassIdentifier: + _resolution: 64 + _extent: 4 --- !u!1 &368967883 GameObject: m_ObjectHideFlags: 0 @@ -951,6 +1040,51 @@ MonoBehaviour: m_EditorClassIdentifier: bufferName: uniform_buffer uniform: {fileID: 11400000, guid: 86d4ce704ed55d343a52fed03681663d, type: 2} +--- !u!1 &474490317 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 474490318} + - component: {fileID: 474490319} + m_Layer: 0 + m_Name: Visualizer Dist + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &474490318 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 474490317} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5.09, y: -3.88, z: 0} + m_LocalScale: {x: 0.8, y: 0.8, z: 0.8} + m_Children: [] + m_Father: {fileID: 1007466426} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &474490319 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 474490317} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 86572f0349d91434d90f40861f708217, type: 3} + m_Name: + m_EditorClassIdentifier: + _data: {fileID: 11400000, guid: bddc8b83040ed4c4a83cd1283d458790, type: 2} + _mode: 0 + _depth: 1 + _quadMesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} + _shader: {fileID: 4800000, guid: e87e89fb693f01e47ac90f63e832ed83, type: 3} --- !u!1 &528715328 GameObject: m_ObjectHideFlags: 0 @@ -1085,7 +1219,6 @@ GameObject: m_Component: - component: {fileID: 569878377} - component: {fileID: 569878376} - - component: {fileID: 569878375} - component: {fileID: 569878374} m_Layer: 0 m_Name: Plane @@ -1128,20 +1261,6 @@ MeshRenderer: 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 @@ -1220,6 +1339,90 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 4 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &711251199 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 711251200} + - component: {fileID: 711251203} + - component: {fileID: 711251202} + - component: {fileID: 711251201} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &711251200 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 711251199} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0.04, z: 2.37} + m_LocalScale: {x: 3.590428, y: 3.5904257, z: 3.5904257} + m_Children: [] + m_Father: {fileID: 2145210098} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &711251201 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 711251199} + 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!135 &711251202 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 711251199} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &711251203 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 711251199} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &732632614 GameObject: m_ObjectHideFlags: 0 @@ -1333,7 +1536,7 @@ Prefab: objectReference: {fileID: 0} - target: {fileID: 400000, guid: 0b40c0b4ea4208b4792d95085b850676, type: 2} propertyPath: m_LocalPosition.y - value: 2 + value: 4 objectReference: {fileID: 0} - target: {fileID: 400000, guid: 0b40c0b4ea4208b4792d95085b850676, type: 2} propertyPath: m_LocalPosition.z @@ -1385,11 +1588,11 @@ Prefab: objectReference: {fileID: 0} - target: {fileID: 400000, guid: 0b40c0b4ea4208b4792d95085b850676, type: 2} propertyPath: m_LocalScale.y - value: 4 + value: 8 objectReference: {fileID: 0} - target: {fileID: 11400000, guid: 0b40c0b4ea4208b4792d95085b850676, type: 2} propertyPath: m_height - value: 32 + value: 64 objectReference: {fileID: 0} - target: {fileID: 11400000, guid: 0b40c0b4ea4208b4792d95085b850676, type: 2} propertyPath: m_advectionType @@ -1451,6 +1654,10 @@ Prefab: propertyPath: timeStepMultiplier value: 5 objectReference: {fileID: 0} + - target: {fileID: 100000, guid: 0b40c0b4ea4208b4792d95085b850676, type: 2} + propertyPath: m_IsActive + value: 1 + objectReference: {fileID: 0} m_RemovedComponents: [] m_ParentPrefab: {fileID: 100100000, guid: 0b40c0b4ea4208b4792d95085b850676, type: 2} m_IsPrefabParent: 0 @@ -1551,6 +1758,90 @@ MonoBehaviour: material: {fileID: 2100000, guid: 0858735f439783448b9cc855a56a9e94, type: 2} shader: {fileID: 7200000, guid: 226ca53b2a6b1f34cb8e462337683d07, type: 3} references: [] +--- !u!1 &785725808 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 785725809} + - component: {fileID: 785725812} + - component: {fileID: 785725811} + - component: {fileID: 785725810} + m_Layer: 0 + m_Name: Sphere (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &785725809 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 785725808} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.77, y: 0.04, z: 2.37} + m_LocalScale: {x: 3.086265, y: 3.086265, z: 3.086265} + m_Children: [] + m_Father: {fileID: 2145210098} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &785725810 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 785725808} + 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!135 &785725811 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 785725808} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &785725812 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 785725808} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &810572921 GameObject: m_ObjectHideFlags: 0 @@ -1717,6 +2008,38 @@ CanvasRenderer: m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} m_GameObject: {fileID: 914653314} +--- !u!1 &1007466425 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1007466426} + m_Layer: 0 + m_Name: DFVolume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1007466426 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1007466425} + 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: 2145210098} + - {fileID: 362245702} + - {fileID: 474490318} + - {fileID: 353335468} + m_Father: {fileID: 0} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &1035960133 GameObject: m_ObjectHideFlags: 0 @@ -2003,6 +2326,174 @@ Canvas: m_SortingLayerID: 0 m_SortingOrder: 0 m_TargetDisplay: 0 +--- !u!1 &1493994142 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1493994143} + - component: {fileID: 1493994146} + - component: {fileID: 1493994145} + - component: {fileID: 1493994144} + m_Layer: 0 + m_Name: Sphere (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1493994143 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1493994142} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.71, y: 0.04, z: 2.37} + m_LocalScale: {x: 2.4301288, y: 2.4301288, z: 2.4301288} + m_Children: [] + m_Father: {fileID: 2145210098} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1493994144 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1493994142} + 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!135 &1493994145 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1493994142} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1493994146 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1493994142} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1555216961 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1555216962} + - component: {fileID: 1555216965} + - component: {fileID: 1555216964} + - component: {fileID: 1555216963} + m_Layer: 0 + m_Name: Sphere (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1555216962 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1555216961} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.47, y: 0.04, z: 2.37} + m_LocalScale: {x: 2.074109, y: 2.0741088, z: 2.0741088} + m_Children: [] + m_Father: {fileID: 2145210098} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1555216963 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1555216961} + 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!135 &1555216964 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1555216961} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1555216965 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1555216961} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!1 &1579390332 GameObject: m_ObjectHideFlags: 0 @@ -2263,3 +2754,35 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 5 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2145210097 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2145210098} + m_Layer: 0 + m_Name: Obstacle + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2145210098 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2145210097} + 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: 711251200} + - {fileID: 1493994143} + - {fileID: 1555216962} + - {fileID: 785725809} + m_Father: {fileID: 1007466426} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset b/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset index f95809c..7c5a390 100644 --- a/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset +++ b/Unity_2018_Frozen/Assets/Frozen/ParticleUniforms.asset @@ -13,7 +13,7 @@ MonoBehaviour: m_EditorClassIdentifier: numRate: 1 movement: 1 - geomSize: 0.306 + geomSize: 0.274 velocityDamping: 0.95 lifeDuration: 7 lifeVariation: 0 diff --git a/Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs b/Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs index d30796b..fd57985 100644 --- a/Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs +++ b/Unity_2018_Frozen/Assets/Frozen/Script/SnowflakeParticleUpdater.cs @@ -32,6 +32,11 @@ namespace UltraCombos.Frozen [Range(0, 1)] public float rate = 1.0f; + [SerializeField] DFVolume.VolumeData volumeData; + ComputeBuffer volume_buffer; + + [SerializeField, Range(0, 1)] + float value = 0; [SerializeField] string debug; @@ -53,12 +58,15 @@ namespace UltraCombos.Frozen OnReset(); } + debug = string.Format("{0}", volumeData.data[(int)Mathf.Min(volumeData.data.Count * value, volumeData.data.Count - 1)]); + UpdateParticle(Time.fixedDeltaTime); } private void OnDestroy() { Utilities.Release(ref args_buffer); + Utilities.Release(ref volume_buffer); } private void OnReset() @@ -72,6 +80,12 @@ namespace UltraCombos.Frozen args_buffer = shader.CreateIndirectComputeArgsBuffer(maxParticles, 1, 1); } + { + var data = volumeData.data; + volume_buffer = new ComputeBuffer(data.Count, sizeof(float) * 4); + volume_buffer.SetData(data); + } + { buffer_data = new List(); yield return Utilities.GetRandomParticleData(maxParticles, buffer_data); @@ -106,6 +120,8 @@ namespace UltraCombos.Frozen 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.SetBuffer(0, "volume_data", volume_buffer); + shader.SetTexture(0, "DFVolume", volumeData.texture); shader.DispatchIndirect(0, args_buffer); } diff --git a/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute b/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute index 00f27a9..7cebe28 100644 --- a/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute +++ b/Unity_2018_Frozen/Assets/Frozen/Shader/SnowflakeParticleUpdate.compute @@ -25,6 +25,14 @@ RWStructuredBuffer uniform_buffer; RWStructuredBuffer home_position_buffer; RWStructuredBuffer home_velocity_buffer; RWStructuredBuffer fluid_velocity_buffer; +RWStructuredBuffer volume_data; +Texture3D DFVolume; +SamplerState samplerDFVolume; + +float4 SampleVolume(float3 p) +{ + return DFVolume.SampleLevel(samplerDFVolume, p, 0); +} [numthreads(WORK_GROUP_SIZE, 1, 1)] void CSMain(uint3 id : SV_DispatchThreadID) @@ -107,11 +115,29 @@ void CSMain(uint3 id : SV_DispatchThreadID) // fluid { float3 dim = ((p.position - FluidGridRoot) / FluidGridSize) * FluidGridDim; + dim = clamp(dim, float3(0, 0, 0), FluidGridDim - 1); 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; } + // volume + { + //float3 volume_dim = float3(50, 50, 50); + //float3 dim = ((p.position - FluidGridRoot) / FluidGridSize) * volume_dim; + //dim = clamp(dim, float3(0, 0, 0), volume_dim - 1); + //int idx = (int)dim.x + (int)dim.y * volume_dim.x + (int)dim.z * volume_dim.x * volume_dim.y; + float4 df = SampleVolume((p.position - FluidGridRoot) / FluidGridSize); + float3 F = -df.xyz * pow(df.w / 0.5, 2.2); + F += cross(-df.xyz, float3(1, 0, 0)) * (1.0 - saturate(df.w / 0.2)) * 0.05; + //float4 data = volume_data[idx]; + //float3 F = -data.xyz * pow(data.w, 2.2); + //F += cross(-data.xyz, float3(1, 0, 0)) * (1.0 - saturate(data.w)) * 0.1; + //if (data.w < 0.1) F += data.xyz * 10.0; + //float3 F = lerp(cross(data.xyz, p.velocity), -data.xyz, saturate(data.w)); + acc += F * 60.0; + } + // cosine gradient { float t = (uni.lifeDuration > 0.1f) ? clamp(p.life, 0.0f, 1.0f) : factor; diff --git a/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectOpticalFlow.cs b/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectOpticalFlow.cs index 8623815..7bf48cc 100644 --- a/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectOpticalFlow.cs +++ b/Unity_2018_Frozen/Assets/KinectOpticalFlow/KinectOpticalFlow.cs @@ -50,7 +50,7 @@ namespace UltraCombos public ComputeBuffer HomePositionBuffer { get { return home_position_buffer; } } ComputeBuffer home_velocity_buffer; public ComputeBuffer HomeVelocityBuffer { get { return home_velocity_buffer; } } - ComputeBuffer count_buffer; + ComputeBuffer home_count_buffer; int home_count = 0; public int HomeCount { get { return home_count; } } @@ -71,7 +71,7 @@ namespace UltraCombos { 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); + home_count_buffer = new ComputeBuffer(1, sizeof(int), ComputeBufferType.Raw); } } @@ -110,9 +110,9 @@ namespace UltraCombos } { - ComputeBuffer.CopyCount(home_position_buffer, count_buffer, 0); - var data = new int[count_buffer.count]; - count_buffer.GetData(data); + ComputeBuffer.CopyCount(home_position_buffer, home_count_buffer, 0); + var data = new int[home_count_buffer.count]; + home_count_buffer.GetData(data); home_count = data[0]; debugInfo = string.Format("{0}", home_count); home_position_buffer.SetCounterValue(0); @@ -170,6 +170,10 @@ namespace UltraCombos clear_grid_buffer_args_buffer.Release(); args_buffer.Release(); KinectGridBuffer.Release(); + + home_position_buffer.Release(); + home_velocity_buffer.Release(); + home_count_buffer.Release(); } } diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume.meta b/Unity_2018_Frozen/Assets/Klak/DFVolume.meta new file mode 100644 index 0000000..1acc0f3 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: ca518c47d081cd74da803a9492ef8bc7 +folderAsset: yes +timeCreated: 1520409176 +licenseType: Free +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor.meta b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor.meta new file mode 100644 index 0000000..0b67216 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: aab843967d2cba349b396e899e4a4f3e +folderAsset: yes +timeCreated: 1495866268 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeDataEditor.cs b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeDataEditor.cs new file mode 100644 index 0000000..e8ec011 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeDataEditor.cs @@ -0,0 +1,17 @@ +// DFVolume - Distance field volume generator for Unity +// https://github.com/keijiro/DFVolume + +using UnityEngine; +using UnityEditor; + +namespace DFVolume +{ + [CustomEditor(typeof(VolumeData))] + class VolumeDataEditor : Editor + { + public override void OnInspectorGUI() + { + // There is nothing to show in the inspector. + } + } +} diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeDataEditor.cs.meta b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeDataEditor.cs.meta new file mode 100644 index 0000000..d2c41e9 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeDataEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e4bc68d473b019949ad3452e429eca70 +timeCreated: 1495873608 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeSamplerEditor.cs b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeSamplerEditor.cs new file mode 100644 index 0000000..e4ee704 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeSamplerEditor.cs @@ -0,0 +1,70 @@ +// DFVolume - Distance field volume generator for Unity +// https://github.com/keijiro/DFVolume + +using UnityEngine; +using UnityEditor; +using System.Collections.Generic; +using System.IO; +using System.Linq; + +namespace DFVolume +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(VolumeSampler))] + class VolumeSamplerEditor : Editor + { + SerializedProperty _resolution; + SerializedProperty _extent; + + void OnEnable() + { + _resolution = serializedObject.FindProperty("_resolution"); + _extent = serializedObject.FindProperty("_extent"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(_resolution); + EditorGUILayout.PropertyField(_extent); + + serializedObject.ApplyModifiedProperties(); + + if (GUILayout.Button("Create Volume Data")) CreateVolumeData(); + + CheckSkewedTransform(); + } + + void CreateVolumeData() + { + var output = new List(); + + foreach (VolumeSampler sampler in targets) + { + var path = "Assets/New Volume Data.asset"; + path = AssetDatabase.GenerateUniqueAssetPath(path); + + var asset = ScriptableObject.CreateInstance(); + asset.Initialize(sampler); + + AssetDatabase.CreateAsset(asset, path); + AssetDatabase.AddObjectToAsset(asset.texture, asset); + } + + AssetDatabase.SaveAssets(); + + EditorUtility.FocusProjectWindow(); + Selection.objects = output.ToArray(); + } + + void CheckSkewedTransform() + { + if (targets.Any(o => ((Component)o).transform.lossyScale != Vector3.one)) + EditorGUILayout.HelpBox( + "Using scale in transform may introduce error in output volumes.", + MessageType.Warning + ); + } + } +} diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeSamplerEditor.cs.meta b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeSamplerEditor.cs.meta new file mode 100644 index 0000000..e14b0e5 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeSamplerEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4672eacadf8f922469c2d31bc2c8cc98 +timeCreated: 1495866282 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeVisualizer.cs b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeVisualizer.cs new file mode 100644 index 0000000..e1ff61c --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeVisualizer.cs @@ -0,0 +1,35 @@ +// DFVolume - Distance field volume generator for Unity +// https://github.com/keijiro/DFVolume + +using UnityEngine; +using UnityEditor; + +namespace DFVolume +{ + [CanEditMultipleObjects] + [CustomEditor(typeof(VolumeVisualizer))] + class VolumeVisualizerEditor : Editor + { + SerializedProperty _data; + SerializedProperty _mode; + SerializedProperty _depth; + + void OnEnable() + { + _data = serializedObject.FindProperty("_data"); + _mode = serializedObject.FindProperty("_mode"); + _depth = serializedObject.FindProperty("_depth"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(_data); + EditorGUILayout.PropertyField(_mode); + EditorGUILayout.PropertyField(_depth); + + serializedObject.ApplyModifiedProperties(); + } + } +} diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeVisualizer.cs.meta b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeVisualizer.cs.meta new file mode 100644 index 0000000..8280464 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/Editor/VolumeVisualizer.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 9e6edf4b9a972704f92c4329f66b08e5 +timeCreated: 1495949435 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/Shader.meta b/Unity_2018_Frozen/Assets/Klak/DFVolume/Shader.meta new file mode 100644 index 0000000..4ac6417 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/Shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: f9932d3e3540d7d42967c0084417fc5c +folderAsset: yes +timeCreated: 1495885014 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/Shader/Visualizer.shader b/Unity_2018_Frozen/Assets/Klak/DFVolume/Shader/Visualizer.shader new file mode 100644 index 0000000..15025f8 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/Shader/Visualizer.shader @@ -0,0 +1,60 @@ +// DFVolume - Distance field volume generator for Unity +// https://github.com/keijiro/DFVolume + +Shader "Hidden/DFVolume/Visualizer" +{ + Properties + { + _MainTex("", 3D) = "white" {} + } + + CGINCLUDE + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD; + }; + + struct v2f + { + float4 vertex : SV_POSITION; + float2 texcoord : TEXCOORD; + }; + + sampler3D _MainTex; + float _Depth; + float _Mode; + + v2f vert(appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.texcoord = v.texcoord; + return o; + } + + fixed4 frag(v2f i) : SV_Target + { + fixed4 data = tex3D(_MainTex, float3(i.texcoord, _Depth)); + fixed dist = abs(0.5 - frac(data.a * 10)) * 2; + fixed3 grad = data.rgb + 0.5; + return fixed4(lerp(dist, grad, _Mode), 1); + } + + ENDCG + + SubShader + { + Tags { "RenderType"="Opaque" } + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + ENDCG + } + } +} diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/Shader/Visualizer.shader.meta b/Unity_2018_Frozen/Assets/Klak/DFVolume/Shader/Visualizer.shader.meta new file mode 100644 index 0000000..c86f352 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/Shader/Visualizer.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e87e89fb693f01e47ac90f63e832ed83 +timeCreated: 1495876326 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeData.cs b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeData.cs new file mode 100644 index 0000000..e692d89 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeData.cs @@ -0,0 +1,54 @@ +// DFVolume - Distance field volume generator for Unity +// https://github.com/keijiro/DFVolume + +using System.Collections.Generic; +using UnityEngine; + +namespace DFVolume +{ + public class VolumeData : ScriptableObject + { + #region Exposed attributes + + [SerializeField] Texture3D _texture; + + public Texture3D texture { + get { return _texture; } + } + + List _data; + + public List data + { + get { return _data; } + } + + #endregion + +#if UNITY_EDITOR + + #region Editor functions + + public void Initialize(VolumeSampler sampler) + { + var bmp = sampler.GenerateBitmap(); + + var dim = sampler.resolution; + _texture = new Texture3D(dim, dim, dim, TextureFormat.RGBAHalf, true); + + _texture.name = "Distance Field Texture"; + _texture.filterMode = FilterMode.Bilinear; + _texture.wrapMode = TextureWrapMode.Clamp; + _texture.SetPixels(bmp); + _texture.Apply(); + + _data = new List(); + foreach (var c in bmp) + _data.Add(new Vector4(c.r, c.g, c.b, c.a)); + } + + #endregion + + #endif + } +} diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeData.cs.meta b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeData.cs.meta new file mode 100644 index 0000000..d06e035 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 432ac308e27df9f4ebdfd3523b98cad3 +timeCreated: 1495869190 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeSampler.cs b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeSampler.cs new file mode 100644 index 0000000..bdaf0f1 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeSampler.cs @@ -0,0 +1,122 @@ +// DFVolume - Distance field volume generator for Unity +// https://github.com/keijiro/DFVolume + +using UnityEngine; + +namespace DFVolume +{ + public class VolumeSampler : MonoBehaviour + { + #region Exposed attributes + + [SerializeField] int _resolution = 50; + + public int resolution { + get { return _resolution; } + } + + [SerializeField] float _extent = 0.5f; + + public float extent { + get { return _extent; } + } + + #endregion + + #if UNITY_EDITOR + + #region Editor functions + + void OnDrawGizmos() + { + Gizmos.matrix = transform.localToWorldMatrix; + Gizmos.color = Color.yellow; + Gizmos.DrawWireCube(Vector3.zero, Vector3.one * _extent * 2); + } + + public Color[] GenerateBitmap() + { + // Generate a distance field. + var df = new float[_resolution * _resolution * _resolution]; + + for (var xi = 0; xi < _resolution; xi++) + { + var x = 2.0f * xi / (_resolution - 1) - 1; + for (var yi = 0; yi < _resolution; yi++) + { + var y = 2.0f * yi / (_resolution - 1) - 1; + for (var zi = 0; zi < _resolution; zi++) + { + var z = 2.0f * zi / (_resolution - 1) - 1; + + var pt = new Vector3(x, y, z) * _extent; + pt = transform.TransformPoint(pt); + + var dist = SearchDistance(pt) * 0.5f / _extent; + df[GetIndex(xi, yi, zi)] = dist; + } + } + } + + // Compute gradients and pack them into a bitmap. + var bmp = new Color[df.Length]; + var dds2 = (_resolution - 1) / 2.0f; + + for (var xi = 0; xi < _resolution; xi++) + { + for (var yi = 0; yi < _resolution; yi++) + { + for (var zi = 0; zi < _resolution; zi++) + { + var d = df[GetIndex(xi, yi, zi)]; + var dx0 = df[GetIndex(xi - 1, yi, zi)]; + var dx1 = df[GetIndex(xi + 1, yi, zi)]; + var dy0 = df[GetIndex(xi, yi - 1, zi)]; + var dy1 = df[GetIndex(xi, yi + 1, zi)]; + var dz0 = df[GetIndex(xi, yi, zi - 1)]; + var dz1 = df[GetIndex(xi, yi, zi + 1)]; + + bmp[GetIndex(xi, yi, zi)] = new Color( + (dx1 - dx0) * dds2, + (dy1 - dy0) * dds2, + (dz1 - dz0) * dds2, + d + ); + } + } + } + + return bmp; + } + + #endregion + + #region Private functions + + int GetIndex(int xi, int yi, int zi) + { + xi = Mathf.Clamp(xi, 0, _resolution - 1); + yi = Mathf.Clamp(yi, 0, _resolution - 1); + zi = Mathf.Clamp(zi, 0, _resolution - 1); + return xi + _resolution * (yi + _resolution * zi); + } + + float SearchDistance(Vector3 pt) + { + var r = _extent; + var s = _extent * 0.5f; + + for (var i = 0; i < 10; i++) + { + r += (Physics.CheckSphere(pt, r) ? -1 : 1) * s; + s *= 0.5f; + } + + return r; + } + + #endregion + + #endif + } +} diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeSampler.cs.meta b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeSampler.cs.meta new file mode 100644 index 0000000..9d512e2 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeSampler.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 8b8cecf65d18af24daf10718a8526e01 +timeCreated: 1495864966 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeVisualizer.cs b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeVisualizer.cs new file mode 100644 index 0000000..043c175 --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeVisualizer.cs @@ -0,0 +1,49 @@ +// DFVolume - Distance field volume generator for Unity +// https://github.com/keijiro/DFVolume + +using UnityEngine; + +namespace DFVolume +{ + [ExecuteInEditMode] + public class VolumeVisualizer : MonoBehaviour + { + enum Mode { Distance, Gradient } + + [SerializeField] VolumeData _data; + [SerializeField] Mode _mode; + [SerializeField, Range(0, 1)] float _depth = 0.5f; + + [SerializeField, HideInInspector] Mesh _quadMesh; + [SerializeField, HideInInspector] Shader _shader; + + Material _material; + + void OnDestroy() + { + if (_material != null) + if (Application.isPlaying) + Destroy(_material); + else + DestroyImmediate(_material); + } + + void Update() + { + if (_material == null) + { + _material = new Material(_shader); + _material.hideFlags = HideFlags.DontSave; + } + + _material.SetTexture("_MainTex", _data.texture); + _material.SetFloat("_Depth", _depth); + _material.SetFloat("_Mode", (int)_mode); + + Graphics.DrawMesh( + _quadMesh, transform.localToWorldMatrix, + _material, gameObject.layer + ); + } + } +} diff --git a/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeVisualizer.cs.meta b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeVisualizer.cs.meta new file mode 100644 index 0000000..58d636e --- /dev/null +++ b/Unity_2018_Frozen/Assets/Klak/DFVolume/VolumeVisualizer.cs.meta @@ -0,0 +1,15 @@ +fileFormatVersion: 2 +guid: 86572f0349d91434d90f40861f708217 +timeCreated: 1495884309 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: + - _data: {instanceID: 0} + - _quadMesh: {fileID: 10210, guid: 0000000000000000e000000000000000, type: 0} + - _shader: {fileID: 4800000, guid: e87e89fb693f01e47ac90f63e832ed83, type: 3} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: