diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 00000000000..9dad3047e29 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,37 @@ +# see http://editorconfig.org/ for docs on this file + +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf ; help with sharing files across os's (i.e. network share or through local vm) +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true + +# trailing whitespace is significant in markdown (bad choice, bad!) +[*.{md,markdown}] +trim_trailing_whitespace = false + +# keep these and the VS stuff below in sync with .hgeol's CRLF extensions +[*.{vcproj,bat,cmd,xaml,tt,t4,ttinclude}] +end_of_line = crlf + +# this VS-specific stuff is based on experiments to see how VS will modify a file after it has been manually edited. +# the settings are meant to closely match what VS does to minimize unnecessary diffs. this duplicates some settings in * +# but let's be explicit here to be safe (in case someone wants to copy-paste this out to another .editorconfig). +[*.{vcxproj,vcxproj.filters,csproj,props,targets}] +indent_style = space +indent_size = 2 +end_of_line = crlf +charset = utf-8-bom +trim_trailing_whitespace = true +insert_final_newline = false +[*.{sln,sln.template}] +indent_style = tab +indent_size = 4 +end_of_line = crlf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = false diff --git a/.gitignore b/.gitignore index fefd7fe040b..f2276c79ae6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,20 +4,7 @@ Temp/* *.csproj *.sln *.suo -DataSource/app.info -DataSource/globalgamemanagers -DataSource/globalgamemanagers.assets -DataSource/level0 -DataSource/Mono/etc/mono/config -DataSource/Mono/etc/mono/mconfig/config.xml -DataSource/PlayerConnectionConfigFile -DataSource/Resources/unity default resources -DataSource/sharedassets0.assets -DataSource/Resources/unity_builtin_extra -DataSource/Mono/etc/mono/1.0/machine.config -DataSource/Mono/etc/mono/2.0/machine.config -DataSource/Mono/etc/mono/2.0/web.config -*.dll +DataSource/* *.mdb *.browser *.map @@ -25,4 +12,8 @@ DataSource/Mono/etc/mono/2.0/web.config *.resS *.exe *.aspx +*.sdf +*.userprefs +Assets/UnityHDRI.meta +Assets/UnityHDRI/Gareoult/GareoultWhiteBalanced.exr diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/Postprocress.meta b/Assets/Editor/Tests/RenderloopTests.meta similarity index 67% rename from Assets/ScriptableRenderLoop/ShaderLibrary/Postprocress.meta rename to Assets/Editor/Tests/RenderloopTests.meta index 623b73c69eb..a0d4d8047ca 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/Postprocress.meta +++ b/Assets/Editor/Tests/RenderloopTests.meta @@ -1,7 +1,7 @@ fileFormatVersion: 2 -guid: d90c5a99d7855ad46b792d749ce7ca6f +guid: d741d6a8894f49245a784b7cc5c329ca folderAsset: yes -timeCreated: 1472140530 +timeCreated: 1474988761 licenseType: Pro DefaultImporter: userData: diff --git a/Assets/Editor/Tests/RenderloopTests/CullResultsTest.cs b/Assets/Editor/Tests/RenderloopTests/CullResultsTest.cs new file mode 100644 index 00000000000..46873d3585a --- /dev/null +++ b/Assets/Editor/Tests/RenderloopTests/CullResultsTest.cs @@ -0,0 +1,39 @@ +using UnityEngine; +using UnityEngine.Experimental.Rendering; +using NUnit.Framework; + +[TestFixture] +public class CullResultsTest +{ + void InspectCullResults(Camera camera, CullResults cullResults, RenderLoop renderLoop) + { + VisibleReflectionProbe[] probes = cullResults.visibleReflectionProbes; + + Assert.AreEqual(1, probes.Length, "Incorrect reflection probe count"); + + VisibleReflectionProbe probeA = probes[0]; + Assert.NotNull(probeA.texture, "probe texture"); + + VisibleLight[] lights = cullResults.visibleLights; + Assert.AreEqual(3, lights.Length, "Incorrect light count"); + + LightType[] expectedTypes = new LightType[] { LightType.Directional, LightType.Spot, LightType.Point }; + for (int i = 0; i != 2; i++) + { + Assert.AreEqual(expectedTypes[i], lights[i].lightType, + "Incorrect light type for light " + i.ToString() + " (" + lights[i].light.name + ")"); + } + + // @TODO.. + } + + [Test] + public void TestReflectionProbes() + { + UnityEditor.SceneManagement.EditorSceneManager.OpenScene("Assets/Editor/Tests/TestScene.unity"); + + // Asserts.ExpectLogError("Boing"); + + RenderLoopTestFixture.Run(InspectCullResults); + } +} diff --git a/Assets/ScriptableRenderLoop/common/ShaderBase.cs.meta b/Assets/Editor/Tests/RenderloopTests/CullResultsTest.cs.meta similarity index 75% rename from Assets/ScriptableRenderLoop/common/ShaderBase.cs.meta rename to Assets/Editor/Tests/RenderloopTests/CullResultsTest.cs.meta index 750956dc587..0515d55da4f 100644 --- a/Assets/ScriptableRenderLoop/common/ShaderBase.cs.meta +++ b/Assets/Editor/Tests/RenderloopTests/CullResultsTest.cs.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: c1ebf357fa7277c4697f21c295e8c4c2 -timeCreated: 1467917164 +guid: 4a5559aeb6036ca43895e4ed6e6cfc0d +timeCreated: 1474463564 licenseType: Pro MonoImporter: serializedVersion: 2 diff --git a/Assets/Editor/Tests/RenderloopTests/RenderloopTestFixture.cs b/Assets/Editor/Tests/RenderloopTests/RenderloopTestFixture.cs new file mode 100644 index 00000000000..772f63f36ec --- /dev/null +++ b/Assets/Editor/Tests/RenderloopTests/RenderloopTestFixture.cs @@ -0,0 +1,58 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEditor; +using UnityEngine.Experimental.Rendering; +using NUnit.Framework; + +[ExecuteInEditMode] +public class RenderLoopTestFixture : MonoBehaviour +{ + public delegate void TestDelegate(Camera camera, CullResults cullResults, RenderLoop renderLoop); + private static TestDelegate s_Callback; + + public static void Render(RenderLoopWrapper wrapper, Camera[] cameras, RenderLoop renderLoop) + { + foreach (var camera in cameras) + { + CullingParameters cullingParams; + bool gotCullingParams = CullResults.GetCullingParameters(camera, out cullingParams); + Assert.IsTrue(gotCullingParams); + + CullResults cullResults = CullResults.Cull(ref cullingParams, renderLoop); + + s_Callback(camera, cullResults, renderLoop); + } + + renderLoop.Submit(); + } + + public static void Run(TestDelegate renderCallback) + { + var sceneCamera = Camera.main; + var camObject = sceneCamera.gameObject; + + var instance = camObject.AddComponent(); + instance.callback = Render; + s_Callback = renderCallback; + instance.enabled = true; + + Transform t = camObject.transform; + + // Can't use AlignViewToObject because it animates over time, and we want the first frame + float size = SceneView.lastActiveSceneView.size; + float fov = 90; // hardcoded in SceneView + float camDist = size / Mathf.Tan(fov * 0.5f * Mathf.Deg2Rad); + SceneView.lastActiveSceneView.LookAtDirect(t.position + t.forward * camDist, t.rotation, size); + + // Invoke renderer + try + { + sceneCamera.Render(); + } + finally + { + Object.DestroyImmediate(instance); + } + } +} diff --git a/Assets/Editor/Tests/RenderloopTests/RenderloopTestFixture.cs.meta b/Assets/Editor/Tests/RenderloopTests/RenderloopTestFixture.cs.meta new file mode 100644 index 00000000000..5c238b6739b --- /dev/null +++ b/Assets/Editor/Tests/RenderloopTests/RenderloopTestFixture.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: d226affce84ac7d4dafb4a6a7a2a5391 +timeCreated: 1474463466 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Editor/Tests/ShaderGeneratorTests/ShaderGeneratorTests.cs b/Assets/Editor/Tests/ShaderGeneratorTests/ShaderGeneratorTests.cs index a77dc91d0e4..9f40eb6c211 100644 --- a/Assets/Editor/Tests/ShaderGeneratorTests/ShaderGeneratorTests.cs +++ b/Assets/Editor/Tests/ShaderGeneratorTests/ShaderGeneratorTests.cs @@ -1,158 +1,157 @@ -using System; +using System; using System.Collections.Generic; using System.Runtime.InteropServices; using System.Reflection; using UnityEngine; using UnityEditor; -using UnityEngine.Rendering; -using UnityEngine.ScriptableRenderLoop; +using UnityEngine.Experimental.Rendering; +using UnityEngine.Experimental.ScriptableRenderLoop; using NUnit.Framework; [TestFixture] public class ShaderGeneratorTests { - struct FailureTypes - { - // Non-primitive type in nested struct - internal struct NestedWithNonPrimitiveType - { - public struct Data - { - public string s; - } - public Data contents; - } - - // Unsupported primitive type in nested struct - internal struct UnsupportedPrimitiveType - { - public struct Data - { - public IntPtr intPtr; - } - public Data contents; - } - - // Mixed types in nested struct - internal struct MixedTypesInNestedStruct - { - public struct Data - { - public float f; - public int i; - } - public Data contents; - } - - // More than 4 primitive fields in nested struct - internal struct TooManyFields - { - public struct Data - { - public float f1, f2, f3, f4, f5; - } - public Data contents; - } - - // Merge failure due to incompatible types - internal struct MergeIncompatibleTypes - { - public float f; - public Vector2 v; - public int i; - } - - // Merge failure due to register boundary crossing - internal struct MergeCrossBoundary - { - public Vector2 u; - public Vector3 v; - } - } - - // @TODO: should probably switch to exceptions... - static bool HasErrorString(List errors, string errorSubstring) - { - if (errors == null) - return false; - - bool foundError = false; - foreach (var error in errors) - { - if (error.IndexOf(errorSubstring) >= 0) - { - foundError = true; - break; - } - } - - return foundError; - } - - [Test] - public void Fail_NestedWithNonPrimitiveType() - { - string source; - List errors; - - bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.NestedWithNonPrimitiveType), new GenerateHLSL(PackingRules.Exact), out source, out errors); - Assert.IsFalse(success); - Assert.IsTrue(HasErrorString(errors, "contains a non-primitive field type")); - } - - [Test] - public void Fail_UnsupportedPrimitiveType() - { - string source; - List errors; - - bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.UnsupportedPrimitiveType), new GenerateHLSL(PackingRules.Exact), out source, out errors); - Assert.IsFalse(success); - Assert.IsTrue(HasErrorString(errors, "contains an unsupported field type")); - } - - [Test] - public void Fail_MixedTypesInNestedStruct() - { - string source; - List errors; - - bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.MixedTypesInNestedStruct), new GenerateHLSL(PackingRules.Exact), out source, out errors); - Assert.IsFalse(success); - Assert.IsTrue(HasErrorString(errors, "contains mixed basic types")); - } - - [Test] - public void Fail_TooManyFields() - { - string source; - List errors; - - bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.TooManyFields), new GenerateHLSL(PackingRules.Aggressive), out source, out errors); - Assert.IsFalse(success); - Assert.IsTrue(HasErrorString(errors, "more than 4 fields")); - } - - [Test] - public void Fail_MergeIncompatibleTypes() - { - string source; - List errors; - - bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.MergeIncompatibleTypes), new GenerateHLSL(PackingRules.Aggressive), out source, out errors); - Assert.IsFalse(success); - Assert.IsTrue(HasErrorString(errors, "incompatible types")); - } - - [Test] - public void Fail_MergeCrossBoundary() - { - string source; - List errors; - - bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.MergeCrossBoundary), new GenerateHLSL(PackingRules.Aggressive), out source, out errors); - Assert.IsFalse(success); - Assert.IsTrue(HasErrorString(errors, "cross register boundary")); - } - + struct FailureTypes + { + // Non-primitive type in nested struct + internal struct NestedWithNonPrimitiveType + { + public struct Data + { + public string s; + } + public Data contents; + } + + // Unsupported primitive type in nested struct + internal struct UnsupportedPrimitiveType + { + public struct Data + { + public IntPtr intPtr; + } + public Data contents; + } + + // Mixed types in nested struct + internal struct MixedTypesInNestedStruct + { + public struct Data + { + public float f; + public int i; + } + public Data contents; + } + + // More than 4 primitive fields in nested struct + internal struct TooManyFields + { + public struct Data + { + public float f1, f2, f3, f4, f5; + } + public Data contents; + } + + // Merge failure due to incompatible types + internal struct MergeIncompatibleTypes + { + public float f; + public Vector2 v; + public int i; + } + + // Merge failure due to register boundary crossing + internal struct MergeCrossBoundary + { + public Vector2 u; + public Vector3 v; + } + } + + // @TODO: should probably switch to exceptions... + static bool HasErrorString(List errors, string errorSubstring) + { + if (errors == null) + return false; + + bool foundError = false; + foreach (var error in errors) + { + if (error.IndexOf(errorSubstring) >= 0) + { + foundError = true; + break; + } + } + + return foundError; + } + + [Test(Description = "Disallow non-primitive types in nested structs")] + public void Fail_NestedWithNonPrimitiveType() + { + string source; + List errors; + + bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.NestedWithNonPrimitiveType), new GenerateHLSL(PackingRules.Exact), out source, out errors); + Assert.IsFalse(success); + Assert.IsTrue(HasErrorString(errors, "contains a non-primitive field type")); + } + + [Test(Description = "Check for unsupported types in primitive structs")] + public void Fail_UnsupportedPrimitiveType() + { + string source; + List errors; + + bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.UnsupportedPrimitiveType), new GenerateHLSL(PackingRules.Exact), out source, out errors); + Assert.IsFalse(success); + Assert.IsTrue(HasErrorString(errors, "contains an unsupported field type")); + } + + [Test(Description = "Disallow mixed types in nested structs")] + public void Fail_MixedTypesInNestedStruct() + { + string source; + List errors; + + bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.MixedTypesInNestedStruct), new GenerateHLSL(PackingRules.Exact), out source, out errors); + Assert.IsFalse(success); + Assert.IsTrue(HasErrorString(errors, "contains mixed basic types")); + } + + [Test(Description = "Disallow more than 16 bytes worth of fields in nested structs")] + public void Fail_TooManyFields() + { + string source; + List errors; + + bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.TooManyFields), new GenerateHLSL(PackingRules.Exact), out source, out errors); + Assert.IsFalse(success); + Assert.IsTrue(HasErrorString(errors, "more than 4 fields")); + } + + [Test(Description = "Disallow merging incompatible types when doing aggressive packing")] + public void Fail_MergeIncompatibleTypes() + { + string source; + List errors; + + bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.MergeIncompatibleTypes), new GenerateHLSL(PackingRules.Aggressive), out source, out errors); + Assert.IsFalse(success); + Assert.IsTrue(HasErrorString(errors, "incompatible types")); + } + + [Test(Description = "Disallow placing fields across register boundaries when merging")] + public void Fail_MergeCrossBoundary() + { + string source; + List errors; + + bool success = CSharpToHLSL.GenerateHLSL(typeof(FailureTypes.MergeCrossBoundary), new GenerateHLSL(PackingRules.Aggressive), out source, out errors); + Assert.IsFalse(success); + Assert.IsTrue(HasErrorString(errors, "cross register boundary")); + } } diff --git a/Assets/Editor/Tests/TestScene.unity b/Assets/Editor/Tests/TestScene.unity new file mode 100644 index 00000000000..b8bd9d6fbbe --- /dev/null +++ b/Assets/Editor/Tests/TestScene.unity @@ -0,0 +1,513 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.18383996, g: 0.22856951, b: 0.30070874, a: 1} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + m_GIWorkflowMode: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 4 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_DirectLightInLightProbes: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &25849430 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 25849432} + - component: {fileID: 25849431} + m_Layer: 0 + m_Name: Point light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &25849431 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 25849430} + m_Enabled: 1 + serializedVersion: 7 + m_Type: 2 + m_Color: {r: 1, g: 0, b: 0, a: 1} + m_Intensity: 2.25 + m_Range: 3 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &25849432 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 25849430} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 29.13, y: 10.87, z: -12.32} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &253520866 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 253520868} + - component: {fileID: 253520867} + m_Layer: 0 + m_Name: Reflection Probe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!215 &253520867 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 253520866} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 0 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 128 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 0 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 0} +--- !u!4 &253520868 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 253520866} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 31.42, y: 10.15, z: -11.86} + 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} +--- !u!1 &1135582007 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1135582009} + - component: {fileID: 1135582008} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1135582008 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1135582007} + m_Enabled: 1 + serializedVersion: 7 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 0.31 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1135582009 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1135582007} + m_LocalRotation: {x: 0.2085781, y: -0.20525375, z: 0.157665, w: 0.9431372} + m_LocalPosition: {x: 22.522564, y: 3.5713508, z: -2.9280958} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 27.268002, y: -21.197, z: 13.783001} +--- !u!1 &1376655766 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1376655770} + - component: {fileID: 1376655769} + - component: {fileID: 1376655768} + - component: {fileID: 1376655767} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1376655767 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1376655766} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &1376655768 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1376655766} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1376655769 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1376655766} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1376655770 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1376655766} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 29.983482, y: 10.2917185, z: -11.68843} + 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} +--- !u!1 &1575352313 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1575352315} + - component: {fileID: 1575352314} + m_Layer: 0 + m_Name: Spotlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1575352314 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1575352313} + m_Enabled: 1 + serializedVersion: 7 + m_Type: 0 + m_Color: {r: 0, g: 1, b: 0, a: 1} + m_Intensity: 1.93 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1575352315 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1575352313} + m_LocalRotation: {x: 0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 29.34, y: 15.33, z: -9.55} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 90, y: 0, z: 0} +--- !u!1 &1607679130 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1607679135} + - component: {fileID: 1607679134} + - component: {fileID: 1607679133} + - component: {fileID: 1607679132} + - component: {fileID: 1607679131} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1607679131 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1607679130} + m_Enabled: 1 +--- !u!124 &1607679132 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1607679130} + m_Enabled: 1 +--- !u!92 &1607679133 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1607679130} + m_Enabled: 1 +--- !u!20 &1607679134 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1607679130} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &1607679135 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1607679130} + m_LocalRotation: {x: -0.11764297, y: -0.86998314, z: 0.25099322, w: -0.4077891} + m_LocalPosition: {x: 22.235256, y: 14.497136, z: -7.273508} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/TemplateDisneyGGX.hlsl.meta b/Assets/Editor/Tests/TestScene.unity.meta similarity index 63% rename from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/TemplateDisneyGGX.hlsl.meta rename to Assets/Editor/Tests/TestScene.unity.meta index 34c60a21660..ee59c89f0cb 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/TemplateDisneyGGX.hlsl.meta +++ b/Assets/Editor/Tests/TestScene.unity.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: bc4a80ef70e37814e94ea45fc03abdaa -timeCreated: 1474456127 +guid: 132b4d69c613305449cd1bb9476cdee1 +timeCreated: 1474995476 licenseType: Pro DefaultImporter: userData: diff --git a/Assets/ScriptableRenderLoop/AdditionalLightData.cs b/Assets/ScriptableRenderLoop/AdditionalLightData.cs index 08938afc20c..8bdeb87153b 100644 --- a/Assets/ScriptableRenderLoop/AdditionalLightData.cs +++ b/Assets/ScriptableRenderLoop/AdditionalLightData.cs @@ -1,35 +1,31 @@ -using System; - -namespace UnityEngine.ScriptableRenderLoop +namespace UnityEngine.Experimental.ScriptableRenderLoop { - //@TODO: We should continously move these values - // into the engine when we can see them being generally useful - [RequireComponent(typeof(Light))] - public class AdditionalLightData : MonoBehaviour - { - public const int defaultShadowResolution = 512; + //@TODO: We should continously move these values + // into the engine when we can see them being generally useful + [RequireComponent(typeof(Light))] + public class AdditionalLightData : MonoBehaviour + { + public const int DefaultShadowResolution = 512; - public int shadowResolution = defaultShadowResolution; + public int shadowResolution = DefaultShadowResolution; - [RangeAttribute(0.0F, 100.0F)] - public float innerSpotPercent = 0.0F; + [RangeAttribute(0.0F, 100.0F)] + public float innerSpotPercent = 0.0F; - public static float GetInnerSpotPercent01(AdditionalLightData lightData) - { - if (lightData != null) - return Mathf.Clamp( lightData.innerSpotPercent, 0.0f, 100.0f ) / 100.0f; - else - return 0.0F; - } + public static float GetInnerSpotPercent01(AdditionalLightData lightData) + { + if (lightData != null) + return Mathf.Clamp(lightData.innerSpotPercent, 0.0f, 100.0f) / 100.0f; + else + return 0.0F; + } - public static int GetShadowResolution(AdditionalLightData lightData) - { - if (lightData != null) - return lightData.shadowResolution; - else - return defaultShadowResolution; - } - } + public static int GetShadowResolution(AdditionalLightData lightData) + { + if (lightData != null) + return lightData.shadowResolution; + else + return DefaultShadowResolution; + } + } } - - diff --git a/Assets/ScriptableRenderLoop/ForwardRenderLoop/ForwardRenderLoop.cs b/Assets/ScriptableRenderLoop/ForwardRenderLoop/ForwardRenderLoop.cs index 3a5f5a8b677..93fc7458e3b 100644 --- a/Assets/ScriptableRenderLoop/ForwardRenderLoop/ForwardRenderLoop.cs +++ b/Assets/ScriptableRenderLoop/ForwardRenderLoop/ForwardRenderLoop.cs @@ -1,244 +1,241 @@ -using UnityEngine; -using System.Collections; -using UnityEngine.Rendering; -using System.Collections.Generic; +using UnityEngine.Experimental.Rendering; using System; -namespace UnityEngine.ScriptableRenderLoop +namespace UnityEngine.Experimental.ScriptableRenderLoop { - public class ForwardRenderLoop : ScriptableRenderLoop - { + public class ForwardRenderLoop : ScriptableRenderLoop + { #if UNITY_EDITOR - [UnityEditor.MenuItem("Renderloop/CreateForwardRenderLoop")] - static void CreateForwardRenderLoop() - { - var instance = ScriptableObject.CreateInstance(); - UnityEditor.AssetDatabase.CreateAsset(instance, "Assets/forwardrenderloop.asset"); - } + [UnityEditor.MenuItem("Renderloop/CreateForwardRenderLoop")] + static void CreateForwardRenderLoop() + { + var instance = ScriptableObject.CreateInstance(); + UnityEditor.AssetDatabase.CreateAsset(instance, "Assets/forwardrenderloop.asset"); + } + #endif - [SerializeField] - ShadowSettings m_ShadowSettings = ShadowSettings.Default; - ShadowRenderPass m_ShadowPass; - - - const int MAX_LIGHTS = 10; - const int MAX_SHADOWMAP_PER_LIGHTS = 6; - const int MAX_DIRECTIONAL_SPLIT = 4; - // Directional lights become spotlights at a far distance. This is the distance we pull back to set the spotlight origin. - const float DIRECTIONAL_LIGHT_PULLBACK_DISTANCE = 10000.0f; - - [NonSerialized] private int m_nWarnedTooManyLights = 0; - - - void OnEnable() - { - Rebuild (); - } - - void OnValidate() - { - Rebuild (); - } - - void Rebuild() - { - m_ShadowPass = new ShadowRenderPass (m_ShadowSettings); - } - - //--------------------------------------------------------------------------------------------------------------------------------------------------- - void UpdateLightConstants(ActiveLight[] activeLights, ref ShadowOutput shadow) - { - int nNumLightsIncludingTooMany = 0; - - int g_nNumLights = 0; - - Vector4[] g_vLightColor = new Vector4[ MAX_LIGHTS ]; - Vector4[] g_vLightPosition_flInvRadius = new Vector4[ MAX_LIGHTS ]; - Vector4[] g_vLightDirection = new Vector4[ MAX_LIGHTS ]; - Vector4[] g_vLightShadowIndex_vLightParams = new Vector4[ MAX_LIGHTS ]; - Vector4[] g_vLightFalloffParams = new Vector4[ MAX_LIGHTS ]; - Vector4[] g_vSpotLightInnerOuterConeCosines = new Vector4[ MAX_LIGHTS ]; - Matrix4x4[] g_matWorldToShadow = new Matrix4x4[ MAX_LIGHTS * MAX_SHADOWMAP_PER_LIGHTS ]; - Vector4[] g_vDirShadowSplitSpheres = new Vector4[ MAX_DIRECTIONAL_SPLIT ]; - - for ( int nLight = 0; nLight < activeLights.Length; nLight++ ) - { - - nNumLightsIncludingTooMany++; - if ( nNumLightsIncludingTooMany > MAX_LIGHTS ) - continue; - - ActiveLight light = activeLights [nLight]; - LightType lightType = light.lightType; - Vector3 position = light.light.transform.position; - Vector3 lightDir = light.light.transform.forward.normalized; - AdditionalLightData additionalLightData = light.light.GetComponent (); - - // Setup shadow data arrays - bool hasShadows = shadow.GetShadowSliceCountLightIndex (nLight) != 0; - - if ( lightType == LightType.Directional ) - { - g_vLightColor[ g_nNumLights ] = light.finalColor; - g_vLightPosition_flInvRadius[ g_nNumLights ] = new Vector4( - position.x - ( lightDir.x * DIRECTIONAL_LIGHT_PULLBACK_DISTANCE ), - position.y - ( lightDir.y * DIRECTIONAL_LIGHT_PULLBACK_DISTANCE ), - position.z - ( lightDir.z * DIRECTIONAL_LIGHT_PULLBACK_DISTANCE ), - -1.0f ); - g_vLightDirection[ g_nNumLights ] = new Vector4( lightDir.x, lightDir.y, lightDir.z ); - g_vLightShadowIndex_vLightParams[ g_nNumLights ] = new Vector4( 0, 0, 1, 1 ); - g_vLightFalloffParams[ g_nNumLights ] = new Vector4( 0.0f, 0.0f, float.MaxValue, (float)lightType ); - g_vSpotLightInnerOuterConeCosines[ g_nNumLights ] = new Vector4( 0.0f, -1.0f, 1.0f ); - - if (hasShadows) - { - for (int s = 0; s < MAX_DIRECTIONAL_SPLIT; ++s) - { - g_vDirShadowSplitSpheres[s] = shadow.directionalShadowSplitSphereSqr[s]; - } - } - } - else if ( lightType == LightType.Point ) - { - g_vLightColor[ g_nNumLights ] = light.finalColor; - - g_vLightPosition_flInvRadius[ g_nNumLights ] = new Vector4( position.x, position.y, position.z, 1.0f / light.range ); - g_vLightDirection[ g_nNumLights ] = new Vector4( 0.0f, 0.0f, 0.0f ); - g_vLightShadowIndex_vLightParams[ g_nNumLights ] = new Vector4( 0, 0, 1, 1 ); - g_vLightFalloffParams[ g_nNumLights ] = new Vector4( 1.0f, 0.0f, light.range * light.range, (float)lightType ); - g_vSpotLightInnerOuterConeCosines[ g_nNumLights ] = new Vector4( 0.0f, -1.0f, 1.0f ); - } - else if ( lightType == LightType.Spot ) - { - g_vLightColor[ g_nNumLights ] = light.finalColor; - g_vLightPosition_flInvRadius[ g_nNumLights ] = new Vector4( position.x, position.y, position.z, 1.0f / light.range ); - g_vLightDirection[ g_nNumLights ] = new Vector4( lightDir.x, lightDir.y, lightDir.z ); - g_vLightShadowIndex_vLightParams[ g_nNumLights ] = new Vector4( 0, 0, 1, 1 ); - g_vLightFalloffParams[ g_nNumLights ] = new Vector4( 1.0f, 0.0f, light.range * light.range, (float)lightType ); - - float flInnerConePercent = AdditionalLightData.GetInnerSpotPercent01(additionalLightData); - float spotAngle = light.light.spotAngle; - float flPhiDot = Mathf.Clamp( Mathf.Cos( spotAngle * 0.5f * Mathf.Deg2Rad ), 0.0f, 1.0f ); // outer cone - float flThetaDot = Mathf.Clamp( Mathf.Cos( spotAngle * 0.5f * flInnerConePercent * Mathf.Deg2Rad ), 0.0f, 1.0f ); // inner cone - g_vSpotLightInnerOuterConeCosines[ g_nNumLights ] = new Vector4( flThetaDot, flPhiDot, 1.0f / Mathf.Max( 0.01f, flThetaDot - flPhiDot ) ); - - } - - if ( hasShadows ) - { - // Enable shadows - g_vLightShadowIndex_vLightParams[ g_nNumLights ].x = 1; - for(int s=0; s < shadow.GetShadowSliceCountLightIndex (nLight); ++s) - { - int shadowSliceIndex = shadow.GetShadowSliceIndex (nLight, s); - g_matWorldToShadow [g_nNumLights * MAX_SHADOWMAP_PER_LIGHTS + s] = shadow.shadowSlices[shadowSliceIndex].shadowTransform.transpose; - } - } - - g_nNumLights++; - } - - // Warn if too many lights found - if ( nNumLightsIncludingTooMany > MAX_LIGHTS ) - { - if ( nNumLightsIncludingTooMany > m_nWarnedTooManyLights ) - { - Debug.LogError( "ERROR! Found " + nNumLightsIncludingTooMany + " runtime lights! Valve renderer supports up to " + MAX_LIGHTS + - " active runtime lights at a time!\nDisabling " + ( nNumLightsIncludingTooMany - MAX_LIGHTS ) + " runtime light" + - ( ( nNumLightsIncludingTooMany - MAX_LIGHTS ) > 1 ? "s" : "" ) + "!\n" ); - } - m_nWarnedTooManyLights = nNumLightsIncludingTooMany; - } - else - { - if ( m_nWarnedTooManyLights > 0 ) - { - m_nWarnedTooManyLights = 0; - Debug.Log( "SUCCESS! Found " + nNumLightsIncludingTooMany + " runtime lights which is within the supported number of lights, " + MAX_LIGHTS + ".\n\n" ); - } - } - - // Send constants to shaders - Shader.SetGlobalInt( "g_nNumLights", g_nNumLights ); - - // New method for Unity 5.4 to set arrays of constants - Shader.SetGlobalVectorArray( "g_vLightPosition_flInvRadius", g_vLightPosition_flInvRadius ); - Shader.SetGlobalVectorArray( "g_vLightColor", g_vLightColor ); - Shader.SetGlobalVectorArray( "g_vLightDirection", g_vLightDirection ); - Shader.SetGlobalVectorArray( "g_vLightShadowIndex_vLightParams", g_vLightShadowIndex_vLightParams ); - Shader.SetGlobalVectorArray( "g_vLightFalloffParams", g_vLightFalloffParams ); - Shader.SetGlobalVectorArray( "g_vSpotLightInnerOuterConeCosines", g_vSpotLightInnerOuterConeCosines ); - Shader.SetGlobalMatrixArray( "g_matWorldToShadow", g_matWorldToShadow ); - Shader.SetGlobalVectorArray( "g_vDirShadowSplitSpheres", g_vDirShadowSplitSpheres ); - - // Time - #if ( UNITY_EDITOR ) - { - Shader.SetGlobalFloat( "g_flTime", Time.realtimeSinceStartup ); - //Debug.Log( "Time " + Time.realtimeSinceStartup ); - } - #else - { - Shader.SetGlobalFloat( "g_flTime", Time.timeSinceLevelLoad ); - //Debug.Log( "Time " + Time.timeSinceLevelLoad ); - } - #endif - - // PCF 3x3 Shadows - float flTexelEpsilonX = 1.0f / m_ShadowSettings.shadowAtlasWidth; - float flTexelEpsilonY = 1.0f / m_ShadowSettings.shadowAtlasHeight; - Vector4 g_vShadow3x3PCFTerms0 = new Vector4( 20.0f / 267.0f, 33.0f / 267.0f, 55.0f / 267.0f, 0.0f ); - Vector4 g_vShadow3x3PCFTerms1 = new Vector4( flTexelEpsilonX, flTexelEpsilonY, -flTexelEpsilonX, -flTexelEpsilonY ); - Vector4 g_vShadow3x3PCFTerms2 = new Vector4( flTexelEpsilonX, flTexelEpsilonY, 0.0f, 0.0f ); - Vector4 g_vShadow3x3PCFTerms3 = new Vector4( -flTexelEpsilonX, -flTexelEpsilonY, 0.0f, 0.0f ); - - Shader.SetGlobalVector( "g_vShadow3x3PCFTerms0", g_vShadow3x3PCFTerms0 ); - Shader.SetGlobalVector( "g_vShadow3x3PCFTerms1", g_vShadow3x3PCFTerms1 ); - Shader.SetGlobalVector( "g_vShadow3x3PCFTerms2", g_vShadow3x3PCFTerms2 ); - Shader.SetGlobalVector( "g_vShadow3x3PCFTerms3", g_vShadow3x3PCFTerms3 ); - } - - public override void Render(Camera[] cameras, RenderLoop renderLoop) - { - foreach (var camera in cameras) - { - CullResults cullResults; - CullingParameters cullingParams; - if (!CullResults.GetCullingParameters (camera, out cullingParams)) - continue; - - m_ShadowPass.UpdateCullingParameters (ref cullingParams); - - cullResults = CullResults.Cull (ref cullingParams, renderLoop); - - ShadowOutput shadows; - m_ShadowPass.Render (renderLoop, cullResults, out shadows); - - renderLoop.SetupCameraProperties (camera); - - UpdateLightConstants(cullResults.culledLights, ref shadows); - - DrawRendererSettings settings = new DrawRendererSettings (cullResults, camera, new ShaderPassName("ForwardBase")); - settings.rendererConfiguration = RendererConfiguration.ConfigureOneLightProbePerRenderer | RendererConfiguration.ConfigureReflectionProbesProbePerRenderer; - settings.sorting.sortOptions = SortOptions.SortByMaterialThenMesh; - - renderLoop.DrawRenderers (ref settings); - renderLoop.Submit (); - } - - // Post effects - } - - #if UNITY_EDITOR - public override UnityEditor.SupportedRenderingFeatures GetSupportedRenderingFeatures() - { - var features = new UnityEditor.SupportedRenderingFeatures(); - - features.reflectionProbe = UnityEditor.SupportedRenderingFeatures.ReflectionProbe.Rotation; - - return features; - } - #endif - } -} \ No newline at end of file + [SerializeField] + ShadowSettings m_ShadowSettings = ShadowSettings.Default; + ShadowRenderPass m_ShadowPass; + + const int k_MaxLights = 10; + const int k_MaxShadowmapPerLights = 6; + const int k_MaxDirectionalSplit = 4; + // Directional lights become spotlights at a far distance. This is the distance we pull back to set the spotlight origin. + const float k_DirectionalLightPullbackDistance = 10000.0f; + + [NonSerialized] private int m_WarnedTooManyLights = 0; + + + void OnEnable() + { + Rebuild(); + } + + void OnValidate() + { + Rebuild(); + } + + public override void Rebuild() + { + m_ShadowPass = new ShadowRenderPass(m_ShadowSettings); + } + + //--------------------------------------------------------------------------------------------------------------------------------------------------- + void UpdateLightConstants(VisibleLight[] visibleLights, ref ShadowOutput shadow) + { + var numLightsIncludingTooMany = 0; + + var numLights = 0; + + var lightColor = new Vector4[k_MaxLights]; + var lightPosition_invRadius = new Vector4[k_MaxLights]; + var lightDirection = new Vector4[k_MaxLights]; + var lightShadowIndex_lightParams = new Vector4[k_MaxLights]; + var lightFalloffParams = new Vector4[k_MaxLights]; + var spotLightInnerOuterConeCosines = new Vector4[k_MaxLights]; + var matWorldToShadow = new Matrix4x4[k_MaxLights * k_MaxShadowmapPerLights]; + var dirShadowSplitSpheres = new Vector4[k_MaxDirectionalSplit]; + + for (int nLight = 0; nLight < visibleLights.Length; nLight++) + { + numLightsIncludingTooMany++; + if (numLightsIncludingTooMany > k_MaxLights) + continue; + + var light = visibleLights[nLight]; + var lightType = light.lightType; + var position = light.light.transform.position; + var lightDir = light.light.transform.forward.normalized; + var additionalLightData = light.light.GetComponent(); + + // Setup shadow data arrays + var hasShadows = shadow.GetShadowSliceCountLightIndex(nLight) != 0; + + if (lightType == LightType.Directional) + { + lightColor[numLights] = light.finalColor; + lightPosition_invRadius[numLights] = new Vector4( + position.x - (lightDir.x * k_DirectionalLightPullbackDistance), + position.y - (lightDir.y * k_DirectionalLightPullbackDistance), + position.z - (lightDir.z * k_DirectionalLightPullbackDistance), + -1.0f); + lightDirection[numLights] = new Vector4(lightDir.x, lightDir.y, lightDir.z); + lightShadowIndex_lightParams[numLights] = new Vector4(0, 0, 1, 1); + lightFalloffParams[numLights] = new Vector4(0.0f, 0.0f, float.MaxValue, (float)lightType); + spotLightInnerOuterConeCosines[numLights] = new Vector4(0.0f, -1.0f, 1.0f); + + if (hasShadows) + { + for (int s = 0; s < k_MaxDirectionalSplit; ++s) + { + dirShadowSplitSpheres[s] = shadow.directionalShadowSplitSphereSqr[s]; + } + } + } + else if (lightType == LightType.Point) + { + lightColor[numLights] = light.finalColor; + + lightPosition_invRadius[numLights] = new Vector4(position.x, position.y, position.z, 1.0f / light.range); + lightDirection[numLights] = new Vector4(0.0f, 0.0f, 0.0f); + lightShadowIndex_lightParams[numLights] = new Vector4(0, 0, 1, 1); + lightFalloffParams[numLights] = new Vector4(1.0f, 0.0f, light.range * light.range, (float)lightType); + spotLightInnerOuterConeCosines[numLights] = new Vector4(0.0f, -1.0f, 1.0f); + } + else if (lightType == LightType.Spot) + { + lightColor[numLights] = light.finalColor; + lightPosition_invRadius[numLights] = new Vector4(position.x, position.y, position.z, 1.0f / light.range); + lightDirection[numLights] = new Vector4(lightDir.x, lightDir.y, lightDir.z); + lightShadowIndex_lightParams[numLights] = new Vector4(0, 0, 1, 1); + lightFalloffParams[numLights] = new Vector4(1.0f, 0.0f, light.range * light.range, (float)lightType); + + var flInnerConePercent = AdditionalLightData.GetInnerSpotPercent01(additionalLightData); + var spotAngle = light.light.spotAngle; + var flPhiDot = Mathf.Clamp(Mathf.Cos(spotAngle * 0.5f * Mathf.Deg2Rad), 0.0f, 1.0f); // outer cone + var flThetaDot = Mathf.Clamp(Mathf.Cos(spotAngle * 0.5f * flInnerConePercent * Mathf.Deg2Rad), 0.0f, 1.0f); // inner cone + spotLightInnerOuterConeCosines[numLights] = new Vector4(flThetaDot, flPhiDot, 1.0f / Mathf.Max(0.01f, flThetaDot - flPhiDot)); + } + + if (hasShadows) + { + // Enable shadows + lightShadowIndex_lightParams[numLights].x = 1; + for (int s = 0; s < shadow.GetShadowSliceCountLightIndex(nLight); ++s) + { + var shadowSliceIndex = shadow.GetShadowSliceIndex(nLight, s); + matWorldToShadow[numLights * k_MaxShadowmapPerLights + s] = shadow.shadowSlices[shadowSliceIndex].shadowTransform.transpose; + } + } + + numLights++; + } + + // Warn if too many lights found + if (numLightsIncludingTooMany > k_MaxLights) + { + if (numLightsIncludingTooMany > m_WarnedTooManyLights) + { + Debug.LogError("ERROR! Found " + numLightsIncludingTooMany + " runtime lights! Valve renderer supports up to " + k_MaxLights + + " active runtime lights at a time!\nDisabling " + (numLightsIncludingTooMany - k_MaxLights) + " runtime light" + + ((numLightsIncludingTooMany - k_MaxLights) > 1 ? "s" : "") + "!\n"); + } + m_WarnedTooManyLights = numLightsIncludingTooMany; + } + else + { + if (m_WarnedTooManyLights > 0) + { + m_WarnedTooManyLights = 0; + Debug.Log("SUCCESS! Found " + numLightsIncludingTooMany + " runtime lights which is within the supported number of lights, " + k_MaxLights + ".\n\n"); + } + } + + // Send constants to shaders + Shader.SetGlobalInt("g_nNumLights", numLights); + + // New method for Unity 5.4 to set arrays of constants + Shader.SetGlobalVectorArray("g_vLightPosition_flInvRadius", lightPosition_invRadius); + Shader.SetGlobalVectorArray("g_vLightColor", lightColor); + Shader.SetGlobalVectorArray("g_vLightDirection", lightDirection); + Shader.SetGlobalVectorArray("g_vLightShadowIndex_vLightParams", lightShadowIndex_lightParams); + Shader.SetGlobalVectorArray("g_vLightFalloffParams", lightFalloffParams); + Shader.SetGlobalVectorArray("g_vSpotLightInnerOuterConeCosines", spotLightInnerOuterConeCosines); + Shader.SetGlobalMatrixArray("g_matWorldToShadow", matWorldToShadow); + Shader.SetGlobalVectorArray("g_vDirShadowSplitSpheres", dirShadowSplitSpheres); + + // Time + #if (UNITY_EDITOR) + { + Shader.SetGlobalFloat("g_flTime", Time.realtimeSinceStartup); + //Debug.Log( "Time " + Time.realtimeSinceStartup ); + } + #else + { + Shader.SetGlobalFloat("g_flTime", Time.timeSinceLevelLoad); + //Debug.Log( "Time " + Time.timeSinceLevelLoad ); + } + #endif + + // PCF 3x3 Shadows + var texelEpsilonX = 1.0f / m_ShadowSettings.shadowAtlasWidth; + var texelEpsilonY = 1.0f / m_ShadowSettings.shadowAtlasHeight; + var shadow3x3PCFTerms0 = new Vector4(20.0f / 267.0f, 33.0f / 267.0f, 55.0f / 267.0f, 0.0f); + var shadow3x3PCFTerms1 = new Vector4(texelEpsilonX, texelEpsilonY, -texelEpsilonX, -texelEpsilonY); + var shadow3x3PCFTerms2 = new Vector4(texelEpsilonX, texelEpsilonY, 0.0f, 0.0f); + var shadow3x3PCFTerms3 = new Vector4(-texelEpsilonX, -texelEpsilonY, 0.0f, 0.0f); + + Shader.SetGlobalVector("g_vShadow3x3PCFTerms0", shadow3x3PCFTerms0); + Shader.SetGlobalVector("g_vShadow3x3PCFTerms1", shadow3x3PCFTerms1); + Shader.SetGlobalVector("g_vShadow3x3PCFTerms2", shadow3x3PCFTerms2); + Shader.SetGlobalVector("g_vShadow3x3PCFTerms3", shadow3x3PCFTerms3); + } + + public override void Render(Camera[] cameras, RenderLoop renderLoop) + { + foreach (var camera in cameras) + { + CullResults cullResults; + CullingParameters cullingParams; + if (!CullResults.GetCullingParameters(camera, out cullingParams)) + continue; + + m_ShadowPass.UpdateCullingParameters(ref cullingParams); + + cullResults = CullResults.Cull(ref cullingParams, renderLoop); + + ShadowOutput shadows; + m_ShadowPass.Render(renderLoop, cullResults, out shadows); + + renderLoop.SetupCameraProperties(camera); + + UpdateLightConstants(cullResults.visibleLights, ref shadows); + + var settings = new DrawRendererSettings(cullResults, camera, new ShaderPassName("ForwardBase")); + settings.rendererConfiguration = RendererConfiguration.PerObjectLightProbe | RendererConfiguration.PerObjectReflectionProbes; + settings.sorting.sortOptions = SortOptions.SortByMaterialThenMesh; + + renderLoop.DrawRenderers(ref settings); + renderLoop.Submit(); + } + + // Post effects + } + + #if UNITY_EDITOR + public override UnityEditor.SupportedRenderingFeatures GetSupportedRenderingFeatures() + { + var features = new UnityEditor.SupportedRenderingFeatures + { + reflectionProbe = UnityEditor.SupportedRenderingFeatures.ReflectionProbe.Rotation + }; + + return features; + } + + #endif + } +} diff --git a/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_lighting.cginc b/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_lighting.cginc index b06f00a6148..f2d168551ca 100755 --- a/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_lighting.cginc +++ b/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_lighting.cginc @@ -57,39 +57,39 @@ float g_flCubeMapScalar = 1.0; //------------------------------------------------------------------------------------------------------------------------------------------------------------- struct LightingTerms_t { - float3 vDiffuse; - float3 vSpecular; - float3 vIndirectDiffuse; - float3 vIndirectSpecular; - float3 vTransmissiveSunlight; + float3 vDiffuse; + float3 vSpecular; + float3 vIndirectDiffuse; + float3 vIndirectSpecular; + float3 vTransmissiveSunlight; }; //--------------------------------------------------------------------------------------------------------------------------------------------------------- float CalculateGeometricRoughnessFactor(float3 vGeometricNormalWs) { - float3 vNormalWsDdx = ddx(vGeometricNormalWs.xyz); - float3 vNormalWsDdy = ddy(vGeometricNormalWs.xyz); - float flGeometricRoughnessFactor = pow(saturate(max(dot(vNormalWsDdx.xyz, vNormalWsDdx.xyz), dot(vNormalWsDdy.xyz, vNormalWsDdy.xyz))), 0.333); - return flGeometricRoughnessFactor; + float3 vNormalWsDdx = ddx(vGeometricNormalWs.xyz); + float3 vNormalWsDdy = ddy(vGeometricNormalWs.xyz); + float flGeometricRoughnessFactor = pow(saturate(max(dot(vNormalWsDdx.xyz, vNormalWsDdx.xyz), dot(vNormalWsDdy.xyz, vNormalWsDdy.xyz))), 0.333); + return flGeometricRoughnessFactor; } float2 AdjustRoughnessByGeometricNormal(float2 vRoughness, float3 vGeometricNormalWs) { - float flGeometricRoughnessFactor = CalculateGeometricRoughnessFactor(vGeometricNormalWs.xyz); + float flGeometricRoughnessFactor = CalculateGeometricRoughnessFactor(vGeometricNormalWs.xyz); - //if ( Blink( 1.0 ) ) - //vRoughness.xy = min( vRoughness.xy + flGeometricRoughnessFactor.xx, float2( 1.0, 1.0 ) ); - //else - vRoughness.xy = max(vRoughness.xy, flGeometricRoughnessFactor.xx); - return vRoughness.xy; + //if ( Blink( 1.0 ) ) + //vRoughness.xy = min( vRoughness.xy + flGeometricRoughnessFactor.xx, float2( 1.0, 1.0 ) ); + //else + vRoughness.xy = max(vRoughness.xy, flGeometricRoughnessFactor.xx); + return vRoughness.xy; } //--------------------------------------------------------------------------------------------------------------------------------------------------------- void RoughnessEllipseToScaleAndExp(float2 vRoughness, out float2 o_vDiffuseExponentOut, out float2 o_vSpecularExponentOut, out float2 o_vSpecularScaleOut) { - o_vDiffuseExponentOut.xy = ((1.0 - vRoughness.xy) * 0.8) + 0.6; // 0.8 and 0.6 are magic numbers - o_vSpecularExponentOut.xy = exp2(pow(float2(1.0, 1.0) - vRoughness.xy, float2(1.5, 1.5)) * float2(14.0, 14.0)); // Outputs 1-16384 - o_vSpecularScaleOut.xy = 1.0 - saturate(vRoughness.xy * 0.5); // This is an energy conserving scalar for the roughness exponent. + o_vDiffuseExponentOut.xy = ((1.0 - vRoughness.xy) * 0.8) + 0.6; // 0.8 and 0.6 are magic numbers + o_vSpecularExponentOut.xy = exp2(pow(float2(1.0, 1.0) - vRoughness.xy, float2(1.5, 1.5)) * float2(14.0, 14.0)); // Outputs 1-16384 + o_vSpecularScaleOut.xy = 1.0 - saturate(vRoughness.xy * 0.5); // This is an energy conserving scalar for the roughness exponent. } //--------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -97,103 +97,103 @@ void RoughnessEllipseToScaleAndExp(float2 vRoughness, out float2 o_vDiffuseExpon //--------------------------------------------------------------------------------------------------------------------------------------------------------- float BlinnPhongModifiedNormalizationFactor(float k) { - float flNumer = (k + 2.0) * (k + 4.0); - float flDenom = 8 * (exp2(-k * 0.5) + k); - return flNumer / flDenom; + float flNumer = (k + 2.0) * (k + 4.0); + float flDenom = 8 * (exp2(-k * 0.5) + k); + return flNumer / flDenom; } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float DistanceFalloff(float flDistToLightSq, float flLightInvRadius, float2 vFalloffParams) { - // AV - My approximation to Unity's falloff function (I'll experiment with putting this into a texture later) - return lerp(1.0, (1.0 - pow(flDistToLightSq * flLightInvRadius * flLightInvRadius, 0.175)), vFalloffParams.x); - - // AV - This is the VR Aperture Demo falloff function - //flDistToLightSq = max( flDistToLightSq, 8.0f ); // Can't be inside the light source (assuming radius^2 == 8.0f) - // - //float2 vInvRadiusAndInvRadiusSq = float2( flLightInvRadius, flLightInvRadius * flLightInvRadius ); - //float2 vLightDistAndLightDistSq = float2( sqrt( flDistToLightSq ), flDistToLightSq ); - // - //float flTruncation = dot( vFalloffParams.xy, vInvRadiusAndInvRadiusSq.xy ); // Constant amount to subtract to ensure that the light is zero past the light radius - //float flFalloff = dot( vFalloffParams.xy, vLightDistAndLightDistSq.xy ); - // - //return saturate( ( 1.0f / flFalloff ) - flTruncation ); + // AV - My approximation to Unity's falloff function (I'll experiment with putting this into a texture later) + return lerp(1.0, (1.0 - pow(flDistToLightSq * flLightInvRadius * flLightInvRadius, 0.175)), vFalloffParams.x); + + // AV - This is the VR Aperture Demo falloff function + //flDistToLightSq = max( flDistToLightSq, 8.0f ); // Can't be inside the light source (assuming radius^2 == 8.0f) + // + //float2 vInvRadiusAndInvRadiusSq = float2( flLightInvRadius, flLightInvRadius * flLightInvRadius ); + //float2 vLightDistAndLightDistSq = float2( sqrt( flDistToLightSq ), flDistToLightSq ); + // + //float flTruncation = dot( vFalloffParams.xy, vInvRadiusAndInvRadiusSq.xy ); // Constant amount to subtract to ensure that the light is zero past the light radius + //float flFalloff = dot( vFalloffParams.xy, vLightDistAndLightDistSq.xy ); + // + //return saturate( ( 1.0f / flFalloff ) - flTruncation ); } //--------------------------------------------------------------------------------------------------------------------------------------------------------- // Anisotropic diffuse and specular lighting based on 2D tangent-space axis-aligned roughness //--------------------------------------------------------------------------------------------------------------------------------------------------------- float4 ComputeDiffuseAndSpecularTerms(bool bDiffuse, bool bSpecular, - float3 vNormalWs, float3 vEllipseUWs, float3 vEllipseVWs, float3 vPositionToLightDirWs, float3 vPositionToCameraDirWs, - float2 vDiffuseExponent, float2 vSpecularExponent, float2 vSpecularScale, float3 vReflectance, float flFresnelExponent) + float3 vNormalWs, float3 vEllipseUWs, float3 vEllipseVWs, float3 vPositionToLightDirWs, float3 vPositionToCameraDirWs, + float2 vDiffuseExponent, float2 vSpecularExponent, float2 vSpecularScale, float3 vReflectance, float flFresnelExponent) { - float flNDotL = ClampToPositive(dot(vNormalWs.xyz, vPositionToLightDirWs.xyz)); - - // Diffuse - float flDiffuseTerm = 0.0; - if (bDiffuse) - { - /* Disabling anisotropic diffuse until we have a need for it. Isotropic diffuse should be enough. - // Project light vector onto each tangent plane - float3 vDiffuseNormalX = vPositionToLightDirWs.xyz - ( vEllipseUWs.xyz * dot( vPositionToLightDirWs.xyz, vEllipseUWs.xyz ) ); // Not normalized on purpose - float3 vDiffuseNormalY = vPositionToLightDirWs.xyz - ( vEllipseVWs.xyz * dot( vPositionToLightDirWs.xyz, vEllipseVWs.xyz ) ); // Not normalized on purpose - - float flNDotLX = ClampToPositive( dot( vDiffuseNormalX.xyz, vPositionToLightDirWs.xyz ) ); - flNDotLX = pow( flNDotLX, vDiffuseExponent.x * 0.5 ); - - float flNDotLY = ClampToPositive( dot( vDiffuseNormalY.xyz, vPositionToLightDirWs.xyz ) ); - flNDotLY = pow( flNDotLY, vDiffuseExponent.y * 0.5 ); - - flDiffuseTerm = flNDotLX * flNDotLY; - flDiffuseTerm *= ( ( vDiffuseExponent.x * 0.5 + vDiffuseExponent.y * 0.5 ) + 1.0 ) * 0.5; - flDiffuseTerm *= flNDotL; - //*/ - - float flDiffuseExponent = (vDiffuseExponent.x + vDiffuseExponent.y) * 0.5; - flDiffuseTerm = pow(flNDotL, flDiffuseExponent) * ((flDiffuseExponent + 1.0) * 0.5); - } - - // Specular - float3 vSpecularTerm = float3(0.0, 0.0, 0.0); - [branch] if (bSpecular) - { - float3 vHalfAngleDirWs = normalize(vPositionToLightDirWs.xyz + vPositionToCameraDirWs.xyz); - - float flSpecularTerm = 0.0; + float flNDotL = ClampToPositive(dot(vNormalWs.xyz, vPositionToLightDirWs.xyz)); + + // Diffuse + float flDiffuseTerm = 0.0; + if (bDiffuse) + { + /* Disabling anisotropic diffuse until we have a need for it. Isotropic diffuse should be enough. + // Project light vector onto each tangent plane + float3 vDiffuseNormalX = vPositionToLightDirWs.xyz - ( vEllipseUWs.xyz * dot( vPositionToLightDirWs.xyz, vEllipseUWs.xyz ) ); // Not normalized on purpose + float3 vDiffuseNormalY = vPositionToLightDirWs.xyz - ( vEllipseVWs.xyz * dot( vPositionToLightDirWs.xyz, vEllipseVWs.xyz ) ); // Not normalized on purpose + + float flNDotLX = ClampToPositive( dot( vDiffuseNormalX.xyz, vPositionToLightDirWs.xyz ) ); + flNDotLX = pow( flNDotLX, vDiffuseExponent.x * 0.5 ); + + float flNDotLY = ClampToPositive( dot( vDiffuseNormalY.xyz, vPositionToLightDirWs.xyz ) ); + flNDotLY = pow( flNDotLY, vDiffuseExponent.y * 0.5 ); + + flDiffuseTerm = flNDotLX * flNDotLY; + flDiffuseTerm *= ( ( vDiffuseExponent.x * 0.5 + vDiffuseExponent.y * 0.5 ) + 1.0 ) * 0.5; + flDiffuseTerm *= flNDotL; + //*/ + + float flDiffuseExponent = (vDiffuseExponent.x + vDiffuseExponent.y) * 0.5; + flDiffuseTerm = pow(flNDotL, flDiffuseExponent) * ((flDiffuseExponent + 1.0) * 0.5); + } + + // Specular + float3 vSpecularTerm = float3(0.0, 0.0, 0.0); + [branch] if (bSpecular) + { + float3 vHalfAngleDirWs = normalize(vPositionToLightDirWs.xyz + vPositionToCameraDirWs.xyz); + + float flSpecularTerm = 0.0; #if ( S_ANISOTROPIC_GLOSS ) // Adds 34 asm instructions compared to isotropic spec in #else below - { - float3 vSpecularNormalX = vHalfAngleDirWs.xyz - (vEllipseUWs.xyz * dot(vHalfAngleDirWs.xyz, vEllipseUWs.xyz)); // Not normalized on purpose - float3 vSpecularNormalY = vHalfAngleDirWs.xyz - (vEllipseVWs.xyz * dot(vHalfAngleDirWs.xyz, vEllipseVWs.xyz)); // Not normalized on purpose + { + float3 vSpecularNormalX = vHalfAngleDirWs.xyz - (vEllipseUWs.xyz * dot(vHalfAngleDirWs.xyz, vEllipseUWs.xyz)); // Not normalized on purpose + float3 vSpecularNormalY = vHalfAngleDirWs.xyz - (vEllipseVWs.xyz * dot(vHalfAngleDirWs.xyz, vEllipseVWs.xyz)); // Not normalized on purpose - float flNDotHX = ClampToPositive(dot(vSpecularNormalX.xyz, vHalfAngleDirWs.xyz)); - float flNDotHkX = pow(flNDotHX, vSpecularExponent.x * 0.5); - flNDotHkX *= vSpecularScale.x; + float flNDotHX = ClampToPositive(dot(vSpecularNormalX.xyz, vHalfAngleDirWs.xyz)); + float flNDotHkX = pow(flNDotHX, vSpecularExponent.x * 0.5); + flNDotHkX *= vSpecularScale.x; - float flNDotHY = ClampToPositive(dot(vSpecularNormalY.xyz, vHalfAngleDirWs.xyz)); - float flNDotHkY = pow(flNDotHY, vSpecularExponent.y * 0.5); - flNDotHkY *= vSpecularScale.y; + float flNDotHY = ClampToPositive(dot(vSpecularNormalY.xyz, vHalfAngleDirWs.xyz)); + float flNDotHkY = pow(flNDotHY, vSpecularExponent.y * 0.5); + flNDotHkY *= vSpecularScale.y; - flSpecularTerm = flNDotHkX * flNDotHkY; - } + flSpecularTerm = flNDotHkX * flNDotHkY; + } #else - { - float flNDotH = saturate(dot(vNormalWs.xyz, vHalfAngleDirWs.xyz)); - float flNDotHk = pow(flNDotH, dot(vSpecularExponent.xy, float2(0.5, 0.5))); - flNDotHk *= dot(vSpecularScale.xy, float2(0.33333, 0.33333)); // The 0.33333 is to match the spec of the aniso algorithm above with isotropic roughness values - flSpecularTerm = flNDotHk; - } + { + float flNDotH = saturate(dot(vNormalWs.xyz, vHalfAngleDirWs.xyz)); + float flNDotHk = pow(flNDotH, dot(vSpecularExponent.xy, float2(0.5, 0.5))); + flNDotHk *= dot(vSpecularScale.xy, float2(0.33333, 0.33333)); // The 0.33333 is to match the spec of the aniso algorithm above with isotropic roughness values + flSpecularTerm = flNDotHk; + } #endif - flSpecularTerm *= flNDotL; // This makes it modified Blinn-Phong - flSpecularTerm *= BlinnPhongModifiedNormalizationFactor(vSpecularExponent.x * 0.5 + vSpecularExponent.y * 0.5); + flSpecularTerm *= flNDotL; // This makes it modified Blinn-Phong + flSpecularTerm *= BlinnPhongModifiedNormalizationFactor(vSpecularExponent.x * 0.5 + vSpecularExponent.y * 0.5); - float flLDotH = ClampToPositive(dot(vPositionToLightDirWs.xyz, vHalfAngleDirWs.xyz)); - float3 vMaxReflectance = vReflectance.rgb / (Luminance(vReflectance.rgb) + 0.0001); - float3 vFresnel = lerp(vReflectance.rgb, vMaxReflectance.rgb, pow(1.0 - flLDotH, flFresnelExponent)); - vSpecularTerm.rgb = flSpecularTerm * vFresnel.rgb; - } + float flLDotH = ClampToPositive(dot(vPositionToLightDirWs.xyz, vHalfAngleDirWs.xyz)); + float3 vMaxReflectance = vReflectance.rgb / (Luminance(vReflectance.rgb) + 0.0001); + float3 vFresnel = lerp(vReflectance.rgb, vMaxReflectance.rgb, pow(1.0 - flLDotH, flFresnelExponent)); + vSpecularTerm.rgb = flSpecularTerm * vFresnel.rgb; + } - return float4(flDiffuseTerm, vSpecularTerm.rgb); + return float4(flDiffuseTerm, vSpecularTerm.rgb); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -208,70 +208,70 @@ VALVE_DECLARE_SHADOWMAP(g_tShadowBuffer); float ComputeShadow_PCF_3x3_Gaussian(float3 vPositionWs, float4x4 matWorldToShadow) { - float4 vPositionTextureSpace = mul(float4(vPositionWs.xyz, 1.0), matWorldToShadow); - vPositionTextureSpace.xyz /= vPositionTextureSpace.w; - - float2 shadowMapCenter = vPositionTextureSpace.xy; - - //if ( ( frac( shadowMapCenter.x ) != shadowMapCenter.x ) || ( frac( shadowMapCenter.y ) != shadowMapCenter.y ) ) - if ((shadowMapCenter.x < 0.0f) || (shadowMapCenter.x > 1.0f) || (shadowMapCenter.y < 0.0f) || (shadowMapCenter.y > 1.0f)) - return 1.0f; - - //float objDepth = saturate( vPositionTextureSpace.z - 0.000001 ); - float objDepth = 1 - vPositionTextureSpace.z; - - /* // Depth texture visualization - if ( 1 ) - { - #define NUM_SAMPLES 128.0 - float flSum = 0.0; - for ( int j = 0; j < NUM_SAMPLES; j++ ) - { - flSum += ( 1.0 / NUM_SAMPLES ) * ( VALVE_SAMPLE_SHADOW( g_tShadowBuffer, float3( shadowMapCenter.xy, j / NUM_SAMPLES ) ).r ); - } - return flSum; - } - //*/ - - //float flTexelEpsilonX = 1.0 / 4096.0; - //float flTexelEpsilonY = 1.0 / 4096.0; - //g_vShadow3x3PCFTerms0 = float4( 20.0 / 267.0, 33.0 / 267.0, 55.0 / 267.0, 0.0 ); - //g_vShadow3x3PCFTerms1 = float4( flTexelEpsilonX, flTexelEpsilonY, -flTexelEpsilonX, -flTexelEpsilonY ); - //g_vShadow3x3PCFTerms2 = float4( flTexelEpsilonX, flTexelEpsilonY, 0.0, 0.0 ); - //g_vShadow3x3PCFTerms3 = float4( -flTexelEpsilonX, -flTexelEpsilonY, 0.0, 0.0 ); - - float4 v20Taps; - v20Taps.x = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xy, objDepth)).x; // 1 1 - v20Taps.y = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zy, objDepth)).x; // -1 1 - v20Taps.z = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xw, objDepth)).x; // 1 -1 - v20Taps.w = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zw, objDepth)).x; // -1 -1 - float flSum = dot(v20Taps.xyzw, float4(0.25, 0.25, 0.25, 0.25)); - if ((flSum == 0.0) || (flSum == 1.0)) - return flSum; - flSum *= g_vShadow3x3PCFTerms0.x * 4.0; - - float4 v33Taps; - v33Taps.x = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.xz, objDepth)).x; // 1 0 - v33Taps.y = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.xz, objDepth)).x; // -1 0 - v33Taps.z = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.zy, objDepth)).x; // 0 -1 - v33Taps.w = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.zy, objDepth)).x; // 0 1 - flSum += dot(v33Taps.xyzw, g_vShadow3x3PCFTerms0.yyyy); - - flSum += VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy, objDepth)).x * g_vShadow3x3PCFTerms0.z; - - return flSum; + float4 vPositionTextureSpace = mul(float4(vPositionWs.xyz, 1.0), matWorldToShadow); + vPositionTextureSpace.xyz /= vPositionTextureSpace.w; + + float2 shadowMapCenter = vPositionTextureSpace.xy; + + //if ( ( frac( shadowMapCenter.x ) != shadowMapCenter.x ) || ( frac( shadowMapCenter.y ) != shadowMapCenter.y ) ) + if ((shadowMapCenter.x < 0.0f) || (shadowMapCenter.x > 1.0f) || (shadowMapCenter.y < 0.0f) || (shadowMapCenter.y > 1.0f)) + return 1.0f; + + //float objDepth = saturate( vPositionTextureSpace.z - 0.000001 ); + float objDepth = 1 - vPositionTextureSpace.z; + + /* // Depth texture visualization + if ( 1 ) + { + #define NUM_SAMPLES 128.0 + float flSum = 0.0; + for ( int j = 0; j < NUM_SAMPLES; j++ ) + { + flSum += ( 1.0 / NUM_SAMPLES ) * ( VALVE_SAMPLE_SHADOW( g_tShadowBuffer, float3( shadowMapCenter.xy, j / NUM_SAMPLES ) ).r ); + } + return flSum; + } + //*/ + + //float flTexelEpsilonX = 1.0 / 4096.0; + //float flTexelEpsilonY = 1.0 / 4096.0; + //g_vShadow3x3PCFTerms0 = float4( 20.0 / 267.0, 33.0 / 267.0, 55.0 / 267.0, 0.0 ); + //g_vShadow3x3PCFTerms1 = float4( flTexelEpsilonX, flTexelEpsilonY, -flTexelEpsilonX, -flTexelEpsilonY ); + //g_vShadow3x3PCFTerms2 = float4( flTexelEpsilonX, flTexelEpsilonY, 0.0, 0.0 ); + //g_vShadow3x3PCFTerms3 = float4( -flTexelEpsilonX, -flTexelEpsilonY, 0.0, 0.0 ); + + float4 v20Taps; + v20Taps.x = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xy, objDepth)).x; // 1 1 + v20Taps.y = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zy, objDepth)).x; // -1 1 + v20Taps.z = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xw, objDepth)).x; // 1 -1 + v20Taps.w = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zw, objDepth)).x; // -1 -1 + float flSum = dot(v20Taps.xyzw, float4(0.25, 0.25, 0.25, 0.25)); + if ((flSum == 0.0) || (flSum == 1.0)) + return flSum; + flSum *= g_vShadow3x3PCFTerms0.x * 4.0; + + float4 v33Taps; + v33Taps.x = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.xz, objDepth)).x; // 1 0 + v33Taps.y = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.xz, objDepth)).x; // -1 0 + v33Taps.z = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.zy, objDepth)).x; // 0 -1 + v33Taps.w = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.zy, objDepth)).x; // 0 1 + flSum += dot(v33Taps.xyzw, g_vShadow3x3PCFTerms0.yyyy); + + flSum += VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy, objDepth)).x * g_vShadow3x3PCFTerms0.z; + + return flSum; } //--------------------------------------------------------------------------------------------------------------------------------------------------------- float3 ComputeOverrideLightmap(float2 vLightmapUV) { - float4 vLightmapTexel = tex2D(g_tOverrideLightmap, vLightmapUV.xy); + float4 vLightmapTexel = tex2D(g_tOverrideLightmap, vLightmapUV.xy); - // This path looks over-saturated - //return g_vOverrideLightmapScale * ( unity_Lightmap_HDR.x * pow( vLightmapTexel.a, unity_Lightmap_HDR.y ) ) * vLightmapTexel.rgb; + // This path looks over-saturated + //return g_vOverrideLightmapScale * ( unity_Lightmap_HDR.x * pow( vLightmapTexel.a, unity_Lightmap_HDR.y ) ) * vLightmapTexel.rgb; - // This path looks less broken - return g_vOverrideLightmapScale * (unity_Lightmap_HDR.x * vLightmapTexel.a) * sqrt(vLightmapTexel.rgb); + // This path looks less broken + return g_vOverrideLightmapScale * (unity_Lightmap_HDR.x * vLightmapTexel.a) * sqrt(vLightmapTexel.rgb); } //--------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -281,408 +281,408 @@ float3 ComputeOverrideLightmap(float2 vLightmapUV) */ float GetSplitSphereIndexForDirshadows(float3 wpos) { - float3 fromCenter0 = wpos.xyz - g_vDirShadowSplitSpheres[0].xyz; - float3 fromCenter1 = wpos.xyz - g_vDirShadowSplitSpheres[1].xyz; - float3 fromCenter2 = wpos.xyz - g_vDirShadowSplitSpheres[2].xyz; - float3 fromCenter3 = wpos.xyz - g_vDirShadowSplitSpheres[3].xyz; - float4 distances2 = float4(dot(fromCenter0, fromCenter0), dot(fromCenter1, fromCenter1), dot(fromCenter2, fromCenter2), dot(fromCenter3, fromCenter3)); - - float4 vDirShadowSplitSphereSqRadii; - vDirShadowSplitSphereSqRadii.x = g_vDirShadowSplitSpheres[0].w; - vDirShadowSplitSphereSqRadii.y = g_vDirShadowSplitSpheres[1].w; - vDirShadowSplitSphereSqRadii.z = g_vDirShadowSplitSpheres[2].w; - vDirShadowSplitSphereSqRadii.w = g_vDirShadowSplitSpheres[3].w; - fixed4 weights = float4(distances2 < vDirShadowSplitSphereSqRadii); - weights.yzw = saturate(weights.yzw - weights.xyz); - return 4 - dot(weights, float4(4, 3, 2, 1)); + float3 fromCenter0 = wpos.xyz - g_vDirShadowSplitSpheres[0].xyz; + float3 fromCenter1 = wpos.xyz - g_vDirShadowSplitSpheres[1].xyz; + float3 fromCenter2 = wpos.xyz - g_vDirShadowSplitSpheres[2].xyz; + float3 fromCenter3 = wpos.xyz - g_vDirShadowSplitSpheres[3].xyz; + float4 distances2 = float4(dot(fromCenter0, fromCenter0), dot(fromCenter1, fromCenter1), dot(fromCenter2, fromCenter2), dot(fromCenter3, fromCenter3)); + + float4 vDirShadowSplitSphereSqRadii; + vDirShadowSplitSphereSqRadii.x = g_vDirShadowSplitSpheres[0].w; + vDirShadowSplitSphereSqRadii.y = g_vDirShadowSplitSpheres[1].w; + vDirShadowSplitSphereSqRadii.z = g_vDirShadowSplitSpheres[2].w; + vDirShadowSplitSphereSqRadii.w = g_vDirShadowSplitSpheres[3].w; + fixed4 weights = float4(distances2 < vDirShadowSplitSphereSqRadii); + weights.yzw = saturate(weights.yzw - weights.xyz); + return 4 - dot(weights, float4(4, 3, 2, 1)); } //--------------------------------------------------------------------------------------------------------------------------------------------------------- void OverrideLightColorWithSplitDebugInfo(inout float3 lightColor, int shadowSplitIndex) { - #if DEBUG_SHADOWS_SPLIT - // Slightly intensified colors of ShadowCascadeSplitGUI + 2 new for point light (ie splitIndex 4 and 5) - const fixed3 kSplitColors[6] = - { - fixed3(0.5, 0.5, 0.7), - fixed3(0.5, 0.7, 0.5), - fixed3(0.7, 0.7, 0.5), - fixed3(0.7, 0.5, 0.5), - - fixed3(0.7, 0.5, 0.7), - fixed3(0.5, 0.7, 0.7), - }; - lightColor = kSplitColors[shadowSplitIndex]; - #endif + #if DEBUG_SHADOWS_SPLIT + // Slightly intensified colors of ShadowCascadeSplitGUI + 2 new for point light (ie splitIndex 4 and 5) + const fixed3 kSplitColors[6] = + { + fixed3(0.5, 0.5, 0.7), + fixed3(0.5, 0.7, 0.5), + fixed3(0.7, 0.7, 0.5), + fixed3(0.7, 0.5, 0.5), + + fixed3(0.7, 0.5, 0.7), + fixed3(0.5, 0.7, 0.7), + }; + lightColor = kSplitColors[shadowSplitIndex]; + #endif } //--------------------------------------------------------------------------------------------------------------------------------------------------------- LightingTerms_t ComputeLighting(float3 vPositionWs, float3 vNormalWs, float3 vTangentUWs, float3 vTangentVWs, float2 vRoughness, - float3 vReflectance, float flFresnelExponent, float4 vLightmapUV) + float3 vReflectance, float flFresnelExponent, float4 vLightmapUV) { - LightingTerms_t o; - o.vDiffuse = float3(0.0, 0.0, 0.0); - o.vSpecular = float3(0.0, 0.0, 0.0); - o.vIndirectDiffuse = float3(0.0, 0.0, 0.0); - o.vIndirectSpecular = float3(0.0, 0.0, 0.0); - o.vTransmissiveSunlight = float3(0.0, 0.0, 0.0); - - // Convert roughness to scale and exp - float2 vDiffuseExponent; - float2 vSpecularExponent; - float2 vSpecularScale; - RoughnessEllipseToScaleAndExp(vRoughness.xy, vDiffuseExponent.xy, vSpecularExponent.xy, vSpecularScale.xy); - - // Get positions between the clip planes of the frustum in 0..1 coordinates - //float3 vPositionCs = float3( vPosition4Cs.xy / vPosition4Cs.w, vPosition4Cs.z ); - //vPositionCs.xy = ( vPositionCs.xy * 0.5 ) + 0.5; - - float3 vPositionToCameraDirWs = CalculatePositionToCameraDirWs(vPositionWs.xyz); - - // Compute tangent frame relative to per-pixel normal - float3 vEllipseUWs = normalize(cross(vTangentVWs.xyz, vNormalWs.xyz)); - float3 vEllipseVWs = normalize(cross(vNormalWs.xyz, vTangentUWs.xyz)); - - //-------------------------------------// - // Point, spot, and directional lights // - //-------------------------------------// - int nNumLightsUsed = 0; - [loop] for (int i = 0; i < g_nNumLights; i++) - { - float3 vPositionToLightRayWs = g_vLightPosition_flInvRadius[i].xyz - vPositionWs.xyz; - float flDistToLightSq = dot(vPositionToLightRayWs.xyz, vPositionToLightRayWs.xyz); - if (flDistToLightSq > g_vLightFalloffParams[i].z) // .z stores radius squared of light - { - // Outside light range - continue; - } - - if (dot(vNormalWs.xyz, vPositionToLightRayWs.xyz) <= 0.0) - { - // Backface cull pixel to this light - continue; - } - - float3 vPositionToLightDirWs = normalize(vPositionToLightRayWs.xyz); - float flOuterConeCos = g_vSpotLightInnerOuterConeCosines[i].y; - float flTemp = dot(vPositionToLightDirWs.xyz, -g_vLightDirection[i].xyz) - flOuterConeCos; - if (flTemp <= 0.0) - { - // Outside spotlight cone - continue; - } - float3 vSpotAtten = saturate(flTemp * g_vSpotLightInnerOuterConeCosines[i].z).xxx; - - nNumLightsUsed++; - - //[branch] if ( g_vLightShadowIndex_vLightParams[ i ].y != 0 ) // If has light cookie - //{ - // // Light cookie - // float4 vPositionTextureSpace = mul( float4( vPositionWs.xyz, 1.0 ), g_matWorldToLightCookie[ i ] ); - // vPositionTextureSpace.xyz /= vPositionTextureSpace.w; - // vSpotAtten.rgb = Tex3DLevel( g_tVrLightCookieTexture, vPositionTextureSpace.xyz, 0.0 ).rgb; - //} - - float flLightFalloff = DistanceFalloff(flDistToLightSq, g_vLightPosition_flInvRadius[i].w, g_vLightFalloffParams[i].xy); - - float flShadowScalar = 1.0; - int shadowSplitIndex = 0; - if (g_vLightShadowIndex_vLightParams[i].x != 0.0) - { - if (g_vLightFalloffParams[i].w == LIGHT_TYPE_DIRECTIONAL) - { - shadowSplitIndex = GetSplitSphereIndexForDirshadows(vPositionWs); - } - - if (g_vLightFalloffParams[i].w == LIGHT_TYPE_POINT) - { - float3 absPos = abs(vPositionToLightDirWs); - shadowSplitIndex = (vPositionToLightDirWs.z > 0) ? CUBEMAPFACE_NEGATIVE_Z : CUBEMAPFACE_POSITIVE_Z; - if (absPos.x > absPos.y) - { - if (absPos.x > absPos.z) - { - shadowSplitIndex = (vPositionToLightDirWs.x > 0) ? CUBEMAPFACE_NEGATIVE_X : CUBEMAPFACE_POSITIVE_X; - } - } - else - { - if (absPos.y > absPos.z) - { - shadowSplitIndex = (vPositionToLightDirWs.y > 0) ? CUBEMAPFACE_NEGATIVE_Y : CUBEMAPFACE_POSITIVE_Y; - } - } - } - - flShadowScalar = ComputeShadow_PCF_3x3_Gaussian(vPositionWs.xyz, g_matWorldToShadow[i * MAX_SHADOWMAP_PER_LIGHTS + shadowSplitIndex]); - - if (flShadowScalar <= 0.0) - continue; - } - - float4 vLightingTerms = ComputeDiffuseAndSpecularTerms(g_vLightShadowIndex_vLightParams[i].z != 0.0, g_vLightShadowIndex_vLightParams[i].w != 0.0, - vNormalWs.xyz, vEllipseUWs.xyz, vEllipseVWs.xyz, - vPositionToLightDirWs.xyz, vPositionToCameraDirWs.xyz, - vDiffuseExponent.xy, vSpecularExponent.xy, vSpecularScale.xy, vReflectance.rgb, flFresnelExponent); - - float3 vLightColor = g_vLightColor[i].rgb; - OverrideLightColorWithSplitDebugInfo(vLightColor, shadowSplitIndex); - - float3 vLightMask = vLightColor.rgb * flShadowScalar * flLightFalloff * vSpotAtten.rgb; - o.vDiffuse.rgb += vLightingTerms.xxx * vLightMask.rgb; - o.vSpecular.rgb += vLightingTerms.yzw * vLightMask.rgb; - } - - /* // Visualize number of lights for the first 7 as RGBCMYW - if ( nNumLightsUsed == 0 ) - o.vDiffuse.rgb = float3( 0.0, 0.0, 0.0 ); - else if ( nNumLightsUsed == 1 ) - o.vDiffuse.rgb = float3( 1.0, 0.0, 0.0 ); - else if ( nNumLightsUsed == 2 ) - o.vDiffuse.rgb = float3( 0.0, 1.0, 0.0 ); - else if ( nNumLightsUsed == 3 ) - o.vDiffuse.rgb = float3( 0.0, 0.0, 1.0 ); - else if ( nNumLightsUsed == 4 ) - o.vDiffuse.rgb = float3( 0.0, 1.0, 1.0 ); - else if ( nNumLightsUsed == 5 ) - o.vDiffuse.rgb = float3( 1.0, 0.0, 1.0 ); - else if ( nNumLightsUsed == 6 ) - o.vDiffuse.rgb = float3( 1.0, 1.0, 0.0 ); - else - o.vDiffuse.rgb = float3( 1.0, 1.0, 1.0 ); - o.vDiffuse.rgb *= float3( 2.0, 2.0, 2.0 ); - o.vSpecular.rgb = float3( 0.0, 0.0, 0.0 ); - return o; - //*/ - - // Apply specular reflectance to diffuse term (specular term already accounts for this in the fresnel equation) - o.vDiffuse.rgb *= (float3(1.0, 1.0, 1.0) - vReflectance.rgb); - - //------------------// - // Indirect diffuse // - //------------------// + LightingTerms_t o; + o.vDiffuse = float3(0.0, 0.0, 0.0); + o.vSpecular = float3(0.0, 0.0, 0.0); + o.vIndirectDiffuse = float3(0.0, 0.0, 0.0); + o.vIndirectSpecular = float3(0.0, 0.0, 0.0); + o.vTransmissiveSunlight = float3(0.0, 0.0, 0.0); + + // Convert roughness to scale and exp + float2 vDiffuseExponent; + float2 vSpecularExponent; + float2 vSpecularScale; + RoughnessEllipseToScaleAndExp(vRoughness.xy, vDiffuseExponent.xy, vSpecularExponent.xy, vSpecularScale.xy); + + // Get positions between the clip planes of the frustum in 0..1 coordinates + //float3 vPositionCs = float3( vPosition4Cs.xy / vPosition4Cs.w, vPosition4Cs.z ); + //vPositionCs.xy = ( vPositionCs.xy * 0.5 ) + 0.5; + + float3 vPositionToCameraDirWs = CalculatePositionToCameraDirWs(vPositionWs.xyz); + + // Compute tangent frame relative to per-pixel normal + float3 vEllipseUWs = normalize(cross(vTangentVWs.xyz, vNormalWs.xyz)); + float3 vEllipseVWs = normalize(cross(vNormalWs.xyz, vTangentUWs.xyz)); + + //-------------------------------------// + // Point, spot, and directional lights // + //-------------------------------------// + int nNumLightsUsed = 0; + [loop] for (int i = 0; i < g_nNumLights; i++) + { + float3 vPositionToLightRayWs = g_vLightPosition_flInvRadius[i].xyz - vPositionWs.xyz; + float flDistToLightSq = dot(vPositionToLightRayWs.xyz, vPositionToLightRayWs.xyz); + if (flDistToLightSq > g_vLightFalloffParams[i].z) // .z stores radius squared of light + { + // Outside light range + continue; + } + + if (dot(vNormalWs.xyz, vPositionToLightRayWs.xyz) <= 0.0) + { + // Backface cull pixel to this light + continue; + } + + float3 vPositionToLightDirWs = normalize(vPositionToLightRayWs.xyz); + float flOuterConeCos = g_vSpotLightInnerOuterConeCosines[i].y; + float flTemp = dot(vPositionToLightDirWs.xyz, -g_vLightDirection[i].xyz) - flOuterConeCos; + if (flTemp <= 0.0) + { + // Outside spotlight cone + continue; + } + float3 vSpotAtten = saturate(flTemp * g_vSpotLightInnerOuterConeCosines[i].z).xxx; + + nNumLightsUsed++; + + //[branch] if ( g_vLightShadowIndex_vLightParams[ i ].y != 0 ) // If has light cookie + //{ + // // Light cookie + // float4 vPositionTextureSpace = mul( float4( vPositionWs.xyz, 1.0 ), g_matWorldToLightCookie[ i ] ); + // vPositionTextureSpace.xyz /= vPositionTextureSpace.w; + // vSpotAtten.rgb = Tex3DLevel( g_tVrLightCookieTexture, vPositionTextureSpace.xyz, 0.0 ).rgb; + //} + + float flLightFalloff = DistanceFalloff(flDistToLightSq, g_vLightPosition_flInvRadius[i].w, g_vLightFalloffParams[i].xy); + + float flShadowScalar = 1.0; + int shadowSplitIndex = 0; + if (g_vLightShadowIndex_vLightParams[i].x != 0.0) + { + if (g_vLightFalloffParams[i].w == LIGHT_TYPE_DIRECTIONAL) + { + shadowSplitIndex = GetSplitSphereIndexForDirshadows(vPositionWs); + } + + if (g_vLightFalloffParams[i].w == LIGHT_TYPE_POINT) + { + float3 absPos = abs(vPositionToLightDirWs); + shadowSplitIndex = (vPositionToLightDirWs.z > 0) ? CUBEMAPFACE_NEGATIVE_Z : CUBEMAPFACE_POSITIVE_Z; + if (absPos.x > absPos.y) + { + if (absPos.x > absPos.z) + { + shadowSplitIndex = (vPositionToLightDirWs.x > 0) ? CUBEMAPFACE_NEGATIVE_X : CUBEMAPFACE_POSITIVE_X; + } + } + else + { + if (absPos.y > absPos.z) + { + shadowSplitIndex = (vPositionToLightDirWs.y > 0) ? CUBEMAPFACE_NEGATIVE_Y : CUBEMAPFACE_POSITIVE_Y; + } + } + } + + flShadowScalar = ComputeShadow_PCF_3x3_Gaussian(vPositionWs.xyz, g_matWorldToShadow[i * MAX_SHADOWMAP_PER_LIGHTS + shadowSplitIndex]); + + if (flShadowScalar <= 0.0) + continue; + } + + float4 vLightingTerms = ComputeDiffuseAndSpecularTerms(g_vLightShadowIndex_vLightParams[i].z != 0.0, g_vLightShadowIndex_vLightParams[i].w != 0.0, + vNormalWs.xyz, vEllipseUWs.xyz, vEllipseVWs.xyz, + vPositionToLightDirWs.xyz, vPositionToCameraDirWs.xyz, + vDiffuseExponent.xy, vSpecularExponent.xy, vSpecularScale.xy, vReflectance.rgb, flFresnelExponent); + + float3 vLightColor = g_vLightColor[i].rgb; + OverrideLightColorWithSplitDebugInfo(vLightColor, shadowSplitIndex); + + float3 vLightMask = vLightColor.rgb * flShadowScalar * flLightFalloff * vSpotAtten.rgb; + o.vDiffuse.rgb += vLightingTerms.xxx * vLightMask.rgb; + o.vSpecular.rgb += vLightingTerms.yzw * vLightMask.rgb; + } + + /* // Visualize number of lights for the first 7 as RGBCMYW + if ( nNumLightsUsed == 0 ) + o.vDiffuse.rgb = float3( 0.0, 0.0, 0.0 ); + else if ( nNumLightsUsed == 1 ) + o.vDiffuse.rgb = float3( 1.0, 0.0, 0.0 ); + else if ( nNumLightsUsed == 2 ) + o.vDiffuse.rgb = float3( 0.0, 1.0, 0.0 ); + else if ( nNumLightsUsed == 3 ) + o.vDiffuse.rgb = float3( 0.0, 0.0, 1.0 ); + else if ( nNumLightsUsed == 4 ) + o.vDiffuse.rgb = float3( 0.0, 1.0, 1.0 ); + else if ( nNumLightsUsed == 5 ) + o.vDiffuse.rgb = float3( 1.0, 0.0, 1.0 ); + else if ( nNumLightsUsed == 6 ) + o.vDiffuse.rgb = float3( 1.0, 1.0, 0.0 ); + else + o.vDiffuse.rgb = float3( 1.0, 1.0, 1.0 ); + o.vDiffuse.rgb *= float3( 2.0, 2.0, 2.0 ); + o.vSpecular.rgb = float3( 0.0, 0.0, 0.0 ); + return o; + //*/ + + // Apply specular reflectance to diffuse term (specular term already accounts for this in the fresnel equation) + o.vDiffuse.rgb *= (float3(1.0, 1.0, 1.0) - vReflectance.rgb); + + //------------------// + // Indirect diffuse // + //------------------// #if ( S_OVERRIDE_LIGHTMAP ) - { - o.vIndirectDiffuse.rgb += ComputeOverrideLightmap(vLightmapUV.xy); - } + { + o.vIndirectDiffuse.rgb += ComputeOverrideLightmap(vLightmapUV.xy); + } #elif ( LIGHTMAP_ON ) - { - // Baked lightmaps - float4 bakedColorTex = Tex2DLevel(unity_Lightmap, vLightmapUV.xy, 0.0); - float3 bakedColor = DecodeLightmap(bakedColorTex); + { + // Baked lightmaps + float4 bakedColorTex = Tex2DLevel(unity_Lightmap, vLightmapUV.xy, 0.0); + float3 bakedColor = DecodeLightmap(bakedColorTex); #if ( DIRLIGHTMAP_OFF ) // Directional Mode = Non Directional - { - o.vIndirectDiffuse.rgb += bakedColor.rgb; - - //o_gi.indirect.diffuse = bakedColor; - // - //#ifdef SHADOWS_SCREEN - // o_gi.indirect.diffuse = MixLightmapWithRealtimeAttenuation (o_gi.indirect.diffuse, data.atten, bakedColorTex); - //#endif // SHADOWS_SCREEN - } + { + o.vIndirectDiffuse.rgb += bakedColor.rgb; + + //o_gi.indirect.diffuse = bakedColor; + // + //#ifdef SHADOWS_SCREEN + // o_gi.indirect.diffuse = MixLightmapWithRealtimeAttenuation (o_gi.indirect.diffuse, data.atten, bakedColorTex); + //#endif // SHADOWS_SCREEN + } #elif ( DIRLIGHTMAP_COMBINED ) // Directional Mode = Directional - { - //o.vIndirectDiffuse.rgb = float3( 0.0, 1.0, 0.0 ); + { + //o.vIndirectDiffuse.rgb = float3( 0.0, 1.0, 0.0 ); - float4 bakedDirTex = Tex2DLevelFromSampler(unity_LightmapInd, unity_Lightmap, vLightmapUV.xy, 0.0); - //float flHalfLambert = dot( vNormalWs.xyz, bakedDirTex.xyz - 0.5 ) + 0.5; - //o.vIndirectDiffuse.rgb += bakedColor.rgb * flHalfLambert / bakedDirTex.w; + float4 bakedDirTex = Tex2DLevelFromSampler(unity_LightmapInd, unity_Lightmap, vLightmapUV.xy, 0.0); + //float flHalfLambert = dot( vNormalWs.xyz, bakedDirTex.xyz - 0.5 ) + 0.5; + //o.vIndirectDiffuse.rgb += bakedColor.rgb * flHalfLambert / bakedDirTex.w; - float flHalfLambert = dot(vNormalWs.xyz, normalize(bakedDirTex.xyz - 0.5));// + ( 1.0 - length( bakedDirTex.xyz - 0.5 ) ); - o.vIndirectDiffuse.rgb += bakedColor.rgb * flHalfLambert / (bakedDirTex.w); + float flHalfLambert = dot(vNormalWs.xyz, normalize(bakedDirTex.xyz - 0.5));// + ( 1.0 - length( bakedDirTex.xyz - 0.5 ) ); + o.vIndirectDiffuse.rgb += bakedColor.rgb * flHalfLambert / (bakedDirTex.w); - //#ifdef SHADOWS_SCREEN - // o_gi.indirect.diffuse = MixLightmapWithRealtimeAttenuation (o_gi.indirect.diffuse, data.atten, bakedColorTex); - //#endif // SHADOWS_SCREEN - } + //#ifdef SHADOWS_SCREEN + // o_gi.indirect.diffuse = MixLightmapWithRealtimeAttenuation (o_gi.indirect.diffuse, data.atten, bakedColorTex); + //#endif // SHADOWS_SCREEN + } #elif ( DIRLIGHTMAP_SEPARATE ) // Directional Mode = Directional Specular - { - // Left halves of both intensity and direction lightmaps store direct light; right halves store indirect. - float2 vUvDirect = vLightmapUV.xy; - float2 vUvIndirect = vLightmapUV.xy + float2(0.5, 0.0); - - // Direct Diffuse - float4 bakedDirTex = float4(0.0, 0.0, 0.0, 0.0); - if (!g_bIndirectLightmaps) - { - bakedDirTex = Tex2DLevelFromSampler(unity_LightmapInd, unity_Lightmap, vUvDirect.xy, 0.0); - //float flHalfLambert = dot( vNormalWs.xyz, bakedDirTex.xyz - 0.5 ) + 0.5; - //o.vDiffuse.rgb += bakedColor.rgb * flHalfLambert / bakedDirTex.w; - - float flHalfLambert = ClampToPositive(dot(vNormalWs.xyz, normalize(bakedDirTex.xyz - 0.5)));// + ( 1.0 - length( bakedDirTex.xyz - 0.5 ) ); - o.vDiffuse.rgb += bakedColor.rgb * flHalfLambert / (bakedDirTex.w); - } - - // Indirect Diffuse - float4 bakedIndirTex = float4(0.0, 0.0, 0.0, 0.0); - float3 vBakedIndirectColor = float3(0.0, 0.0, 0.0); - if (1) - { - vBakedIndirectColor.rgb = DecodeLightmap(Tex2DLevel(unity_Lightmap, vUvIndirect.xy, 0.0)); - bakedIndirTex = Tex2DLevelFromSampler(unity_LightmapInd, unity_Lightmap, vUvIndirect.xy, 0.0); - - //float flHalfLambert = dot( vNormalWs.xyz, bakedIndirTex.xyz - 0.5 ) + 0.5; - //o.vIndirectDiffuse.rgb += vBakedIndirectColor.rgb * flHalfLambert / bakedIndirTex.w; - - float flHalfLambert = dot(vNormalWs.xyz, normalize(bakedIndirTex.xyz - 0.5));// + ( 1.0 - length( bakedIndirTex.xyz - 0.5 ) ); - o.vIndirectDiffuse.rgb += vBakedIndirectColor.rgb * flHalfLambert / (bakedIndirTex.w); - } - - // Direct Specular - if (!g_bIndirectLightmaps) - { - UnityLight o_light; - o.vIndirectDiffuse.rgb += DecodeDirectionalSpecularLightmap(bakedColor, bakedDirTex, vNormalWs, false, 0, o_light); - - float4 vLightingTerms = ComputeDiffuseAndSpecularTerms(false, true, - vNormalWs.xyz, vEllipseUWs.xyz, vEllipseVWs.xyz, - o_light.dir.xyz, vPositionToCameraDirWs.xyz, - vDiffuseExponent.xy, vSpecularExponent.xy, vSpecularScale.xy, vReflectance.rgb, flFresnelExponent); - - float3 vLightColor = o_light.color; - float3 vLightMask = vLightColor.rgb; - o.vSpecular.rgb += vLightingTerms.yzw * vLightMask.rgb; - } - - // Indirect Specular - //if ( 1 ) - //{ - // UnityLight o_light; - // o.vIndirectSpecular.rgb += DecodeDirectionalSpecularLightmap( vBakedIndirectColor, bakedIndirTex, vNormalWs, false, 0, o_light ); - //} - } + { + // Left halves of both intensity and direction lightmaps store direct light; right halves store indirect. + float2 vUvDirect = vLightmapUV.xy; + float2 vUvIndirect = vLightmapUV.xy + float2(0.5, 0.0); + + // Direct Diffuse + float4 bakedDirTex = float4(0.0, 0.0, 0.0, 0.0); + if (!g_bIndirectLightmaps) + { + bakedDirTex = Tex2DLevelFromSampler(unity_LightmapInd, unity_Lightmap, vUvDirect.xy, 0.0); + //float flHalfLambert = dot( vNormalWs.xyz, bakedDirTex.xyz - 0.5 ) + 0.5; + //o.vDiffuse.rgb += bakedColor.rgb * flHalfLambert / bakedDirTex.w; + + float flHalfLambert = ClampToPositive(dot(vNormalWs.xyz, normalize(bakedDirTex.xyz - 0.5)));// + ( 1.0 - length( bakedDirTex.xyz - 0.5 ) ); + o.vDiffuse.rgb += bakedColor.rgb * flHalfLambert / (bakedDirTex.w); + } + + // Indirect Diffuse + float4 bakedIndirTex = float4(0.0, 0.0, 0.0, 0.0); + float3 vBakedIndirectColor = float3(0.0, 0.0, 0.0); + if (1) + { + vBakedIndirectColor.rgb = DecodeLightmap(Tex2DLevel(unity_Lightmap, vUvIndirect.xy, 0.0)); + bakedIndirTex = Tex2DLevelFromSampler(unity_LightmapInd, unity_Lightmap, vUvIndirect.xy, 0.0); + + //float flHalfLambert = dot( vNormalWs.xyz, bakedIndirTex.xyz - 0.5 ) + 0.5; + //o.vIndirectDiffuse.rgb += vBakedIndirectColor.rgb * flHalfLambert / bakedIndirTex.w; + + float flHalfLambert = dot(vNormalWs.xyz, normalize(bakedIndirTex.xyz - 0.5));// + ( 1.0 - length( bakedIndirTex.xyz - 0.5 ) ); + o.vIndirectDiffuse.rgb += vBakedIndirectColor.rgb * flHalfLambert / (bakedIndirTex.w); + } + + // Direct Specular + if (!g_bIndirectLightmaps) + { + UnityLight o_light; + o.vIndirectDiffuse.rgb += DecodeDirectionalSpecularLightmap(bakedColor, bakedDirTex, vNormalWs, false, 0, o_light); + + float4 vLightingTerms = ComputeDiffuseAndSpecularTerms(false, true, + vNormalWs.xyz, vEllipseUWs.xyz, vEllipseVWs.xyz, + o_light.dir.xyz, vPositionToCameraDirWs.xyz, + vDiffuseExponent.xy, vSpecularExponent.xy, vSpecularScale.xy, vReflectance.rgb, flFresnelExponent); + + float3 vLightColor = o_light.color; + float3 vLightMask = vLightColor.rgb; + o.vSpecular.rgb += vLightingTerms.yzw * vLightMask.rgb; + } + + // Indirect Specular + //if ( 1 ) + //{ + // UnityLight o_light; + // o.vIndirectSpecular.rgb += DecodeDirectionalSpecularLightmap( vBakedIndirectColor, bakedIndirTex, vNormalWs, false, 0, o_light ); + //} + } #endif - } + } #elif ( UNITY_SHOULD_SAMPLE_SH ) - { - // Light probe - o.vIndirectDiffuse.rgb += ShadeSH9(float4(vNormalWs.xyz, 1.0)); - } + { + // Light probe + o.vIndirectDiffuse.rgb += ShadeSH9(float4(vNormalWs.xyz, 1.0)); + } #endif #if ( DYNAMICLIGHTMAP_ON ) - { - float4 realtimeColorTex = Tex2DLevel(unity_DynamicLightmap, vLightmapUV.zw, 0.0); - float3 realtimeColor = DecodeRealtimeLightmap(realtimeColorTex); + { + float4 realtimeColorTex = Tex2DLevel(unity_DynamicLightmap, vLightmapUV.zw, 0.0); + float3 realtimeColor = DecodeRealtimeLightmap(realtimeColorTex); #if ( DIRLIGHTMAP_OFF ) - { - o.vIndirectDiffuse.rgb += realtimeColor.rgb; - } + { + o.vIndirectDiffuse.rgb += realtimeColor.rgb; + } #elif ( DIRLIGHTMAP_COMBINED ) - { - float4 realtimeDirTex = Tex2DLevelFromSampler(unity_DynamicDirectionality, unity_DynamicLightmap, vLightmapUV.zw, 0.0); - o.vIndirectDiffuse.rgb += DecodeDirectionalLightmap(realtimeColor, realtimeDirTex, vNormalWs); - } + { + float4 realtimeDirTex = Tex2DLevelFromSampler(unity_DynamicDirectionality, unity_DynamicLightmap, vLightmapUV.zw, 0.0); + o.vIndirectDiffuse.rgb += DecodeDirectionalLightmap(realtimeColor, realtimeDirTex, vNormalWs); + } #elif ( DIRLIGHTMAP_SEPARATE ) - { - float4 realtimeDirTex = Tex2DLevelFromSampler(unity_DynamicDirectionality, unity_DynamicLightmap, vLightmapUV.zw, 0.0); - o.vIndirectDiffuse.rgb += DecodeDirectionalLightmap(realtimeColor, realtimeDirTex, vNormalWs); - - UnityLight o_light; - float4 realtimeNormalTex = Tex2DLevelFromSampler(unity_DynamicNormal, unity_DynamicLightmap, vLightmapUV.zw, 0.0); - o.vIndirectSpecular.rgb += DecodeDirectionalSpecularLightmap(realtimeColor, realtimeDirTex, vNormalWs, true, realtimeNormalTex, o_light); - - float4 vLightingTerms = ComputeDiffuseAndSpecularTerms(false, true, - vNormalWs.xyz, vEllipseUWs.xyz, vEllipseVWs.xyz, - o_light.dir.xyz, vPositionToCameraDirWs.xyz, - vDiffuseExponent.xy, vSpecularExponent.xy, vSpecularScale.xy, vReflectance.rgb, flFresnelExponent); - - float3 vLightColor = o_light.color; - float3 vLightMask = vLightColor.rgb; - o.vSpecular.rgb += vLightingTerms.yzw * vLightMask.rgb; - } + { + float4 realtimeDirTex = Tex2DLevelFromSampler(unity_DynamicDirectionality, unity_DynamicLightmap, vLightmapUV.zw, 0.0); + o.vIndirectDiffuse.rgb += DecodeDirectionalLightmap(realtimeColor, realtimeDirTex, vNormalWs); + + UnityLight o_light; + float4 realtimeNormalTex = Tex2DLevelFromSampler(unity_DynamicNormal, unity_DynamicLightmap, vLightmapUV.zw, 0.0); + o.vIndirectSpecular.rgb += DecodeDirectionalSpecularLightmap(realtimeColor, realtimeDirTex, vNormalWs, true, realtimeNormalTex, o_light); + + float4 vLightingTerms = ComputeDiffuseAndSpecularTerms(false, true, + vNormalWs.xyz, vEllipseUWs.xyz, vEllipseVWs.xyz, + o_light.dir.xyz, vPositionToCameraDirWs.xyz, + vDiffuseExponent.xy, vSpecularExponent.xy, vSpecularScale.xy, vReflectance.rgb, flFresnelExponent); + + float3 vLightColor = o_light.color; + float3 vLightMask = vLightColor.rgb; + o.vSpecular.rgb += vLightingTerms.yzw * vLightMask.rgb; + } #endif - } + } #endif - //-------------------// - // Indirect specular // - //-------------------// + //-------------------// + // Indirect specular // + //-------------------// #if ( 1 ) - { - float flRoughness = dot(vRoughness.xy, float2(0.5, 0.5)); + { + float flRoughness = dot(vRoughness.xy, float2(0.5, 0.5)); - float3 vReflectionDirWs = CalculateCameraReflectionDirWs(vPositionWs.xyz, vNormalWs.xyz); - float3 vReflectionDirWs0 = vReflectionDirWs.xyz; + float3 vReflectionDirWs = CalculateCameraReflectionDirWs(vPositionWs.xyz, vNormalWs.xyz); + float3 vReflectionDirWs0 = vReflectionDirWs.xyz; #if ( UNITY_SPECCUBE_BOX_PROJECTION ) - { - vReflectionDirWs0.xyz = BoxProjectedCubemapDirection(vReflectionDirWs.xyz, vPositionWs.xyz, unity_SpecCube0_ProbePosition, unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax); - } + { + vReflectionDirWs0.xyz = BoxProjectedCubemapDirection(vReflectionDirWs.xyz, vPositionWs.xyz, unity_SpecCube0_ProbePosition, unity_SpecCube0_BoxMin, unity_SpecCube0_BoxMax); + } #endif - float3 vEnvMap0 = max(0.0, Unity_GlossyEnvironment(UNITY_PASS_TEXCUBE(unity_SpecCube0), unity_SpecCube0_HDR, vReflectionDirWs0, flRoughness)); + float3 vEnvMap0 = max(0.0, Unity_GlossyEnvironment(UNITY_PASS_TEXCUBE(unity_SpecCube0), unity_SpecCube0_HDR, vReflectionDirWs0, flRoughness)); #if ( 0 ) - { - const float flBlendFactor = 0.99999; - float flBlendLerp = saturate(unity_SpecCube0_BoxMin.w); - UNITY_BRANCH - if (flBlendLerp < flBlendFactor) - { - float3 vReflectionDirWs1 = vReflectionDirWs.xyz; + { + const float flBlendFactor = 0.99999; + float flBlendLerp = saturate(unity_SpecCube0_BoxMin.w); + UNITY_BRANCH + if (flBlendLerp < flBlendFactor) + { + float3 vReflectionDirWs1 = vReflectionDirWs.xyz; #if ( UNITY_SPECCUBE_BOX_PROJECTION ) - { - vReflectionDirWs1.xyz = BoxProjectedCubemapDirection(vReflectionDirWs.xyz, vPositionWs.xyz, unity_SpecCube1_ProbePosition, unity_SpecCube1_BoxMin, unity_SpecCube1_BoxMax); - } + { + vReflectionDirWs1.xyz = BoxProjectedCubemapDirection(vReflectionDirWs.xyz, vPositionWs.xyz, unity_SpecCube1_ProbePosition, unity_SpecCube1_BoxMin, unity_SpecCube1_BoxMax); + } #endif - float3 vEnvMap1 = max(0.0, Unity_GlossyEnvironment(UNITY_PASS_TEXCUBE(unity_SpecCube1), unity_SpecCube1_HDR, vReflectionDirWs1, flRoughness)); - o.vIndirectSpecular.rgb += lerp(vEnvMap1.rgb, vEnvMap0.rgb, flBlendLerp); - } - else - { - o.vIndirectSpecular.rgb += vEnvMap0.rgb; - } - } + float3 vEnvMap1 = max(0.0, Unity_GlossyEnvironment(UNITY_PASS_TEXCUBE(unity_SpecCube1), unity_SpecCube1_HDR, vReflectionDirWs1, flRoughness)); + o.vIndirectSpecular.rgb += lerp(vEnvMap1.rgb, vEnvMap0.rgb, flBlendLerp); + } + else + { + o.vIndirectSpecular.rgb += vEnvMap0.rgb; + } + } #else - { - o.vIndirectSpecular.rgb += vEnvMap0.rgb; - } + { + o.vIndirectSpecular.rgb += vEnvMap0.rgb; + } #endif - } + } #endif - // Apply fresnel to indirect specular - float flVDotN = saturate(dot(vPositionToCameraDirWs.xyz, vNormalWs.xyz)); - float3 vMaxReflectance = vReflectance.rgb / (Luminance(vReflectance.rgb) + 0.0001); - float3 vFresnel = lerp(vReflectance.rgb, vMaxReflectance.rgb, pow(1.0 - flVDotN, flFresnelExponent)); + // Apply fresnel to indirect specular + float flVDotN = saturate(dot(vPositionToCameraDirWs.xyz, vNormalWs.xyz)); + float3 vMaxReflectance = vReflectance.rgb / (Luminance(vReflectance.rgb) + 0.0001); + float3 vFresnel = lerp(vReflectance.rgb, vMaxReflectance.rgb, pow(1.0 - flVDotN, flFresnelExponent)); - o.vIndirectSpecular.rgb *= vFresnel.rgb; - o.vIndirectSpecular.rgb *= g_flCubeMapScalar; // !!! FIXME: This also contains lightmap spec + o.vIndirectSpecular.rgb *= vFresnel.rgb; + o.vIndirectSpecular.rgb *= g_flCubeMapScalar; // !!! FIXME: This also contains lightmap spec - // Since we have indirect specular, apply reflectance to indirect diffuse - o.vIndirectDiffuse.rgb *= (float3(1.0, 1.0, 1.0) - vReflectance.rgb); + // Since we have indirect specular, apply reflectance to indirect diffuse + o.vIndirectDiffuse.rgb *= (float3(1.0, 1.0, 1.0) - vReflectance.rgb); - return o; + return o; } //--------------------------------------------------------------------------------------------------------------------------------------------------------- LightingTerms_t ComputeLightingDiffuseOnly(float3 vPositionWs, float3 vNormalWs, float3 vTangentUWs, float3 vTangentVWs, float2 vRoughness, float4 vLightmapUV) { - LightingTerms_t lightingTerms = ComputeLighting(vPositionWs, vNormalWs, vTangentUWs, vTangentVWs, vRoughness, 0.0, 1.0, vLightmapUV.xyzw); + LightingTerms_t lightingTerms = ComputeLighting(vPositionWs, vNormalWs, vTangentUWs, vTangentVWs, vRoughness, 0.0, 1.0, vLightmapUV.xyzw); - lightingTerms.vSpecular = float3(0.0, 0.0, 0.0); - lightingTerms.vIndirectSpecular = float3(0.0, 0.0, 0.0); + lightingTerms.vSpecular = float3(0.0, 0.0, 0.0); + lightingTerms.vIndirectSpecular = float3(0.0, 0.0, 0.0); - return lightingTerms; + return lightingTerms; } //--------------------------------------------------------------------------------------------------------------------------------------------------------- float3 CubeMapBoxProjection(float3 vPositionCubemapLocal, float3 vNormalCubemapLocal, float3 vCameraPositionCubemapLocal, float3 vBoxMins, float3 vBoxMaxs) { - float3 vCameraToPositionRayCubemapLocal = vPositionCubemapLocal.xyz - vCameraPositionCubemapLocal.xyz; - float3 vCameraToPositionRayReflectedCubemapLocal = reflect(vCameraToPositionRayCubemapLocal.xyz, vNormalCubemapLocal.xyz); + float3 vCameraToPositionRayCubemapLocal = vPositionCubemapLocal.xyz - vCameraPositionCubemapLocal.xyz; + float3 vCameraToPositionRayReflectedCubemapLocal = reflect(vCameraToPositionRayCubemapLocal.xyz, vNormalCubemapLocal.xyz); - float3 vIntersectA = (vBoxMaxs.xyz - vPositionCubemapLocal.xyz) / vCameraToPositionRayReflectedCubemapLocal.xyz; - float3 vIntersectB = (vBoxMins.xyz - vPositionCubemapLocal.xyz) / vCameraToPositionRayReflectedCubemapLocal.xyz; + float3 vIntersectA = (vBoxMaxs.xyz - vPositionCubemapLocal.xyz) / vCameraToPositionRayReflectedCubemapLocal.xyz; + float3 vIntersectB = (vBoxMins.xyz - vPositionCubemapLocal.xyz) / vCameraToPositionRayReflectedCubemapLocal.xyz; - float3 vIntersect = max(vIntersectA.xyz, vIntersectB.xyz); - float flDistance = min(vIntersect.x, min(vIntersect.y, vIntersect.z)); + float3 vIntersect = max(vIntersectA.xyz, vIntersectB.xyz); + float flDistance = min(vIntersect.x, min(vIntersect.y, vIntersect.z)); - float3 vReflectDirectionWs = vPositionCubemapLocal.xyz + vCameraToPositionRayReflectedCubemapLocal.xyz * flDistance; + float3 vReflectDirectionWs = vPositionCubemapLocal.xyz + vCameraToPositionRayReflectedCubemapLocal.xyz * flDistance; - return vReflectDirectionWs; + return vReflectDirectionWs; } #endif diff --git a/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_standard.shader b/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_standard.shader index f257ced61ab..0211ee7876d 100755 --- a/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_standard.shader +++ b/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_standard.shader @@ -1,634 +1,634 @@ -// Copyright (c) Valve Corporation, All rights reserved. ====================================================================================================== +// Copyright (c) Valve Corporation, All rights reserved. ====================================================================================================== Shader "Valve/vr_standard" { - Properties - { - [Toggle( S_UNLIT )] g_bUnlit( "g_bUnlit", Int ) = 0 - - _Color( "Color", Color ) = ( 1, 1, 1, 1 ) - _MainTex( "Albedo", 2D ) = "white" {} - - _Cutoff( "Alpha Cutoff", Range( 0.0, 1.0 ) ) = 0.5 - - _Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5 - _SpecColor("Specular", Color) = (0.2,0.2,0.2) - _SpecGlossMap("Specular", 2D) = "white" {} - - g_flReflectanceMin( "g_flReflectanceMin", Range( 0.0, 1.0 ) ) = 0.0 - g_flReflectanceMax( "g_flReflectanceMax", Range( 0.0, 1.0 ) ) = 1.0 - [HideInInspector] g_flReflectanceScale( "g_flReflectanceScale", Range( 0.0, 1.0 ) ) = 0.0 - [HideInInspector] g_flReflectanceBias( "g_flReflectanceBias", Range( 0.0, 1.0 ) ) = 1.0 - - [Gamma] _Metallic( "Metallic", Range( 0.0, 1.0 ) ) = 0.0 - _MetallicGlossMap( "Metallic", 2D ) = "white" {} - - _BumpScale( "Scale", Float ) = 1.0 - [Normal] _BumpMap( "Normal Map", 2D ) = "bump" {} - - _Parallax ( "Height Scale", Range ( 0.005, 0.08 ) ) = 0.02 - _ParallaxMap ( "Height Map", 2D ) = "black" {} - - _OcclusionStrength( "Strength", Range( 0.0, 1.0 ) ) = 1.0 - _OcclusionMap( "Occlusion", 2D ) = "white" {} - _OcclusionStrengthDirectDiffuse( "StrengthDirectDiffuse", Range( 0.0, 1.0 ) ) = 1.0 - _OcclusionStrengthDirectSpecular( "StrengthDirectSpecular", Range( 0.0, 1.0 ) ) = 1.0 - _OcclusionStrengthIndirectDiffuse( "StrengthIndirectDiffuse", Range( 0.0, 1.0 ) ) = 1.0 - _OcclusionStrengthIndirectSpecular( "StrengthIndirectSpecular", Range( 0.0, 1.0 ) ) = 1.0 - - g_flCubeMapScalar( "Cube Map Scalar", Range( 0.0, 2.0 ) ) = 1.0 - - _EmissionColor( "Color", Color ) = ( 0, 0, 0 ) - _EmissionMap( "Emission", 2D ) = "white" {} - - _DetailMask( "Detail Mask", 2D ) = "white" {} - - _DetailAlbedoMap( "Detail Albedo x2", 2D ) = "grey" {} - _DetailNormalMapScale( "Scale", Float ) = 1.0 - _DetailNormalMap( "Normal Map", 2D ) = "bump" {} - - g_tOverrideLightmap( "Override Lightmap", 2D ) = "white" {} - - [Enum(UV0,0,UV1,1)] _UVSec ( "UV Set for secondary textures", Float ) = 0 - - [Toggle( S_WORLD_ALIGNED_TEXTURE )] g_bWorldAlignedTexture( "g_bWorldAlignedTexture", Int ) = 0 - g_vWorldAlignedTextureSize( "g_vWorldAlignedTextureSize", Vector ) = ( 1.0, 1.0, 1.0, 0.0 ) - g_vWorldAlignedTextureNormal( "g_vWorldAlignedTextureNormal", Vector ) = ( 0.0, 1.0, 0.0, 0.0 ) - g_vWorldAlignedTexturePosition( "g_vWorldAlignedTexturePosition", Vector ) = ( 0.0, 0.0, 0.0, 0.0 ) - [HideInInspector] g_vWorldAlignedNormalTangentU( "g_vWorldAlignedNormalTangentU", Vector ) = ( -1.0, 0.0, 0.0, 0.0) - [HideInInspector] g_vWorldAlignedNormalTangentV( "g_vWorldAlignedNormalTangentV", Vector ) = ( 0.0, 0.0, 1.0, 0.0) - - //g_tShadowBuffer( "g_tShadowBuffer", 2D ) = "white" {} - - [HideInInspector] _SpecularMode( "__specularmode", Int ) = 1.0 - - // Blending state - [HideInInspector] _Mode ( "__mode", Float ) = 0.0 - [HideInInspector] _SrcBlend ( "__src", Float ) = 1.0 - [HideInInspector] _DstBlend ( "__dst", Float ) = 0.0 - [HideInInspector] _ZWrite ( "__zw", Float ) = 1.0 - } - - SubShader - { - Tags { "RenderType" = "Opaque" "PerformanceChecks" = "False" } - LOD 300 - - //------------------------------------------------------------------------------------------------------------------------------------------------------------- - // Base forward pass (directional light, emission, lightmaps, ...) - //------------------------------------------------------------------------------------------------------------------------------------------------------------- - Pass - { - Name "FORWARD" - Tags { "LightMode" = "ForwardBase" } - - Blend [_SrcBlend] [_DstBlend] - ZWrite [_ZWrite] - - CGPROGRAM - #pragma target 4.0 - //#pragma only_renderers d3d11 - //#pragma exclude_renderers gles - - //------------------------------------------------------------------------------------------------------------------------------------------------------------- - #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON - #pragma shader_feature _NORMALMAP - #pragma shader_feature _METALLICGLOSSMAP - #pragma shader_feature _SPECGLOSSMAP - #pragma shader_feature _EMISSION - #pragma shader_feature _DETAIL_MULX2 - //#pragma shader_feature _PARALLAXMAP - - #pragma shader_feature S_SPECULAR_NONE S_SPECULAR_BLINNPHONG S_SPECULAR_METALLIC - #pragma shader_feature S_UNLIT - #pragma shader_feature S_OVERRIDE_LIGHTMAP - #pragma shader_feature S_WORLD_ALIGNED_TEXTURE - #pragma shader_feature S_OCCLUSION - - #pragma multi_compile LIGHTMAP_OFF LIGHTMAP_ON - #pragma multi_compile DIRLIGHTMAP_OFF DIRLIGHTMAP_COMBINED DIRLIGHTMAP_SEPARATE - #pragma multi_compile DYNAMICLIGHTMAP_OFF DYNAMICLIGHTMAP_ON - - #pragma multi_compile _ D_HOLOGRAM_FX - - #pragma skip_variants SHADOWS_SOFT - - #pragma vertex MainVs - #pragma fragment MainPs - - // Dynamic combo skips (Static combo skips happen in ValveShaderGUI.cs in SetMaterialKeywords()) - #if ( S_UNLIT ) - #undef LIGHTMAP_OFF - #define LIGHTMAP_OFF 1 - #undef LIGHTMAP_ON - - #undef DIRLIGHTMAP_OFF - #define DIRLIGHTMAP_OFF 1 - #undef DIRLIGHTMAP_COMBINED - #undef DIRLIGHTMAP_SEPARATE - - #undef DYNAMICLIGHTMAP_OFF - #define DYNAMICLIGHTMAP_OFF 1 - #undef DYNAMICLIGHTMAP_ON - #endif - - // Includes ------------------------------------------------------------------------------------------------------------------------------------------------- - #include "UnityCG.cginc" - #include "UnityLightingCommon.cginc" - #include "UnityStandardUtils.cginc" - #include "UnityStandardInput.cginc" - #include "vr_utils.cginc" - #include "vr_lighting.cginc" - - // Structs -------------------------------------------------------------------------------------------------------------------------------------------------- - struct VS_INPUT - { - float4 vPositionOs : POSITION; - float3 vNormalOs : NORMAL; - float2 vTexCoord0 : TEXCOORD0; - #if ( _DETAIL || S_OVERRIDE_LIGHTMAP || LIGHTMAP_ON ) - float2 vTexCoord1 : TEXCOORD1; - #endif - #if ( DYNAMICLIGHTMAP_ON || UNITY_PASS_META ) - float2 vTexCoord2 : TEXCOORD2; - #endif - - #if ( _NORMALMAP ) - float4 vTangentUOs_flTangentVSign : TANGENT; - #endif - - }; - - struct PS_INPUT - { - float4 vPositionPs : SV_Position; - - #if ( !S_UNLIT || D_HOLOGRAM_FX ) - float3 vPositionWs : TEXCOORD0; - float3 vNormalWs : TEXCOORD1; - #endif - - #if ( _DETAIL ) - float4 vTextureCoords : TEXCOORD2; - #else - float2 vTextureCoords : TEXCOORD2; - #endif - - #if ( S_OVERRIDE_LIGHTMAP || LIGHTMAP_ON || DYNAMICLIGHTMAP_ON ) - #if ( DYNAMICLIGHTMAP_ON ) - centroid float4 vLightmapUV : TEXCOORD3; - #else - centroid float2 vLightmapUV : TEXCOORD3; - #endif - #endif - - #if ( _NORMALMAP ) - float3 vTangentUWs : TEXCOORD4; - float3 vTangentVWs : TEXCOORD5; - #endif - }; - - // World-aligned texture - float3 g_vWorldAlignedTextureSize = float3( 1.0, 1.0, 1.0 ); - float3 g_vWorldAlignedNormalTangentU = float3( -1.0, 0.0, 0.0 ); - float3 g_vWorldAlignedNormalTangentV = float3( 0.0, 0.0, 1.0 ); - float3 g_vWorldAlignedTexturePosition = float3( 0.0, 0.0, 0.0 ); - - uniform sampler3D g_tHologramNoise3D; - float3 g_vHologramTransmissionSource; - float g_flHologramTransmissionDistance; - float g_flHologramTransmissionFrontier; - - // MainVs --------------------------------------------------------------------------------------------------------------------------------------------------- - PS_INPUT MainVs( VS_INPUT i ) - { - PS_INPUT o = ( PS_INPUT )0; - - // Position - float3 vPositionWs = mul( unity_ObjectToWorld, i.vPositionOs.xyzw ).xyz; - #if ( !S_UNLIT || D_HOLOGRAM_FX ) - { - o.vPositionWs.xyz = vPositionWs.xyz; - } - #endif - o.vPositionPs.xyzw = mul( UNITY_MATRIX_MVP, i.vPositionOs.xyzw ); - - // Normal - float3 vNormalWs = UnityObjectToWorldNormal( i.vNormalOs.xyz ); - #if ( !S_UNLIT || D_HOLOGRAM_FX ) - { - o.vNormalWs.xyz = vNormalWs.xyz; - } - #endif - - #if ( _NORMALMAP ) - { - // TangentU and TangentV - float3 vTangentUWs = UnityObjectToWorldDir( i.vTangentUOs_flTangentVSign.xyz ); // Transform tangentU into world space - //vTangentUWs.xyz = normalize( vTangentUWs.xyz - ( vNormalWs.xyz * dot( vTangentUWs.xyz, vNormalWs.xyz ) ) ); // Force tangentU perpendicular to normal and normalize - - o.vTangentUWs.xyz = vTangentUWs.xyz; - o.vTangentVWs.xyz = cross( vNormalWs.xyz, vTangentUWs.xyz ) * i.vTangentUOs_flTangentVSign.w; - } - #endif - - #if ( S_WORLD_ALIGNED_TEXTURE ) - { - float3 vTexturePositionScaledWs = ( vPositionWs.xyz - g_vWorldAlignedTexturePosition.xyz ) / g_vWorldAlignedTextureSize.xyz; - o.vTextureCoords.x = dot( vTexturePositionScaledWs.xyz, g_vWorldAlignedNormalTangentU.xyz ); - o.vTextureCoords.y = dot( vTexturePositionScaledWs.xyz, g_vWorldAlignedNormalTangentV.xyz ); - #if ( _DETAIL ) - { - o.vTextureCoords.zw = TRANSFORM_TEX( o.vTextureCoords.xy, _DetailAlbedoMap ); - } - #endif - } - #else - { - // Texture coords (Copied from Unity's TexCoords() helper function) - o.vTextureCoords.xy = TRANSFORM_TEX( i.vTexCoord0, _MainTex ); - #if ( _DETAIL ) - { - o.vTextureCoords.zw = TRANSFORM_TEX( ( ( _UVSec == 0 ) ? i.vTexCoord0 : i.vTexCoord1 ), _DetailAlbedoMap ); - } - #endif - } - #endif - - // Indirect lighting uv's or light probe - #if ( S_OVERRIDE_LIGHTMAP ) - { - o.vLightmapUV.xy = i.vTexCoord1.xy; - } - #elif ( LIGHTMAP_ON ) - { - // Static lightmaps - o.vLightmapUV.xy = i.vTexCoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; - } - #endif - - #if ( DYNAMICLIGHTMAP_ON ) - { - o.vLightmapUV.zw = i.vTexCoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; - } - #endif - - return o; - } - - // MainPs --------------------------------------------------------------------------------------------------------------------------------------------------- - #define g_vColorTint _Color - #define g_tColor _MainTex - #define g_tNormalMap _BumpMap - #define g_flBumpScale _BumpScale - #define g_vReflectance _SpecColor - #define g_tReflectanceGloss _SpecGlossMap - #define g_flGlossScale _Glossiness - #define g_tDetailAlbedo _DetailAlbedoMap - #define g_tDetailNormal _DetailNormalMap - #define g_flDetailNormalScale _DetailNormalMapScale - - float g_flReflectanceScale = 1.0; - float g_flReflectanceBias = 0.0; - - float _OcclusionStrengthDirectDiffuse = 1.0; - float _OcclusionStrengthDirectSpecular = 1.0; - float _OcclusionStrengthIndirectDiffuse = 1.0; - float _OcclusionStrengthIndirectSpecular = 1.0; - - struct PS_OUTPUT - { - float4 vColor : SV_Target0; - }; - - PS_OUTPUT MainPs( PS_INPUT i ) - { - PS_OUTPUT o = ( PS_OUTPUT )0; - - //--------// - // Albedo // - //--------// - float4 vAlbedoTexel = tex2D( g_tColor, i.vTextureCoords.xy ) * g_vColorTint.rgba; - float3 vAlbedo = vAlbedoTexel.rgb; - - // Apply detail to albedo - #if ( _DETAIL ) - { - float flDetailMask = DetailMask( i.vTextureCoords.xy ); - float3 vDetailAlbedo = tex2D( g_tDetailAlbedo, i.vTextureCoords.zw ).rgb; - #if ( _DETAIL_MULX2 ) - vAlbedo.rgb *= LerpWhiteTo( vDetailAlbedo.rgb * unity_ColorSpaceDouble.rgb, flDetailMask ); - #elif ( _DETAIL_MUL ) - vAlbedo.rgb *= LerpWhiteTo( vDetailAlbedo.rgb, flDetailMask ); - #elif ( _DETAIL_ADD ) - vAlbedo.rgb += vDetailAlbedo.rgb * flDetailMask; - #elif ( _DETAIL_LERP ) - vAlbedo.rgb = lerp( vAlbedo.rgb, vDetailAlbedo.rgb, flDetailMask ); - #endif - } - #endif - - //--------------// - // Translucency // - //--------------// - #if ( _ALPHATEST_ON ) - { - clip( vAlbedoTexel.a - _Cutoff ); - } - #endif - - #if ( _ALPHAPREMULTIPLY_ON ) - { - vAlbedo.rgb *= vAlbedoTexel.a; - } - #endif - - #if ( _ALPHABLEND_ON || _ALPHAPREMULTIPLY_ON ) - { - o.vColor.a = vAlbedoTexel.a; - } - #else - { - o.vColor.a = 1.0; - } - #endif - - //---------------// - // Tangent Space // - //---------------// - float3 vTangentUWs = float3( 1.0, 0.0, 0.0 ); - float3 vTangentVWs = float3( 0.0, 1.0, 0.0 ); - #if ( _NORMALMAP ) - { - vTangentUWs.xyz = i.vTangentUWs.xyz; - vTangentVWs.xyz = i.vTangentVWs.xyz; - } - #endif - - //--------// - // Normal // - //--------// - float3 vGeometricNormalWs = float3( 0.0, 0.0, 1.0 ); - #if ( !S_UNLIT ) - { - i.vNormalWs.xyz = normalize( i.vNormalWs.xyz ); - vGeometricNormalWs.xyz = i.vNormalWs.xyz; - } - #endif - - float3 vNormalWs = vGeometricNormalWs.xyz; - float3 vNormalTs = float3( 0.0, 0.0, 1.0 ); - #if ( _NORMALMAP ) - { - vNormalTs.xyz = UnpackScaleNormal( tex2D( g_tNormalMap, i.vTextureCoords.xy ), g_flBumpScale ); - //vNormalTs.y = -vNormalTs.y; - - // Apply detail to tangent normal - #if ( _DETAIL ) - { - float flDetailMask = DetailMask( i.vTextureCoords.xy ); - float3 vDetailNormalTs = UnpackScaleNormal( tex2D( g_tDetailNormal, i.vTextureCoords.zw ), g_flDetailNormalScale ); - #if ( _DETAIL_LERP ) - { - vNormalTs.xyz = lerp( vNormalTs.xyz, vDetailNormalTs.xyz, flDetailMask ); - } - #else - { - vNormalTs.xyz = lerp( vNormalTs.xyz, BlendNormals( vNormalTs.xyz, vDetailNormalTs.xyz ), flDetailMask ); - } - #endif - } - #endif - - // Convert to world space - vNormalWs.xyz = Vec3TsToWsNormalized( vNormalTs.xyz, vGeometricNormalWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz ); - } - #endif - - //-----------// - // Roughness // - //-----------// - float2 vRoughness = float2( 0.6, 0.6 );// vNormalTexel.rb; - //#if ( S_HIGH_QUALITY_GLOSS ) - //{ - // float4 vGlossTexel = Tex2D( g_tGloss, i.vTextureCoords.xy ); - // vRoughness.xy += vGlossTexel.ag; - //} - //#endif - - // Reflectance and gloss - float3 vReflectance = float3( 0.0, 0.0, 0.0 ); - float flGloss = 0.0; - #if ( S_SPECULAR_METALLIC ) - { - float2 vMetallicGloss = MetallicGloss( i.vTextureCoords.xy ); - - float flOneMinusReflectivity; - float3 vSpecColor; - float3 diffColor = DiffuseAndSpecularFromMetallic( vAlbedo.rgb, vMetallicGloss.x, /*out*/ vSpecColor, /*out*/ flOneMinusReflectivity); - vAlbedo = diffColor.rgb; - - vReflectance.rgb = vSpecColor.rgb; - flGloss = vMetallicGloss.y; - } - #elif ( S_SPECULAR_BLINNPHONG ) - { - float4 vReflectanceGloss = SpecularGloss( i.vTextureCoords.xy ); - vReflectanceGloss.rgb = ( vReflectanceGloss.rgb * g_flReflectanceScale.xxx ) + g_flReflectanceBias.xxx; - vReflectance.rgb = vReflectanceGloss.rgb; - flGloss = vReflectanceGloss.a; - } - #endif - - vRoughness.xy = ( 1.0 - flGloss ).xx; - #if ( !S_SPECULAR_NONE ) - { - vRoughness.xy = AdjustRoughnessByGeometricNormal( vRoughness.xy, vGeometricNormalWs.xyz ); - } - #endif - - //----------// - // Lighting // - //----------// - LightingTerms_t lightingTerms; - lightingTerms.vDiffuse.rgb = float3( 1.0, 1.0, 1.0 ); - lightingTerms.vSpecular.rgb = float3( 0.0, 0.0, 0.0 ); - lightingTerms.vIndirectDiffuse.rgb = float3( 0.0, 0.0, 0.0 ); - lightingTerms.vIndirectSpecular.rgb = float3( 0.0, 0.0, 0.0 ); - lightingTerms.vTransmissiveSunlight.rgb = float3( 0.0, 0.0, 0.0 ); - - float flFresnelExponent = 5.0; - float flMetalness = 0.0f; - - #if ( !S_UNLIT ) - { - float4 vLightmapUV = float4( 0.0, 0.0, 0.0, 0.0 ); - #if ( S_OVERRIDE_LIGHTMAP || LIGHTMAP_ON || DYNAMICLIGHTMAP_ON ) - { - vLightmapUV.xy = i.vLightmapUV.xy; - #if ( DYNAMICLIGHTMAP_ON ) - { - vLightmapUV.zw = i.vLightmapUV.zw; - } - #endif - } - #endif - - // Compute lighting - lightingTerms = ComputeLighting( i.vPositionWs.xyz, vNormalWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz, vRoughness.xy, vReflectance.rgb, flFresnelExponent, vLightmapUV.xyzw ); - - #if ( S_OCCLUSION ) - { - float flOcclusion = tex2D( _OcclusionMap, i.vTextureCoords.xy ).g; - lightingTerms.vDiffuse.rgb *= LerpOneTo( flOcclusion, _OcclusionStrength * _OcclusionStrengthDirectDiffuse ); - lightingTerms.vSpecular.rgb *= LerpOneTo( flOcclusion, _OcclusionStrength * _OcclusionStrengthDirectSpecular ); - lightingTerms.vIndirectDiffuse.rgb *= LerpOneTo( flOcclusion, _OcclusionStrength * _OcclusionStrengthIndirectDiffuse ); - lightingTerms.vIndirectSpecular.rgb *= LerpOneTo( flOcclusion, _OcclusionStrength * _OcclusionStrengthIndirectSpecular ); - } - #endif - } - #endif - - // Diffuse - o.vColor.rgb = ( lightingTerms.vDiffuse.rgb + lightingTerms.vIndirectDiffuse.rgb ) * vAlbedo.rgb; - - // Specular - #if ( !S_SPECULAR_NONE ) - { - o.vColor.rgb += lightingTerms.vSpecular.rgb; - } - #endif - o.vColor.rgb += lightingTerms.vIndirectSpecular.rgb; // Indirect specular applies its own fresnel in the forward lighting header file - - // Emission - Unity just adds the emissive term at the end instead of adding it to the diffuse lighting term. Artists may want both options. - float3 vEmission = Emission( i.vTextureCoords.xy ); - o.vColor.rgb += vEmission.rgb; - - #if ( D_HOLOGRAM_FX ) - { - float flNoise = - 0.35 * tex3D(g_tHologramNoise3D, 0.016 * i.vPositionWs.xyz + float3(0.756, 0.159, 0.871)).x + - 0.25 * tex3D(g_tHologramNoise3D, 0.032 * i.vPositionWs.xyz + float3(0.147, 0.051, 0.273)).x + - 0.20 * tex3D(g_tHologramNoise3D, 0.064 * i.vPositionWs.xyz + float3(0.230, 0.700, 0.809)).x + - 0.15 * tex3D(g_tHologramNoise3D, 0.128 * i.vPositionWs.xyz + float3(0.938, 0.117, 0.952)).x + - 0.05 * tex3D(g_tHologramNoise3D, 0.256 * i.vPositionWs.xyz + float3(0.867, 0.363, 0.502)).x; - - float EDGE = 1.0; - float HEIGHT_BIAS = 4.0; - - float flAvgColor = saturate( dot( float3( 0.3333333, 0.3333333, 0.3333333 ), o.vColor.rgb ) ); - - float3 vTransmissionRayWs = i.vPositionWs.xyz - g_vHologramTransmissionSource; - vTransmissionRayWs.y *= HEIGHT_BIAS; - float flTransmissionDistance = length( vTransmissionRayWs.xyz ); - flTransmissionDistance -= g_flHologramTransmissionFrontier * 0.5 * ( flNoise + flAvgColor ); - - clip( g_flHologramTransmissionDistance - flTransmissionDistance ); - float flEdgeAmount = saturate( EDGE * ( g_flHologramTransmissionDistance - flTransmissionDistance ) ); - float3 vCyan = float3( 0.0, 1.0, 1.0 ); - o.vColor.rgb = lerp( vCyan.rgb, o.vColor.rgb, flEdgeAmount ); - } - #endif - - // Dither to fix banding artifacts - o.vColor.rgb += ScreenSpaceDither( i.vPositionPs.xy ); - - return o; - } - ENDCG - } - - //------------------------------------------------------------------------------------------------------------------------------------------------------------- - // Extracts information for lightmapping, GI (emission, albedo, ...) - // This pass it not used during regular rendering. - //------------------------------------------------------------------------------------------------------------------------------------------------------------- - Pass - { - Name "META" - Tags { "LightMode"="Meta" } - - Cull Off - - CGPROGRAM - #pragma vertex vert_meta - #pragma fragment frag_meta - - #pragma shader_feature _EMISSION - #pragma shader_feature _METALLICGLOSSMAP - #pragma shader_feature ___ _DETAIL_MULX2 - - #include "UnityStandardMeta.cginc" - ENDCG - } - - Pass - { - Name "ShadowCaster" - Tags { "LightMode" = "ShadowCaster" } - //Tags { "LightMode" = "ShadowCaster" } - - ZWrite On - ZTest LEqual - ColorMask 0 - Blend Off - Offset 2.5, 1 // http://docs.unity3d.com/Manual/SL-CullAndDepth.html - - CGPROGRAM - #pragma target 4.0 - //#pragma only_renderers d3d11 - //#pragma multi_compile_shadowcaster - - #pragma vertex MainVs - #pragma fragment MainPs - - #include "UnityCG.cginc" - - struct VertexInput - { - float4 vPositionOs : POSITION; - float3 vNormalOs : NORMAL; - }; - - struct VertexOutput - { - float4 vPositionPs : SV_POSITION; - }; - - float3 g_vLightDirWs = float3( 0.0, 0.0, 0.0 ); - - float2 GetShadowOffsets( float3 N, float3 L ) - { - // From: Ignacio Castaño http://the-witness.net/news/2013/09/shadow-mapping-summary-part-1/ - float cos_alpha = saturate( dot( N, L ) ); - float offset_scale_N = sqrt( 1 - ( cos_alpha * cos_alpha ) ); // sin( acos( L·N ) ) - float offset_scale_L = offset_scale_N / cos_alpha; // tan( acos( L·N ) ) - return float2( offset_scale_N, min( 2.0, offset_scale_L ) ); - } - - VertexOutput MainVs( VertexInput i ) - { - VertexOutput o; - - //o.vPositionPs.xyzw = mul( UNITY_MATRIX_MVP, i.vPositionOs.xyzw ); - - float3 vNormalWs = UnityObjectToWorldNormal( i.vNormalOs.xyz ); - float3 vPositionWs = mul( unity_ObjectToWorld, i.vPositionOs.xyzw ).xyz; - float2 vShadowOffsets = GetShadowOffsets( vNormalWs.xyz, g_vLightDirWs.xyz ); - vPositionWs.xyz -= vShadowOffsets.x * vNormalWs.xyz / 100; - vPositionWs.xyz += vShadowOffsets.y * g_vLightDirWs.xyz / 1000; - o.vPositionPs.xyzw = mul( UNITY_MATRIX_MVP, float4( mul( unity_WorldToObject, float4( vPositionWs.xyz, 1.0 ) ).xyz, 1.0 ) ); - return o; - } - - float4 MainPs( VertexOutput i ) : SV_Target - { - return float4( 0.0, 0.0, 0.0, 0.0 ); - } - ENDCG - } - - } - - - CustomEditor "ValveShaderGUI" + Properties + { + [Toggle( S_UNLIT )] g_bUnlit( "g_bUnlit", Int ) = 0 + + _Color( "Color", Color ) = ( 1, 1, 1, 1 ) + _MainTex( "Albedo", 2D ) = "white" {} + + _Cutoff( "Alpha Cutoff", Range( 0.0, 1.0 ) ) = 0.5 + + _Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5 + _SpecColor("Specular", Color) = (0.2,0.2,0.2) + _SpecGlossMap("Specular", 2D) = "white" {} + + g_flReflectanceMin( "g_flReflectanceMin", Range( 0.0, 1.0 ) ) = 0.0 + g_flReflectanceMax( "g_flReflectanceMax", Range( 0.0, 1.0 ) ) = 1.0 + [HideInInspector] g_flReflectanceScale( "g_flReflectanceScale", Range( 0.0, 1.0 ) ) = 0.0 + [HideInInspector] g_flReflectanceBias( "g_flReflectanceBias", Range( 0.0, 1.0 ) ) = 1.0 + + [Gamma] _Metallic( "Metallic", Range( 0.0, 1.0 ) ) = 0.0 + _MetallicGlossMap( "Metallic", 2D ) = "white" {} + + _BumpScale( "Scale", Float ) = 1.0 + [Normal] _BumpMap( "Normal Map", 2D ) = "bump" {} + + _Parallax ( "Height Scale", Range ( 0.005, 0.08 ) ) = 0.02 + _ParallaxMap ( "Height Map", 2D ) = "black" {} + + _OcclusionStrength( "Strength", Range( 0.0, 1.0 ) ) = 1.0 + _OcclusionMap( "Occlusion", 2D ) = "white" {} + _OcclusionStrengthDirectDiffuse( "StrengthDirectDiffuse", Range( 0.0, 1.0 ) ) = 1.0 + _OcclusionStrengthDirectSpecular( "StrengthDirectSpecular", Range( 0.0, 1.0 ) ) = 1.0 + _OcclusionStrengthIndirectDiffuse( "StrengthIndirectDiffuse", Range( 0.0, 1.0 ) ) = 1.0 + _OcclusionStrengthIndirectSpecular( "StrengthIndirectSpecular", Range( 0.0, 1.0 ) ) = 1.0 + + g_flCubeMapScalar( "Cube Map Scalar", Range( 0.0, 2.0 ) ) = 1.0 + + _EmissionColor( "Color", Color ) = ( 0, 0, 0 ) + _EmissionMap( "Emission", 2D ) = "white" {} + + _DetailMask( "Detail Mask", 2D ) = "white" {} + + _DetailAlbedoMap( "Detail Albedo x2", 2D ) = "grey" {} + _DetailNormalMapScale( "Scale", Float ) = 1.0 + _DetailNormalMap( "Normal Map", 2D ) = "bump" {} + + g_tOverrideLightmap( "Override Lightmap", 2D ) = "white" {} + + [Enum(UV0,0,UV1,1)] _UVSec ( "UV Set for secondary textures", Float ) = 0 + + [Toggle( S_WORLD_ALIGNED_TEXTURE )] g_bWorldAlignedTexture( "g_bWorldAlignedTexture", Int ) = 0 + g_vWorldAlignedTextureSize( "g_vWorldAlignedTextureSize", Vector ) = ( 1.0, 1.0, 1.0, 0.0 ) + g_vWorldAlignedTextureNormal( "g_vWorldAlignedTextureNormal", Vector ) = ( 0.0, 1.0, 0.0, 0.0 ) + g_vWorldAlignedTexturePosition( "g_vWorldAlignedTexturePosition", Vector ) = ( 0.0, 0.0, 0.0, 0.0 ) + [HideInInspector] g_vWorldAlignedNormalTangentU( "g_vWorldAlignedNormalTangentU", Vector ) = ( -1.0, 0.0, 0.0, 0.0) + [HideInInspector] g_vWorldAlignedNormalTangentV( "g_vWorldAlignedNormalTangentV", Vector ) = ( 0.0, 0.0, 1.0, 0.0) + + //g_tShadowBuffer( "g_tShadowBuffer", 2D ) = "white" {} + + [HideInInspector] _SpecularMode( "__specularmode", Int ) = 1.0 + + // Blending state + [HideInInspector] _Mode ( "__mode", Float ) = 0.0 + [HideInInspector] _SrcBlend ( "__src", Float ) = 1.0 + [HideInInspector] _DstBlend ( "__dst", Float ) = 0.0 + [HideInInspector] _ZWrite ( "__zw", Float ) = 1.0 + } + + SubShader + { + Tags { "RenderType" = "Opaque" "PerformanceChecks" = "False" } + LOD 300 + + //------------------------------------------------------------------------------------------------------------------------------------------------------------- + // Base forward pass (directional light, emission, lightmaps, ...) + //------------------------------------------------------------------------------------------------------------------------------------------------------------- + Pass + { + Name "FORWARD" + Tags { "LightMode" = "ForwardBase" } + + Blend [_SrcBlend] [_DstBlend] + ZWrite [_ZWrite] + + CGPROGRAM + #pragma target 4.0 + //#pragma only_renderers d3d11 + //#pragma exclude_renderers gles + + //------------------------------------------------------------------------------------------------------------------------------------------------------------- + #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON + #pragma shader_feature _NORMALMAP + #pragma shader_feature _METALLICGLOSSMAP + #pragma shader_feature _SPECGLOSSMAP + #pragma shader_feature _EMISSION + #pragma shader_feature _DETAIL_MULX2 + //#pragma shader_feature _PARALLAXMAP + + #pragma shader_feature S_SPECULAR_NONE S_SPECULAR_BLINNPHONG S_SPECULAR_METALLIC + #pragma shader_feature S_UNLIT + #pragma shader_feature S_OVERRIDE_LIGHTMAP + #pragma shader_feature S_WORLD_ALIGNED_TEXTURE + #pragma shader_feature S_OCCLUSION + + #pragma multi_compile LIGHTMAP_OFF LIGHTMAP_ON + #pragma multi_compile DIRLIGHTMAP_OFF DIRLIGHTMAP_COMBINED DIRLIGHTMAP_SEPARATE + #pragma multi_compile DYNAMICLIGHTMAP_OFF DYNAMICLIGHTMAP_ON + + #pragma multi_compile _ D_HOLOGRAM_FX + + #pragma skip_variants SHADOWS_SOFT + + #pragma vertex MainVs + #pragma fragment MainPs + + // Dynamic combo skips (Static combo skips happen in ValveShaderGUI.cs in SetMaterialKeywords()) + #if ( S_UNLIT ) + #undef LIGHTMAP_OFF + #define LIGHTMAP_OFF 1 + #undef LIGHTMAP_ON + + #undef DIRLIGHTMAP_OFF + #define DIRLIGHTMAP_OFF 1 + #undef DIRLIGHTMAP_COMBINED + #undef DIRLIGHTMAP_SEPARATE + + #undef DYNAMICLIGHTMAP_OFF + #define DYNAMICLIGHTMAP_OFF 1 + #undef DYNAMICLIGHTMAP_ON + #endif + + // Includes ------------------------------------------------------------------------------------------------------------------------------------------------- + #include "UnityCG.cginc" + #include "UnityLightingCommon.cginc" + #include "UnityStandardUtils.cginc" + #include "UnityStandardInput.cginc" + #include "vr_utils.cginc" + #include "vr_lighting.cginc" + + // Structs -------------------------------------------------------------------------------------------------------------------------------------------------- + struct VS_INPUT + { + float4 vPositionOs : POSITION; + float3 vNormalOs : NORMAL; + float2 vTexCoord0 : TEXCOORD0; + #if ( _DETAIL || S_OVERRIDE_LIGHTMAP || LIGHTMAP_ON ) + float2 vTexCoord1 : TEXCOORD1; + #endif + #if ( DYNAMICLIGHTMAP_ON || UNITY_PASS_META ) + float2 vTexCoord2 : TEXCOORD2; + #endif + + #if ( _NORMALMAP ) + float4 vTangentUOs_flTangentVSign : TANGENT; + #endif + + }; + + struct PS_INPUT + { + float4 vPositionPs : SV_Position; + + #if ( !S_UNLIT || D_HOLOGRAM_FX ) + float3 vPositionWs : TEXCOORD0; + float3 vNormalWs : TEXCOORD1; + #endif + + #if ( _DETAIL ) + float4 vTextureCoords : TEXCOORD2; + #else + float2 vTextureCoords : TEXCOORD2; + #endif + + #if ( S_OVERRIDE_LIGHTMAP || LIGHTMAP_ON || DYNAMICLIGHTMAP_ON ) + #if ( DYNAMICLIGHTMAP_ON ) + centroid float4 vLightmapUV : TEXCOORD3; + #else + centroid float2 vLightmapUV : TEXCOORD3; + #endif + #endif + + #if ( _NORMALMAP ) + float3 vTangentUWs : TEXCOORD4; + float3 vTangentVWs : TEXCOORD5; + #endif + }; + + // World-aligned texture + float3 g_vWorldAlignedTextureSize = float3( 1.0, 1.0, 1.0 ); + float3 g_vWorldAlignedNormalTangentU = float3( -1.0, 0.0, 0.0 ); + float3 g_vWorldAlignedNormalTangentV = float3( 0.0, 0.0, 1.0 ); + float3 g_vWorldAlignedTexturePosition = float3( 0.0, 0.0, 0.0 ); + + uniform sampler3D g_tHologramNoise3D; + float3 g_vHologramTransmissionSource; + float g_flHologramTransmissionDistance; + float g_flHologramTransmissionFrontier; + + // MainVs --------------------------------------------------------------------------------------------------------------------------------------------------- + PS_INPUT MainVs( VS_INPUT i ) + { + PS_INPUT o = ( PS_INPUT )0; + + // Position + float3 vPositionWs = mul( unity_ObjectToWorld, i.vPositionOs.xyzw ).xyz; + #if ( !S_UNLIT || D_HOLOGRAM_FX ) + { + o.vPositionWs.xyz = vPositionWs.xyz; + } + #endif + o.vPositionPs.xyzw = mul( UNITY_MATRIX_MVP, i.vPositionOs.xyzw ); + + // Normal + float3 vNormalWs = UnityObjectToWorldNormal( i.vNormalOs.xyz ); + #if ( !S_UNLIT || D_HOLOGRAM_FX ) + { + o.vNormalWs.xyz = vNormalWs.xyz; + } + #endif + + #if ( _NORMALMAP ) + { + // TangentU and TangentV + float3 vTangentUWs = UnityObjectToWorldDir( i.vTangentUOs_flTangentVSign.xyz ); // Transform tangentU into world space + //vTangentUWs.xyz = normalize( vTangentUWs.xyz - ( vNormalWs.xyz * dot( vTangentUWs.xyz, vNormalWs.xyz ) ) ); // Force tangentU perpendicular to normal and normalize + + o.vTangentUWs.xyz = vTangentUWs.xyz; + o.vTangentVWs.xyz = cross( vNormalWs.xyz, vTangentUWs.xyz ) * i.vTangentUOs_flTangentVSign.w; + } + #endif + + #if ( S_WORLD_ALIGNED_TEXTURE ) + { + float3 vTexturePositionScaledWs = ( vPositionWs.xyz - g_vWorldAlignedTexturePosition.xyz ) / g_vWorldAlignedTextureSize.xyz; + o.vTextureCoords.x = dot( vTexturePositionScaledWs.xyz, g_vWorldAlignedNormalTangentU.xyz ); + o.vTextureCoords.y = dot( vTexturePositionScaledWs.xyz, g_vWorldAlignedNormalTangentV.xyz ); + #if ( _DETAIL ) + { + o.vTextureCoords.zw = TRANSFORM_TEX( o.vTextureCoords.xy, _DetailAlbedoMap ); + } + #endif + } + #else + { + // Texture coords (Copied from Unity's TexCoords() helper function) + o.vTextureCoords.xy = TRANSFORM_TEX( i.vTexCoord0, _MainTex ); + #if ( _DETAIL ) + { + o.vTextureCoords.zw = TRANSFORM_TEX( ( ( _UVSec == 0 ) ? i.vTexCoord0 : i.vTexCoord1 ), _DetailAlbedoMap ); + } + #endif + } + #endif + + // Indirect lighting uv's or light probe + #if ( S_OVERRIDE_LIGHTMAP ) + { + o.vLightmapUV.xy = i.vTexCoord1.xy; + } + #elif ( LIGHTMAP_ON ) + { + // Static lightmaps + o.vLightmapUV.xy = i.vTexCoord1.xy * unity_LightmapST.xy + unity_LightmapST.zw; + } + #endif + + #if ( DYNAMICLIGHTMAP_ON ) + { + o.vLightmapUV.zw = i.vTexCoord2.xy * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; + } + #endif + + return o; + } + + // MainPs --------------------------------------------------------------------------------------------------------------------------------------------------- + #define g_vColorTint _Color + #define g_tColor _MainTex + #define g_tNormalMap _BumpMap + #define g_flBumpScale _BumpScale + #define g_vReflectance _SpecColor + #define g_tReflectanceGloss _SpecGlossMap + #define g_flGlossScale _Glossiness + #define g_tDetailAlbedo _DetailAlbedoMap + #define g_tDetailNormal _DetailNormalMap + #define g_flDetailNormalScale _DetailNormalMapScale + + float g_flReflectanceScale = 1.0; + float g_flReflectanceBias = 0.0; + + float _OcclusionStrengthDirectDiffuse = 1.0; + float _OcclusionStrengthDirectSpecular = 1.0; + float _OcclusionStrengthIndirectDiffuse = 1.0; + float _OcclusionStrengthIndirectSpecular = 1.0; + + struct PS_OUTPUT + { + float4 vColor : SV_Target0; + }; + + PS_OUTPUT MainPs( PS_INPUT i ) + { + PS_OUTPUT o = ( PS_OUTPUT )0; + + //--------// + // Albedo // + //--------// + float4 vAlbedoTexel = tex2D( g_tColor, i.vTextureCoords.xy ) * g_vColorTint.rgba; + float3 vAlbedo = vAlbedoTexel.rgb; + + // Apply detail to albedo + #if ( _DETAIL ) + { + float flDetailMask = DetailMask( i.vTextureCoords.xy ); + float3 vDetailAlbedo = tex2D( g_tDetailAlbedo, i.vTextureCoords.zw ).rgb; + #if ( _DETAIL_MULX2 ) + vAlbedo.rgb *= LerpWhiteTo( vDetailAlbedo.rgb * unity_ColorSpaceDouble.rgb, flDetailMask ); + #elif ( _DETAIL_MUL ) + vAlbedo.rgb *= LerpWhiteTo( vDetailAlbedo.rgb, flDetailMask ); + #elif ( _DETAIL_ADD ) + vAlbedo.rgb += vDetailAlbedo.rgb * flDetailMask; + #elif ( _DETAIL_LERP ) + vAlbedo.rgb = lerp( vAlbedo.rgb, vDetailAlbedo.rgb, flDetailMask ); + #endif + } + #endif + + //--------------// + // Translucency // + //--------------// + #if ( _ALPHATEST_ON ) + { + clip( vAlbedoTexel.a - _Cutoff ); + } + #endif + + #if ( _ALPHAPREMULTIPLY_ON ) + { + vAlbedo.rgb *= vAlbedoTexel.a; + } + #endif + + #if ( _ALPHABLEND_ON || _ALPHAPREMULTIPLY_ON ) + { + o.vColor.a = vAlbedoTexel.a; + } + #else + { + o.vColor.a = 1.0; + } + #endif + + //---------------// + // Tangent Space // + //---------------// + float3 vTangentUWs = float3( 1.0, 0.0, 0.0 ); + float3 vTangentVWs = float3( 0.0, 1.0, 0.0 ); + #if ( _NORMALMAP ) + { + vTangentUWs.xyz = i.vTangentUWs.xyz; + vTangentVWs.xyz = i.vTangentVWs.xyz; + } + #endif + + //--------// + // Normal // + //--------// + float3 vGeometricNormalWs = float3( 0.0, 0.0, 1.0 ); + #if ( !S_UNLIT ) + { + i.vNormalWs.xyz = normalize( i.vNormalWs.xyz ); + vGeometricNormalWs.xyz = i.vNormalWs.xyz; + } + #endif + + float3 vNormalWs = vGeometricNormalWs.xyz; + float3 vNormalTs = float3( 0.0, 0.0, 1.0 ); + #if ( _NORMALMAP ) + { + vNormalTs.xyz = UnpackScaleNormal( tex2D( g_tNormalMap, i.vTextureCoords.xy ), g_flBumpScale ); + //vNormalTs.y = -vNormalTs.y; + + // Apply detail to tangent normal + #if ( _DETAIL ) + { + float flDetailMask = DetailMask( i.vTextureCoords.xy ); + float3 vDetailNormalTs = UnpackScaleNormal( tex2D( g_tDetailNormal, i.vTextureCoords.zw ), g_flDetailNormalScale ); + #if ( _DETAIL_LERP ) + { + vNormalTs.xyz = lerp( vNormalTs.xyz, vDetailNormalTs.xyz, flDetailMask ); + } + #else + { + vNormalTs.xyz = lerp( vNormalTs.xyz, BlendNormals( vNormalTs.xyz, vDetailNormalTs.xyz ), flDetailMask ); + } + #endif + } + #endif + + // Convert to world space + vNormalWs.xyz = Vec3TsToWsNormalized( vNormalTs.xyz, vGeometricNormalWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz ); + } + #endif + + //-----------// + // Roughness // + //-----------// + float2 vRoughness = float2( 0.6, 0.6 );// vNormalTexel.rb; + //#if ( S_HIGH_QUALITY_GLOSS ) + //{ + // float4 vGlossTexel = Tex2D( g_tGloss, i.vTextureCoords.xy ); + // vRoughness.xy += vGlossTexel.ag; + //} + //#endif + + // Reflectance and gloss + float3 vReflectance = float3( 0.0, 0.0, 0.0 ); + float flGloss = 0.0; + #if ( S_SPECULAR_METALLIC ) + { + float2 vMetallicGloss = MetallicGloss( i.vTextureCoords.xy ); + + float flOneMinusReflectivity; + float3 vSpecColor; + float3 diffColor = DiffuseAndSpecularFromMetallic( vAlbedo.rgb, vMetallicGloss.x, /*out*/ vSpecColor, /*out*/ flOneMinusReflectivity); + vAlbedo = diffColor.rgb; + + vReflectance.rgb = vSpecColor.rgb; + flGloss = vMetallicGloss.y; + } + #elif ( S_SPECULAR_BLINNPHONG ) + { + float4 vReflectanceGloss = SpecularGloss( i.vTextureCoords.xy ); + vReflectanceGloss.rgb = ( vReflectanceGloss.rgb * g_flReflectanceScale.xxx ) + g_flReflectanceBias.xxx; + vReflectance.rgb = vReflectanceGloss.rgb; + flGloss = vReflectanceGloss.a; + } + #endif + + vRoughness.xy = ( 1.0 - flGloss ).xx; + #if ( !S_SPECULAR_NONE ) + { + vRoughness.xy = AdjustRoughnessByGeometricNormal( vRoughness.xy, vGeometricNormalWs.xyz ); + } + #endif + + //----------// + // Lighting // + //----------// + LightingTerms_t lightingTerms; + lightingTerms.vDiffuse.rgb = float3( 1.0, 1.0, 1.0 ); + lightingTerms.vSpecular.rgb = float3( 0.0, 0.0, 0.0 ); + lightingTerms.vIndirectDiffuse.rgb = float3( 0.0, 0.0, 0.0 ); + lightingTerms.vIndirectSpecular.rgb = float3( 0.0, 0.0, 0.0 ); + lightingTerms.vTransmissiveSunlight.rgb = float3( 0.0, 0.0, 0.0 ); + + float flFresnelExponent = 5.0; + float flMetalness = 0.0f; + + #if ( !S_UNLIT ) + { + float4 vLightmapUV = float4( 0.0, 0.0, 0.0, 0.0 ); + #if ( S_OVERRIDE_LIGHTMAP || LIGHTMAP_ON || DYNAMICLIGHTMAP_ON ) + { + vLightmapUV.xy = i.vLightmapUV.xy; + #if ( DYNAMICLIGHTMAP_ON ) + { + vLightmapUV.zw = i.vLightmapUV.zw; + } + #endif + } + #endif + + // Compute lighting + lightingTerms = ComputeLighting( i.vPositionWs.xyz, vNormalWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz, vRoughness.xy, vReflectance.rgb, flFresnelExponent, vLightmapUV.xyzw ); + + #if ( S_OCCLUSION ) + { + float flOcclusion = tex2D( _OcclusionMap, i.vTextureCoords.xy ).g; + lightingTerms.vDiffuse.rgb *= LerpOneTo( flOcclusion, _OcclusionStrength * _OcclusionStrengthDirectDiffuse ); + lightingTerms.vSpecular.rgb *= LerpOneTo( flOcclusion, _OcclusionStrength * _OcclusionStrengthDirectSpecular ); + lightingTerms.vIndirectDiffuse.rgb *= LerpOneTo( flOcclusion, _OcclusionStrength * _OcclusionStrengthIndirectDiffuse ); + lightingTerms.vIndirectSpecular.rgb *= LerpOneTo( flOcclusion, _OcclusionStrength * _OcclusionStrengthIndirectSpecular ); + } + #endif + } + #endif + + // Diffuse + o.vColor.rgb = ( lightingTerms.vDiffuse.rgb + lightingTerms.vIndirectDiffuse.rgb ) * vAlbedo.rgb; + + // Specular + #if ( !S_SPECULAR_NONE ) + { + o.vColor.rgb += lightingTerms.vSpecular.rgb; + } + #endif + o.vColor.rgb += lightingTerms.vIndirectSpecular.rgb; // Indirect specular applies its own fresnel in the forward lighting header file + + // Emission - Unity just adds the emissive term at the end instead of adding it to the diffuse lighting term. Artists may want both options. + float3 vEmission = Emission( i.vTextureCoords.xy ); + o.vColor.rgb += vEmission.rgb; + + #if ( D_HOLOGRAM_FX ) + { + float flNoise = + 0.35 * tex3D(g_tHologramNoise3D, 0.016 * i.vPositionWs.xyz + float3(0.756, 0.159, 0.871)).x + + 0.25 * tex3D(g_tHologramNoise3D, 0.032 * i.vPositionWs.xyz + float3(0.147, 0.051, 0.273)).x + + 0.20 * tex3D(g_tHologramNoise3D, 0.064 * i.vPositionWs.xyz + float3(0.230, 0.700, 0.809)).x + + 0.15 * tex3D(g_tHologramNoise3D, 0.128 * i.vPositionWs.xyz + float3(0.938, 0.117, 0.952)).x + + 0.05 * tex3D(g_tHologramNoise3D, 0.256 * i.vPositionWs.xyz + float3(0.867, 0.363, 0.502)).x; + + float EDGE = 1.0; + float HEIGHT_BIAS = 4.0; + + float flAvgColor = saturate( dot( float3( 0.3333333, 0.3333333, 0.3333333 ), o.vColor.rgb ) ); + + float3 vTransmissionRayWs = i.vPositionWs.xyz - g_vHologramTransmissionSource; + vTransmissionRayWs.y *= HEIGHT_BIAS; + float flTransmissionDistance = length( vTransmissionRayWs.xyz ); + flTransmissionDistance -= g_flHologramTransmissionFrontier * 0.5 * ( flNoise + flAvgColor ); + + clip( g_flHologramTransmissionDistance - flTransmissionDistance ); + float flEdgeAmount = saturate( EDGE * ( g_flHologramTransmissionDistance - flTransmissionDistance ) ); + float3 vCyan = float3( 0.0, 1.0, 1.0 ); + o.vColor.rgb = lerp( vCyan.rgb, o.vColor.rgb, flEdgeAmount ); + } + #endif + + // Dither to fix banding artifacts + o.vColor.rgb += ScreenSpaceDither( i.vPositionPs.xy ); + + return o; + } + ENDCG + } + + //------------------------------------------------------------------------------------------------------------------------------------------------------------- + // Extracts information for lightmapping, GI (emission, albedo, ...) + // This pass it not used during regular rendering. + //------------------------------------------------------------------------------------------------------------------------------------------------------------- + Pass + { + Name "META" + Tags { "LightMode"="Meta" } + + Cull Off + + CGPROGRAM + #pragma vertex vert_meta + #pragma fragment frag_meta + + #pragma shader_feature _EMISSION + #pragma shader_feature _METALLICGLOSSMAP + #pragma shader_feature ___ _DETAIL_MULX2 + + #include "UnityStandardMeta.cginc" + ENDCG + } + + Pass + { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + //Tags { "LightMode" = "ShadowCaster" } + + ZWrite On + ZTest LEqual + ColorMask 0 + Blend Off + Offset 2.5, 1 // http://docs.unity3d.com/Manual/SL-CullAndDepth.html + + CGPROGRAM + #pragma target 4.0 + //#pragma only_renderers d3d11 + //#pragma multi_compile_shadowcaster + + #pragma vertex MainVs + #pragma fragment MainPs + + #include "UnityCG.cginc" + + struct VertexInput + { + float4 vPositionOs : POSITION; + float3 vNormalOs : NORMAL; + }; + + struct VertexOutput + { + float4 vPositionPs : SV_POSITION; + }; + + float3 g_vLightDirWs = float3( 0.0, 0.0, 0.0 ); + + float2 GetShadowOffsets( float3 N, float3 L ) + { + // From: Ignacio Castaño http://the-witness.net/news/2013/09/shadow-mapping-summary-part-1/ + float cos_alpha = saturate( dot( N, L ) ); + float offset_scale_N = sqrt( 1 - ( cos_alpha * cos_alpha ) ); // sin( acos( L·N ) ) + float offset_scale_L = offset_scale_N / cos_alpha; // tan( acos( L·N ) ) + return float2( offset_scale_N, min( 2.0, offset_scale_L ) ); + } + + VertexOutput MainVs( VertexInput i ) + { + VertexOutput o; + + //o.vPositionPs.xyzw = mul( UNITY_MATRIX_MVP, i.vPositionOs.xyzw ); + + float3 vNormalWs = UnityObjectToWorldNormal( i.vNormalOs.xyz ); + float3 vPositionWs = mul( unity_ObjectToWorld, i.vPositionOs.xyzw ).xyz; + float2 vShadowOffsets = GetShadowOffsets( vNormalWs.xyz, g_vLightDirWs.xyz ); + vPositionWs.xyz -= vShadowOffsets.x * vNormalWs.xyz / 100; + vPositionWs.xyz += vShadowOffsets.y * g_vLightDirWs.xyz / 1000; + o.vPositionPs.xyzw = mul( UNITY_MATRIX_MVP, float4( mul( unity_WorldToObject, float4( vPositionWs.xyz, 1.0 ) ).xyz, 1.0 ) ); + return o; + } + + float4 MainPs( VertexOutput i ) : SV_Target + { + return float4( 0.0, 0.0, 0.0, 0.0 ); + } + ENDCG + } + + } + + + CustomEditor "ValveShaderGUI" } diff --git a/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_utils.cginc b/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_utils.cginc index 8bcde76da2b..be5b3e59bf0 100755 --- a/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_utils.cginc +++ b/Assets/ScriptableRenderLoop/ForwardRenderLoop/Shaders/vr_utils.cginc @@ -18,17 +18,17 @@ float g_flTime = 0.0; // Set by ValveCamera.cs //--------------------------------------------------------------------------------------------------------------------------------------------------------- float3 ScreenSpaceDither( float2 vScreenPos ) { - //if ( Blink( 1.5 ) ) - // return 0.0; + //if ( Blink( 1.5 ) ) + // return 0.0; - //if ( ( int )vScreenPos.y == 840 ) - // return 0.3; - //if ( vScreenPos.y < 840 ) - // return 0.0; + //if ( ( int )vScreenPos.y == 840 ) + // return 0.3; + //if ( vScreenPos.y < 840 ) + // return 0.0; - float3 vDither = dot( float2( 171.0, 231.0 ), vScreenPos.xy + g_flTime.xx ).xxx; - vDither.rgb = frac( vDither.rgb / float3( 103.0, 71.0, 97.0 ) ) - float3( 0.5, 0.5, 0.5 ); - return ( vDither.rgb / 255.0 ) * 0.375; + float3 vDither = dot( float2( 171.0, 231.0 ), vScreenPos.xy + g_flTime.xx ).xxx; + vDither.rgb = frac( vDither.rgb / float3( 103.0, 71.0, 97.0 ) ) - float3( 0.5, 0.5, 0.5 ); + return ( vDither.rgb / 255.0 ) * 0.375; } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -36,7 +36,7 @@ float3 ScreenSpaceDither( float2 vScreenPos ) //------------------------------------------------------------------------------------------------------------------------------------------------------------- float Blink( float flNumSeconds ) { - return step( 0.5, frac( g_flTime * 0.5 / flNumSeconds ) ); + return step( 0.5, frac( g_flTime * 0.5 / flNumSeconds ) ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -44,47 +44,47 @@ float Blink( float flNumSeconds ) //------------------------------------------------------------------------------------------------------------------------------------------------------------- float3 Vec3WsToTs( float3 vVectorWs, float3 vNormalWs, float3 vTangentUWs, float3 vTangentVWs ) { - float3 vVectorTs; - vVectorTs.x = dot( vVectorWs.xyz, vTangentUWs.xyz ); - vVectorTs.y = dot( vVectorWs.xyz, vTangentVWs.xyz ); - vVectorTs.z = dot( vVectorWs.xyz, vNormalWs.xyz ); - return vVectorTs.xyz; // Return without normalizing + float3 vVectorTs; + vVectorTs.x = dot( vVectorWs.xyz, vTangentUWs.xyz ); + vVectorTs.y = dot( vVectorWs.xyz, vTangentVWs.xyz ); + vVectorTs.z = dot( vVectorWs.xyz, vNormalWs.xyz ); + return vVectorTs.xyz; // Return without normalizing } float3 Vec3WsToTsNormalized( float3 vVectorWs, float3 vNormalWs, float3 vTangentUWs, float3 vTangentVWs ) { - return normalize( Vec3WsToTs( vVectorWs.xyz, vNormalWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz ) ); + return normalize( Vec3WsToTs( vVectorWs.xyz, vNormalWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz ) ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float3 Vec3TsToWs( float3 vVectorTs, float3 vNormalWs, float3 vTangentUWs, float3 vTangentVWs ) { - float3 vVectorWs; - vVectorWs.xyz = vVectorTs.x * vTangentUWs.xyz; - vVectorWs.xyz += vVectorTs.y * vTangentVWs.xyz; - vVectorWs.xyz += vVectorTs.z * vNormalWs.xyz; - return vVectorWs.xyz; // Return without normalizing + float3 vVectorWs; + vVectorWs.xyz = vVectorTs.x * vTangentUWs.xyz; + vVectorWs.xyz += vVectorTs.y * vTangentVWs.xyz; + vVectorWs.xyz += vVectorTs.z * vNormalWs.xyz; + return vVectorWs.xyz; // Return without normalizing } float3 Vec3TsToWsNormalized( float3 vVectorTs, float3 vNormalWs, float3 vTangentUWs, float3 vTangentVWs ) { - return normalize( Vec3TsToWs( vVectorTs.xyz, vNormalWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz ) ); + return normalize( Vec3TsToWs( vVectorTs.xyz, vNormalWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz ) ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float3 ComputeTangentVFromSign( float3 vNormalWs, float3 vTangentUWs, float flTangentFlip ) { - return normalize( cross( vTangentUWs.xyz, vNormalWs.xyz ) ) * flTangentFlip; + return normalize( cross( vTangentUWs.xyz, vNormalWs.xyz ) ) * flTangentFlip; } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float3 DecodeHemiOctahedronNormal( float2 vHemiOct ) { - // Rotate and scale the unit square back to the center diamond - vHemiOct.xy = ( vHemiOct.xy * 2.0 ) - 1.0; - float2 temp = float2( vHemiOct.x + vHemiOct.y, vHemiOct.x - vHemiOct.y ) * 0.5; - float3 v = float3( temp.xy, 1.0 - abs( temp.x ) - abs( temp.y ) ); - return normalize( v ); + // Rotate and scale the unit square back to the center diamond + vHemiOct.xy = ( vHemiOct.xy * 2.0 ) - 1.0; + float2 temp = float2( vHemiOct.x + vHemiOct.y, vHemiOct.x - vHemiOct.y ) * 0.5; + float3 v = float3( temp.xy, 1.0 - abs( temp.x ) - abs( temp.y ) ); + return normalize( v ); } // Defines ---------------------------------------------------------------------------------------------------------------------------------------------------- @@ -97,12 +97,12 @@ float3 DecodeHemiOctahedronNormal( float2 vHemiOct ) //------------------------------------------------------------------------------------------------------------------------------------------------------------- float MAX( float flA, float flB ) { - return max( flA, flB ); + return max( flA, flB ); } float MIN( float flA, float flB ) { - return min( flA, flB ); + return min( flA, flB ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -110,69 +110,69 @@ float MIN( float flA, float flB ) //------------------------------------------------------------------------------------------------------------------------------------------------------------- float3 NormalizeSafe( float3 vVec ) { - float3 vResult; + float3 vResult; - //[flatten] - if ( length( vVec.xyz ) == 0.0 ) - { - vResult.xyz = float3( 0.0, 0.0, 0.0 ); - } - else - { - vResult.xyz = normalize( vVec.xyz ); - } + //[flatten] + if ( length( vVec.xyz ) == 0.0 ) + { + vResult.xyz = float3( 0.0, 0.0, 0.0 ); + } + else + { + vResult.xyz = normalize( vVec.xyz ); + } - return vResult.xyz; + return vResult.xyz; } float2 NormalizeSafe( float2 vVec ) { - float2 vResult; + float2 vResult; - //[flatten] - if ( length( vVec.xy ) == 0.0 ) - { - vResult.xy = float2( 0.0, 0.0 ); - } - else - { - vResult.xy = normalize( vVec.xy ); - } + //[flatten] + if ( length( vVec.xy ) == 0.0 ) + { + vResult.xy = float2( 0.0, 0.0 ); + } + else + { + vResult.xy = normalize( vVec.xy ); + } - return vResult.xy; + return vResult.xy; } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float ClampToPositive( float flValue ) { - return max( 0.0, flValue ); + return max( 0.0, flValue ); } float2 ClampToPositive( float2 vValue ) { - return max( float2( 0.0, 0.0 ), vValue.xy ); + return max( float2( 0.0, 0.0 ), vValue.xy ); } float3 ClampToPositive( float3 vValue ) { - return max( float3( 0.0, 0.0, 0.0 ), vValue.xyz ); + return max( float3( 0.0, 0.0, 0.0 ), vValue.xyz ); } float4 ClampToPositive( float4 vValue ) { - return max( float4( 0.0, 0.0, 0.0, 0.0 ), vValue.xyzw ); + return max( float4( 0.0, 0.0, 0.0, 0.0 ), vValue.xyzw ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float LinearRamp( float flMin, float flMax, float flInput ) { - return saturate( ( flInput - flMin ) / ( flMax - flMin ) ); + return saturate( ( flInput - flMin ) / ( flMax - flMin ) ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float fsel( float flComparand, float flValGE, float flLT ) { - return ( flComparand >= 0.0 ) ? flValGE : flLT; + return ( flComparand >= 0.0 ) ? flValGE : flLT; } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -180,11 +180,11 @@ float fsel( float flComparand, float flValGE, float flLT ) //------------------------------------------------------------------------------------------------------------------------------------------------------------- float RemapVal( float flOldVal, float flOldMin, float flOldMax, float flNewMin, float flNewMax ) { - // Put the old val into 0-1 range based on the old min/max - float flValNormalized = ( flOldVal - flOldMin ) / ( flOldMax - flOldMin ); + // Put the old val into 0-1 range based on the old min/max + float flValNormalized = ( flOldVal - flOldMin ) / ( flOldMax - flOldMin ); - // Map 0-1 range into new min/max - return ( flValNormalized * ( flNewMax - flNewMin ) ) + flNewMin; + // Map 0-1 range into new min/max + return ( flValNormalized * ( flNewMax - flNewMin ) ) + flNewMin; } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -192,77 +192,77 @@ float RemapVal( float flOldVal, float flOldMin, float flOldMax, float flNewMin, //------------------------------------------------------------------------------------------------------------------------------------------------------------- float RemapValClamped( float flOldVal, float flOldMin, float flOldMax, float flNewMin, float flNewMax ) { - // Put the old val into 0-1 range based on the old min/max - float flValNormalized = saturate( ( flOldVal - flOldMin ) / ( flOldMax - flOldMin ) ); + // Put the old val into 0-1 range based on the old min/max + float flValNormalized = saturate( ( flOldVal - flOldMin ) / ( flOldMax - flOldMin ) ); - // Map 0-1 range into new min/max - return ( flValNormalized * ( flNewMax - flNewMin ) ) + flNewMin; + // Map 0-1 range into new min/max + return ( flValNormalized * ( flNewMax - flNewMin ) ) + flNewMin; } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float4 PackToColor( float4 vValue ) { - return ( ( vValue.xyzw * 0.5 ) + 0.5 ); + return ( ( vValue.xyzw * 0.5 ) + 0.5 ); } float3 PackToColor( float3 vValue ) { - return ( ( vValue.xyz * 0.5 ) + 0.5 ); + return ( ( vValue.xyz * 0.5 ) + 0.5 ); } float2 PackToColor( float2 vValue ) { - return ( ( vValue.xy * 0.5 ) + 0.5 ); + return ( ( vValue.xy * 0.5 ) + 0.5 ); } float PackToColor( float flValue ) { - return ( ( flValue * 0.5 ) + 0.5 ); + return ( ( flValue * 0.5 ) + 0.5 ); } float4 UnpackFromColor( float4 cColor ) { - return ( ( cColor.xyzw * 2.0 ) - 1.0 ); + return ( ( cColor.xyzw * 2.0 ) - 1.0 ); } float3 UnpackFromColor( float3 cColor ) { - return ( ( cColor.xyz * 2.0 ) - 1.0 ); + return ( ( cColor.xyz * 2.0 ) - 1.0 ); } float2 UnpackFromColor( float2 cColor ) { - return ( ( cColor.xy * 2.0 ) - 1.0 ); + return ( ( cColor.xy * 2.0 ) - 1.0 ); } float UnpackFromColor( float flColor ) { - return ( ( flColor * 2.0 ) - 1.0 ); + return ( ( flColor * 2.0 ) - 1.0 ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float Luminance( float3 cColor ) { - // Formula for calculating luminance based on NTSC standard - float3 tmpv = float3( 0.2125, 0.7154, 0.0721 ); - float flLuminance = dot( cColor.rgb, tmpv.rgb ); + // Formula for calculating luminance based on NTSC standard + float3 tmpv = float3( 0.2125, 0.7154, 0.0721 ); + float flLuminance = dot( cColor.rgb, tmpv.rgb ); - // Alternate formula for calculating luminance for linear RGB space (Widely used in color hue and saturation computations) - //float3 tmpv = float3( 0.3086, 0.6094, 0.0820 );; - //float flLuminance = dot( cColor.rgb, tmpv.rgb ); + // Alternate formula for calculating luminance for linear RGB space (Widely used in color hue and saturation computations) + //float3 tmpv = float3( 0.3086, 0.6094, 0.0820 );; + //float flLuminance = dot( cColor.rgb, tmpv.rgb ); - // Simple average - //float3 tmpv = float3( 0.333, 0.333, 0.333 ); - //float flLuminance = dot( cColor.rgb, tmpv.rgb ); + // Simple average + //float3 tmpv = float3( 0.333, 0.333, 0.333 ); + //float flLuminance = dot( cColor.rgb, tmpv.rgb ); - return flLuminance; + return flLuminance; } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float3 SaturateColor( float3 cColor, float flTargetSaturation ) { - float lum = Luminance( cColor.rgb ); - return lerp( float3( lum, lum, lum ), cColor.rgb, flTargetSaturation.xxx ); + float lum = Luminance( cColor.rgb ); + return lerp( float3( lum, lum, lum ), cColor.rgb, flTargetSaturation.xxx ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -270,32 +270,32 @@ float3 SaturateColor( float3 cColor, float flTargetSaturation ) //------------------------------------------------------------------------------------------------------------------------------------------------------------- float LinearToGamma20( float vLinear ) { - return pow( vLinear, 0.5 ); + return pow( vLinear, 0.5 ); } float3 LinearToGamma20( float3 vLinear ) { - return pow( vLinear.rgb, float3( 0.5, 0.5, 0.5 ) ); + return pow( vLinear.rgb, float3( 0.5, 0.5, 0.5 ) ); } float4 LinearToGamma20( float4 vLinear ) { - return float4( pow( vLinear.rgb, float3( 0.5, 0.5, 0.5 ) ), vLinear.a ); + return float4( pow( vLinear.rgb, float3( 0.5, 0.5, 0.5 ) ), vLinear.a ); } float Gamma20ToLinear( float vGamma ) { - return vGamma * vGamma; + return vGamma * vGamma; } float3 Gamma20ToLinear( float3 vGamma ) { - return vGamma.rgb * vGamma.rgb; + return vGamma.rgb * vGamma.rgb; } float4 Gamma20ToLinear( float4 vGamma ) { - return float4( vGamma.rgb * vGamma.rgb, vGamma.a ); + return float4( vGamma.rgb * vGamma.rgb, vGamma.a ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -303,32 +303,32 @@ float4 Gamma20ToLinear( float4 vGamma ) //------------------------------------------------------------------------------------------------------------------------------------------------------------- float LinearToGamma22( float vLinear ) { - return pow( vLinear, 0.454545454545455 ); + return pow( vLinear, 0.454545454545455 ); } float3 LinearToGamma22( float3 vLinear ) { - return pow( vLinear.rgb, float3( 0.454545454545455, 0.454545454545455, 0.454545454545455 ) ); + return pow( vLinear.rgb, float3( 0.454545454545455, 0.454545454545455, 0.454545454545455 ) ); } float4 LinearToGamma22( float4 vLinear ) { - return float4( pow( vLinear.rgb, float3( 0.454545454545455, 0.454545454545455, 0.454545454545455 ) ), vLinear.a ); + return float4( pow( vLinear.rgb, float3( 0.454545454545455, 0.454545454545455, 0.454545454545455 ) ), vLinear.a ); } float Gamma22ToLinear( float vGamma ) { - return pow( vGamma, 2.2 ); + return pow( vGamma, 2.2 ); } float3 Gamma22ToLinear( float3 vGamma ) { - return pow( vGamma.rgb, float3( 2.2, 2.2, 2.2 ) ); + return pow( vGamma.rgb, float3( 2.2, 2.2, 2.2 ) ); } float4 Gamma22ToLinear( float4 vGamma ) { - return float4( pow( vGamma.rgb, float3( 2.2, 2.2, 2.2 ) ), vGamma.a ); + return float4( pow( vGamma.rgb, float3( 2.2, 2.2, 2.2 ) ), vGamma.a ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -336,28 +336,28 @@ float4 Gamma22ToLinear( float4 vGamma ) //------------------------------------------------------------------------------------------------------------------------------------------------------------- float3 SrgbGammaToLinear( float3 vSrgbGammaColor ) { - // 15 asm instructions - float3 vLinearSegment = vSrgbGammaColor.rgb / 12.92; - float3 vExpSegment = pow( ( ( vSrgbGammaColor.rgb / 1.055 ) + ( 0.055 / 1.055 ) ), float3( 2.4, 2.4, 2.4 ) ); + // 15 asm instructions + float3 vLinearSegment = vSrgbGammaColor.rgb / 12.92; + float3 vExpSegment = pow( ( ( vSrgbGammaColor.rgb / 1.055 ) + ( 0.055 / 1.055 ) ), float3( 2.4, 2.4, 2.4 ) ); - float3 vLinearColor = float3( ( vSrgbGammaColor.r <= 0.04045 ) ? vLinearSegment.r : vExpSegment.r, - ( vSrgbGammaColor.g <= 0.04045 ) ? vLinearSegment.g : vExpSegment.g, - ( vSrgbGammaColor.b <= 0.04045 ) ? vLinearSegment.b : vExpSegment.b ); + float3 vLinearColor = float3( ( vSrgbGammaColor.r <= 0.04045 ) ? vLinearSegment.r : vExpSegment.r, + ( vSrgbGammaColor.g <= 0.04045 ) ? vLinearSegment.g : vExpSegment.g, + ( vSrgbGammaColor.b <= 0.04045 ) ? vLinearSegment.b : vExpSegment.b ); - return vLinearColor.rgb; + return vLinearColor.rgb; } float3 SrgbLinearToGamma( float3 vLinearColor ) { - // 15 asm instructions - float3 vLinearSegment = vLinearColor.rgb * 12.92; - float3 vExpSegment = ( 1.055 * pow( vLinearColor.rgb, float3 ( 1.0 / 2.4, 1.0 / 2.4, 1.0 / 2.4 ) ) ) - 0.055; + // 15 asm instructions + float3 vLinearSegment = vLinearColor.rgb * 12.92; + float3 vExpSegment = ( 1.055 * pow( vLinearColor.rgb, float3 ( 1.0 / 2.4, 1.0 / 2.4, 1.0 / 2.4 ) ) ) - 0.055; - float3 vGammaColor = float3( ( vLinearColor.r <= 0.0031308 ) ? vLinearSegment.r : vExpSegment.r, - ( vLinearColor.g <= 0.0031308 ) ? vLinearSegment.g : vExpSegment.g, - ( vLinearColor.b <= 0.0031308 ) ? vLinearSegment.b : vExpSegment.b ); + float3 vGammaColor = float3( ( vLinearColor.r <= 0.0031308 ) ? vLinearSegment.r : vExpSegment.r, + ( vLinearColor.g <= 0.0031308 ) ? vLinearSegment.g : vExpSegment.g, + ( vLinearColor.b <= 0.0031308 ) ? vLinearSegment.b : vExpSegment.b ); - return vGammaColor.rgb; + return vGammaColor.rgb; } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -365,25 +365,25 @@ float3 SrgbLinearToGamma( float3 vLinearColor ) //------------------------------------------------------------------------------------------------------------------------------------------------------------- float4 RGBMEncode( float3 vLinearColor ) { - vLinearColor.rgb = sqrt( vLinearColor.rgb ); - vLinearColor.rgb = saturate( vLinearColor.rgb * ( 1.0 / 6.0 ) ); + vLinearColor.rgb = sqrt( vLinearColor.rgb ); + vLinearColor.rgb = saturate( vLinearColor.rgb * ( 1.0 / 6.0 ) ); - float4 vRGBM; + float4 vRGBM; - vRGBM.a = max( max( vLinearColor.r, vLinearColor.g ), max( vLinearColor.b, 1.0 / 6.0 ) ); - vRGBM.a = ceil( vRGBM.a * 255.0 ) / 255.0; - vRGBM.rgb = vLinearColor.rgb / vRGBM.a; + vRGBM.a = max( max( vLinearColor.r, vLinearColor.g ), max( vLinearColor.b, 1.0 / 6.0 ) ); + vRGBM.a = ceil( vRGBM.a * 255.0 ) / 255.0; + vRGBM.rgb = vLinearColor.rgb / vRGBM.a; - return vRGBM; + return vRGBM; } float3 RGBMDecode( float4 vRGBM ) { - float3 vLinearColor = vRGBM.rgb * 6.0 * vRGBM.a; + float3 vLinearColor = vRGBM.rgb * 6.0 * vRGBM.a; - vLinearColor.rgb *= vLinearColor.rgb; + vLinearColor.rgb *= vLinearColor.rgb; - return vLinearColor.rgb; + return vLinearColor.rgb; } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -391,106 +391,106 @@ float3 RGBMDecode( float4 vRGBM ) //------------------------------------------------------------------------------------------------------------------------------------------------------------- float2 UnpackNormal2D( float2 vNormal ) { - return ( ( vNormal.xy * 2.0 ) - 1.0 ); + return ( ( vNormal.xy * 2.0 ) - 1.0 ); } float2 PackNormal2D( float2 vNormal ) { - return ( ( vNormal.xy * 0.5 ) + 0.5 ); + return ( ( vNormal.xy * 0.5 ) + 0.5 ); } float3 UnpackNormal3D( float3 vNormal ) { - return ( ( vNormal.xyz * 2.0 ) - 1.0 ); + return ( ( vNormal.xyz * 2.0 ) - 1.0 ); } float3 PackNormal3D( float3 vNormal ) { - return ( ( vNormal.xyz * 0.5 ) + 0.5 ); + return ( ( vNormal.xyz * 0.5 ) + 0.5 ); } float3 ComputeNormalFromXY( float2 vXY ) { - float3 vNormalTs; + float3 vNormalTs; - vNormalTs.xy = vXY.xy; - vNormalTs.z = sqrt( saturate( 1.0 - dot( vNormalTs.xy, vNormalTs.xy ) ) ); + vNormalTs.xy = vXY.xy; + vNormalTs.z = sqrt( saturate( 1.0 - dot( vNormalTs.xy, vNormalTs.xy ) ) ); - return vNormalTs.xyz; + return vNormalTs.xyz; } float3 ComputeNormalFromRGTexture( float2 vRGPixel ) { - float3 vNormalTs; + float3 vNormalTs; - vNormalTs.xy = UnpackNormal2D( vRGPixel.rg ); - vNormalTs.z = sqrt( saturate( 1.0 - dot( vNormalTs.xy, vNormalTs.xy ) ) ); + vNormalTs.xy = UnpackNormal2D( vRGPixel.rg ); + vNormalTs.z = sqrt( saturate( 1.0 - dot( vNormalTs.xy, vNormalTs.xy ) ) ); - return vNormalTs.xyz; + return vNormalTs.xyz; } float3 ComputeNormalFromDXT5Texture( float4 vDXT5Pixel ) { - return ComputeNormalFromRGTexture( vDXT5Pixel.ag ); + return ComputeNormalFromRGTexture( vDXT5Pixel.ag ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float3 ConvertSphericalToNormal( float2 vSpherical ) { - float2 sincosTheta; - sincos( vSpherical.x * M_PI, sincosTheta.x, sincosTheta.y ); - float2 sincosPhi = float2( sqrt( 1.0 - ( vSpherical.y * vSpherical.y ) ), vSpherical.y ); + float2 sincosTheta; + sincos( vSpherical.x * M_PI, sincosTheta.x, sincosTheta.y ); + float2 sincosPhi = float2( sqrt( 1.0 - ( vSpherical.y * vSpherical.y ) ), vSpherical.y ); - return float3( sincosTheta.y * sincosPhi.x, sincosTheta.x * sincosPhi.x, sincosPhi.y ); + return float3( sincosTheta.y * sincosPhi.x, sincosTheta.x * sincosPhi.x, sincosPhi.y ); } float2 ConvertNormalToSphericalRGTexture( float3 vNormal ) { - // TODO: atan2 isn't defined at 0,0. Is this a problem? - float flAtanYX = atan2( vNormal.y, vNormal.x ) / M_PI; + // TODO: atan2 isn't defined at 0,0. Is this a problem? + float flAtanYX = atan2( vNormal.y, vNormal.x ) / M_PI; - return PackToColor( float2( flAtanYX, vNormal.z ) ); + return PackToColor( float2( flAtanYX, vNormal.z ) ); } float3 ComputeNormalFromSphericalRGTexture( float2 vRGPixel ) { - float2 vUnpackedSpherical = UnpackNormal2D( vRGPixel.rg ); + float2 vUnpackedSpherical = UnpackNormal2D( vRGPixel.rg ); - return ConvertSphericalToNormal( vUnpackedSpherical.xy ); + return ConvertSphericalToNormal( vUnpackedSpherical.xy ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float3 CalculateCameraToPositionRayWs( float3 vPositionWs ) { - return ( vPositionWs.xyz - g_vCameraPositionWs.xyz ); + return ( vPositionWs.xyz - g_vCameraPositionWs.xyz ); } float3 CalculateCameraToPositionDirWs( float3 vPositionWs ) { - return normalize( CalculateCameraToPositionRayWs( vPositionWs.xyz ) ); + return normalize( CalculateCameraToPositionRayWs( vPositionWs.xyz ) ); } float3 CalculateCameraToPositionRayTs( float3 vPositionWs, float3 vTangentUWs, float3 vTangentVWs, float3 vNormalWs ) { - float3 vViewVectorWs = CalculateCameraToPositionRayWs( vPositionWs.xyz ); // Not normalized - return Vec3WsToTs( vViewVectorWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz, vNormalWs.xyz ); // Not Normalized + float3 vViewVectorWs = CalculateCameraToPositionRayWs( vPositionWs.xyz ); // Not normalized + return Vec3WsToTs( vViewVectorWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz, vNormalWs.xyz ); // Not Normalized } float3 CalculateCameraToPositionDirTs( float3 vPositionWs, float3 vTangentUWs, float3 vTangentVWs, float3 vNormalWs ) { - return normalize( CalculateCameraToPositionRayTs( vPositionWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz, vNormalWs.xyz ) ); + return normalize( CalculateCameraToPositionRayTs( vPositionWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz, vNormalWs.xyz ) ); } float3 CalculateCameraToPositionRayWsMultiview( uint nView, float3 vPositionWs ) { - // TODO! - return CalculateCameraToPositionRayWs( vPositionWs.xyz ); - //return ( vPositionWs.xyz - g_vCameraPositionWsMultiview[ nView ].xyz ); + // TODO! + return CalculateCameraToPositionRayWs( vPositionWs.xyz ); + //return ( vPositionWs.xyz - g_vCameraPositionWsMultiview[ nView ].xyz ); } float3 CalculateCameraToPositionDirWsMultiview( uint nView, float3 vPositionWs ) { - return normalize( CalculateCameraToPositionRayWsMultiview( nView, vPositionWs.xyz ) ); + return normalize( CalculateCameraToPositionRayWsMultiview( nView, vPositionWs.xyz ) ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- @@ -498,53 +498,53 @@ float3 CalculateCameraToPositionDirWsMultiview( uint nView, float3 vPositionWs ) //------------------------------------------------------------------------------------------------------------------------------------------------------------- float3 CalculatePositionToCameraRayWs( float3 vPositionWs ) { - return -CalculateCameraToPositionRayWs( vPositionWs.xyz ); + return -CalculateCameraToPositionRayWs( vPositionWs.xyz ); } float3 CalculatePositionToCameraDirWs( float3 vPositionWs ) { - return -CalculateCameraToPositionDirWs( vPositionWs.xyz ); + return -CalculateCameraToPositionDirWs( vPositionWs.xyz ); } float3 CalculatePositionToCameraRayTs( float3 vPositionWs, float3 vTangentUWs, float3 vTangentVWs, float3 vNormalWs ) { - return -CalculateCameraToPositionRayTs( vPositionWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz, vNormalWs.xyz ); + return -CalculateCameraToPositionRayTs( vPositionWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz, vNormalWs.xyz ); } float3 CalculatePositionToCameraDirTs( float3 vPositionWs, float3 vTangentUWs, float3 vTangentVWs, float3 vNormalWs ) { - return -CalculateCameraToPositionDirTs( vPositionWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz, vNormalWs.xyz ); + return -CalculateCameraToPositionDirTs( vPositionWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz, vNormalWs.xyz ); } float3 CalculatePositionToCameraRayWsMultiview( uint nView, float3 vPositionWs ) { - return -CalculateCameraToPositionRayWsMultiview( nView, vPositionWs.xyz ); + return -CalculateCameraToPositionRayWsMultiview( nView, vPositionWs.xyz ); } float3 CalculatePositionToCameraDirWsMultiview( uint nView, float3 vPositionWs ) { - return -CalculateCameraToPositionDirWsMultiview( nView, vPositionWs.xyz ); + return -CalculateCameraToPositionDirWsMultiview( nView, vPositionWs.xyz ); } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float3 CalculateCameraReflectionDirWs( float3 vPositionWs, float3 vNormalWs ) { - float3 vViewVectorWs = CalculateCameraToPositionDirWs( vPositionWs.xyz ); - float3 vReflectionVectorWs = reflect( vViewVectorWs.xyz, vNormalWs.xyz ); - return vReflectionVectorWs.xyz; + float3 vViewVectorWs = CalculateCameraToPositionDirWs( vPositionWs.xyz ); + float3 vReflectionVectorWs = reflect( vViewVectorWs.xyz, vNormalWs.xyz ); + return vReflectionVectorWs.xyz; } float3 CalculateCameraReflectionDirWsMultiview( uint nView, float3 vPositionWs, float3 vNormalWs ) { - float3 vViewVectorWs = CalculateCameraToPositionDirWsMultiview( nView, vPositionWs.xyz ); - float3 vReflectionVectorWs = reflect( vViewVectorWs.xyz, vNormalWs.xyz ); - return vReflectionVectorWs.xyz; + float3 vViewVectorWs = CalculateCameraToPositionDirWsMultiview( nView, vPositionWs.xyz ); + float3 vReflectionVectorWs = reflect( vViewVectorWs.xyz, vNormalWs.xyz ); + return vReflectionVectorWs.xyz; } //------------------------------------------------------------------------------------------------------------------------------------------------------------- float CalculateDistanceToCamera( float3 vPositionWs ) { - return length( g_vCameraPositionWs.xyz - vPositionWs.xyz ); + return length( g_vCameraPositionWs.xyz - vPositionWs.xyz ); } #endif diff --git a/Assets/ScriptableRenderLoop/ForwardRenderLoop/ValveMenuTools.cs b/Assets/ScriptableRenderLoop/ForwardRenderLoop/ValveMenuTools.cs index cf6551cd3af..5d9f589ba6f 100755 --- a/Assets/ScriptableRenderLoop/ForwardRenderLoop/ValveMenuTools.cs +++ b/Assets/ScriptableRenderLoop/ForwardRenderLoop/ValveMenuTools.cs @@ -1,6 +1,6 @@ -// Copyright (c) Valve Corporation, All rights reserved. ====================================================================================================== +// Copyright (c) Valve Corporation, All rights reserved. ====================================================================================================== -#if ( UNITY_EDITOR ) +#if (UNITY_EDITOR) using UnityEngine; using System; @@ -11,610 +11,610 @@ //--------------------------------------------------------------------------------------------------------------------------------------------------- public class ValveRefreshStandardShader { - static void SaveAssetsAndFreeMemory() - { - UnityEditor.AssetDatabase.SaveAssets(); - GC.Collect(); - UnityEditor.EditorUtility.UnloadUnusedAssetsImmediate(); - UnityEditor.AssetDatabase.Refresh(); - } - - private static void RenameShadersInAllMaterials( string nameBefore, string nameAfter ) - { - Shader destShader = Shader.Find( nameAfter ); - if ( destShader == null ) - { - return; - } - - int i = 0; - int nCount = 0; - foreach ( string s in UnityEditor.AssetDatabase.GetAllAssetPaths() ) - { - if ( s.EndsWith( ".mat", StringComparison.OrdinalIgnoreCase ) ) - { - nCount++; - } - } - - foreach ( string s in UnityEditor.AssetDatabase.GetAllAssetPaths() ) - { - if ( s.EndsWith( ".mat", StringComparison.OrdinalIgnoreCase ) ) - { - i++; - if ( UnityEditor.EditorUtility.DisplayCancelableProgressBar( "Valve Material Conversion", string.Format( "({0} of {1}) {2}", i, nCount, s ), ( float )i / ( float )nCount ) ) - { - break; - } - - Material m = UnityEditor.AssetDatabase.LoadMainAssetAtPath( s ) as Material; - //Debug.Log( m.name + "\n" ); - //Debug.Log( m.shader.name + "\n" ); - if ( m.shader.name.Equals( nameBefore ) ) - { - Debug.Log( "Converting from \"" + nameBefore + "\"-->\"" + nameAfter + "\": " + m.name + "\n" ); - m.shader = destShader; - SaveAssetsAndFreeMemory(); - } - } - } - - //object[] obj = GameObject.FindObjectsOfType( typeof( GameObject ) ); - //foreach ( object o in obj ) - //{ - // GameObject g = ( GameObject )o; - // - // Renderer[] renderers = g.GetComponents(); - // foreach ( Renderer r in renderers ) - // { - // foreach ( Material m in r.sharedMaterials ) - // { - // //Debug.Log( m.name + "\n" ); - // //Debug.Log( m.shader.name + "\n" ); - // if ( m.shader.name.Equals( "Standard" ) ) - // { - // Debug.Log( "Refreshing Standard shader for material: " + m.name + "\n" ); - // m.shader = destShader; - // SaveAssetsAndFreeMemory(); - // } - // } - // } - //} - - UnityEditor.EditorUtility.ClearProgressBar(); - } - - //--------------------------------------------------------------------------------------------------------------------------------------------------- - public static bool StandardToValveSingleMaterial( Material m, Shader srcShader, Shader destShader, bool bRecordUnknownShaders, List unknownShaders ) - { - string n = srcShader.name; - - if ( n.Equals( destShader.name ) ) - { - // Do nothing - //Debug.Log( " Skipping " + m.name + "\n" ); - return false; - } - else if ( n.Equals( "Standard" ) || n.Equals( "Valve/VR/Standard" ) ) - { - // Metallic specular - Debug.Log( " Converting from \"" + n + "\"-->\"" + destShader.name + "\": " + m.name + "\n" ); - - m.shader = destShader; - m.SetOverrideTag( "OriginalShader", n ); - - m.SetInt( "_SpecularMode", 2 ); - m.DisableKeyword( "S_SPECULAR_NONE" ); - m.DisableKeyword( "S_SPECULAR_BLINNPHONG" ); - m.EnableKeyword( "S_SPECULAR_METALLIC" ); - return true; - } - else if ( n.Equals( "Standard (Specular setup)" ) || n.Equals( "Legacy Shaders/Bumped Diffuse" ) || n.Equals( "Legacy Shaders/Transparent/Diffuse" ) ) - { - // Regular specular - Debug.Log( " Converting from \"" + n + "\"-->\"" + destShader.name + "\": " + m.name + "\n" ); - - m.shader = destShader; - m.SetOverrideTag( "OriginalShader", n ); - - m.SetInt( "_SpecularMode", 1 ); - m.DisableKeyword( "S_SPECULAR_NONE" ); - m.EnableKeyword( "S_SPECULAR_BLINNPHONG" ); - m.DisableKeyword( "S_SPECULAR_METALLIC" ); - - if ( n.Equals( "Legacy Shaders/Transparent/Diffuse" ) ) - { - m.SetFloat( "_Mode", 2 ); - m.SetOverrideTag( "RenderType", "Transparent" ); - m.SetInt( "_SrcBlend", ( int )UnityEngine.Rendering.BlendMode.SrcAlpha ); - m.SetInt( "_DstBlend", ( int )UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha ); - m.SetInt( "_ZWrite", 0 ); - m.DisableKeyword( "_ALPHATEST_ON" ); - m.EnableKeyword( "_ALPHABLEND_ON" ); - m.DisableKeyword( "_ALPHAPREMULTIPLY_ON" ); - m.renderQueue = 3000; - } - return true; - } - else if ( n.Equals( "Unlit/Color" ) || n.Equals( "Unlit/Texture" ) || n.Equals( "Unlit/Transparent" ) || n.Equals( "Unlit/Transparent Cutout" ) ) - { - // Unlit - Debug.Log( " Converting from \"" + n + "\"-->\"" + destShader.name + "\": " + m.name + "\n" ); - - m.shader = destShader; - m.SetOverrideTag( "OriginalShader", n ); - m.SetInt( "g_bUnlit", 1 ); - m.EnableKeyword( "S_UNLIT" ); - - m.SetColor( "_EmissionColor", Color.black ); - - if ( n.Equals( "Unlit/Color" ) ) - { - m.SetTexture( "_MainTex", Texture2D.whiteTexture ); - } - else - { - m.SetColor( "_Color", Color.white ); - - if ( n.Equals( "Unlit/Transparent Cutout" ) ) - { - m.SetFloat( "_Mode", 1 ); - m.SetOverrideTag( "RenderType", "TransparentCutout" ); - m.SetInt( "_SrcBlend", ( int )UnityEngine.Rendering.BlendMode.One ); - m.SetInt( "_DstBlend", ( int )UnityEngine.Rendering.BlendMode.Zero ); - m.SetInt( "_ZWrite", 1 ); - m.EnableKeyword( "_ALPHATEST_ON" ); - m.DisableKeyword( "_ALPHABLEND_ON" ); - m.DisableKeyword( "_ALPHAPREMULTIPLY_ON" ); - m.renderQueue = 2450; - } - else if ( n.Equals( "Unlit/Transparent" ) ) - { - m.SetFloat( "_Mode", 2 ); - m.SetOverrideTag( "RenderType", "Transparent" ); - m.SetInt( "_SrcBlend", ( int )UnityEngine.Rendering.BlendMode.SrcAlpha ); - m.SetInt( "_DstBlend", ( int )UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha ); - m.SetInt( "_ZWrite", 0 ); - m.DisableKeyword( "_ALPHATEST_ON" ); - m.EnableKeyword( "_ALPHABLEND_ON" ); - m.DisableKeyword( "_ALPHAPREMULTIPLY_ON" ); - m.renderQueue = 3000; - } - } - - return true; - } - else if ( bRecordUnknownShaders ) - { - // Don't know how to convert, so add to list to spew at the end - Debug.LogWarning( " Don't know how to convert shader \"" + n + "\"" + " in material \"" + m.name + "\"" + "\n" ); - if ( !unknownShaders.Contains( n ) ) - { - unknownShaders.Add( n ); - } - return false; - } - - return false; - } - - //--------------------------------------------------------------------------------------------------------------------------------------------------- - private static void StandardToValve( bool bConvertAllMaterials ) - { - int nNumMaterialsConverted = 0; - Debug.Log( "Begin Convert to Valve Shaders\n\n" + Time.realtimeSinceStartup ); - - Shader destShader = Shader.Find( "Valve/vr_standard" ); - if ( destShader == null ) - { - Debug.LogWarning( " ERROR! Cannot find the \"Valve/vr_standard\" shader!" + "\n" ); - return; - } - - List< string > unknownShaders = new List< string >(); - List< string > alreadyConvertedMaterials = new List(); - - if ( bConvertAllMaterials ) - { - int i = 0; - int nCount = 0; - foreach ( string s in UnityEditor.AssetDatabase.GetAllAssetPaths() ) - { - if ( s.EndsWith( ".mat", StringComparison.OrdinalIgnoreCase ) ) - { - nCount++; - } - } - - foreach ( string s in UnityEditor.AssetDatabase.GetAllAssetPaths() ) - { - if ( s.EndsWith( ".mat", StringComparison.OrdinalIgnoreCase ) ) - { - i++; - if ( UnityEditor.EditorUtility.DisplayCancelableProgressBar( "Valve Material Conversion to Valve Shaders", string.Format( "({0} of {1}) {2}", i, nCount, s ), ( float )i / ( float )nCount ) ) - { - break; - } - - Material m = UnityEditor.AssetDatabase.LoadMainAssetAtPath( s ) as Material; - - if ( ( m == null ) || ( m.shader == null ) ) - continue; - - if ( !m.name.StartsWith( "" ) ) - continue; - - if ( alreadyConvertedMaterials.Contains( m.name ) ) - continue; - alreadyConvertedMaterials.Add( m.name ); - - if ( StandardToValveSingleMaterial( m, m.shader, destShader, true, unknownShaders ) ) - { - nNumMaterialsConverted++; - } - - SaveAssetsAndFreeMemory(); - } - } - } - else - { - int i = 0; - int nCount = 0; - Renderer[] renderers = GameObject.FindObjectsOfType(); - List countedMaterials = new List(); - foreach ( Renderer r in renderers ) - { - if ( r.sharedMaterials == null ) - continue; - - foreach ( Material m in r.sharedMaterials ) - { - if ( ( m == null ) || ( m.shader == null ) ) - continue; - - if ( !m.name.StartsWith( "" ) ) - continue; - - if ( countedMaterials.Contains( m.name ) ) - continue; - countedMaterials.Add( m.name ); - - string assetPath = UnityEditor.AssetDatabase.GetAssetPath( m ); - Material mainAsset = UnityEditor.AssetDatabase.LoadMainAssetAtPath( assetPath ) as Material; - if ( !mainAsset ) - { - Debug.LogError( "Error calling LoadMainAssetAtPath( " + assetPath + " )!\n\n" ); - continue; - } - - nCount++; - } - } - - bool bCanceled = false; - foreach ( Renderer r in renderers ) - { - if ( r.sharedMaterials == null ) - continue; - - foreach ( Material m in r.sharedMaterials ) - { - if ( ( m == null ) || ( m.shader == null ) ) - continue; - - if ( !m.name.StartsWith( "" ) ) - continue; - - if ( alreadyConvertedMaterials.Contains( m.name ) ) - continue; - alreadyConvertedMaterials.Add( m.name ); - - string assetPath = UnityEditor.AssetDatabase.GetAssetPath( m ); - Material mainAsset = UnityEditor.AssetDatabase.LoadMainAssetAtPath( assetPath ) as Material; - if ( !mainAsset ) - { - Debug.LogError( "Error calling LoadMainAssetAtPath( " + assetPath + " )!\n\n" ); - continue; - } - - i++; - if ( UnityEditor.EditorUtility.DisplayCancelableProgressBar( "Valve Material Conversion to Valve Shaders", string.Format( "({0} of {1}) {2}", i, nCount, assetPath ), ( float )i / ( float )nCount ) ) - { - bCanceled = true; - break; - } - - if ( StandardToValveSingleMaterial( mainAsset, mainAsset.shader, destShader, true, unknownShaders ) ) - { - nNumMaterialsConverted++; - } - - SaveAssetsAndFreeMemory(); - } - - if ( bCanceled ) - break; - } - } - - foreach ( string s in unknownShaders ) - { - Debug.LogWarning( " Don't know how to convert shader \"" + s + "\"" + "\n" ); - } - - Debug.Log( "Converted " + nNumMaterialsConverted + " materials to Valve Shaders\n\n" + Time.realtimeSinceStartup ); - - UnityEditor.EditorUtility.ClearProgressBar(); - } - - [UnityEditor.MenuItem( "Valve/Shader Dev/Convert Active Materials to Valve Shaders", false, 50 )] - private static void StandardToValveCurrent() - { - StandardToValve( false ); - } - - [UnityEditor.MenuItem( "Valve/Shader Dev/Convert All Materials to Valve Shaders", false, 100 )] - private static void StandardToValveAll() - { - StandardToValve( true ); - } - - //--------------------------------------------------------------------------------------------------------------------------------------------------- - private static bool ValveToStandardSingleMaterial( Material m, Shader destShaderStandard, Shader destShaderStandardSpecular ) - { - if ( m.shader.name.Equals( "Valve/vr_standard" ) ) - { - if ( ( m.GetTag( "OriginalShader", true ) != null ) && ( m.GetTag( "OriginalShader", true ).Length > 0 ) ) - { - Debug.Log( " Converting from \"" + m.shader.name + "\"-->\"" + m.GetTag( "OriginalShader", true ) + "\": " + m.name + "\n" ); - m.shader = Shader.Find( m.GetTag( "OriginalShader", true ) ); - return true; - } - else if ( m.GetInt( "_SpecularMode" ) == 2 ) - { - // Metallic specular - Debug.Log( " Converting from \"" + m.shader.name + "\"-->\"" + destShaderStandard.name + "\": " + m.name + "\n" ); - m.shader = destShaderStandard; - return true; - } - else - { - // Regular specular - Debug.Log( " Converting from \"" + m.shader.name + "\"-->\"" + destShaderStandardSpecular.name + "\": " + m.name + "\n" ); - m.shader = destShaderStandardSpecular; - return true; - } - } - - return false; - } - - //--------------------------------------------------------------------------------------------------------------------------------------------------- - [UnityEditor.MenuItem( "Valve/Shader Dev/Convert All Materials Back to Unity Shaders", false, 101 )] - private static void ValveToStandard( bool bConvertAllMaterials ) - { - int nNumMaterialsConverted = 0; - Debug.Log( "Begin Convert to Unity Shaders\n\n" + Time.realtimeSinceStartup ); - - Shader destShaderStandard = Shader.Find( "Standard" ); - if ( destShaderStandard == null ) - { - Debug.LogWarning( " ERROR! Cannot find the \"Standard\" shader!" + "\n" ); - return; - } - - Shader destShaderStandardSpecular = Shader.Find( "Standard (Specular setup)" ); - if ( destShaderStandardSpecular == null ) - { - Debug.LogWarning( " ERROR! Cannot find the \"Standard (Specular setup)\" shader!" + "\n" ); - return; - } - - List alreadyConvertedMaterials = new List(); - - if ( bConvertAllMaterials ) - { - int i = 0; - int nCount = 0; - foreach ( string s in UnityEditor.AssetDatabase.GetAllAssetPaths() ) - { - if ( s.EndsWith( ".mat", StringComparison.OrdinalIgnoreCase ) ) - { - nCount++; - } - } - - foreach ( string s in UnityEditor.AssetDatabase.GetAllAssetPaths() ) - { - if ( s.EndsWith( ".mat", StringComparison.OrdinalIgnoreCase ) ) - { - i++; - if ( UnityEditor.EditorUtility.DisplayCancelableProgressBar( "Valve Material Conversion Back to Unity Shaders", string.Format( "({0} of {1}) {2}", i, nCount, s ), ( float )i / ( float )nCount ) ) - { - break; - } - - Material m = UnityEditor.AssetDatabase.LoadMainAssetAtPath( s ) as Material; - if ( ValveToStandardSingleMaterial( m, destShaderStandard, destShaderStandardSpecular ) ) - { - nNumMaterialsConverted++; - } - - SaveAssetsAndFreeMemory(); - } - } - } - else - { - int i = 0; - int nCount = 0; - Renderer[] renderers = GameObject.FindObjectsOfType(); - List countedMaterials = new List(); - foreach ( Renderer r in renderers ) - { - if ( r.sharedMaterials == null ) - continue; - - foreach ( Material m in r.sharedMaterials ) - { - if ( ( m == null ) || ( m.shader == null ) ) - continue; - - if ( !m.name.StartsWith( "" ) ) - continue; - - if ( countedMaterials.Contains( m.name ) ) - continue; - countedMaterials.Add( m.name ); - - string assetPath = UnityEditor.AssetDatabase.GetAssetPath( m ); - Material mainAsset = UnityEditor.AssetDatabase.LoadMainAssetAtPath( assetPath ) as Material; - if ( !mainAsset ) - { - Debug.LogError( "Error calling LoadMainAssetAtPath( " + assetPath + " )!\n\n" ); - continue; - } - - nCount++; - } - } - - bool bCanceled = false; - foreach ( Renderer r in renderers ) - { - if ( r.sharedMaterials == null ) - continue; - - foreach ( Material m in r.sharedMaterials ) - { - if ( ( m == null ) || ( m.shader == null ) ) - continue; - - if ( !m.name.StartsWith( "" ) ) - continue; - - if ( alreadyConvertedMaterials.Contains( m.name ) ) - continue; - alreadyConvertedMaterials.Add( m.name ); - - string assetPath = UnityEditor.AssetDatabase.GetAssetPath( m ); - Material mainAsset = UnityEditor.AssetDatabase.LoadMainAssetAtPath( assetPath ) as Material; - if ( !mainAsset ) - { - Debug.LogError( "Error calling LoadMainAssetAtPath( " + assetPath + " )!\n\n" ); - continue; - } - - i++; - if ( UnityEditor.EditorUtility.DisplayCancelableProgressBar( "Valve Material Conversion Back to Unity Shaders", string.Format( "({0} of {1}) {2}", i, nCount, assetPath ), ( float )i / ( float )nCount ) ) - { - bCanceled = true; - break; - } - - if ( ValveToStandardSingleMaterial( mainAsset, destShaderStandard, destShaderStandardSpecular ) ) - { - nNumMaterialsConverted++; - } - - SaveAssetsAndFreeMemory(); - } - - if ( bCanceled ) - break; - } - } - - Debug.Log( "Converted " + nNumMaterialsConverted + " materials to Unity Shaders\n\n" + Time.realtimeSinceStartup ); - - UnityEditor.EditorUtility.ClearProgressBar(); - } - - [UnityEditor.MenuItem( "Valve/Shader Dev/Convert Active Materials Back to Unity Shaders", false, 51 )] - private static void ValveToStandardCurrent() - { - ValveToStandard( false ); - } - - [UnityEditor.MenuItem( "Valve/Shader Dev/Convert All Materials Back to Unity Shaders", false, 101 )] - private static void ValveToStandardAll() - { - ValveToStandard( true ); - } - - //--------------------------------------------------------------------------------------------------------------------------------------------------- - //[UnityEditor.MenuItem( "Valve/Shader Dev/Refresh Standard", false, 150 )] - //private static void RefreshStandard() - //{ - // RenameShadersInAllMaterials( "Standard", "Standard" ); - //} - - //--------------------------------------------------------------------------------------------------------------------------------------------------- - [UnityEditor.MenuItem( "Valve/Shader Dev/Ensure Consistency in Valve Materials", false, 200 )] - private static void EnsureConsistencyInValveMaterials() - { - int nNumMaterialChanges = 0; - Debug.Log( "Begin consistency check for all Valve materials\n\n" + Time.realtimeSinceStartup ); - - int i = 0; - int nCount = 0; - foreach ( string s in UnityEditor.AssetDatabase.GetAllAssetPaths() ) - { - if ( s.EndsWith( ".mat", StringComparison.OrdinalIgnoreCase ) ) - { - nCount++; - } - } - - foreach ( string s in UnityEditor.AssetDatabase.GetAllAssetPaths() ) - { - if ( s.EndsWith( ".mat", StringComparison.OrdinalIgnoreCase ) ) - { - i++; - if ( UnityEditor.EditorUtility.DisplayCancelableProgressBar( "Consistency check for all Valve materials", string.Format( "({0} of {1}) {2}", i, nCount, s ), ( float )i / ( float )nCount ) ) - { - break; - } - - Material m = UnityEditor.AssetDatabase.LoadMainAssetAtPath( s ) as Material; - if ( m.shader.name.Equals( "Valve/vr_standard" ) ) - { - // Convert old metallic bool to new specular mode - if ( ( m.HasProperty( "g_bEnableMetallic" ) && m.GetInt( "g_bEnableMetallic" ) == 1 ) || ( m.IsKeywordEnabled( "_METALLIC_ENABLED" ) ) ) - { - Debug.Log( " Converting old metallic checkbox to specular mode on material \"" + m.name + "\"\n" ); - m.DisableKeyword( "_METALLIC_ENABLED" ); - m.SetInt( "g_bEnableMetallic", 0 ); - m.SetInt( "_SpecularMode", 2 ); - m.EnableKeyword( "S_SPECULAR_METALLIC" ); - nNumMaterialChanges++; - } - else if ( !m.IsKeywordEnabled( "S_SPECULAR_NONE" ) && !m.IsKeywordEnabled( "S_SPECULAR_BLINNPHONG" ) && !m.IsKeywordEnabled( "S_SPECULAR_METALLIC" ) ) - { - Debug.Log( " Converting old specular to BlinnPhong specular mode on material \"" + m.name + "\"\n" ); - m.SetInt( "_SpecularMode", 1 ); - m.EnableKeyword( "S_SPECULAR_BLINNPHONG" ); - nNumMaterialChanges++; - } - - // If occlusion map is set, enable S_OCCLUSION static combo - if ( m.GetTexture( "_OcclusionMap" ) && !m.IsKeywordEnabled( "S_OCCLUSION" ) ) - { - Debug.Log( " Enabling new occlusion combo S_OCCLUSION on material \"" + m.name + "\"\n" ); - m.EnableKeyword( "S_OCCLUSION" ); - nNumMaterialChanges++; - } - - SaveAssetsAndFreeMemory(); - } - } - } - - Debug.Log( "Consistency check made " + nNumMaterialChanges + " changes to Valve materials\n\n" + Time.realtimeSinceStartup ); - - UnityEditor.EditorUtility.ClearProgressBar(); - } + static void SaveAssetsAndFreeMemory() + { + UnityEditor.AssetDatabase.SaveAssets(); + GC.Collect(); + UnityEditor.EditorUtility.UnloadUnusedAssetsImmediate(); + UnityEditor.AssetDatabase.Refresh(); + } + + private static void RenameShadersInAllMaterials(string nameBefore, string nameAfter) + { + Shader destShader = Shader.Find(nameAfter); + if (destShader == null) + { + return; + } + + int i = 0; + int nCount = 0; + foreach (string s in UnityEditor.AssetDatabase.GetAllAssetPaths()) + { + if (s.EndsWith(".mat", StringComparison.OrdinalIgnoreCase)) + { + nCount++; + } + } + + foreach (string s in UnityEditor.AssetDatabase.GetAllAssetPaths()) + { + if (s.EndsWith(".mat", StringComparison.OrdinalIgnoreCase)) + { + i++; + if (UnityEditor.EditorUtility.DisplayCancelableProgressBar("Valve Material Conversion", string.Format("({0} of {1}) {2}", i, nCount, s), (float)i / (float)nCount)) + { + break; + } + + Material m = UnityEditor.AssetDatabase.LoadMainAssetAtPath(s) as Material; + //Debug.Log( m.name + "\n" ); + //Debug.Log( m.shader.name + "\n" ); + if (m.shader.name.Equals(nameBefore)) + { + Debug.Log("Converting from \"" + nameBefore + "\"-->\"" + nameAfter + "\": " + m.name + "\n"); + m.shader = destShader; + SaveAssetsAndFreeMemory(); + } + } + } + + //object[] obj = GameObject.FindObjectsOfType( typeof( GameObject ) ); + //foreach ( object o in obj ) + //{ + // GameObject g = ( GameObject )o; + // + // Renderer[] renderers = g.GetComponents(); + // foreach ( Renderer r in renderers ) + // { + // foreach ( Material m in r.sharedMaterials ) + // { + // //Debug.Log( m.name + "\n" ); + // //Debug.Log( m.shader.name + "\n" ); + // if ( m.shader.name.Equals( "Standard" ) ) + // { + // Debug.Log( "Refreshing Standard shader for material: " + m.name + "\n" ); + // m.shader = destShader; + // SaveAssetsAndFreeMemory(); + // } + // } + // } + //} + + UnityEditor.EditorUtility.ClearProgressBar(); + } + + //--------------------------------------------------------------------------------------------------------------------------------------------------- + public static bool StandardToValveSingleMaterial(Material m, Shader srcShader, Shader destShader, bool bRecordUnknownShaders, List unknownShaders) + { + string n = srcShader.name; + + if (n.Equals(destShader.name)) + { + // Do nothing + //Debug.Log( " Skipping " + m.name + "\n" ); + return false; + } + else if (n.Equals("Standard") || n.Equals("Valve/VR/Standard")) + { + // Metallic specular + Debug.Log(" Converting from \"" + n + "\"-->\"" + destShader.name + "\": " + m.name + "\n"); + + m.shader = destShader; + m.SetOverrideTag("OriginalShader", n); + + m.SetInt("_SpecularMode", 2); + m.DisableKeyword("S_SPECULAR_NONE"); + m.DisableKeyword("S_SPECULAR_BLINNPHONG"); + m.EnableKeyword("S_SPECULAR_METALLIC"); + return true; + } + else if (n.Equals("Standard (Specular setup)") || n.Equals("Legacy Shaders/Bumped Diffuse") || n.Equals("Legacy Shaders/Transparent/Diffuse")) + { + // Regular specular + Debug.Log(" Converting from \"" + n + "\"-->\"" + destShader.name + "\": " + m.name + "\n"); + + m.shader = destShader; + m.SetOverrideTag("OriginalShader", n); + + m.SetInt("_SpecularMode", 1); + m.DisableKeyword("S_SPECULAR_NONE"); + m.EnableKeyword("S_SPECULAR_BLINNPHONG"); + m.DisableKeyword("S_SPECULAR_METALLIC"); + + if (n.Equals("Legacy Shaders/Transparent/Diffuse")) + { + m.SetFloat("_Mode", 2); + m.SetOverrideTag("RenderType", "Transparent"); + m.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); + m.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); + m.SetInt("_ZWrite", 0); + m.DisableKeyword("_ALPHATEST_ON"); + m.EnableKeyword("_ALPHABLEND_ON"); + m.DisableKeyword("_ALPHAPREMULTIPLY_ON"); + m.renderQueue = 3000; + } + return true; + } + else if (n.Equals("Unlit/Color") || n.Equals("Unlit/Texture") || n.Equals("Unlit/Transparent") || n.Equals("Unlit/Transparent Cutout")) + { + // Unlit + Debug.Log(" Converting from \"" + n + "\"-->\"" + destShader.name + "\": " + m.name + "\n"); + + m.shader = destShader; + m.SetOverrideTag("OriginalShader", n); + m.SetInt("g_bUnlit", 1); + m.EnableKeyword("S_UNLIT"); + + m.SetColor("_EmissionColor", Color.black); + + if (n.Equals("Unlit/Color")) + { + m.SetTexture("_MainTex", Texture2D.whiteTexture); + } + else + { + m.SetColor("_Color", Color.white); + + if (n.Equals("Unlit/Transparent Cutout")) + { + m.SetFloat("_Mode", 1); + m.SetOverrideTag("RenderType", "TransparentCutout"); + m.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + m.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); + m.SetInt("_ZWrite", 1); + m.EnableKeyword("_ALPHATEST_ON"); + m.DisableKeyword("_ALPHABLEND_ON"); + m.DisableKeyword("_ALPHAPREMULTIPLY_ON"); + m.renderQueue = 2450; + } + else if (n.Equals("Unlit/Transparent")) + { + m.SetFloat("_Mode", 2); + m.SetOverrideTag("RenderType", "Transparent"); + m.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); + m.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); + m.SetInt("_ZWrite", 0); + m.DisableKeyword("_ALPHATEST_ON"); + m.EnableKeyword("_ALPHABLEND_ON"); + m.DisableKeyword("_ALPHAPREMULTIPLY_ON"); + m.renderQueue = 3000; + } + } + + return true; + } + else if (bRecordUnknownShaders) + { + // Don't know how to convert, so add to list to spew at the end + Debug.LogWarning(" Don't know how to convert shader \"" + n + "\"" + " in material \"" + m.name + "\"" + "\n"); + if (!unknownShaders.Contains(n)) + { + unknownShaders.Add(n); + } + return false; + } + + return false; + } + + //--------------------------------------------------------------------------------------------------------------------------------------------------- + private static void StandardToValve(bool bConvertAllMaterials) + { + int nNumMaterialsConverted = 0; + Debug.Log("Begin Convert to Valve Shaders\n\n" + Time.realtimeSinceStartup); + + Shader destShader = Shader.Find("Valve/vr_standard"); + if (destShader == null) + { + Debug.LogWarning(" ERROR! Cannot find the \"Valve/vr_standard\" shader!" + "\n"); + return; + } + + List unknownShaders = new List(); + List alreadyConvertedMaterials = new List(); + + if (bConvertAllMaterials) + { + int i = 0; + int nCount = 0; + foreach (string s in UnityEditor.AssetDatabase.GetAllAssetPaths()) + { + if (s.EndsWith(".mat", StringComparison.OrdinalIgnoreCase)) + { + nCount++; + } + } + + foreach (string s in UnityEditor.AssetDatabase.GetAllAssetPaths()) + { + if (s.EndsWith(".mat", StringComparison.OrdinalIgnoreCase)) + { + i++; + if (UnityEditor.EditorUtility.DisplayCancelableProgressBar("Valve Material Conversion to Valve Shaders", string.Format("({0} of {1}) {2}", i, nCount, s), (float)i / (float)nCount)) + { + break; + } + + Material m = UnityEditor.AssetDatabase.LoadMainAssetAtPath(s) as Material; + + if ((m == null) || (m.shader == null)) + continue; + + if (!m.name.StartsWith("")) + continue; + + if (alreadyConvertedMaterials.Contains(m.name)) + continue; + alreadyConvertedMaterials.Add(m.name); + + if (StandardToValveSingleMaterial(m, m.shader, destShader, true, unknownShaders)) + { + nNumMaterialsConverted++; + } + + SaveAssetsAndFreeMemory(); + } + } + } + else + { + int i = 0; + int nCount = 0; + Renderer[] renderers = GameObject.FindObjectsOfType(); + List countedMaterials = new List(); + foreach (Renderer r in renderers) + { + if (r.sharedMaterials == null) + continue; + + foreach (Material m in r.sharedMaterials) + { + if ((m == null) || (m.shader == null)) + continue; + + if (!m.name.StartsWith("")) + continue; + + if (countedMaterials.Contains(m.name)) + continue; + countedMaterials.Add(m.name); + + string assetPath = UnityEditor.AssetDatabase.GetAssetPath(m); + Material mainAsset = UnityEditor.AssetDatabase.LoadMainAssetAtPath(assetPath) as Material; + if (!mainAsset) + { + Debug.LogError("Error calling LoadMainAssetAtPath( " + assetPath + " )!\n\n"); + continue; + } + + nCount++; + } + } + + bool bCanceled = false; + foreach (Renderer r in renderers) + { + if (r.sharedMaterials == null) + continue; + + foreach (Material m in r.sharedMaterials) + { + if ((m == null) || (m.shader == null)) + continue; + + if (!m.name.StartsWith("")) + continue; + + if (alreadyConvertedMaterials.Contains(m.name)) + continue; + alreadyConvertedMaterials.Add(m.name); + + string assetPath = UnityEditor.AssetDatabase.GetAssetPath(m); + Material mainAsset = UnityEditor.AssetDatabase.LoadMainAssetAtPath(assetPath) as Material; + if (!mainAsset) + { + Debug.LogError("Error calling LoadMainAssetAtPath( " + assetPath + " )!\n\n"); + continue; + } + + i++; + if (UnityEditor.EditorUtility.DisplayCancelableProgressBar("Valve Material Conversion to Valve Shaders", string.Format("({0} of {1}) {2}", i, nCount, assetPath), (float)i / (float)nCount)) + { + bCanceled = true; + break; + } + + if (StandardToValveSingleMaterial(mainAsset, mainAsset.shader, destShader, true, unknownShaders)) + { + nNumMaterialsConverted++; + } + + SaveAssetsAndFreeMemory(); + } + + if (bCanceled) + break; + } + } + + foreach (string s in unknownShaders) + { + Debug.LogWarning(" Don't know how to convert shader \"" + s + "\"" + "\n"); + } + + Debug.Log("Converted " + nNumMaterialsConverted + " materials to Valve Shaders\n\n" + Time.realtimeSinceStartup); + + UnityEditor.EditorUtility.ClearProgressBar(); + } + + [UnityEditor.MenuItem("Valve/Shader Dev/Convert Active Materials to Valve Shaders", false, 50)] + private static void StandardToValveCurrent() + { + StandardToValve(false); + } + + [UnityEditor.MenuItem("Valve/Shader Dev/Convert All Materials to Valve Shaders", false, 100)] + private static void StandardToValveAll() + { + StandardToValve(true); + } + + //--------------------------------------------------------------------------------------------------------------------------------------------------- + private static bool ValveToStandardSingleMaterial(Material m, Shader destShaderStandard, Shader destShaderStandardSpecular) + { + if (m.shader.name.Equals("Valve/vr_standard")) + { + if ((m.GetTag("OriginalShader", true) != null) && (m.GetTag("OriginalShader", true).Length > 0)) + { + Debug.Log(" Converting from \"" + m.shader.name + "\"-->\"" + m.GetTag("OriginalShader", true) + "\": " + m.name + "\n"); + m.shader = Shader.Find(m.GetTag("OriginalShader", true)); + return true; + } + else if (m.GetInt("_SpecularMode") == 2) + { + // Metallic specular + Debug.Log(" Converting from \"" + m.shader.name + "\"-->\"" + destShaderStandard.name + "\": " + m.name + "\n"); + m.shader = destShaderStandard; + return true; + } + else + { + // Regular specular + Debug.Log(" Converting from \"" + m.shader.name + "\"-->\"" + destShaderStandardSpecular.name + "\": " + m.name + "\n"); + m.shader = destShaderStandardSpecular; + return true; + } + } + + return false; + } + + //--------------------------------------------------------------------------------------------------------------------------------------------------- + [UnityEditor.MenuItem("Valve/Shader Dev/Convert All Materials Back to Unity Shaders", false, 101)] + private static void ValveToStandard(bool bConvertAllMaterials) + { + int nNumMaterialsConverted = 0; + Debug.Log("Begin Convert to Unity Shaders\n\n" + Time.realtimeSinceStartup); + + Shader destShaderStandard = Shader.Find("Standard"); + if (destShaderStandard == null) + { + Debug.LogWarning(" ERROR! Cannot find the \"Standard\" shader!" + "\n"); + return; + } + + Shader destShaderStandardSpecular = Shader.Find("Standard (Specular setup)"); + if (destShaderStandardSpecular == null) + { + Debug.LogWarning(" ERROR! Cannot find the \"Standard (Specular setup)\" shader!" + "\n"); + return; + } + + List alreadyConvertedMaterials = new List(); + + if (bConvertAllMaterials) + { + int i = 0; + int nCount = 0; + foreach (string s in UnityEditor.AssetDatabase.GetAllAssetPaths()) + { + if (s.EndsWith(".mat", StringComparison.OrdinalIgnoreCase)) + { + nCount++; + } + } + + foreach (string s in UnityEditor.AssetDatabase.GetAllAssetPaths()) + { + if (s.EndsWith(".mat", StringComparison.OrdinalIgnoreCase)) + { + i++; + if (UnityEditor.EditorUtility.DisplayCancelableProgressBar("Valve Material Conversion Back to Unity Shaders", string.Format("({0} of {1}) {2}", i, nCount, s), (float)i / (float)nCount)) + { + break; + } + + Material m = UnityEditor.AssetDatabase.LoadMainAssetAtPath(s) as Material; + if (ValveToStandardSingleMaterial(m, destShaderStandard, destShaderStandardSpecular)) + { + nNumMaterialsConverted++; + } + + SaveAssetsAndFreeMemory(); + } + } + } + else + { + int i = 0; + int nCount = 0; + Renderer[] renderers = GameObject.FindObjectsOfType(); + List countedMaterials = new List(); + foreach (Renderer r in renderers) + { + if (r.sharedMaterials == null) + continue; + + foreach (Material m in r.sharedMaterials) + { + if ((m == null) || (m.shader == null)) + continue; + + if (!m.name.StartsWith("")) + continue; + + if (countedMaterials.Contains(m.name)) + continue; + countedMaterials.Add(m.name); + + string assetPath = UnityEditor.AssetDatabase.GetAssetPath(m); + Material mainAsset = UnityEditor.AssetDatabase.LoadMainAssetAtPath(assetPath) as Material; + if (!mainAsset) + { + Debug.LogError("Error calling LoadMainAssetAtPath( " + assetPath + " )!\n\n"); + continue; + } + + nCount++; + } + } + + bool bCanceled = false; + foreach (Renderer r in renderers) + { + if (r.sharedMaterials == null) + continue; + + foreach (Material m in r.sharedMaterials) + { + if ((m == null) || (m.shader == null)) + continue; + + if (!m.name.StartsWith("")) + continue; + + if (alreadyConvertedMaterials.Contains(m.name)) + continue; + alreadyConvertedMaterials.Add(m.name); + + string assetPath = UnityEditor.AssetDatabase.GetAssetPath(m); + Material mainAsset = UnityEditor.AssetDatabase.LoadMainAssetAtPath(assetPath) as Material; + if (!mainAsset) + { + Debug.LogError("Error calling LoadMainAssetAtPath( " + assetPath + " )!\n\n"); + continue; + } + + i++; + if (UnityEditor.EditorUtility.DisplayCancelableProgressBar("Valve Material Conversion Back to Unity Shaders", string.Format("({0} of {1}) {2}", i, nCount, assetPath), (float)i / (float)nCount)) + { + bCanceled = true; + break; + } + + if (ValveToStandardSingleMaterial(mainAsset, destShaderStandard, destShaderStandardSpecular)) + { + nNumMaterialsConverted++; + } + + SaveAssetsAndFreeMemory(); + } + + if (bCanceled) + break; + } + } + + Debug.Log("Converted " + nNumMaterialsConverted + " materials to Unity Shaders\n\n" + Time.realtimeSinceStartup); + + UnityEditor.EditorUtility.ClearProgressBar(); + } + + [UnityEditor.MenuItem("Valve/Shader Dev/Convert Active Materials Back to Unity Shaders", false, 51)] + private static void ValveToStandardCurrent() + { + ValveToStandard(false); + } + + [UnityEditor.MenuItem("Valve/Shader Dev/Convert All Materials Back to Unity Shaders", false, 101)] + private static void ValveToStandardAll() + { + ValveToStandard(true); + } + + //--------------------------------------------------------------------------------------------------------------------------------------------------- + //[UnityEditor.MenuItem( "Valve/Shader Dev/Refresh Standard", false, 150 )] + //private static void RefreshStandard() + //{ + // RenameShadersInAllMaterials( "Standard", "Standard" ); + //} + + //--------------------------------------------------------------------------------------------------------------------------------------------------- + [UnityEditor.MenuItem("Valve/Shader Dev/Ensure Consistency in Valve Materials", false, 200)] + private static void EnsureConsistencyInValveMaterials() + { + int nNumMaterialChanges = 0; + Debug.Log("Begin consistency check for all Valve materials\n\n" + Time.realtimeSinceStartup); + + int i = 0; + int nCount = 0; + foreach (string s in UnityEditor.AssetDatabase.GetAllAssetPaths()) + { + if (s.EndsWith(".mat", StringComparison.OrdinalIgnoreCase)) + { + nCount++; + } + } + + foreach (string s in UnityEditor.AssetDatabase.GetAllAssetPaths()) + { + if (s.EndsWith(".mat", StringComparison.OrdinalIgnoreCase)) + { + i++; + if (UnityEditor.EditorUtility.DisplayCancelableProgressBar("Consistency check for all Valve materials", string.Format("({0} of {1}) {2}", i, nCount, s), (float)i / (float)nCount)) + { + break; + } + + Material m = UnityEditor.AssetDatabase.LoadMainAssetAtPath(s) as Material; + if (m.shader.name.Equals("Valve/vr_standard")) + { + // Convert old metallic bool to new specular mode + if ((m.HasProperty("g_bEnableMetallic") && m.GetInt("g_bEnableMetallic") == 1) || (m.IsKeywordEnabled("_METALLIC_ENABLED"))) + { + Debug.Log(" Converting old metallic checkbox to specular mode on material \"" + m.name + "\"\n"); + m.DisableKeyword("_METALLIC_ENABLED"); + m.SetInt("g_bEnableMetallic", 0); + m.SetInt("_SpecularMode", 2); + m.EnableKeyword("S_SPECULAR_METALLIC"); + nNumMaterialChanges++; + } + else if (!m.IsKeywordEnabled("S_SPECULAR_NONE") && !m.IsKeywordEnabled("S_SPECULAR_BLINNPHONG") && !m.IsKeywordEnabled("S_SPECULAR_METALLIC")) + { + Debug.Log(" Converting old specular to BlinnPhong specular mode on material \"" + m.name + "\"\n"); + m.SetInt("_SpecularMode", 1); + m.EnableKeyword("S_SPECULAR_BLINNPHONG"); + nNumMaterialChanges++; + } + + // If occlusion map is set, enable S_OCCLUSION static combo + if (m.GetTexture("_OcclusionMap") && !m.IsKeywordEnabled("S_OCCLUSION")) + { + Debug.Log(" Enabling new occlusion combo S_OCCLUSION on material \"" + m.name + "\"\n"); + m.EnableKeyword("S_OCCLUSION"); + nNumMaterialChanges++; + } + + SaveAssetsAndFreeMemory(); + } + } + } + + Debug.Log("Consistency check made " + nNumMaterialChanges + " changes to Valve materials\n\n" + Time.realtimeSinceStartup); + + UnityEditor.EditorUtility.ClearProgressBar(); + } } #endif diff --git a/Assets/ScriptableRenderLoop/ForwardRenderLoop/ValveShaderGUI.cs b/Assets/ScriptableRenderLoop/ForwardRenderLoop/ValveShaderGUI.cs index c34813f3d51..00bf90ccf2d 100755 --- a/Assets/ScriptableRenderLoop/ForwardRenderLoop/ValveShaderGUI.cs +++ b/Assets/ScriptableRenderLoop/ForwardRenderLoop/ValveShaderGUI.cs @@ -1,6 +1,6 @@ // Copyright (c) Valve Corporation, All rights reserved. ====================================================================================================== -#if ( UNITY_EDITOR ) +#if (UNITY_EDITOR) using System; using System.Collections.Generic; @@ -8,558 +8,557 @@ namespace UnityEditor { -internal class ValveShaderGUI : ShaderGUI -{ - public enum BlendMode - { - Opaque, - AlphaTest, - AlphaBlend, - Glass, - Additive - // TODO: MaskedGlass that will require an additional grayscale texture to act as a standard alpha blend mask - } - - public enum SpecularMode - { - None, - BlinnPhong, - Metallic - //Anisotropic - } - - private static class Styles - { - public static GUIStyle optionsButton = "PaneOptions"; - public static GUIContent uvSetLabel = new GUIContent("UV Set"); - public static GUIContent[] uvSetOptions = new GUIContent[] { new GUIContent("UV channel 0"), new GUIContent("UV channel 1") }; - - public static GUIContent unlitText = new GUIContent( "Unlit", "" ); - - public static string emptyTootip = ""; - public static GUIContent albedoText = new GUIContent("Albedo", "Albedo (RGB) and Transparency (A)"); - public static GUIContent alphaCutoffText = new GUIContent("Alpha Cutoff", "Threshold for alpha cutoff"); - public static GUIContent specularMapText = new GUIContent("Specular", "Reflectance (RGB) and Gloss (A)"); - public static GUIContent reflectanceMinText = new GUIContent( "Reflectance Min", "" ); - public static GUIContent reflectanceMaxText = new GUIContent( "Reflectance Max", "" ); - public static GUIContent metallicMapText = new GUIContent( "Metallic", "Metallic (R) and Gloss (A)" ); - public static GUIContent smoothnessText = new GUIContent("Gloss", ""); - public static GUIContent normalMapText = new GUIContent("Normal", "Normal Map"); - //public static GUIContent heightMapText = new GUIContent("Height Map", "Height Map (G)"); - public static GUIContent cubeMapScalarText = new GUIContent( "Cube Map Scalar", "" ); - public static GUIContent occlusionText = new GUIContent("Occlusion", "Occlusion (G)"); - public static GUIContent occlusionStrengthDirectDiffuseText = new GUIContent( "Occlusion Direct Diffuse", "" ); - public static GUIContent occlusionStrengthDirectSpecularText = new GUIContent( "Occlusion Direct Specular", "" ); - public static GUIContent occlusionStrengthIndirectDiffuseText = new GUIContent( "Occlusion Indirect Diffuse", "" ); - public static GUIContent occlusionStrengthIndirectSpecularText = new GUIContent( "Occlusion Indirect Specular", "" ); - public static GUIContent emissionText = new GUIContent( "Emission", "Emission (RGB)" ); - public static GUIContent detailMaskText = new GUIContent("Detail Mask", "Mask for Secondary Maps (A)"); - public static GUIContent detailAlbedoText = new GUIContent("Detail Albedo", "Detail Albedo (RGB) multiplied by 2"); - public static GUIContent detailNormalMapText = new GUIContent("Detail Normal", "Detail Normal Map"); - public static GUIContent overrideLightmapText = new GUIContent( "Override Lightmap", "Requires ValveOverrideLightmap.cs scrip on object" ); - public static GUIContent worldAlignedTextureText = new GUIContent( "World Aligned Texture", "" ); - public static GUIContent worldAlignedTextureSizeText = new GUIContent( "Size", "" ); - public static GUIContent worldAlignedTextureNormalText = new GUIContent( "Normal", "" ); - public static GUIContent worldAlignedTexturePositionText = new GUIContent( "World Position", "" ); - - public static string whiteSpaceString = " "; - public static string primaryMapsText = "Main Maps"; - public static string secondaryMapsText = "Secondary Maps"; - public static string renderingMode = "Rendering Mode"; - public static string specularModeText = "Specular Mode"; - public static GUIContent emissiveWarning = new GUIContent( "Emissive value is animated but the material has not been configured to support emissive. Please make sure the material itself has some amount of emissive." ); - public static GUIContent emissiveColorWarning = new GUIContent ("Ensure emissive color is non-black for emission to have effect."); - public static readonly string[] blendNames = Enum.GetNames (typeof (BlendMode)); - public static readonly string[] specularNames = Enum.GetNames( typeof( SpecularMode ) ); - } - - MaterialProperty unlit = null; - MaterialProperty blendMode = null; - MaterialProperty specularMode = null; - MaterialProperty albedoMap = null; - MaterialProperty albedoColor = null; - MaterialProperty alphaCutoff = null; - MaterialProperty specularMap = null; - MaterialProperty specularColor = null; - MaterialProperty reflectanceMin = null; - MaterialProperty reflectanceMax = null; - MaterialProperty metallicMap = null; - MaterialProperty metallic = null; - MaterialProperty smoothness = null; - MaterialProperty bumpScale = null; - MaterialProperty bumpMap = null; - MaterialProperty cubeMapScalar = null; - MaterialProperty occlusionStrength = null; - MaterialProperty occlusionMap = null; - MaterialProperty occlusionStrengthDirectDiffuse = null; - MaterialProperty occlusionStrengthDirectSpecular = null; - MaterialProperty occlusionStrengthIndirectDiffuse = null; - MaterialProperty occlusionStrengthIndirectSpecular = null; - //MaterialProperty heigtMapScale = null; - //MaterialProperty heightMap = null; - MaterialProperty emissionColorForRendering = null; - MaterialProperty emissionMap = null; - MaterialProperty detailMask = null; - MaterialProperty detailAlbedoMap = null; - MaterialProperty detailNormalMapScale = null; - MaterialProperty detailNormalMap = null; - MaterialProperty uvSetSecondary = null; - MaterialProperty overrideLightmap = null; - MaterialProperty worldAlignedTexture = null; - MaterialProperty worldAlignedTextureSize = null; - MaterialProperty worldAlignedTextureNormal = null; - MaterialProperty worldAlignedTexturePosition = null; - - MaterialEditor m_MaterialEditor; - ColorPickerHDRConfig m_ColorPickerHDRConfig = new ColorPickerHDRConfig(0f, 99f, 1/99f, 3f); - - bool m_FirstTimeApply = true; - - public void FindProperties (MaterialProperty[] props) - { - unlit = FindProperty( "g_bUnlit", props ); - blendMode = FindProperty( "_Mode", props ); - specularMode = FindProperty( "_SpecularMode", props ); - albedoMap = FindProperty( "_MainTex", props ); - albedoColor = FindProperty ("_Color", props); - alphaCutoff = FindProperty ("_Cutoff", props); - specularMap = FindProperty ("_SpecGlossMap", props, false); - specularColor = FindProperty ("_SpecColor", props, false); - reflectanceMin = FindProperty( "g_flReflectanceMin", props ); - reflectanceMax = FindProperty( "g_flReflectanceMax", props ); - metallicMap = FindProperty ("_MetallicGlossMap", props, false); - metallic = FindProperty ("_Metallic", props, false); - smoothness = FindProperty ("_Glossiness", props); - bumpScale = FindProperty ("_BumpScale", props); - bumpMap = FindProperty ("_BumpMap", props); - //heigtMapScale = FindProperty ("_Parallax", props); - //heightMap = FindProperty("_ParallaxMap", props); - cubeMapScalar = FindProperty( "g_flCubeMapScalar", props ); - occlusionStrength = FindProperty ("_OcclusionStrength", props); - occlusionStrengthDirectDiffuse = FindProperty( "_OcclusionStrengthDirectDiffuse", props ); - occlusionStrengthDirectSpecular = FindProperty( "_OcclusionStrengthDirectSpecular", props ); - occlusionStrengthIndirectDiffuse = FindProperty( "_OcclusionStrengthIndirectDiffuse", props ); - occlusionStrengthIndirectSpecular = FindProperty( "_OcclusionStrengthIndirectSpecular", props ); - occlusionMap = FindProperty ("_OcclusionMap", props); - emissionColorForRendering = FindProperty ("_EmissionColor", props); - emissionMap = FindProperty ("_EmissionMap", props); - detailMask = FindProperty ("_DetailMask", props); - detailAlbedoMap = FindProperty ("_DetailAlbedoMap", props); - detailNormalMapScale = FindProperty ("_DetailNormalMapScale", props); - detailNormalMap = FindProperty ("_DetailNormalMap", props); - uvSetSecondary = FindProperty ("_UVSec", props); - overrideLightmap = FindProperty( "g_tOverrideLightmap", props ); - worldAlignedTexture = FindProperty( "g_bWorldAlignedTexture", props, false ); - worldAlignedTextureSize = FindProperty( "g_vWorldAlignedTextureSize", props, worldAlignedTexture != null ); - worldAlignedTextureNormal = FindProperty( "g_vWorldAlignedTextureNormal", props, worldAlignedTexture != null ); - worldAlignedTexturePosition = FindProperty( "g_vWorldAlignedTexturePosition", props, worldAlignedTexture != null ); - } - - public override void OnGUI (MaterialEditor materialEditor, MaterialProperty[] props) - { - FindProperties (props); // MaterialProperties can be animated so we do not cache them but fetch them every event to ensure animated values are updated correctly - m_MaterialEditor = materialEditor; - Material material = materialEditor.target as Material; - - ShaderPropertiesGUI (material); - - // Make sure that needed keywords are set up if we're switching some existing - // material to a standard shader. - if (m_FirstTimeApply) - { - SetMaterialKeywords (material); - m_FirstTimeApply = false; - } - } - - public void Vector3GUI( GUIContent label, MaterialProperty materialProperty ) - { - Vector4 v4 = materialProperty.vectorValue; - Vector3 v3 = EditorGUILayout.Vector3Field( label, new Vector3( v4.x, v4.y, v4.z ) ); - materialProperty.vectorValue = new Vector4( v3.x, v3.y, v3.z, 0.0f ); - } - - public void ShaderPropertiesGUI (Material material) - { - // Use default labelWidth - EditorGUIUtility.labelWidth = 0f; - - // Detect any changes to the material - EditorGUI.BeginChangeCheck(); - { - m_MaterialEditor.ShaderProperty( unlit, Styles.unlitText.text ); - bool bUnlit = ( unlit.floatValue != 0.0f ); - - BlendModePopup(); - - if ( !bUnlit ) - { - SpecularModePopup(); - } - - EditorGUILayout.Space(); - - //GUILayout.Label( Styles.primaryMapsText, EditorStyles.boldLabel ); - DoAlbedoArea( material ); - if ( !bUnlit ) - { - m_MaterialEditor.TexturePropertySingleLine( Styles.normalMapText, bumpMap, bumpMap.textureValue != null ? bumpScale : null ); - DoSpecularMetallicArea( material ); - m_MaterialEditor.TexturePropertySingleLine( Styles.occlusionText, occlusionMap, occlusionMap.textureValue != null ? occlusionStrength : null ); - if ( occlusionMap.textureValue != null ) - { - m_MaterialEditor.ShaderProperty( occlusionStrengthDirectDiffuse, Styles.occlusionStrengthDirectDiffuseText.text, 2 ); - m_MaterialEditor.ShaderProperty( occlusionStrengthDirectSpecular, Styles.occlusionStrengthDirectSpecularText.text, 2 ); - m_MaterialEditor.ShaderProperty( occlusionStrengthIndirectDiffuse, Styles.occlusionStrengthIndirectDiffuseText.text, 2 ); - m_MaterialEditor.ShaderProperty( occlusionStrengthIndirectSpecular, Styles.occlusionStrengthIndirectSpecularText.text, 2 ); - } - m_MaterialEditor.ShaderProperty( cubeMapScalar, Styles.cubeMapScalarText.text, 0 ); - } - //m_MaterialEditor.TexturePropertySingleLine(Styles.heightMapText, heightMap, heightMap.textureValue != null ? heigtMapScale : null); - DoEmissionArea( material ); - m_MaterialEditor.TexturePropertySingleLine( Styles.detailMaskText, detailMask ); - if ( !bUnlit ) - { - m_MaterialEditor.TexturePropertySingleLine( Styles.overrideLightmapText, overrideLightmap ); - } - - EditorGUI.BeginChangeCheck(); // !!! AV - This is from Unity's script. Can these Begin/End calls be nested like this? - m_MaterialEditor.TextureScaleOffsetProperty( albedoMap ); - if ( EditorGUI.EndChangeCheck() ) - { - emissionMap.textureScaleAndOffset = albedoMap.textureScaleAndOffset; // Apply the main texture scale and offset to the emission texture as well, for Enlighten's sake - } - - if ( worldAlignedTexture != null ) - { - m_MaterialEditor.ShaderProperty( worldAlignedTexture, Styles.worldAlignedTextureText.text ); - - if ( worldAlignedTexture.floatValue != 0.0f ) - { - EditorGUI.indentLevel = 2; - Vector3GUI( Styles.worldAlignedTextureSizeText, worldAlignedTextureSize ); - Vector3GUI( Styles.worldAlignedTextureNormalText, worldAlignedTextureNormal ); - Vector3GUI( Styles.worldAlignedTexturePositionText, worldAlignedTexturePosition ); - EditorGUI.indentLevel = 0; - } - } - - EditorGUILayout.Space(); - - // Secondary properties - GUILayout.Label( Styles.secondaryMapsText, EditorStyles.boldLabel ); - m_MaterialEditor.TexturePropertySingleLine( Styles.detailAlbedoText, detailAlbedoMap ); - if ( !bUnlit ) - { - m_MaterialEditor.TexturePropertySingleLine( Styles.detailNormalMapText, detailNormalMap, detailNormalMapScale ); - } - m_MaterialEditor.TextureScaleOffsetProperty( detailAlbedoMap ); - m_MaterialEditor.ShaderProperty( uvSetSecondary, Styles.uvSetLabel.text ); - } - if ( EditorGUI.EndChangeCheck() ) - { - foreach ( var obj in blendMode.targets ) - { - MaterialChanged( ( Material )obj ); - } - - foreach ( var obj in specularMode.targets ) - { - MaterialChanged( ( Material )obj ); - } - } - } - - public override void AssignNewShaderToMaterial (Material material, Shader oldShader, Shader newShader) - { - base.AssignNewShaderToMaterial( material, oldShader, newShader ); - - if ( oldShader == null ) - return; - - // Convert to vr_standard - if ( newShader.name.Equals( "Valve/vr_standard" ) ) - { - List unknownShaders = new List(); - ValveRefreshStandardShader.StandardToValveSingleMaterial( material, oldShader, newShader, false, unknownShaders ); - } - - // Legacy shaders - if ( !oldShader.name.Contains( "Legacy Shaders/" ) ) - return; - - BlendMode blendMode = BlendMode.Opaque; - if (oldShader.name.Contains("/Transparent/Cutout/")) - { - blendMode = BlendMode.AlphaTest; - } - else if (oldShader.name.Contains("/Transparent/")) - { - // NOTE: legacy shaders did not provide physically based transparency - // therefore Fade mode - blendMode = BlendMode.AlphaBlend; - } - material.SetFloat("_Mode", (float)blendMode); - - MaterialChanged(material); - } - - void BlendModePopup() - { - EditorGUI.showMixedValue = blendMode.hasMixedValue; - var mode = (BlendMode)blendMode.floatValue; - - EditorGUI.BeginChangeCheck(); - mode = (BlendMode)EditorGUILayout.Popup(Styles.renderingMode, (int)mode, Styles.blendNames); - if (EditorGUI.EndChangeCheck()) - { - m_MaterialEditor.RegisterPropertyChangeUndo("Rendering Mode"); - blendMode.floatValue = (float)mode; - } - - EditorGUI.showMixedValue = false; - } - - void SpecularModePopup() - { - EditorGUI.showMixedValue = specularMode.hasMixedValue; - var mode = ( SpecularMode )specularMode.floatValue; - - EditorGUI.BeginChangeCheck(); - mode = ( SpecularMode )EditorGUILayout.Popup( Styles.specularModeText, ( int )mode, Styles.specularNames ); - if ( EditorGUI.EndChangeCheck() ) - { - m_MaterialEditor.RegisterPropertyChangeUndo( "Specular Mode" ); - specularMode.floatValue = ( float )mode; - } - - EditorGUI.showMixedValue = false; - } - - void DoAlbedoArea(Material material) - { - m_MaterialEditor.TexturePropertySingleLine(Styles.albedoText, albedoMap, albedoColor); - if (((BlendMode)material.GetFloat("_Mode") == BlendMode.AlphaTest)) - { - m_MaterialEditor.ShaderProperty(alphaCutoff, Styles.alphaCutoffText.text, MaterialEditor.kMiniTextureFieldLabelIndentLevel+1); - } - } - - void DoEmissionArea(Material material) - { - float brightness = emissionColorForRendering.colorValue.maxColorComponent; - bool showHelpBox = !HasValidEmissiveKeyword(material); - bool showEmissionColorAndGIControls = brightness > 0.0f; - - bool hadEmissionTexture = emissionMap.textureValue != null; - - // Texture and HDR color controls - m_MaterialEditor.TexturePropertyWithHDRColor(Styles.emissionText, emissionMap, emissionColorForRendering, m_ColorPickerHDRConfig, false); - - // If texture was assigned and color was black set color to white - if (emissionMap.textureValue != null && !hadEmissionTexture && brightness <= 0f) - emissionColorForRendering.colorValue = Color.white; - - // Dynamic Lightmapping mode - if (showEmissionColorAndGIControls) - { - bool shouldEmissionBeEnabled = ShouldEmissionBeEnabled(emissionColorForRendering.colorValue); - using ( new EditorGUI.DisabledScope( !shouldEmissionBeEnabled ) ) - { - m_MaterialEditor.LightmapEmissionProperty( MaterialEditor.kMiniTextureFieldLabelIndentLevel + 1 ); - } - } - - if (showHelpBox) - { - EditorGUILayout.HelpBox(Styles.emissiveWarning.text, MessageType.Warning); - } - } - - void DoSpecularMetallicArea( Material material ) - { - SpecularMode specularMode = ( SpecularMode )material.GetInt( "_SpecularMode" ); - if ( specularMode == SpecularMode.BlinnPhong ) - { - if (specularMap.textureValue == null) - { - m_MaterialEditor.TexturePropertyTwoLines( Styles.specularMapText, specularMap, specularColor, Styles.smoothnessText, smoothness ); - } - else - { - m_MaterialEditor.TexturePropertySingleLine( Styles.specularMapText, specularMap ); - m_MaterialEditor.ShaderProperty( reflectanceMin, Styles.reflectanceMinText.text, 2 ); - m_MaterialEditor.ShaderProperty( reflectanceMax, Styles.reflectanceMaxText.text, 2 ); - } - } - else if ( specularMode == SpecularMode.Metallic ) - { - if (metallicMap.textureValue == null) - m_MaterialEditor.TexturePropertyTwoLines(Styles.metallicMapText, metallicMap, metallic, Styles.smoothnessText, smoothness); - else - m_MaterialEditor.TexturePropertySingleLine(Styles.metallicMapText, metallicMap); - } - } - - public static void SetupMaterialWithBlendMode(Material material, BlendMode blendMode) - { - switch (blendMode) - { - case BlendMode.Opaque: - material.SetOverrideTag("RenderType", ""); - material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); - material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); - material.SetInt("_ZWrite", 1); - material.DisableKeyword("_ALPHATEST_ON"); - material.DisableKeyword("_ALPHABLEND_ON"); - material.DisableKeyword("_ALPHAPREMULTIPLY_ON"); - material.renderQueue = -1; - break; - case BlendMode.AlphaTest: - material.SetOverrideTag("RenderType", "TransparentCutout"); - material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); - material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); - material.SetInt("_ZWrite", 1); - material.EnableKeyword("_ALPHATEST_ON"); - material.DisableKeyword("_ALPHABLEND_ON"); - material.DisableKeyword("_ALPHAPREMULTIPLY_ON"); - material.renderQueue = 2450; - break; - case BlendMode.AlphaBlend: - material.SetOverrideTag("RenderType", "Transparent"); - material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); - material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); - material.SetInt("_ZWrite", 0); - material.DisableKeyword("_ALPHATEST_ON"); - material.EnableKeyword("_ALPHABLEND_ON"); - material.DisableKeyword("_ALPHAPREMULTIPLY_ON"); - material.renderQueue = 3000; - break; - case BlendMode.Glass: - material.SetOverrideTag("RenderType", "Transparent"); - material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); - material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); - material.SetInt("_ZWrite", 0); - material.DisableKeyword("_ALPHATEST_ON"); - material.DisableKeyword("_ALPHABLEND_ON"); - material.EnableKeyword("_ALPHAPREMULTIPLY_ON"); - material.renderQueue = 3000; - break; - case BlendMode.Additive: - material.SetOverrideTag( "RenderType", "Transparent" ); - material.SetInt( "_SrcBlend", ( int )UnityEngine.Rendering.BlendMode.One ); - material.SetInt( "_DstBlend", ( int )UnityEngine.Rendering.BlendMode.One ); - material.SetInt( "_ZWrite", 0 ); - material.DisableKeyword( "_ALPHATEST_ON" ); - material.DisableKeyword( "_ALPHABLEND_ON" ); - material.DisableKeyword( "_ALPHAPREMULTIPLY_ON" ); - material.renderQueue = 3000; - break; - } - } - - static bool ShouldEmissionBeEnabled (Color color) - { - return color.maxColorComponent > (0.1f / 255.0f); - } - - static void SetMaterialKeywords(Material material) - { - // Note: keywords must be based on Material value not on MaterialProperty due to multi-edit & material animation - // (MaterialProperty value might come from renderer material property block) - SetKeyword (material, "_NORMALMAP", material.GetTexture ("_BumpMap") || material.GetTexture ("_DetailNormalMap")); - - SpecularMode specularMode = ( SpecularMode )material.GetInt( "_SpecularMode" ); - if ( specularMode == SpecularMode.BlinnPhong ) - { - SetKeyword( material, "_SPECGLOSSMAP", material.GetTexture( "_SpecGlossMap" ) ); - } - else if ( specularMode == SpecularMode.Metallic ) - { - SetKeyword( material, "_METALLICGLOSSMAP", material.GetTexture( "_MetallicGlossMap" ) ); - } - SetKeyword( material, "S_SPECULAR_NONE", specularMode == SpecularMode.None ); - SetKeyword( material, "S_SPECULAR_BLINNPHONG", specularMode == SpecularMode.BlinnPhong ); - SetKeyword( material, "S_SPECULAR_METALLIC", specularMode == SpecularMode.Metallic ); - SetKeyword( material, "S_OCCLUSION", material.GetTexture("_OcclusionMap") ); - - SetKeyword( material, "_PARALLAXMAP", material.GetTexture("_ParallaxMap")); - SetKeyword( material, "_DETAIL_MULX2", material.GetTexture("_DetailAlbedoMap") || material.GetTexture("_DetailNormalMap")); - SetKeyword( material, "S_OVERRIDE_LIGHTMAP", material.GetTexture( "g_tOverrideLightmap" ) ); - - SetKeyword( material, "S_UNLIT", material.GetInt( "g_bUnlit" ) == 1 ); - SetKeyword( material, "S_WORLD_ALIGNED_TEXTURE", material.GetInt( "g_bWorldAlignedTexture" ) == 1 ); - - bool shouldEmissionBeEnabled = ShouldEmissionBeEnabled (material.GetColor("_EmissionColor")); - SetKeyword (material, "_EMISSION", shouldEmissionBeEnabled); - - // Setup lightmap emissive flags - MaterialGlobalIlluminationFlags flags = material.globalIlluminationFlags; - if ((flags & (MaterialGlobalIlluminationFlags.BakedEmissive | MaterialGlobalIlluminationFlags.RealtimeEmissive)) != 0) - { - flags &= ~MaterialGlobalIlluminationFlags.EmissiveIsBlack; - if (!shouldEmissionBeEnabled) - flags |= MaterialGlobalIlluminationFlags.EmissiveIsBlack; - - material.globalIlluminationFlags = flags; - } - - // Reflectance constants - float flReflectanceMin = material.GetFloat( "g_flReflectanceMin" ); - float flReflectanceMax = material.GetFloat( "g_flReflectanceMax" ); - material.SetFloat( "g_flReflectanceScale", Mathf.Max( flReflectanceMin, flReflectanceMax ) - flReflectanceMin ); - material.SetFloat( "g_flReflectanceBias", flReflectanceMin ); - - // World aligned texture constants - Vector4 worldAlignedTextureNormal = material.GetVector( "g_vWorldAlignedTextureNormal" ); - Vector3 normal = new Vector3( worldAlignedTextureNormal.x, worldAlignedTextureNormal.y, worldAlignedTextureNormal.z ); - normal = ( normal.sqrMagnitude > 0.0f ) ? normal : Vector3.up; - Vector3 tangentU = Vector3.zero, tangentV = Vector3.zero; - Vector3.OrthoNormalize( ref normal, ref tangentU, ref tangentV ); - material.SetVector( "g_vWorldAlignedNormalTangentU", new Vector4( tangentU.x, tangentU.y, tangentU.z, 0.0f ) ); - material.SetVector( "g_vWorldAlignedNormalTangentV", new Vector4( tangentV.x, tangentV.y, tangentV.z, 0.0f ) ); - - // Static combo skips - if ( material.GetInt( "g_bUnlit" ) == 1 ) - { - material.DisableKeyword( "_NORMALMAP" ); - material.EnableKeyword( "S_SPECULAR_NONE" ); - material.DisableKeyword( "S_SPECULAR_BLINNPHONG" ); - material.DisableKeyword( "S_SPECULAR_METALLIC" ); - material.DisableKeyword( "_METALLICGLOSSMAP" ); - material.DisableKeyword( "_SPECGLOSSMAP" ); - material.DisableKeyword( "S_OVERRIDE_LIGHTMAP" ); - } - } - - bool HasValidEmissiveKeyword (Material material) - { - // Material animation might be out of sync with the material keyword. - // So if the emission support is disabled on the material, but the property blocks have a value that requires it, then we need to show a warning. - // (note: (Renderer MaterialPropertyBlock applies its values to emissionColorForRendering)) - bool hasEmissionKeyword = material.IsKeywordEnabled ("_EMISSION"); - if (!hasEmissionKeyword && ShouldEmissionBeEnabled (emissionColorForRendering.colorValue)) - return false; - else - return true; - } - - static void MaterialChanged(Material material) - { - SetupMaterialWithBlendMode(material, (BlendMode)material.GetFloat("_Mode")); - - SetMaterialKeywords(material); - } - - static void SetKeyword(Material m, string keyword, bool state) - { - if (state) - m.EnableKeyword (keyword); - else - m.DisableKeyword (keyword); - } -} - + internal class ValveShaderGUI : ShaderGUI + { + public enum BlendMode + { + Opaque, + AlphaTest, + AlphaBlend, + Glass, + Additive + // TODO: MaskedGlass that will require an additional grayscale texture to act as a standard alpha blend mask + } + + public enum SpecularMode + { + None, + BlinnPhong, + Metallic + //Anisotropic + } + + private static class Styles + { + public static GUIStyle optionsButton = "PaneOptions"; + public static GUIContent uvSetLabel = new GUIContent("UV Set"); + public static GUIContent[] uvSetOptions = new GUIContent[] { new GUIContent("UV channel 0"), new GUIContent("UV channel 1") }; + + public static GUIContent unlitText = new GUIContent("Unlit", ""); + + public static string emptyTootip = ""; + public static GUIContent albedoText = new GUIContent("Albedo", "Albedo (RGB) and Transparency (A)"); + public static GUIContent alphaCutoffText = new GUIContent("Alpha Cutoff", "Threshold for alpha cutoff"); + public static GUIContent specularMapText = new GUIContent("Specular", "Reflectance (RGB) and Gloss (A)"); + public static GUIContent reflectanceMinText = new GUIContent("Reflectance Min", ""); + public static GUIContent reflectanceMaxText = new GUIContent("Reflectance Max", ""); + public static GUIContent metallicMapText = new GUIContent("Metallic", "Metallic (R) and Gloss (A)"); + public static GUIContent smoothnessText = new GUIContent("Gloss", ""); + public static GUIContent normalMapText = new GUIContent("Normal", "Normal Map"); + //public static GUIContent heightMapText = new GUIContent("Height Map", "Height Map (G)"); + public static GUIContent cubeMapScalarText = new GUIContent("Cube Map Scalar", ""); + public static GUIContent occlusionText = new GUIContent("Occlusion", "Occlusion (G)"); + public static GUIContent occlusionStrengthDirectDiffuseText = new GUIContent("Occlusion Direct Diffuse", ""); + public static GUIContent occlusionStrengthDirectSpecularText = new GUIContent("Occlusion Direct Specular", ""); + public static GUIContent occlusionStrengthIndirectDiffuseText = new GUIContent("Occlusion Indirect Diffuse", ""); + public static GUIContent occlusionStrengthIndirectSpecularText = new GUIContent("Occlusion Indirect Specular", ""); + public static GUIContent emissionText = new GUIContent("Emission", "Emission (RGB)"); + public static GUIContent detailMaskText = new GUIContent("Detail Mask", "Mask for Secondary Maps (A)"); + public static GUIContent detailAlbedoText = new GUIContent("Detail Albedo", "Detail Albedo (RGB) multiplied by 2"); + public static GUIContent detailNormalMapText = new GUIContent("Detail Normal", "Detail Normal Map"); + public static GUIContent overrideLightmapText = new GUIContent("Override Lightmap", "Requires ValveOverrideLightmap.cs scrip on object"); + public static GUIContent worldAlignedTextureText = new GUIContent("World Aligned Texture", ""); + public static GUIContent worldAlignedTextureSizeText = new GUIContent("Size", ""); + public static GUIContent worldAlignedTextureNormalText = new GUIContent("Normal", ""); + public static GUIContent worldAlignedTexturePositionText = new GUIContent("World Position", ""); + + public static string whiteSpaceString = " "; + public static string primaryMapsText = "Main Maps"; + public static string secondaryMapsText = "Secondary Maps"; + public static string renderingMode = "Rendering Mode"; + public static string specularModeText = "Specular Mode"; + public static GUIContent emissiveWarning = new GUIContent("Emissive value is animated but the material has not been configured to support emissive. Please make sure the material itself has some amount of emissive."); + public static GUIContent emissiveColorWarning = new GUIContent("Ensure emissive color is non-black for emission to have effect."); + public static readonly string[] blendNames = Enum.GetNames(typeof(BlendMode)); + public static readonly string[] specularNames = Enum.GetNames(typeof(SpecularMode)); + } + + MaterialProperty unlit = null; + MaterialProperty blendMode = null; + MaterialProperty specularMode = null; + MaterialProperty albedoMap = null; + MaterialProperty albedoColor = null; + MaterialProperty alphaCutoff = null; + MaterialProperty specularMap = null; + MaterialProperty specularColor = null; + MaterialProperty reflectanceMin = null; + MaterialProperty reflectanceMax = null; + MaterialProperty metallicMap = null; + MaterialProperty metallic = null; + MaterialProperty smoothness = null; + MaterialProperty bumpScale = null; + MaterialProperty bumpMap = null; + MaterialProperty cubeMapScalar = null; + MaterialProperty occlusionStrength = null; + MaterialProperty occlusionMap = null; + MaterialProperty occlusionStrengthDirectDiffuse = null; + MaterialProperty occlusionStrengthDirectSpecular = null; + MaterialProperty occlusionStrengthIndirectDiffuse = null; + MaterialProperty occlusionStrengthIndirectSpecular = null; + //MaterialProperty heigtMapScale = null; + //MaterialProperty heightMap = null; + MaterialProperty emissionColorForRendering = null; + MaterialProperty emissionMap = null; + MaterialProperty detailMask = null; + MaterialProperty detailAlbedoMap = null; + MaterialProperty detailNormalMapScale = null; + MaterialProperty detailNormalMap = null; + MaterialProperty uvSetSecondary = null; + MaterialProperty overrideLightmap = null; + MaterialProperty worldAlignedTexture = null; + MaterialProperty worldAlignedTextureSize = null; + MaterialProperty worldAlignedTextureNormal = null; + MaterialProperty worldAlignedTexturePosition = null; + + MaterialEditor m_MaterialEditor; + ColorPickerHDRConfig m_ColorPickerHDRConfig = new ColorPickerHDRConfig(0f, 99f, 1 / 99f, 3f); + + bool m_FirstTimeApply = true; + + public void FindProperties(MaterialProperty[] props) + { + unlit = FindProperty("g_bUnlit", props); + blendMode = FindProperty("_Mode", props); + specularMode = FindProperty("_SpecularMode", props); + albedoMap = FindProperty("_MainTex", props); + albedoColor = FindProperty("_Color", props); + alphaCutoff = FindProperty("_Cutoff", props); + specularMap = FindProperty("_SpecGlossMap", props, false); + specularColor = FindProperty("_SpecColor", props, false); + reflectanceMin = FindProperty("g_flReflectanceMin", props); + reflectanceMax = FindProperty("g_flReflectanceMax", props); + metallicMap = FindProperty("_MetallicGlossMap", props, false); + metallic = FindProperty("_Metallic", props, false); + smoothness = FindProperty("_Glossiness", props); + bumpScale = FindProperty("_BumpScale", props); + bumpMap = FindProperty("_BumpMap", props); + //heigtMapScale = FindProperty ("_Parallax", props); + //heightMap = FindProperty("_ParallaxMap", props); + cubeMapScalar = FindProperty("g_flCubeMapScalar", props); + occlusionStrength = FindProperty("_OcclusionStrength", props); + occlusionStrengthDirectDiffuse = FindProperty("_OcclusionStrengthDirectDiffuse", props); + occlusionStrengthDirectSpecular = FindProperty("_OcclusionStrengthDirectSpecular", props); + occlusionStrengthIndirectDiffuse = FindProperty("_OcclusionStrengthIndirectDiffuse", props); + occlusionStrengthIndirectSpecular = FindProperty("_OcclusionStrengthIndirectSpecular", props); + occlusionMap = FindProperty("_OcclusionMap", props); + emissionColorForRendering = FindProperty("_EmissionColor", props); + emissionMap = FindProperty("_EmissionMap", props); + detailMask = FindProperty("_DetailMask", props); + detailAlbedoMap = FindProperty("_DetailAlbedoMap", props); + detailNormalMapScale = FindProperty("_DetailNormalMapScale", props); + detailNormalMap = FindProperty("_DetailNormalMap", props); + uvSetSecondary = FindProperty("_UVSec", props); + overrideLightmap = FindProperty("g_tOverrideLightmap", props); + worldAlignedTexture = FindProperty("g_bWorldAlignedTexture", props, false); + worldAlignedTextureSize = FindProperty("g_vWorldAlignedTextureSize", props, worldAlignedTexture != null); + worldAlignedTextureNormal = FindProperty("g_vWorldAlignedTextureNormal", props, worldAlignedTexture != null); + worldAlignedTexturePosition = FindProperty("g_vWorldAlignedTexturePosition", props, worldAlignedTexture != null); + } + + public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] props) + { + FindProperties(props); // MaterialProperties can be animated so we do not cache them but fetch them every event to ensure animated values are updated correctly + m_MaterialEditor = materialEditor; + Material material = materialEditor.target as Material; + + ShaderPropertiesGUI(material); + + // Make sure that needed keywords are set up if we're switching some existing + // material to a standard shader. + if (m_FirstTimeApply) + { + SetMaterialKeywords(material); + m_FirstTimeApply = false; + } + } + + public void Vector3GUI(GUIContent label, MaterialProperty materialProperty) + { + Vector4 v4 = materialProperty.vectorValue; + Vector3 v3 = EditorGUILayout.Vector3Field(label, new Vector3(v4.x, v4.y, v4.z)); + materialProperty.vectorValue = new Vector4(v3.x, v3.y, v3.z, 0.0f); + } + + public void ShaderPropertiesGUI(Material material) + { + // Use default labelWidth + EditorGUIUtility.labelWidth = 0f; + + // Detect any changes to the material + EditorGUI.BeginChangeCheck(); + { + m_MaterialEditor.ShaderProperty(unlit, Styles.unlitText.text); + bool bUnlit = (unlit.floatValue != 0.0f); + + BlendModePopup(); + + if (!bUnlit) + { + SpecularModePopup(); + } + + EditorGUILayout.Space(); + + //GUILayout.Label( Styles.primaryMapsText, EditorStyles.boldLabel ); + DoAlbedoArea(material); + if (!bUnlit) + { + m_MaterialEditor.TexturePropertySingleLine(Styles.normalMapText, bumpMap, bumpMap.textureValue != null ? bumpScale : null); + DoSpecularMetallicArea(material); + m_MaterialEditor.TexturePropertySingleLine(Styles.occlusionText, occlusionMap, occlusionMap.textureValue != null ? occlusionStrength : null); + if (occlusionMap.textureValue != null) + { + m_MaterialEditor.ShaderProperty(occlusionStrengthDirectDiffuse, Styles.occlusionStrengthDirectDiffuseText.text, 2); + m_MaterialEditor.ShaderProperty(occlusionStrengthDirectSpecular, Styles.occlusionStrengthDirectSpecularText.text, 2); + m_MaterialEditor.ShaderProperty(occlusionStrengthIndirectDiffuse, Styles.occlusionStrengthIndirectDiffuseText.text, 2); + m_MaterialEditor.ShaderProperty(occlusionStrengthIndirectSpecular, Styles.occlusionStrengthIndirectSpecularText.text, 2); + } + m_MaterialEditor.ShaderProperty(cubeMapScalar, Styles.cubeMapScalarText.text, 0); + } + //m_MaterialEditor.TexturePropertySingleLine(Styles.heightMapText, heightMap, heightMap.textureValue != null ? heigtMapScale : null); + DoEmissionArea(material); + m_MaterialEditor.TexturePropertySingleLine(Styles.detailMaskText, detailMask); + if (!bUnlit) + { + m_MaterialEditor.TexturePropertySingleLine(Styles.overrideLightmapText, overrideLightmap); + } + + EditorGUI.BeginChangeCheck(); // !!! AV - This is from Unity's script. Can these Begin/End calls be nested like this? + m_MaterialEditor.TextureScaleOffsetProperty(albedoMap); + if (EditorGUI.EndChangeCheck()) + { + emissionMap.textureScaleAndOffset = albedoMap.textureScaleAndOffset; // Apply the main texture scale and offset to the emission texture as well, for Enlighten's sake + } + + if (worldAlignedTexture != null) + { + m_MaterialEditor.ShaderProperty(worldAlignedTexture, Styles.worldAlignedTextureText.text); + + if (worldAlignedTexture.floatValue != 0.0f) + { + EditorGUI.indentLevel = 2; + Vector3GUI(Styles.worldAlignedTextureSizeText, worldAlignedTextureSize); + Vector3GUI(Styles.worldAlignedTextureNormalText, worldAlignedTextureNormal); + Vector3GUI(Styles.worldAlignedTexturePositionText, worldAlignedTexturePosition); + EditorGUI.indentLevel = 0; + } + } + + EditorGUILayout.Space(); + + // Secondary properties + GUILayout.Label(Styles.secondaryMapsText, EditorStyles.boldLabel); + m_MaterialEditor.TexturePropertySingleLine(Styles.detailAlbedoText, detailAlbedoMap); + if (!bUnlit) + { + m_MaterialEditor.TexturePropertySingleLine(Styles.detailNormalMapText, detailNormalMap, detailNormalMapScale); + } + m_MaterialEditor.TextureScaleOffsetProperty(detailAlbedoMap); + m_MaterialEditor.ShaderProperty(uvSetSecondary, Styles.uvSetLabel.text); + } + if (EditorGUI.EndChangeCheck()) + { + foreach (var obj in blendMode.targets) + { + MaterialChanged((Material)obj); + } + + foreach (var obj in specularMode.targets) + { + MaterialChanged((Material)obj); + } + } + } + + public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader) + { + base.AssignNewShaderToMaterial(material, oldShader, newShader); + + if (oldShader == null) + return; + + // Convert to vr_standard + if (newShader.name.Equals("Valve/vr_standard")) + { + List unknownShaders = new List(); + ValveRefreshStandardShader.StandardToValveSingleMaterial(material, oldShader, newShader, false, unknownShaders); + } + + // Legacy shaders + if (!oldShader.name.Contains("Legacy Shaders/")) + return; + + BlendMode blendMode = BlendMode.Opaque; + if (oldShader.name.Contains("/Transparent/Cutout/")) + { + blendMode = BlendMode.AlphaTest; + } + else if (oldShader.name.Contains("/Transparent/")) + { + // NOTE: legacy shaders did not provide physically based transparency + // therefore Fade mode + blendMode = BlendMode.AlphaBlend; + } + material.SetFloat("_Mode", (float)blendMode); + + MaterialChanged(material); + } + + void BlendModePopup() + { + EditorGUI.showMixedValue = blendMode.hasMixedValue; + var mode = (BlendMode)blendMode.floatValue; + + EditorGUI.BeginChangeCheck(); + mode = (BlendMode)EditorGUILayout.Popup(Styles.renderingMode, (int)mode, Styles.blendNames); + if (EditorGUI.EndChangeCheck()) + { + m_MaterialEditor.RegisterPropertyChangeUndo("Rendering Mode"); + blendMode.floatValue = (float)mode; + } + + EditorGUI.showMixedValue = false; + } + + void SpecularModePopup() + { + EditorGUI.showMixedValue = specularMode.hasMixedValue; + var mode = (SpecularMode)specularMode.floatValue; + + EditorGUI.BeginChangeCheck(); + mode = (SpecularMode)EditorGUILayout.Popup(Styles.specularModeText, (int)mode, Styles.specularNames); + if (EditorGUI.EndChangeCheck()) + { + m_MaterialEditor.RegisterPropertyChangeUndo("Specular Mode"); + specularMode.floatValue = (float)mode; + } + + EditorGUI.showMixedValue = false; + } + + void DoAlbedoArea(Material material) + { + m_MaterialEditor.TexturePropertySingleLine(Styles.albedoText, albedoMap, albedoColor); + if (((BlendMode)material.GetFloat("_Mode") == BlendMode.AlphaTest)) + { + m_MaterialEditor.ShaderProperty(alphaCutoff, Styles.alphaCutoffText.text, MaterialEditor.kMiniTextureFieldLabelIndentLevel + 1); + } + } + + void DoEmissionArea(Material material) + { + float brightness = emissionColorForRendering.colorValue.maxColorComponent; + bool showHelpBox = !HasValidEmissiveKeyword(material); + bool showEmissionColorAndGIControls = brightness > 0.0f; + + bool hadEmissionTexture = emissionMap.textureValue != null; + + // Texture and HDR color controls + m_MaterialEditor.TexturePropertyWithHDRColor(Styles.emissionText, emissionMap, emissionColorForRendering, m_ColorPickerHDRConfig, false); + + // If texture was assigned and color was black set color to white + if (emissionMap.textureValue != null && !hadEmissionTexture && brightness <= 0f) + emissionColorForRendering.colorValue = Color.white; + + // Dynamic Lightmapping mode + if (showEmissionColorAndGIControls) + { + bool shouldEmissionBeEnabled = ShouldEmissionBeEnabled(emissionColorForRendering.colorValue); + using (new EditorGUI.DisabledScope(!shouldEmissionBeEnabled)) + { + m_MaterialEditor.LightmapEmissionProperty(MaterialEditor.kMiniTextureFieldLabelIndentLevel + 1); + } + } + + if (showHelpBox) + { + EditorGUILayout.HelpBox(Styles.emissiveWarning.text, MessageType.Warning); + } + } + + void DoSpecularMetallicArea(Material material) + { + SpecularMode specularMode = (SpecularMode)material.GetInt("_SpecularMode"); + if (specularMode == SpecularMode.BlinnPhong) + { + if (specularMap.textureValue == null) + { + m_MaterialEditor.TexturePropertyTwoLines(Styles.specularMapText, specularMap, specularColor, Styles.smoothnessText, smoothness); + } + else + { + m_MaterialEditor.TexturePropertySingleLine(Styles.specularMapText, specularMap); + m_MaterialEditor.ShaderProperty(reflectanceMin, Styles.reflectanceMinText.text, 2); + m_MaterialEditor.ShaderProperty(reflectanceMax, Styles.reflectanceMaxText.text, 2); + } + } + else if (specularMode == SpecularMode.Metallic) + { + if (metallicMap.textureValue == null) + m_MaterialEditor.TexturePropertyTwoLines(Styles.metallicMapText, metallicMap, metallic, Styles.smoothnessText, smoothness); + else + m_MaterialEditor.TexturePropertySingleLine(Styles.metallicMapText, metallicMap); + } + } + + public static void SetupMaterialWithBlendMode(Material material, BlendMode blendMode) + { + switch (blendMode) + { + case BlendMode.Opaque: + material.SetOverrideTag("RenderType", ""); + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); + material.SetInt("_ZWrite", 1); + material.DisableKeyword("_ALPHATEST_ON"); + material.DisableKeyword("_ALPHABLEND_ON"); + material.DisableKeyword("_ALPHAPREMULTIPLY_ON"); + material.renderQueue = -1; + break; + case BlendMode.AlphaTest: + material.SetOverrideTag("RenderType", "TransparentCutout"); + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); + material.SetInt("_ZWrite", 1); + material.EnableKeyword("_ALPHATEST_ON"); + material.DisableKeyword("_ALPHABLEND_ON"); + material.DisableKeyword("_ALPHAPREMULTIPLY_ON"); + material.renderQueue = 2450; + break; + case BlendMode.AlphaBlend: + material.SetOverrideTag("RenderType", "Transparent"); + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); + material.SetInt("_ZWrite", 0); + material.DisableKeyword("_ALPHATEST_ON"); + material.EnableKeyword("_ALPHABLEND_ON"); + material.DisableKeyword("_ALPHAPREMULTIPLY_ON"); + material.renderQueue = 3000; + break; + case BlendMode.Glass: + material.SetOverrideTag("RenderType", "Transparent"); + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); + material.SetInt("_ZWrite", 0); + material.DisableKeyword("_ALPHATEST_ON"); + material.DisableKeyword("_ALPHABLEND_ON"); + material.EnableKeyword("_ALPHAPREMULTIPLY_ON"); + material.renderQueue = 3000; + break; + case BlendMode.Additive: + material.SetOverrideTag("RenderType", "Transparent"); + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.One); + material.SetInt("_ZWrite", 0); + material.DisableKeyword("_ALPHATEST_ON"); + material.DisableKeyword("_ALPHABLEND_ON"); + material.DisableKeyword("_ALPHAPREMULTIPLY_ON"); + material.renderQueue = 3000; + break; + } + } + + static bool ShouldEmissionBeEnabled(Color color) + { + return color.maxColorComponent > (0.1f / 255.0f); + } + + static void SetMaterialKeywords(Material material) + { + // Note: keywords must be based on Material value not on MaterialProperty due to multi-edit & material animation + // (MaterialProperty value might come from renderer material property block) + SetKeyword(material, "_NORMALMAP", material.GetTexture("_BumpMap") || material.GetTexture("_DetailNormalMap")); + + SpecularMode specularMode = (SpecularMode)material.GetInt("_SpecularMode"); + if (specularMode == SpecularMode.BlinnPhong) + { + SetKeyword(material, "_SPECGLOSSMAP", material.GetTexture("_SpecGlossMap")); + } + else if (specularMode == SpecularMode.Metallic) + { + SetKeyword(material, "_METALLICGLOSSMAP", material.GetTexture("_MetallicGlossMap")); + } + SetKeyword(material, "S_SPECULAR_NONE", specularMode == SpecularMode.None); + SetKeyword(material, "S_SPECULAR_BLINNPHONG", specularMode == SpecularMode.BlinnPhong); + SetKeyword(material, "S_SPECULAR_METALLIC", specularMode == SpecularMode.Metallic); + SetKeyword(material, "S_OCCLUSION", material.GetTexture("_OcclusionMap")); + + SetKeyword(material, "_PARALLAXMAP", material.GetTexture("_ParallaxMap")); + SetKeyword(material, "_DETAIL_MULX2", material.GetTexture("_DetailAlbedoMap") || material.GetTexture("_DetailNormalMap")); + SetKeyword(material, "S_OVERRIDE_LIGHTMAP", material.GetTexture("g_tOverrideLightmap")); + + SetKeyword(material, "S_UNLIT", material.GetInt("g_bUnlit") == 1); + SetKeyword(material, "S_WORLD_ALIGNED_TEXTURE", material.GetInt("g_bWorldAlignedTexture") == 1); + + bool shouldEmissionBeEnabled = ShouldEmissionBeEnabled(material.GetColor("_EmissionColor")); + SetKeyword(material, "_EMISSION", shouldEmissionBeEnabled); + + // Setup lightmap emissive flags + MaterialGlobalIlluminationFlags flags = material.globalIlluminationFlags; + if ((flags & (MaterialGlobalIlluminationFlags.BakedEmissive | MaterialGlobalIlluminationFlags.RealtimeEmissive)) != 0) + { + flags &= ~MaterialGlobalIlluminationFlags.EmissiveIsBlack; + if (!shouldEmissionBeEnabled) + flags |= MaterialGlobalIlluminationFlags.EmissiveIsBlack; + + material.globalIlluminationFlags = flags; + } + + // Reflectance constants + float flReflectanceMin = material.GetFloat("g_flReflectanceMin"); + float flReflectanceMax = material.GetFloat("g_flReflectanceMax"); + material.SetFloat("g_flReflectanceScale", Mathf.Max(flReflectanceMin, flReflectanceMax) - flReflectanceMin); + material.SetFloat("g_flReflectanceBias", flReflectanceMin); + + // World aligned texture constants + Vector4 worldAlignedTextureNormal = material.GetVector("g_vWorldAlignedTextureNormal"); + Vector3 normal = new Vector3(worldAlignedTextureNormal.x, worldAlignedTextureNormal.y, worldAlignedTextureNormal.z); + normal = (normal.sqrMagnitude > 0.0f) ? normal : Vector3.up; + Vector3 tangentU = Vector3.zero, tangentV = Vector3.zero; + Vector3.OrthoNormalize(ref normal, ref tangentU, ref tangentV); + material.SetVector("g_vWorldAlignedNormalTangentU", new Vector4(tangentU.x, tangentU.y, tangentU.z, 0.0f)); + material.SetVector("g_vWorldAlignedNormalTangentV", new Vector4(tangentV.x, tangentV.y, tangentV.z, 0.0f)); + + // Static combo skips + if (material.GetInt("g_bUnlit") == 1) + { + material.DisableKeyword("_NORMALMAP"); + material.EnableKeyword("S_SPECULAR_NONE"); + material.DisableKeyword("S_SPECULAR_BLINNPHONG"); + material.DisableKeyword("S_SPECULAR_METALLIC"); + material.DisableKeyword("_METALLICGLOSSMAP"); + material.DisableKeyword("_SPECGLOSSMAP"); + material.DisableKeyword("S_OVERRIDE_LIGHTMAP"); + } + } + + bool HasValidEmissiveKeyword(Material material) + { + // Material animation might be out of sync with the material keyword. + // So if the emission support is disabled on the material, but the property blocks have a value that requires it, then we need to show a warning. + // (note: (Renderer MaterialPropertyBlock applies its values to emissionColorForRendering)) + bool hasEmissionKeyword = material.IsKeywordEnabled("_EMISSION"); + if (!hasEmissionKeyword && ShouldEmissionBeEnabled(emissionColorForRendering.colorValue)) + return false; + else + return true; + } + + static void MaterialChanged(Material material) + { + SetupMaterialWithBlendMode(material, (BlendMode)material.GetFloat("_Mode")); + + SetMaterialKeywords(material); + } + + static void SetKeyword(Material m, string keyword, bool state) + { + if (state) + m.EnableKeyword(keyword); + else + m.DisableKeyword(keyword); + } + } } // namespace UnityEditor #endif diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.asset b/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.asset index 62f9adc9bb2..103746b9e0a 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.asset +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.asset @@ -11,3 +11,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 558064ecdbf6b6742892d699acb39aed, type: 3} m_Name: HDRenderLoop m_EditorClassIdentifier: + m_TextureSettings: + spotCookieSize: 128 + pointCookieSize: 512 + reflectionCubemapSize: 128 diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.asset.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.asset.meta index b56d278dba7..69f7454039b 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.asset.meta +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.asset.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 guid: 2400b74f5ce370c4481e5dc417d03703 -timeCreated: 1474923798 +timeCreated: 1476885643 licenseType: Pro NativeFormatImporter: userData: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.cs index 2022c2bced2..55b5caf3fc9 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.cs +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.cs @@ -1,43 +1,86 @@ -using UnityEngine; -using System.Collections; using UnityEngine.Rendering; +using UnityEngine.Experimental.Rendering; using System.Collections.Generic; using System; using UnityEditor; -namespace UnityEngine.ScriptableRenderLoop +namespace UnityEngine.Experimental.ScriptableRenderLoop { - [ExecuteInEditMode] + [ExecuteInEditMode] // This HDRenderLoop assume linear lighting. Don't work with gamma. - public class HDRenderLoop : ScriptableRenderLoop - { - #if UNITY_EDITOR + public class HDRenderLoop : ScriptableRenderLoop + { + private const string k_HDRenderLoopPath = "Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.asset"; + + // Must be in sync with DebugViewMaterial.hlsl + public enum DebugViewVaryingMode + { + Depth = 1, + TexCoord0 = 2, + TexCoord1 = 3, + TexCoord2 = 4, + VertexTangentWS = 5, + VertexBitangentWS = 6, + VertexNormalWS = 7, + VertexColor = 8, + } + + // Must be in sync with DebugViewMaterial.hlsl + public enum DebugViewGbufferMode + { + Depth = 9, + BakeDiffuseLighting = 10, + } + + public class DebugParameters + { + // Material Debugging + public int debugViewMaterial = 0; + + // Rendering debugging + public bool displayOpaqueObjects = true; + public bool displayTransparentObjects = true; + + public bool useForwardRenderingOnly = false; + + public bool enableTonemap = true; + public float exposure = 0; + } + + private DebugParameters m_DebugParameters = new DebugParameters(); + public DebugParameters debugParameters + { + get { return m_DebugParameters; } + } + + #if UNITY_EDITOR [MenuItem("Renderloop/CreateHDRenderLoop")] - static void CreateHDRenderLoop() - { - var instance = ScriptableObject.CreateInstance(); - UnityEditor.AssetDatabase.CreateAsset(instance, "Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoop.asset"); - } - #endif + static void CreateHDRenderLoop() + { + var instance = ScriptableObject.CreateInstance(); + UnityEditor.AssetDatabase.CreateAsset(instance, k_HDRenderLoopPath); + } + + #endif public class GBufferManager { public const int MaxGbuffer = 8; - public void SetBufferDescription(int index, string stringID, RenderTextureFormat inFormat, RenderTextureReadWrite inSRGBWrite) + public void SetBufferDescription(int index, string stringId, RenderTextureFormat inFormat, RenderTextureReadWrite inSRGBWrite) { - IDs[index] = Shader.PropertyToID(stringID); + IDs[index] = Shader.PropertyToID(stringId); RTIDs[index] = new RenderTargetIdentifier(IDs[index]); formats[index] = inFormat; sRGBWrites[index] = inSRGBWrite; } - public void InitGBuffers(CommandBuffer cmd) + public void InitGBuffers(int width, int height, CommandBuffer cmd) { for (int index = 0; index < gbufferCount; index++) { - /* RTs[index] = */ cmd.GetTemporaryRT(IDs[index], -1, -1, 0, FilterMode.Point, formats[index], sRGBWrites[index]); + /* RTs[index] = */ cmd.GetTemporaryRT(IDs[index], width, height, 0, FilterMode.Point, formats[index], sRGBWrites[index]); } } @@ -62,7 +105,7 @@ public void BindBuffers(Material mat) } */ - + public int gbufferCount { get; set; } int[] IDs = new int[MaxGbuffer]; RenderTargetIdentifier[] RTIDs = new RenderTargetIdentifier[MaxGbuffer]; @@ -71,74 +114,111 @@ public void BindBuffers(Material mat) } public const int MaxLights = 32; + public const int MaxProbes = 32; + + //[SerializeField] + //ShadowSettings m_ShadowSettings = ShadowSettings.Default; + //ShadowRenderPass m_ShadowPass; - //[SerializeField] - //ShadowSettings m_ShadowSettings = ShadowSettings.Default; - //ShadowRenderPass m_ShadowPass; + [SerializeField] + TextureSettings m_TextureSettings = TextureSettings.Default; Material m_DeferredMaterial; Material m_FinalPassMaterial; - GBufferManager gbufferManager = new GBufferManager(); + // TODO: Find a way to automatically create/iterate through these kind of class + Lit.RenderLoop m_LitRenderLoop; + + // Debug + Material m_DebugViewMaterialGBuffer; + + GBufferManager m_gbufferManager = new GBufferManager(); static private int s_CameraColorBuffer; static private int s_CameraDepthBuffer; static private ComputeBuffer s_punctualLightList; + static private ComputeBuffer s_envLightList; + + private TextureCacheCubemap m_cubeReflTexArray; - void OnEnable() - { - Rebuild (); - } + void OnEnable() + { + Rebuild(); + } - void OnValidate() - { - Rebuild (); - } + void OnValidate() + { + Rebuild(); + } void ClearComputeBuffers() { if (s_punctualLightList != null) s_punctualLightList.Release(); + + if (s_envLightList != null) + s_envLightList.Release(); } - void Rebuild() - { - ClearComputeBuffers(); + Material CreateEngineMaterial(string shaderPath) + { + var mat = new Material(Shader.Find(shaderPath) as Shader) + { + hideFlags = HideFlags.HideAndDontSave + }; + return mat; + } - gbufferManager.gbufferCount = 4; - gbufferManager.SetBufferDescription(0, "_CameraGBufferTexture0", RenderTextureFormat.ARGB32, RenderTextureReadWrite.sRGB); // Store diffuse color => sRGB - gbufferManager.SetBufferDescription(1, "_CameraGBufferTexture1", RenderTextureFormat.ARGB32, RenderTextureReadWrite.Linear); - gbufferManager.SetBufferDescription(2, "_CameraGBufferTexture2", RenderTextureFormat.ARGB2101010, RenderTextureReadWrite.Linear); // Store normal => higher precision - gbufferManager.SetBufferDescription(3, "_CameraGBufferTexture3", RenderTextureFormat.RGB111110Float, RenderTextureReadWrite.Linear); + public override void Rebuild() + { + ClearComputeBuffers(); s_CameraColorBuffer = Shader.PropertyToID("_CameraColorTexture"); s_CameraDepthBuffer = Shader.PropertyToID("_CameraDepthTexture"); s_punctualLightList = new ComputeBuffer(MaxLights, System.Runtime.InteropServices.Marshal.SizeOf(typeof(PunctualLightData))); + s_envLightList = new ComputeBuffer(MaxLights, System.Runtime.InteropServices.Marshal.SizeOf(typeof(EnvLightData))); - Shader deferredMaterial = Shader.Find("Hidden/Unity/LightingDeferred") as Shader; - m_DeferredMaterial = new Material(deferredMaterial); - m_DeferredMaterial.hideFlags = HideFlags.HideAndDontSave; + m_DeferredMaterial = CreateEngineMaterial("Hidden/Unity/LightingDeferred"); + m_FinalPassMaterial = CreateEngineMaterial("Hidden/Unity/FinalPass"); - Shader finalPassShader = Shader.Find("Hidden/Unity/FinalPass") as Shader; - m_FinalPassMaterial = new Material(finalPassShader); - m_FinalPassMaterial.hideFlags = HideFlags.HideAndDontSave; + // Debug + m_DebugViewMaterialGBuffer = CreateEngineMaterial("Hidden/Unity/DebugViewMaterialGBuffer"); // m_ShadowPass = new ShadowRenderPass (m_ShadowSettings); - } + + m_cubeReflTexArray = new TextureCacheCubemap(); + m_cubeReflTexArray.AllocTextureArray(32, (int)m_TextureSettings.reflectionCubemapSize, TextureFormat.BC6H, true); + + // Init Lit material buffer - GBuffer and init + m_LitRenderLoop = new Lit.RenderLoop(); // Our object can be garbacge collected, so need to be allocate here + + m_gbufferManager.gbufferCount = m_LitRenderLoop.GetGBufferCount(); + for (int gbufferIndex = 0; gbufferIndex < m_gbufferManager.gbufferCount; ++gbufferIndex) + { + m_gbufferManager.SetBufferDescription(gbufferIndex, "_CameraGBufferTexture" + gbufferIndex, m_LitRenderLoop.RTFormat[gbufferIndex], m_LitRenderLoop.RTReadWrite[gbufferIndex]); + } + + m_LitRenderLoop.Rebuild(); + } void OnDisable() { + m_LitRenderLoop.OnDisable(); + s_punctualLightList.Release(); + s_envLightList.Release(); if (m_DeferredMaterial) DestroyImmediate(m_DeferredMaterial); if (m_FinalPassMaterial) DestroyImmediate(m_FinalPassMaterial); + + m_cubeReflTexArray.Release(); } void InitAndClearBuffer(Camera camera, RenderLoop renderLoop) { - // We clear only the depth buffer, no need to clear the various color buffer as we overwrite them. + // We clear only the depth buffer, no need to clear the various color buffer as we overwrite them. // Clear depth/stencil and init buffers { var cmd = new CommandBuffer(); @@ -149,9 +229,12 @@ void InitAndClearBuffer(Camera camera, RenderLoop renderLoop) // Also we manage ourself the HDR format, here allocating fp16 directly. // With scriptable render loop we can allocate temporary RT in a command buffer, they will not be release with ExecuteCommandBuffer // These temporary surface are release automatically at the end of the scriptable renderloop if not release explicitly - cmd.GetTemporaryRT(s_CameraColorBuffer, -1, -1, 0, FilterMode.Point, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Default); - cmd.GetTemporaryRT(s_CameraDepthBuffer, -1, -1, 24, FilterMode.Point, RenderTextureFormat.Depth); - gbufferManager.InitGBuffers(cmd); + int w = camera.pixelWidth; + int h = camera.pixelHeight; + + cmd.GetTemporaryRT(s_CameraColorBuffer, w, h, 0, FilterMode.Point, RenderTextureFormat.ARGBHalf, RenderTextureReadWrite.Default); + cmd.GetTemporaryRT(s_CameraDepthBuffer, w, h, 24, FilterMode.Point, RenderTextureFormat.Depth); + m_gbufferManager.InitGBuffers(w, h, cmd); cmd.SetRenderTarget(new RenderTargetIdentifier(s_CameraColorBuffer), new RenderTargetIdentifier(s_CameraDepthBuffer)); cmd.ClearRenderTarget(true, false, new Color(0, 0, 0, 0)); @@ -178,7 +261,7 @@ void InitAndClearBuffer(Camera camera, RenderLoop renderLoop) var cmd = new CommandBuffer(); cmd.name = "Clear GBuffer"; // Write into the Camera Depth buffer - cmd.SetRenderTarget(gbufferManager.GetGBuffers(cmd), new RenderTargetIdentifier(s_CameraDepthBuffer)); + cmd.SetRenderTarget(m_gbufferManager.GetGBuffers(cmd), new RenderTargetIdentifier(s_CameraDepthBuffer)); // Clear everything // TODO: Clear is not required for color as we rewrite everything, will save performance. cmd.ClearRenderTarget(false, true, new Color(0, 0, 0, 0)); @@ -189,52 +272,125 @@ void InitAndClearBuffer(Camera camera, RenderLoop renderLoop) // END TEMP } + void RenderOpaqueRenderList(CullResults cull, Camera camera, RenderLoop renderLoop, string passName) + { + if (!debugParameters.displayOpaqueObjects) + return; + + DrawRendererSettings settings = new DrawRendererSettings(cull, camera, new ShaderPassName(passName)); + settings.sorting.sortOptions = SortOptions.SortByMaterialThenMesh; + settings.inputCullingOptions.SetQueuesOpaque(); + renderLoop.DrawRenderers(ref settings); + } + + void RenderTransparentRenderList(CullResults cull, Camera camera, RenderLoop renderLoop, string passName) + { + if (!debugParameters.displayTransparentObjects) + return; + + var settings = new DrawRendererSettings(cull, camera, new ShaderPassName(passName)) + { + rendererConfiguration = RendererConfiguration.PerObjectLightProbe | RendererConfiguration.PerObjectReflectionProbes, + sorting = { sortOptions = SortOptions.SortByMaterialThenMesh } + }; + settings.inputCullingOptions.SetQueuesTransparent(); + renderLoop.DrawRenderers(ref settings); + } + void RenderGBuffer(CullResults cull, Camera camera, RenderLoop renderLoop) - { - // setup GBuffer for rendering - var cmd = new CommandBuffer(); - cmd.name = "GBuffer Pass"; - cmd.SetRenderTarget(gbufferManager.GetGBuffers(cmd), new RenderTargetIdentifier(s_CameraDepthBuffer)); + { + if (debugParameters.useForwardRenderingOnly) + { + return ; + } + + // setup GBuffer for rendering + var cmd = new CommandBuffer { name = "GBuffer Pass" }; + cmd.SetRenderTarget(m_gbufferManager.GetGBuffers(cmd), new RenderTargetIdentifier(s_CameraDepthBuffer)); renderLoop.ExecuteCommandBuffer(cmd); - cmd.Dispose(); + cmd.Dispose(); - // render opaque objects into GBuffer - DrawRendererSettings settings = new DrawRendererSettings(cull, camera, new ShaderPassName("GBuffer")); - settings.sorting.sortOptions = SortOptions.SortByMaterialThenMesh; - settings.inputCullingOptions.SetQueuesOpaque(); - renderLoop.DrawRenderers(ref settings); - } + // render opaque objects into GBuffer + RenderOpaqueRenderList(cull, camera, renderLoop, "GBuffer"); + } - Matrix4x4 GetViewProjectionMatrix(Camera camera) + void RenderDebugViewMaterial(CullResults cull, Camera camera, RenderLoop renderLoop) { - // Calculate inverse projection matrix as this is not done by Unity - Matrix4x4 view = camera.worldToCameraMatrix; - Matrix4x4 proj = camera.projectionMatrix; + // Render Opaque forward + { + var cmd = new CommandBuffer { name = "DebugView Material Mode Pass" }; + cmd.SetRenderTarget(new RenderTargetIdentifier(s_CameraColorBuffer), new RenderTargetIdentifier(s_CameraDepthBuffer)); + cmd.ClearRenderTarget(true, true, new Color(0, 0, 0, 0)); + renderLoop.ExecuteCommandBuffer(cmd); + cmd.Dispose(); + + Shader.SetGlobalInt("_DebugViewMaterial", (int)debugParameters.debugViewMaterial); + + RenderOpaqueRenderList(cull, camera, renderLoop, "DebugViewMaterial"); + } + + // Render GBUffer opaque + { + Vector4 screenSize = ComputeScreenSize(camera); + m_DebugViewMaterialGBuffer.SetVector("_ScreenSize", screenSize); + m_DebugViewMaterialGBuffer.SetFloat("_DebugViewMaterial", (float)debugParameters.debugViewMaterial); + + // m_gbufferManager.BindBuffers(m_DeferredMaterial); + // TODO: Bind depth textures + var cmd = new CommandBuffer { name = "GBuffer Debug Pass" }; + cmd.Blit(null, new RenderTargetIdentifier(s_CameraColorBuffer), m_DebugViewMaterialGBuffer, 0); + renderLoop.ExecuteCommandBuffer(cmd); + cmd.Dispose(); + } + // Render forward transparent + { + RenderTransparentRenderList(cull, camera, renderLoop, "DebugViewMaterial"); + } + + // Last blit + { + var cmd = new CommandBuffer { name = "Blit DebugView Material Debug" }; + cmd.Blit(s_CameraColorBuffer, BuiltinRenderTextureType.CameraTarget); + renderLoop.ExecuteCommandBuffer(cmd); + cmd.Dispose(); + } + } + + Matrix4x4 GetViewProjectionMatrix(Camera camera) + { // The actual projection matrix used in shaders is actually massaged a bit to work across all platforms // (different Z value ranges etc.) - Matrix4x4 gpuProj = GL.GetGPUProjectionMatrix(proj, false); - Matrix4x4 gpuVP = gpuProj * view; + var gpuProj = GL.GetGPUProjectionMatrix(camera.projectionMatrix, false); + var gpuVP = gpuProj * camera.worldToCameraMatrix; - return camera.projectionMatrix * camera.worldToCameraMatrix; + return gpuVP; + } + + Vector4 ComputeScreenSize(Camera camera) + { + return new Vector4(camera.pixelWidth, camera.pixelHeight, 1.0f / camera.pixelWidth, 1.0f / camera.pixelHeight); } void RenderDeferredLighting(Camera camera, RenderLoop renderLoop) { - Matrix4x4 invViewProj = GetViewProjectionMatrix(camera).inverse; + if (debugParameters.useForwardRenderingOnly) + { + return; + } + + // Bind material data + m_LitRenderLoop.Bind(); + + var invViewProj = GetViewProjectionMatrix(camera).inverse; m_DeferredMaterial.SetMatrix("_InvViewProjMatrix", invViewProj); - Vector4 screenSize = new Vector4(); - screenSize.x = camera.pixelWidth; - screenSize.y = camera.pixelHeight; - screenSize.z = 1.0f / camera.pixelWidth; - screenSize.w = 1.0f / camera.pixelHeight; + var screenSize = ComputeScreenSize(camera); m_DeferredMaterial.SetVector("_ScreenSize", screenSize); - // gbufferManager.BindBuffers(m_DeferredMaterial); + // m_gbufferManager.BindBuffers(m_DeferredMaterial); // TODO: Bind depth textures - var cmd = new CommandBuffer(); - cmd.name = "Deferred Ligthing Pass"; + var cmd = new CommandBuffer { name = "Deferred Ligthing Pass" }; cmd.Blit(null, new RenderTargetIdentifier(s_CameraColorBuffer), m_DeferredMaterial, 0); renderLoop.ExecuteCommandBuffer(cmd); cmd.Dispose(); @@ -242,355 +398,267 @@ void RenderDeferredLighting(Camera camera, RenderLoop renderLoop) void RenderForward(CullResults cullResults, Camera camera, RenderLoop renderLoop) { - // setup GBuffer for rendering - var cmd = new CommandBuffer(); - cmd.name = "Forward Pass"; + // Bind material data + m_LitRenderLoop.Bind(); + + var cmd = new CommandBuffer { name = "Forward Pass" }; cmd.SetRenderTarget(new RenderTargetIdentifier(s_CameraColorBuffer), new RenderTargetIdentifier(s_CameraDepthBuffer)); renderLoop.ExecuteCommandBuffer(cmd); cmd.Dispose(); - DrawRendererSettings settings = new DrawRendererSettings(cullResults, camera, new ShaderPassName("Forward")); - settings.rendererConfiguration = RendererConfiguration.ConfigureOneLightProbePerRenderer | RendererConfiguration.ConfigureReflectionProbesProbePerRenderer; - settings.sorting.sortOptions = SortOptions.SortByMaterialThenMesh; + if (debugParameters.useForwardRenderingOnly) + { + RenderOpaqueRenderList(cullResults, camera, renderLoop, "Forward"); + } - renderLoop.DrawRenderers(ref settings); + RenderTransparentRenderList(cullResults, camera, renderLoop, "Forward"); } + void RenderForwardUnlit(CullResults cullResults, Camera camera, RenderLoop renderLoop) + { + // Bind material data + m_LitRenderLoop.Bind(); + + var cmd = new CommandBuffer { name = "Forward Unlit Pass" }; + cmd.SetRenderTarget(new RenderTargetIdentifier(s_CameraColorBuffer), new RenderTargetIdentifier(s_CameraDepthBuffer)); + renderLoop.ExecuteCommandBuffer(cmd); + cmd.Dispose(); + + RenderOpaqueRenderList(cullResults, camera, renderLoop, "ForwardUnlit"); + RenderTransparentRenderList(cullResults, camera, renderLoop, "ForwardUnlit"); + } + void FinalPass(RenderLoop renderLoop) { - CommandBuffer cmd = new CommandBuffer(); - cmd.name = "FinalPass"; + // Those could be tweakable for the neutral tonemapper, but in the case of the LookDev we don't need that + const float blackIn = 0.02f; + const float whiteIn = 10.0f; + const float blackOut = 0.0f; + const float whiteOut = 10.0f; + const float whiteLevel = 5.3f; + const float whiteClip = 10.0f; + const float dialUnits = 20.0f; + const float halfDialUnits = dialUnits * 0.5f; + + // converting from artist dial units to easy shader-lerps (0-1) + var tonemapCoeff1 = new Vector4((blackIn * dialUnits) + 1.0f, (blackOut * halfDialUnits) + 1.0f, (whiteIn / dialUnits), (1.0f - (whiteOut / dialUnits))); + var tonemapCoeff2 = new Vector4(0.0f, 0.0f, whiteLevel, whiteClip / halfDialUnits); + + m_FinalPassMaterial.SetVector("_ToneMapCoeffs1", tonemapCoeff1); + m_FinalPassMaterial.SetVector("_ToneMapCoeffs2", tonemapCoeff2); + + m_FinalPassMaterial.SetFloat("_EnableToneMap", debugParameters.enableTonemap ? 1.0f : 0.0f); + m_FinalPassMaterial.SetFloat("_Exposure", debugParameters.exposure); + + var cmd = new CommandBuffer { name = "FinalPass" }; + // Resolve our HDR texture to CameraTarget. cmd.Blit(s_CameraColorBuffer, BuiltinRenderTextureType.CameraTarget, m_FinalPassMaterial, 0); renderLoop.ExecuteCommandBuffer(cmd); cmd.Dispose(); } - //--------------------------------------------------------------------------------------------------------------------------------------------------- + void NewFrame() + { + // update texture caches + m_cubeReflTexArray.NewFrame(); + } - void UpdatePunctualLights(ActiveLight[] activeLights) + //--------------------------------------------------------------------------------------------------------------------------------------------------- + + void UpdatePunctualLights(VisibleLight[] visibleLights) { - int punctualLightCount = 0; - List lights = new List(); + var lights = new List(); - for (int lightIndex = 0; lightIndex < Math.Min(activeLights.Length, MaxLights); lightIndex++) + for (int lightIndex = 0; lightIndex < Math.Min(visibleLights.Length, MaxLights); lightIndex++) { - ActiveLight light = activeLights[lightIndex]; - if (light.lightType == LightType.Spot || light.lightType == LightType.Point) - { - PunctualLightData l = new PunctualLightData(); + var light = visibleLights[lightIndex]; + if (light.lightType != LightType.Spot && light.lightType != LightType.Point && light.lightType != LightType.Directional) + continue; + var l = new PunctualLightData(); + + if (light.lightType == LightType.Directional) + { + l.useDistanceAttenuation = 0.0f; + // positionWS store Light direction for directional and is opposite to the forward direction + l.positionWS = -light.light.transform.forward; + l.invSqrAttenuationRadius = 0.0f; + } + else + { + l.useDistanceAttenuation = 1.0f; l.positionWS = light.light.transform.position; - l.invSqrAttenuationRadius = 1.0f / (light.range * light.range); - - // Correct intensity calculation (Different from Unity) - float lightColorR = light.light.intensity * Mathf.GammaToLinearSpace(light.light.color.r); - float lightColorG = light.light.intensity * Mathf.GammaToLinearSpace(light.light.color.g); - float lightColorB = light.light.intensity * Mathf.GammaToLinearSpace(light.light.color.b); - - l.color = new Vec3(lightColorR, lightColorG, lightColorB); - - // Light direction is opposite to the forward direction... - l.forward = -light.light.transform.forward; - // CAUTION: For IES as we inverse forward maybe this will need rotation. - l.up = light.light.transform.up; - l.right = light.light.transform.right; - - l.diffuseScale = 1.0f; - l.specularScale = 1.0f; - l.shadowDimmer = 1.0f; - - if (light.lightType == LightType.Spot) - { - float spotAngle = light.light.spotAngle; - AdditionalLightData additionalLightData = light.light.GetComponent(); - float innerConePercent = AdditionalLightData.GetInnerSpotPercent01(additionalLightData); - float cosSpotOuterHalfAngle = Mathf.Clamp(Mathf.Cos(spotAngle * 0.5f * Mathf.Deg2Rad), 0.0f, 1.0f); - float cosSpotInnerHalfAngle = Mathf.Clamp(Mathf.Cos(spotAngle * 0.5f * innerConePercent * Mathf.Deg2Rad), 0.0f, 1.0f); // inner cone - - float val = Mathf.Max(0.001f, (cosSpotInnerHalfAngle - cosSpotOuterHalfAngle)); - l.angleScale = 1.0f / val; - l.angleOffset = -cosSpotOuterHalfAngle * l.angleScale; - } - else - { - // 1.0f, 2.0f are neutral value allowing GetAngleAnttenuation in shader code to return 1.0 - l.angleScale = 1.0f; - l.angleOffset = 2.0f; - } - - lights.Add(l); - punctualLightCount++; + l.invSqrAttenuationRadius = 1.0f / (light.range * light.range); } + + // Correct intensity calculation (Different from Unity) + var lightColorR = light.light.intensity * Mathf.GammaToLinearSpace(light.light.color.r); + var lightColorG = light.light.intensity * Mathf.GammaToLinearSpace(light.light.color.g); + var lightColorB = light.light.intensity * Mathf.GammaToLinearSpace(light.light.color.b); + + l.color.Set(lightColorR, lightColorG, lightColorB); + + l.forward = light.light.transform.forward; // Note: Light direction is oriented backward (-Z) + l.up = light.light.transform.up; + l.right = light.light.transform.right; + + l.diffuseScale = 1.0f; + l.specularScale = 1.0f; + l.shadowDimmer = 1.0f; + + if (light.lightType == LightType.Spot) + { + var spotAngle = light.light.spotAngle; + var additionalLightData = light.light.GetComponent(); + var innerConePercent = AdditionalLightData.GetInnerSpotPercent01(additionalLightData); + var cosSpotOuterHalfAngle = Mathf.Clamp(Mathf.Cos(spotAngle * 0.5f * Mathf.Deg2Rad), 0.0f, 1.0f); + var cosSpotInnerHalfAngle = Mathf.Clamp(Mathf.Cos(spotAngle * 0.5f * innerConePercent * Mathf.Deg2Rad), 0.0f, 1.0f); // inner cone + + var val = Mathf.Max(0.001f, (cosSpotInnerHalfAngle - cosSpotOuterHalfAngle)); + l.angleScale = 1.0f / val; + l.angleOffset = -cosSpotOuterHalfAngle * l.angleScale; + } + else + { + // 1.0f, 2.0f are neutral value allowing GetAngleAnttenuation in shader code to return 1.0 + l.angleScale = 1.0f; + l.angleOffset = 2.0f; + } + + lights.Add(l); } s_punctualLightList.SetData(lights.ToArray()); - Shader.SetGlobalBuffer("g_punctualLightList", s_punctualLightList); - Shader.SetGlobalInt("g_punctualLightCount", punctualLightCount); + Shader.SetGlobalBuffer("_PunctualLightList", s_punctualLightList); + Shader.SetGlobalInt("_PunctualLightCount", lights.Count); } - void UpdateLightConstants(ActiveLight[] activeLights /*, ref ShadowOutput shadow */) - { - /* - int nNumLightsIncludingTooMany = 0; - - int g_nNumLights = 0; - - Vector4[] g_vLightColor = new Vector4[ MAX_LIGHTS ]; - Vector4[] g_vLightPosition_flInvRadius = new Vector4[ MAX_LIGHTS ]; - Vector4[] g_vLightDirection = new Vector4[ MAX_LIGHTS ]; - Vector4[] g_vLightShadowIndex_vLightParams = new Vector4[ MAX_LIGHTS ]; - Vector4[] g_vLightFalloffParams = new Vector4[ MAX_LIGHTS ]; - Vector4[] g_vSpotLightInnersuterConeCosines = new Vector4[ MAX_LIGHTS ]; - Matrix4x4[] g_matWorldToShadow = new Matrix4x4[ MAX_LIGHTS * MAX_SHADOWMAP_PER_LIGHTS ]; - Vector4[] g_vDirShadowSplitSpheres = new Vector4[ MAX_DIRECTIONAL_SPLIT ]; - - for ( int nLight = 0; nLight < activeLights.Length; nLight++ ) - { - - nNumLightsIncludingTooMany++; - if ( nNumLightsIncludingTooMany > MAX_LIGHTS ) - continue; - - ActiveLight light = activeLights [nLight]; - LightType lightType = light.lightType; - Vector3 position = light.light.transform.position; - Vector3 lightDir = light.light.transform.forward.normalized; - AdditionalLightData additionalLightData = light.light.GetComponent (); - - // Setup shadow data arrays - bool hasShadows = shadow.GetShadowSliceCountLightIndex (nLight) != 0; - - if ( lightType == LightType.Directional ) - { - g_vLightColor[ g_nNumLights ] = light.finalColor; - g_vLightPosition_flInvRadius[ g_nNumLights ] = new Vector4( - position.x - ( lightDir.x * DIRECTIONAL_LIGHT_PULLBACK_DISTANCE ), - position.y - ( lightDir.y * DIRECTIONAL_LIGHT_PULLBACK_DISTANCE ), - position.z - ( lightDir.z * DIRECTIONAL_LIGHT_PULLBACK_DISTANCE ), - -1.0f ); - g_vLightDirection[ g_nNumLights ] = new Vector4( lightDir.x, lightDir.y, lightDir.z ); - g_vLightShadowIndex_vLightParams[ g_nNumLights ] = new Vector4( 0, 0, 1, 1 ); - g_vLightFalloffParams[ g_nNumLights ] = new Vector4( 0.0f, 0.0f, float.MaxValue, (float)lightType ); - g_vSpotLightInnerOuterConeCosines[ g_nNumLights ] = new Vector4( 0.0f, -1.0f, 1.0f ); - - if (hasShadows) - { - for (int s = 0; s < MAX_DIRECTIONAL_SPLIT; ++s) - { - g_vDirShadowSplitSpheres[s] = shadow.directionalShadowSplitSphereSqr[s]; - } - } - } - else if ( lightType == LightType.Point ) - { - g_vLightColor[ g_nNumLights ] = light.finalColor; - - g_vLightPosition_flInvRadius[ g_nNumLights ] = new Vector4( position.x, position.y, position.z, 1.0f / light.range ); - g_vLightDirection[ g_nNumLights ] = new Vector4( 0.0f, 0.0f, 0.0f ); - g_vLightShadowIndex_vLightParams[ g_nNumLights ] = new Vector4( 0, 0, 1, 1 ); - g_vLightFalloffParams[ g_nNumLights ] = new Vector4( 1.0f, 0.0f, light.range * light.range, (float)lightType ); - g_vSpotLightInnerOuterConeCosines[ g_nNumLights ] = new Vector4( 0.0f, -1.0f, 1.0f ); - } - else if ( lightType == LightType.Spot ) - { - g_vLightColor[ g_nNumLights ] = light.finalColor; - g_vLightPosition_flInvRadius[ g_nNumLights ] = new Vector4( position.x, position.y, position.z, 1.0f / light.range ); - g_vLightDirection[ g_nNumLights ] = new Vector4( lightDir.x, lightDir.y, lightDir.z ); - g_vLightShadowIndex_vLightParams[ g_nNumLights ] = new Vector4( 0, 0, 1, 1 ); - g_vLightFalloffParams[ g_nNumLights ] = new Vector4( 1.0f, 0.0f, light.range * light.range, (float)lightType ); - - float flInnerConePercent = AdditionalLightData.GetInnerSpotPercent01(additionalLightData); - float spotAngle = light.light.spotAngle; - float flPhiDot = Mathf.Clamp( Mathf.Cos( spotAngle * 0.5f * Mathf.Deg2Rad ), 0.0f, 1.0f ); // outer cone - float flThetaDot = Mathf.Clamp( Mathf.Cos( spotAngle * 0.5f * flInnerConePercent * Mathf.Deg2Rad ), 0.0f, 1.0f ); // inner cone - g_vSpotLightInnerOuterConeCosines[ g_nNumLights ] = new Vector4( flThetaDot, flPhiDot, 1.0f / Mathf.Max( 0.01f, flThetaDot - flPhiDot ) ); - - } - - if ( hasShadows ) - { - // Enable shadows - g_vLightShadowIndex_vLightParams[ g_nNumLights ].x = 1; - for(int s=0; s < shadow.GetShadowSliceCountLightIndex (nLight); ++s) - { - int shadowSliceIndex = shadow.GetShadowSliceIndex (nLight, s); - g_matWorldToShadow [g_nNumLights * MAX_SHADOWMAP_PER_LIGHTS + s] = shadow.shadowSlices[shadowSliceIndex].shadowTransform.transpose; - } - } - - g_nNumLights++; - } - - // Warn if too many lights found - if ( nNumLightsIncludingTooMany > MAX_LIGHTS ) - { - if ( nNumLightsIncludingTooMany > m_nWarnedTooManyLights ) - { - Debug.LogError( "ERROR! Found " + nNumLightsIncludingTooMany + " runtime lights! Valve renderer supports up to " + MAX_LIGHTS + - " active runtime lights at a time!\nDisabling " + ( nNumLightsIncludingTooMany - MAX_LIGHTS ) + " runtime light" + - ( ( nNumLightsIncludingTooMany - MAX_LIGHTS ) > 1 ? "s" : "" ) + "!\n" ); - } - m_nWarnedTooManyLights = nNumLightsIncludingTooMany; - } - else - { - if ( m_nWarnedTooManyLights > 0 ) - { - m_nWarnedTooManyLights = 0; - Debug.Log( "SUCCESS! Found " + nNumLightsIncludingTooMany + " runtime lights which is within the supported number of lights, " + MAX_LIGHTS + ".\n\n" ); - } - } - - // Send constants to shaders - Shader.SetGlobalInt( "g_nNumLights", g_nNumLights ); - - // New method for Unity 5.4 to set arrays of constants - Shader.SetGlobalVectorArray( "g_vLightPosition_flInvRadius", g_vLightPosition_flInvRadius ); - Shader.SetGlobalVectorArray( "g_vLightColor", g_vLightColor ); - Shader.SetGlobalVectorArray( "g_vLightDirection", g_vLightDirection ); - Shader.SetGlobalVectorArray( "g_vLightShadowIndex_vLightParams", g_vLightShadowIndex_vLightParams ); - Shader.SetGlobalVectorArray( "g_vLightFalloffParams", g_vLightFalloffParams ); - Shader.SetGlobalVectorArray( "g_vSpotLightInnerOuterConeCosines", g_vSpotLightInnerOuterConeCosines ); - Shader.SetGlobalMatrixArray( "g_matWorldToShadow", g_matWorldToShadow ); - Shader.SetGlobalVectorArray( "g_vDirShadowSplitSpheres", g_vDirShadowSplitSpheres ); - - // Time - #if ( UNITY_EDITOR ) - { - Shader.SetGlobalFloat( "g_flTime", Time.realtimeSinceStartup ); - //Debug.Log( "Time " + Time.realtimeSinceStartup ); - } - #else - { - Shader.SetGlobalFloat( "g_flTime", Time.timeSinceLevelLoad ); - //Debug.Log( "Time " + Time.timeSinceLevelLoad ); - } - #endif - - // PCF 3x3 Shadows - float flTexelEpsilonX = 1.0f / m_ShadowSettings.shadowAtlasWidth; - float flTexelEpsilonY = 1.0f / m_ShadowSettings.shadowAtlasHeight; - Vector4 g_vShadow3x3PCFTerms0 = new Vector4( 20.0f / 267.0f, 33.0f / 267.0f, 55.0f / 267.0f, 0.0f ); - Vector4 g_vShadow3x3PCFTerms1 = new Vector4( flTexelEpsilonX, flTexelEpsilonY, -flTexelEpsilonX, -flTexelEpsilonY ); - Vector4 g_vShadow3x3PCFTerms2 = new Vector4( flTexelEpsilonX, flTexelEpsilonY, 0.0f, 0.0f ); - Vector4 g_vShadow3x3PCFTerms3 = new Vector4( -flTexelEpsilonX, -flTexelEpsilonY, 0.0f, 0.0f ); - - Shader.SetGlobalVector( "g_vShadow3x3PCFTerms0", g_vShadow3x3PCFTerms0 ); - Shader.SetGlobalVector( "g_vShadow3x3PCFTerms1", g_vShadow3x3PCFTerms1 ); - Shader.SetGlobalVector( "g_vShadow3x3PCFTerms2", g_vShadow3x3PCFTerms2 ); - Shader.SetGlobalVector( "g_vShadow3x3PCFTerms3", g_vShadow3x3PCFTerms3 ); - */ - } - - /* - void RenderDeferredLighting(Camera camera, CullingInputs inputs, RenderLoop loop) + void UpdateReflectionProbes(VisibleReflectionProbe[] activeReflectionProbes) { - var props = new MaterialPropertyBlock(); + var lights = new List(); - var cmd = new CommandBuffer(); - cmd.SetRenderTarget(new RenderTargetIdentifier(kGBufferEmission), new RenderTargetIdentifier(kGBufferZ)); - foreach (var cl in inputs.culledLights) + for (int lightIndex = 0; lightIndex < Math.Min(activeReflectionProbes.Length, MaxProbes); lightIndex++) { - bool renderAsQuad = (cl.flags & VisibleLightFlags.IntersectsNearPlane) != 0 || (cl.flags & VisibleLightFlags.IntersectsFarPlane) != 0 || (cl.lightType == LightType.Directional); - - Vector3 lightPos = cl.localToWorld.GetColumn(3); - float range = cl.range; - cmd.DisableShaderKeyword("POINT"); - cmd.DisableShaderKeyword("POINT_COOKIE"); - cmd.DisableShaderKeyword("SPOT"); - cmd.DisableShaderKeyword("DIRECTIONAL"); - cmd.DisableShaderKeyword("DIRECTIONAL_COOKIE"); - //cmd.EnableShaderKeyword ("UNITY_HDR_ON"); - switch (cl.lightType) - { - case LightType.Point: - cmd.EnableShaderKeyword("POINT"); - break; - case LightType.Spot: - cmd.EnableShaderKeyword("SPOT"); - break; - case LightType.Directional: - cmd.EnableShaderKeyword("DIRECTIONAL"); - break; - } - props.SetFloat("_LightAsQuad", renderAsQuad ? 1 : 0); - props.SetVector("_LightPos", new Vector4(lightPos.x, lightPos.y, lightPos.z, 1.0f / (range * range))); - props.SetVector("_LightColor", cl.finalColor); - Debug.Log("Light color : " + cl.finalColor.ToString()); - props.SetMatrix("_WorldToLight", cl.worldToLocal); + var probe = activeReflectionProbes[lightIndex]; - ///@TODO: cleanup, remove this from Internal-PrePassLighting shader - //DeferredPrivate::s_LightMaterial->SetTexture (ShaderLab::Property ("_LightTextureB0"), builtintex::GetAttenuationTexture ()); + if (probe.texture == null) + continue; - if (renderAsQuad) - { - cmd.DrawMesh(m_QuadMesh, Matrix4x4.identity, m_DeferredMaterial, 0, 0, props); - } - else + var l = new EnvLightData(); + + // CAUTION: localToWorld is the transform for the widget of the reflection probe. i.e the world position of the point use to do the cubemap capture (mean it include the local offset) + l.positionWS = probe.localToWorld.GetColumn(3); + + l.envShapeType = EnvShapeType.None; + + // TODO: Support sphere in the interface + if (probe.boxProjection != 0) { - var matrix = Matrix4x4.TRS(lightPos, Quaternion.identity, new Vector3(range, range, range)); - cmd.DrawMesh(m_PointLightMesh, matrix, m_DeferredMaterial, 0, 0, props); + l.envShapeType = EnvShapeType.Box; } + + // remove scale from the matrix (Scale in this matrix is use to scale the widget) + l.right = probe.localToWorld.GetColumn(0); + l.right.Normalize(); + l.up = probe.localToWorld.GetColumn(1); + l.up.Normalize(); + l.forward = probe.localToWorld.GetColumn(2); + l.forward.Normalize(); + + // Artists prefer to have blend distance inside the volume! + // So we let the current UI but we assume blendDistance is an inside factor instead + // Blend distance can't be larger than the max radius + // probe.bounds.extents is BoxSize / 2 + float maxBlendDist = Mathf.Min(probe.bounds.extents.x, Mathf.Min(probe.bounds.extents.y, probe.bounds.extents.z)); + float blendDistance = Mathf.Min(maxBlendDist, probe.blendDistance); + l.innerDistance = probe.bounds.extents - new Vector3(blendDistance, blendDistance, blendDistance); + + l.sliceIndex = m_cubeReflTexArray.FetchSlice(probe.texture); + + l.offsetLS = probe.center; // center is misnamed, it is the offset (in local space) from center of the bounding box to the cubemap capture point + l.blendDistance = blendDistance; + lights.Add(l); } - loop.ExecuteCommandBuffer(cmd); - cmd.Dispose(); + + s_envLightList.SetData(lights.ToArray()); + + Shader.SetGlobalBuffer("_EnvLightList", s_envLightList); + Shader.SetGlobalInt("_EnvLightCount", lights.Count); + Shader.SetGlobalTexture("_EnvTextures", m_cubeReflTexArray.GetTexCache()); } - */ - public override void Render(Camera[] cameras, RenderLoop renderLoop) - { - // Set Frame constant buffer + public override void Render(Camera[] cameras, RenderLoop renderLoop) + { + if (!m_LitRenderLoop.isInit) + { + m_LitRenderLoop.RenderInit(renderLoop); + } + + // Do anything we need to do upon a new frame. + NewFrame(); + + // Set Frame constant buffer // TODO... - foreach (var camera in cameras) - { - // Set camera constant buffer + foreach (var camera in cameras) + { + // Set camera constant buffer // TODO... - CullResults cullResults; - CullingParameters cullingParams; - if (!CullResults.GetCullingParameters (camera, out cullingParams)) - continue; + CullingParameters cullingParams; + if (!CullResults.GetCullingParameters(camera, out cullingParams)) + continue; + + //m_ShadowPass.UpdateCullingParameters (ref cullingParams); - //m_ShadowPass.UpdateCullingParameters (ref cullingParams); + var cullResults = CullResults.Cull(ref cullingParams, renderLoop); - cullResults = CullResults.Cull (ref cullingParams, renderLoop); - - //ShadowOutput shadows; - //m_ShadowPass.Render (renderLoop, cullResults, out shadows); + //ShadowOutput shadows; + //m_ShadowPass.Render (renderLoop, cullResults, out shadows); - renderLoop.SetupCameraProperties (camera); + renderLoop.SetupCameraProperties(camera); - //UpdateLightConstants(cullResults.culledLights /*, ref shadows */); + //UpdateLightConstants(cullResults.visibleLights /*, ref shadows */); - UpdatePunctualLights(cullResults.culledLights); + UpdatePunctualLights(cullResults.visibleLights); + UpdateReflectionProbes(cullResults.visibleReflectionProbes); InitAndClearBuffer(camera, renderLoop); RenderGBuffer(cullResults, camera, renderLoop); - RenderDeferredLighting(camera, renderLoop); + if (debugParameters.debugViewMaterial != 0) + { + RenderDebugViewMaterial(cullResults, camera, renderLoop); + } + else + { + RenderDeferredLighting(camera, renderLoop); - RenderForward(cullResults, camera, renderLoop); + RenderForward(cullResults, camera, renderLoop); + RenderForwardUnlit(cullResults, camera, renderLoop); - FinalPass(renderLoop); + FinalPass(renderLoop); + } - renderLoop.Submit (); - } + renderLoop.Submit(); + } - // Post effects - } + // Post effects + } - #if UNITY_EDITOR - public override UnityEditor.SupportedRenderingFeatures GetSupportedRenderingFeatures() - { - var features = new UnityEditor.SupportedRenderingFeatures(); + #if UNITY_EDITOR + public override UnityEditor.SupportedRenderingFeatures GetSupportedRenderingFeatures() + { + var features = new UnityEditor.SupportedRenderingFeatures + { + reflectionProbe = UnityEditor.SupportedRenderingFeatures.ReflectionProbe.Rotation + }; - features.reflectionProbe = UnityEditor.SupportedRenderingFeatures.ReflectionProbe.Rotation; + return features; + } - return features; - } - #endif - } -} \ No newline at end of file + #endif + } +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoopInspector.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoopInspector.cs new file mode 100644 index 00000000000..9a6b492a733 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoopInspector.cs @@ -0,0 +1,165 @@ +using System; +using UnityEditor; + +//using EditorGUIUtility=UnityEditor.EditorGUIUtility; + +namespace UnityEngine.Experimental.ScriptableRenderLoop +{ + [CustomEditor(typeof(HDRenderLoop))] + public class HDRenderLoopInspector : Editor + { + private class Styles + { + public readonly GUIContent debugParameters = new GUIContent("Debug Parameters"); + public readonly GUIContent debugViewMaterial = new GUIContent("DebugView Material", "Display various properties of Materials."); + + public readonly GUIContent displayOpaqueObjects = new GUIContent("Display Opaque Objects", "Toggle opaque objects rendering on and off."); + public readonly GUIContent displayTransparentObjects = new GUIContent("Display Transparent Objects", "Toggle transparent objects rendering on and off."); + public readonly GUIContent enableTonemap = new GUIContent("Enable Tonemap"); + public readonly GUIContent exposure = new GUIContent("Exposure"); + + public readonly GUIContent useForwardRenderingOnly = new GUIContent("Use Forward Rendering Only"); + + public bool isDebugViewMaterialInit = false; + public GUIContent[] debugViewMaterialStrings = null; + public int[] debugViewMaterialValues = null; + } + + private static Styles s_Styles = null; + + private static Styles styles + { + get + { + if (s_Styles == null) + s_Styles = new Styles(); + return s_Styles; + } + } + + const float k_MaxExposure = 32.0f; + + void FillWithProperties(Type type, GUIContent[] debugViewMaterialStrings, int[] debugViewMaterialValues, bool isBSDFData, ref int index) + { + var attributes = type.GetCustomAttributes(true); + // Get attribute to get the start number of the value for the enum + var attr = attributes[0] as GenerateHLSL; + + if (!attr.needParamDefines) + { + return ; + } + + var fields = type.GetFields(); + + var subNamespace = type.Namespace.Substring(type.Namespace.LastIndexOf((".")) + 1); + + var localIndex = 0; + foreach (var field in fields) + { + var fieldName = field.Name; + + // Check if the display name have been override by the users + if (Attribute.IsDefined(field, typeof(SurfaceDataAttributes))) + { + var propertyAttr = (SurfaceDataAttributes[])field.GetCustomAttributes(typeof(SurfaceDataAttributes), false); + if (propertyAttr[0].displayName != "") + { + fieldName = propertyAttr[0].displayName; + } + } + + fieldName = (isBSDFData ? "Engine/" : "") + subNamespace + "/" + fieldName; + + debugViewMaterialStrings[index] = new GUIContent(fieldName); + debugViewMaterialValues[index] = attr.paramDefinesStart + (int)localIndex; + index++; + localIndex++; + } + } + + void FillWithPropertiesEnum(Type type, GUIContent[] debugViewMaterialStrings, int[] debugViewMaterialValues, bool isBSDFData, ref int index) + { + var names = Enum.GetNames(type); + + var localIndex = 0; + foreach (var value in Enum.GetValues(type)) + { + var valueName = (isBSDFData ? "Engine/" : "") + names[localIndex]; + + debugViewMaterialStrings[index] = new GUIContent(valueName); + debugViewMaterialValues[index] = (int)value; + index++; + localIndex++; + } + } + + public override void OnInspectorGUI() + { + var renderLoop = target as HDRenderLoop; + + if (!renderLoop) + return; + + var debugParameters = renderLoop.debugParameters; + + EditorGUILayout.LabelField(styles.debugParameters); + EditorGUI.indentLevel++; + EditorGUI.BeginChangeCheck(); + + if (!styles.isDebugViewMaterialInit) + { + var varyingNames = Enum.GetNames(typeof(HDRenderLoop.DebugViewVaryingMode)); + var gbufferNames = Enum.GetNames(typeof(HDRenderLoop.DebugViewGbufferMode)); + + // +1 for the zero case + var num = 1 + varyingNames.Length + + gbufferNames.Length + + typeof(Builtin.BuiltinData).GetFields().Length + + typeof(Lit.SurfaceData).GetFields().Length + + typeof(Lit.BSDFData).GetFields().Length + + typeof(Unlit.SurfaceData).GetFields().Length + + typeof(Unlit.BSDFData).GetFields().Length; + + styles.debugViewMaterialStrings = new GUIContent[num]; + styles.debugViewMaterialValues = new int[num]; + + var index = 0; + + // 0 is a reserved number + styles.debugViewMaterialStrings[0] = new GUIContent("None"); + styles.debugViewMaterialValues[0] = 0; + index++; + + FillWithPropertiesEnum(typeof(HDRenderLoop.DebugViewVaryingMode), styles.debugViewMaterialStrings, styles.debugViewMaterialValues, false, ref index); + FillWithProperties(typeof(Builtin.BuiltinData), styles.debugViewMaterialStrings, styles.debugViewMaterialValues, false, ref index); + FillWithProperties(typeof(Lit.SurfaceData), styles.debugViewMaterialStrings, styles.debugViewMaterialValues, false, ref index); + FillWithProperties(typeof(Unlit.SurfaceData), styles.debugViewMaterialStrings, styles.debugViewMaterialValues, false, ref index); + + // Engine + FillWithPropertiesEnum(typeof(HDRenderLoop.DebugViewGbufferMode), styles.debugViewMaterialStrings, styles.debugViewMaterialValues, true, ref index); + FillWithProperties(typeof(Lit.BSDFData), styles.debugViewMaterialStrings, styles.debugViewMaterialValues, true, ref index); + FillWithProperties(typeof(Unlit.BSDFData), styles.debugViewMaterialStrings, styles.debugViewMaterialValues, true, ref index); + + styles.isDebugViewMaterialInit = true; + } + + debugParameters.debugViewMaterial = EditorGUILayout.IntPopup(styles.debugViewMaterial, (int)debugParameters.debugViewMaterial, styles.debugViewMaterialStrings, styles.debugViewMaterialValues); + + EditorGUILayout.Space(); + debugParameters.enableTonemap = EditorGUILayout.Toggle(styles.enableTonemap, debugParameters.enableTonemap); + debugParameters.exposure = Mathf.Max(Mathf.Min(EditorGUILayout.FloatField(styles.exposure, debugParameters.exposure), k_MaxExposure), -k_MaxExposure); + + EditorGUILayout.Space(); + debugParameters.displayOpaqueObjects = EditorGUILayout.Toggle(styles.displayOpaqueObjects, debugParameters.displayOpaqueObjects); + debugParameters.displayTransparentObjects = EditorGUILayout.Toggle(styles.displayTransparentObjects, debugParameters.displayTransparentObjects); + debugParameters.useForwardRenderingOnly = EditorGUILayout.Toggle(styles.useForwardRenderingOnly, debugParameters.useForwardRenderingOnly); + + if (EditorGUI.EndChangeCheck()) + { + EditorUtility.SetDirty(renderLoop); // Repaint + } + EditorGUI.indentLevel--; + } + } +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoopInspector.cs.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoopInspector.cs.meta new file mode 100644 index 00000000000..5311b29815a --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/HDRenderLoopInspector.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 6e8669cdde22f4948a090da4b5fb5b7c +timeCreated: 1475763911 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug.meta new file mode 100644 index 00000000000..744aa502040 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ee4b12281385a0a4791e3128dd34eae4 +folderAsset: yes +timeCreated: 1475748186 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterial.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterial.hlsl new file mode 100644 index 00000000000..e82df7bf24d --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterial.hlsl @@ -0,0 +1,16 @@ +// CAUTION: 0 is a reserved numbers meaning there is no debug view mode +// All number below folow each others! + +// Must be in sync with DebugViewVaryingMode +#define DEBUGVIEW_VARYING_DEPTH 1 +#define DEBUGVIEW_VARYING_TEXCOORD0 2 +#define DEBUGVIEW_VARYING_TEXCOORD1 3 +#define DEBUGVIEW_VARYING_TEXCOORD2 4 +#define DEBUGVIEW_VARYING_VERTEXTANGENTWS 5 +#define DEBUGVIEW_VARYING_VERTEXBITANGENTWS 6 +#define DEBUGVIEW_VARYING_VERTEXNORMALWS 7 +#define DEBUGVIEW_VARYING_VERTEXCOLOR 8 + +// These define are sepcific to GBuffer +#define DEBUGVIEW_GBUFFER_DEPTH 9 +#define DEBUGVIEW_GBUFFER_BAKEDIFFUSELIGHTING 10 diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterial.hlsl.meta similarity index 67% rename from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.hlsl.meta rename to Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterial.hlsl.meta index ed9a335c239..b48f9865ad2 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.hlsl.meta +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterial.hlsl.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 8ab751a0da67569489f8852db5423571 -timeCreated: 1474899794 +guid: 9048292f91ac48d479ce668c5aabf122 +timeCreated: 1476053153 licenseType: Pro ShaderImporter: defaultTextures: [] diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterialGBuffer.shader b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterialGBuffer.shader new file mode 100644 index 00000000000..6f561a1fdd8 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterialGBuffer.shader @@ -0,0 +1,99 @@ +Shader "Hidden/Unity/DebugViewMaterialGBuffer" +{ + SubShader + { + Pass + { + ZWrite Off + Blend SrcAlpha OneMinusSrcAlpha // We will lerp only the values that are valid + + HLSLPROGRAM + #pragma target 5.0 + #pragma only_renderers d3d11 // TEMP: unitl we go futher in dev + + #pragma vertex VertDeferred + #pragma fragment FragDeferred + + #include "Color.hlsl" + // CAUTION: In case deferred lighting need to support various lighting model statically, we will require to do multicompile with different define like UNITY_MATERIAL_LIT + #define UNITY_MATERIAL_LIT // Need to be define before including Material.hlsl + #include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/Lighting.hlsl" // This include Material.hlsl + #include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderVariables.hlsl" + #include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterial.hlsl" + + DECLARE_GBUFFER_TEXTURE(_CameraGBufferTexture); + DECLARE_GBUFFER_BAKE_LIGHTING(_CameraGBufferTexture); + + UNITY_DECLARE_TEX2D(_CameraDepthTexture); + int _DebugViewMaterial; + + struct Attributes + { + float3 positionOS : POSITION; + }; + + struct Varyings + { + float4 positionHS : SV_POSITION; + }; + + Varyings VertDeferred(Attributes input) + { + // TODO: implement SV_vertexID full screen quad + Varyings output; + float3 positionWS = TransformObjectToWorld(input.positionOS); + output.positionHS = TransformWorldToHClip(positionWS); + + return output; + } + + float4 FragDeferred(Varyings input) : SV_Target + { + Coordinate coord = GetCoordinate(input.positionHS.xy, _ScreenSize.zw); + + float depth = _CameraDepthTexture.Load(uint3(coord.unPositionSS, 0)).x; + + FETCH_GBUFFER(gbuffer, _CameraGBufferTexture, coord.unPositionSS); + BSDFData bsdfData = DECODE_FROM_GBUFFER(gbuffer); + + // Init to not expected value + float3 result = float3(-666.0, 0.0, 0.0); + bool needLinearToSRGB = false; + + if (_DebugViewMaterial == DEBUGVIEW_GBUFFER_DEPTH) + { + float linearDepth = frac(LinearEyeDepth(depth, _ZBufferParams) * 0.1); + result = linearDepth.xxx; + } + else if (_DebugViewMaterial == DEBUGVIEW_GBUFFER_BAKEDIFFUSELIGHTING) + { + FETCH_BAKE_LIGHTING_GBUFFER(gbuffer, _CameraGBufferTexture, coord.unPositionSS); + result = DECODE_BAKE_LIGHTING_FROM_GBUFFER(gbuffer); + } + + GetBSDFDataDebug(_DebugViewMaterial, bsdfData, result, needLinearToSRGB); + + // f we haven't touch result, we don't blend it. This allow to have the GBuffer debug pass working with the regular forward debug pass. + // The forward debug pass will write its value and then the deferred will overwrite only touched texels. + if (result.x == -666.0) + { + return float4(0.0, 0.0, 0.0, 0.0); + } + else + { + // TEMP! + // For now, the final blit in the backbuffer performs an sRGB write + // So in the meantime we apply the inverse transform to linear data to compensate. + if (!needLinearToSRGB) + result = SRGBToLinear(max(0, result)); + + return float4(result, 1.0); + } + } + + ENDHLSL + } + + } + Fallback Off +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/DisneyGGX.shader.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterialGBuffer.shader.meta similarity index 67% rename from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/DisneyGGX.shader.meta rename to Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterialGBuffer.shader.meta index 516bdcb1ee6..983019cd7a7 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/DisneyGGX.shader.meta +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterialGBuffer.shader.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: e1a84346ee54f9f4993c2f05c59805a0 -timeCreated: 1474456127 +guid: 439949ea1bfa91b4ba0d04269fcde33d +timeCreated: 1476053153 licenseType: Pro ShaderImporter: defaultTextures: [] diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/DisneyGGX.shader b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/DisneyGGX.shader deleted file mode 100644 index cdb135f9536..00000000000 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/DisneyGGX.shader +++ /dev/null @@ -1,104 +0,0 @@ -Shader "Unity/DisneyGGX" -{ - // TODO: Following set of parameters represent the parameters node inside the MaterialGraph. - // They are use to fill a SurfaceData. With a MaterialGraph these parameters will not be write here (?). - Properties - { - _DiffuseColor("Diffuse", Color) = (1,1,1,1) - _DiffuseMap("Diffuse", 2D) = "white" {} - - _SpecColor("Specular", Color) = (0.04,0.04,0.04) - _SpecMap("Specular", 2D) = "white" {} - - _Smoothness("Smoothness", Range(0.0, 1.0)) = 0.5 - _SmoothnessMap("Smoothness", 2D) = "white" {} - - _NormalMap("Normal Map", 2D) = "bump" {} - _OcclusionMap("Occlusion", 2D) = "white" {} - - _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5 - - // Blending state - [HideInInspector] _Mode ("__mode", Float) = 0.0 - [HideInInspector] _SrcBlend ("__src", Float) = 1.0 - [HideInInspector] _DstBlend ("__dst", Float) = 0.0 - [HideInInspector] _ZWrite ("__zw", Float) = 1.0 - } - - CGINCLUDE - - ENDCG - - SubShader - { - Tags { "RenderType"="Opaque" "PerformanceChecks"="False" } - LOD 300 - - // ------------------------------------------------------------------ - // forward pass - Pass - { - Name "Forward" // Name is not used - Tags { "LightMode" = "Forward" } // This will be only for transparent object based on the RenderQueue index - - Blend [_SrcBlend] [_DstBlend] - ZWrite [_ZWrite] - - CGPROGRAM - #pragma target 5.0 - #pragma only_renderers d3d11 // TEMP: unitl we go futher in dev - - #pragma vertex VertDefault - #pragma fragment FragForward - - #include "TemplateDisneyGGX.hlsl" - - - float4 FragForward(PackedVaryings packedInput) : SV_Target - { - Varyings input = UnpackVaryings(packedInput); - float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS); - float3 positionWS = input.positionWS; - SurfaceData surfaceData = GetSurfaceData(input); - - BSDFData bsdfData = ConvertSurfaceDataToBSDFData(surfaceData); - - float4 diffuseLighting; - float4 specularLighting; - ForwardLighting(V, positionWS, bsdfData, diffuseLighting, specularLighting); - - return float4(diffuseLighting.rgb + specularLighting.rgb, 1.0); - } - - ENDCG - } - - // ------------------------------------------------------------------ - // Deferred pass - Pass - { - Name "GBuffer" // Name is not used - Tags { "LightMode" = "GBuffer" } // This will be only for opaque object based on the RenderQueue index - - CGPROGRAM - #pragma target 5.0 - #pragma only_renderers d3d11 // TEMP: unitl we go futher in dev - - #pragma vertex VertDefault - #pragma fragment FragDeferred - - #include "TemplateDisneyGGX.hlsl" - - void FragDeferred( PackedVaryings packedInput, - OUTPUT_GBUFFER(outGBuffer) - ) - { - Varyings input = UnpackVaryings(packedInput); - SurfaceData surfaceData = GetSurfaceData(input); - ENCODE_INTO_GBUFFER(surfaceData, outGBuffer); - } - - ENDCG - } - } -} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/LightDefinition.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/LightDefinition.cs deleted file mode 100644 index cf832afe59e..00000000000 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/LightDefinition.cs +++ /dev/null @@ -1,53 +0,0 @@ -// Note: This file is included both in C# code and in hlsl code, avoiding duplication - -//----------------------------------------------------------------------------- -// structure definition -//----------------------------------------------------------------------------- - -#if !__HLSL -namespace UnityEngine.ScriptableRenderLoop -{ -#endif - - // These structures share between C# and hlsl need to be align on float4, so we pad them. - struct PunctualLightData - { - public Vec3 positionWS; - public float invSqrAttenuationRadius; - - public Vec3 color; - public float unused; - - public Vec3 forward; - public float diffuseScale; - - public Vec3 up; - public float specularScale; - - public Vec3 right; - public float shadowDimmer; - - public float angleScale; - public float angleOffset; - public Vec2 unused2; - }; - - struct AreaLightData - { - public Vec3 positionWS; - }; - - struct EnvLightData - { - public Vec3 positionWS; - }; - - struct PlanarLightData - { - public Vec3 positionWS; - }; - -#if !__HLSL -} // namespace UnityEngine.ScriptableRenderLoop -#endif - diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs new file mode 100644 index 00000000000..0aafe305f8a --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs @@ -0,0 +1,102 @@ +using UnityEngine; + +//----------------------------------------------------------------------------- +// structure definition +//----------------------------------------------------------------------------- +namespace UnityEngine.Experimental.ScriptableRenderLoop +{ + // These structures share between C# and hlsl need to be align on float4, so we pad them. + [GenerateHLSL] + public struct PunctualLightData + { + public Vector3 positionWS; + public float invSqrAttenuationRadius; + + public Vector3 color; + public float useDistanceAttenuation; + + public Vector3 forward; + public float diffuseScale; + + public Vector3 up; + public float specularScale; + + public Vector3 right; + public float shadowDimmer; + + public float angleScale; + public float angleOffset; + public Vector2 unused2; + }; + + [GenerateHLSL] + public enum AreaShapeType + { + Rectangle, + Line, + // Currently not supported in real time (just use for reference) + Sphere, + Disk, + Hemisphere, + Cylinder + }; + + [GenerateHLSL] + public struct AreaLightData + { + public Vector3 positionWS; + public float invSqrAttenuationRadius; + + public Vector3 color; + public AreaShapeType shapeType; + + public Vector3 forward; + public float diffuseScale; + + public Vector3 up; + public float specularScale; + + public Vector3 right; + public float shadowDimmer; + + public Vector2 size; + public float twoSided; + public float unused; + }; + + [GenerateHLSL] + public enum EnvShapeType + { + None, + Box, + Sphere + }; + + [GenerateHLSL] + public struct EnvLightData + { + public Vector3 positionWS; + public EnvShapeType envShapeType; + + public Vector3 forward; + public float unused2; + + public Vector3 up; + public float blendDistance; // blend transition outside the volume + + public Vector3 right; + public int sliceIndex; + + public Vector3 innerDistance; // equivalent to volume scale + public float unused0; + + public Vector3 offsetLS; + public float unused1; + }; + + [GenerateHLSL] + public struct PlanarLightData + { + public Vector3 positionWS; + }; +} // namespace UnityEngine.Experimental.ScriptableRenderLoop diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs.hlsl new file mode 100644 index 00000000000..63786977e1c --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs.hlsl @@ -0,0 +1,257 @@ +// +// This file was automatically generated from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs. Please don't edit by hand. +// + +// +// UnityEngine.Experimental.ScriptableRenderLoop.AreaShapeType: static fields +// +#define AREASHAPETYPE_RECTANGLE (0) +#define AREASHAPETYPE_LINE (1) +#define AREASHAPETYPE_SPHERE (2) +#define AREASHAPETYPE_DISK (3) +#define AREASHAPETYPE_HEMISPHERE (4) +#define AREASHAPETYPE_CYLINDER (5) + +// +// UnityEngine.Experimental.ScriptableRenderLoop.EnvShapeType: static fields +// +#define ENVSHAPETYPE_NONE (0) +#define ENVSHAPETYPE_BOX (1) +#define ENVSHAPETYPE_SPHERE (2) + +// Generated from UnityEngine.Experimental.ScriptableRenderLoop.PunctualLightData +// PackingRules = Exact +struct PunctualLightData +{ + float3 positionWS; + float invSqrAttenuationRadius; + float3 color; + float useDistanceAttenuation; + float3 forward; + float diffuseScale; + float3 up; + float specularScale; + float3 right; + float shadowDimmer; + float angleScale; + float angleOffset; + float2 unused2; +}; + +// Generated from UnityEngine.Experimental.ScriptableRenderLoop.AreaLightData +// PackingRules = Exact +struct AreaLightData +{ + float3 positionWS; + float invSqrAttenuationRadius; + float3 color; + int shapeType; + float3 forward; + float diffuseScale; + float3 up; + float specularScale; + float3 right; + float shadowDimmer; + float2 size; + float twoSided; + float unused; +}; + +// Generated from UnityEngine.Experimental.ScriptableRenderLoop.EnvLightData +// PackingRules = Exact +struct EnvLightData +{ + float3 positionWS; + int envShapeType; + float3 forward; + float unused2; + float3 up; + float blendDistance; + float3 right; + int sliceIndex; + float3 innerDistance; + float unused0; + float3 offsetLS; + float unused1; +}; + +// Generated from UnityEngine.Experimental.ScriptableRenderLoop.PlanarLightData +// PackingRules = Exact +struct PlanarLightData +{ + float3 positionWS; +}; + +// +// Accessors for UnityEngine.Experimental.ScriptableRenderLoop.PunctualLightData +// +float3 GetPositionWS(PunctualLightData value) +{ + return value.positionWS; +} +float GetInvSqrAttenuationRadius(PunctualLightData value) +{ + return value.invSqrAttenuationRadius; +} +float3 GetColor(PunctualLightData value) +{ + return value.color; +} +float GetUseDistanceAttenuation(PunctualLightData value) +{ + return value.useDistanceAttenuation; +} +float3 GetForward(PunctualLightData value) +{ + return value.forward; +} +float GetDiffuseScale(PunctualLightData value) +{ + return value.diffuseScale; +} +float3 GetUp(PunctualLightData value) +{ + return value.up; +} +float GetSpecularScale(PunctualLightData value) +{ + return value.specularScale; +} +float3 GetRight(PunctualLightData value) +{ + return value.right; +} +float GetShadowDimmer(PunctualLightData value) +{ + return value.shadowDimmer; +} +float GetAngleScale(PunctualLightData value) +{ + return value.angleScale; +} +float GetAngleOffset(PunctualLightData value) +{ + return value.angleOffset; +} +float2 GetUnused2(PunctualLightData value) +{ + return value.unused2; +} + +// +// Accessors for UnityEngine.Experimental.ScriptableRenderLoop.AreaLightData +// +float3 GetPositionWS(AreaLightData value) +{ + return value.positionWS; +} +float GetInvSqrAttenuationRadius(AreaLightData value) +{ + return value.invSqrAttenuationRadius; +} +float3 GetColor(AreaLightData value) +{ + return value.color; +} +int GetShapeType(AreaLightData value) +{ + return value.shapeType; +} +float3 GetForward(AreaLightData value) +{ + return value.forward; +} +float GetDiffuseScale(AreaLightData value) +{ + return value.diffuseScale; +} +float3 GetUp(AreaLightData value) +{ + return value.up; +} +float GetSpecularScale(AreaLightData value) +{ + return value.specularScale; +} +float3 GetRight(AreaLightData value) +{ + return value.right; +} +float GetShadowDimmer(AreaLightData value) +{ + return value.shadowDimmer; +} +float2 GetSize(AreaLightData value) +{ + return value.size; +} +float GetTwoSided(AreaLightData value) +{ + return value.twoSided; +} +float GetUnused(AreaLightData value) +{ + return value.unused; +} + +// +// Accessors for UnityEngine.Experimental.ScriptableRenderLoop.EnvLightData +// +float3 GetPositionWS(EnvLightData value) +{ + return value.positionWS; +} +int GetEnvShapeType(EnvLightData value) +{ + return value.envShapeType; +} +float3 GetForward(EnvLightData value) +{ + return value.forward; +} +float GetUnused2(EnvLightData value) +{ + return value.unused2; +} +float3 GetUp(EnvLightData value) +{ + return value.up; +} +float GetBlendDistance(EnvLightData value) +{ + return value.blendDistance; +} +float3 GetRight(EnvLightData value) +{ + return value.right; +} +int GetSliceIndex(EnvLightData value) +{ + return value.sliceIndex; +} +float3 GetInnerDistance(EnvLightData value) +{ + return value.innerDistance; +} +float GetUnused0(EnvLightData value) +{ + return value.unused0; +} +float3 GetOffsetLS(EnvLightData value) +{ + return value.offsetLS; +} +float GetUnused1(EnvLightData value) +{ + return value.unused1; +} + +// +// Accessors for UnityEngine.Experimental.ScriptableRenderLoop.PlanarLightData +// +float3 GetPositionWS(PlanarLightData value) +{ + return value.positionWS; +} + + diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs.hlsl.meta new file mode 100644 index 00000000000..115b944bcb6 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ff58597e731e7d5419b41b73325ddb47 +timeCreated: 1475681650 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/LightDefinition.cs.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs.meta similarity index 100% rename from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/LightDefinition.cs.meta rename to Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs.meta diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/Lighting.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/Lighting.hlsl index fd90e65809d..ab038f85a7f 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/Lighting.hlsl +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/Lighting.hlsl @@ -1,8 +1,12 @@ -#ifndef UNITY_LIGHTING_INCLUDED +#ifndef UNITY_LIGHTING_INCLUDED #define UNITY_LIGHTING_INCLUDED +// We need to define the macro used for env map evaluation based on the different architecture. +// Like for material we have one define by architecture. +// TODO: who setup the define for a given architecture ? + #include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Material.hlsl" -#include "LightingForward.hlsl" +#include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward/LightingForward.hlsl" -#endif // UNITY_LIGHTING_INCLUDED \ No newline at end of file +#endif // UNITY_LIGHTING_INCLUDED diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.hlsl deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.meta new file mode 100644 index 00000000000..38e3ebf9ef8 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: df85c88f855185249aad13cf37a4952a +folderAsset: yes +timeCreated: 1476653183 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.shader b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.shader deleted file mode 100644 index 0ec17850395..00000000000 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.shader +++ /dev/null @@ -1,82 +0,0 @@ -Shader "Hidden/Unity/LightingDeferred" -{ - Properties - { - _SrcBlend("", Float) = 1 - _DstBlend("", Float) = 1 - } - - SubShader - { - - Pass - { - ZWrite Off - Blend[_SrcBlend][_DstBlend] - - CGPROGRAM - #pragma target 5.0 - #pragma only_renderers d3d11 // TEMP: unitl we go futher in dev - - #pragma vertex VertDeferred - #pragma fragment FragDeferred - - // CAUTION: In case deferred lighting need to support various lighting model statically, we will require to do multicompile with different define like UNITY_MATERIAL_DISNEYGXX - #define UNITY_MATERIAL_DISNEYGXX // Need to be define before including Material.hlsl - #include "Lighting.hlsl" // This include Material.hlsl - #include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderVariables.hlsl" - - DECLARE_GBUFFER_TEXTURE(_CameraGBufferTexture); - Texture2D _CameraDepthTexture; - float4 _ScreenSize; - - float4x4 _InvViewProjMatrix; - - struct Attributes - { - float3 positionOS : POSITION; - }; - - struct Varyings - { - float4 positionHS : SV_POSITION; - }; - - Varyings VertDeferred(Attributes input) - { - // TODO: implement SV_vertexID full screen quad - // Lights are draw as one fullscreen quad - Varyings output; - float3 positionWS = TransformObjectToWorld(input.positionOS); - output.positionHS = TransformWorldToHClip(positionWS); - - return output; - } - - float4 FragDeferred(Varyings input) : SV_Target - { - Coordinate coord = GetCoordinate(input.positionHS.xy, _ScreenSize.zw); - - // No need to manage inverse depth, this is handled by the projection matrix - float depth = _CameraDepthTexture.Load(uint3(coord.unPositionSS, 0)).x; - float3 positionWS = UnprojectToWorld(depth, coord.positionSS, _InvViewProjMatrix); - float3 V = GetWorldSpaceNormalizeViewDir(positionWS); - - FETCH_GBUFFER(gbuffer, _CameraGBufferTexture, coord.unPositionSS); - BSDFData bsdfData = DECODE_FROM_GBUFFER(gbuffer); - - // NOTE: Currently calling the forward loop, same code... :) - float4 diffuseLighting; - float4 specularLighting; - ForwardLighting(V, positionWS, bsdfData, diffuseLighting, specularLighting); - - return float4(diffuseLighting.rgb + specularLighting.rgb, 1.0); - //return float4(positionWS.y / 10, 0, 0, 1.0); - } - - ENDCG - } - - } - Fallback Off -} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred/LightingDeferred.shader b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred/LightingDeferred.shader new file mode 100644 index 00000000000..b87a52e19cf --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred/LightingDeferred.shader @@ -0,0 +1,87 @@ +Shader "Hidden/Unity/LightingDeferred" +{ + Properties + { + _SrcBlend("", Float) = 1 + _DstBlend("", Float) = 1 + } + + SubShader + { + + Pass + { + ZWrite Off + Blend[_SrcBlend][_DstBlend] + + HLSLPROGRAM + #pragma target 5.0 + #pragma only_renderers d3d11 // TEMP: unitl we go futher in dev + + #pragma vertex VertDeferred + #pragma fragment FragDeferred + + // CAUTION: In case deferred lighting need to support various lighting model statically, we will require to do multicompile with different define like UNITY_MATERIAL_DISNEYGXX + #define UNITY_MATERIAL_LIT // Need to be define before including Material.hlsl + #include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/Lighting.hlsl" // This include Material.hlsl + #include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderVariables.hlsl" + + DECLARE_GBUFFER_TEXTURE(_CameraGBufferTexture); + DECLARE_GBUFFER_BAKE_LIGHTING(_CameraGBufferTexture); + + UNITY_DECLARE_TEX2D(_CameraDepthTexture); + + float4x4 _InvViewProjMatrix; + + struct Attributes + { + float3 positionOS : POSITION; + }; + + struct Varyings + { + float4 positionHS : SV_POSITION; + }; + + Varyings VertDeferred(Attributes input) + { + // TODO: implement SV_vertexID full screen quad + // Lights are draw as one fullscreen quad + Varyings output; + float3 positionWS = TransformObjectToWorld(input.positionOS); + output.positionHS = TransformWorldToHClip(positionWS); + + return output; + } + + float4 FragDeferred(Varyings input) : SV_Target + { + Coordinate coord = GetCoordinate(input.positionHS.xy, _ScreenSize.zw); + + // No need to manage inverse depth, this is handled by the projection matrix + float depth = _CameraDepthTexture.Load(uint3(coord.unPositionSS, 0)).x; + float3 positionWS = UnprojectToWorld(depth, coord.positionSS, _InvViewProjMatrix); + float3 V = GetWorldSpaceNormalizeViewDir(positionWS); + + FETCH_GBUFFER(gbuffer, _CameraGBufferTexture, coord.unPositionSS); + BSDFData bsdfData = DECODE_FROM_GBUFFER(gbuffer); + + PreLightData preLightData = GetPreLightData(V, positionWS, coord, bsdfData); + + // NOTE: Currently calling the forward loop, same code... :) + float4 diffuseLighting; + float4 specularLighting; + ForwardLighting(V, positionWS, preLightData, bsdfData, diffuseLighting, specularLighting); + + FETCH_BAKE_LIGHTING_GBUFFER(gbuffer, _CameraGBufferTexture, coord.unPositionSS); + diffuseLighting.rgb += DECODE_BAKE_LIGHTING_FROM_GBUFFER(gbuffer); + + return float4(diffuseLighting.rgb + specularLighting.rgb, 1.0); + } + + ENDHLSL + } + + } + Fallback Off +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.shader.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred/LightingDeferred.shader.meta similarity index 100% rename from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred.shader.meta rename to Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingDeferred/LightingDeferred.shader.meta diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward.hlsl deleted file mode 100644 index 58e53f084a2..00000000000 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward.hlsl +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef UNITY_LIGHTING_FORWARD_INCLUDED -#define UNITY_LIGHTING_FORWARD_INCLUDED - -//----------------------------------------------------------------------------- -// Simple forward loop architecture -//----------------------------------------------------------------------------- - -StructuredBuffer g_punctualLightList; -int g_punctualLightCount; - -// TODO: Think about how to apply Disney diffuse preconvolve on indirect diffuse => must be done during GBuffer layout! Else emissive will be fucked... -// That's mean we need to read DFG texture during Gbuffer... -void ForwardLighting( float3 V, float3 positionWS, BSDFData material, - out float4 diffuseLighting, - out float4 specularLighting) -{ - diffuseLighting = float4(0.0, 0.0, 0.0, 0.0); - specularLighting = float4(0.0, 0.0, 0.0, 0.0); - - for (int i = 0; i < g_punctualLightCount; ++i) - { - float4 localDiffuseLighting; - float4 localSpecularLighting; - EvaluateBSDF_Punctual(V, positionWS, g_punctualLightList[i], material, localDiffuseLighting, localSpecularLighting); - diffuseLighting += localDiffuseLighting; - specularLighting += localSpecularLighting; - } - - /* - for (int i = 0; i < 4; ++i) - { - float4 localDiffuseLighting; - float4 localSpecularLighting; - EvaluateBSDF_Area(V, positionWS, areaLightData[i], material, localDiffuseLighting, localSpecularLighting); - diffuseLighting += localDiffuseLighting; - specularLighting += localSpecularLighting; - } - */ -} - -#endif // UNITY_LIGHTING_FORWARD_INCLUDED \ No newline at end of file diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward.meta new file mode 100644 index 00000000000..9dbea163e53 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8f27521401d2efc4fb35f246e296940e +folderAsset: yes +timeCreated: 1476653182 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward/LightingForward.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward/LightingForward.hlsl new file mode 100644 index 00000000000..69bfafe4be3 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward/LightingForward.hlsl @@ -0,0 +1,59 @@ +#ifndef UNITY_LIGHTING_FORWARD_INCLUDED +#define UNITY_LIGHTING_FORWARD_INCLUDED + +//----------------------------------------------------------------------------- +// Simple forward loop architecture +//----------------------------------------------------------------------------- + +StructuredBuffer _PunctualLightList; +int _PunctualLightCount; + +UNITY_DECLARE_TEXCUBEARRAY(_EnvTextures); + +StructuredBuffer _EnvLightList; +int _EnvLightCount; + +void ForwardLighting( float3 V, float3 positionWS, PreLightData prelightData, BSDFData bsdfData, + out float4 diffuseLighting, + out float4 specularLighting) +{ + diffuseLighting = float4(0.0, 0.0, 0.0, 0.0); + specularLighting = float4(0.0, 0.0, 0.0, 0.0); + + for (int i = 0; i < _PunctualLightCount; ++i) + { + float4 localDiffuseLighting; + float4 localSpecularLighting; + EvaluateBSDF_Punctual(V, positionWS, prelightData, _PunctualLightList[i], bsdfData, localDiffuseLighting, localSpecularLighting); + diffuseLighting += localDiffuseLighting; + specularLighting += localSpecularLighting; + } + + /* + for (int i = 0; i < 4; ++i) + { + float4 localDiffuseLighting; + float4 localSpecularLighting; + EvaluateBSDF_Area(V, positionWS, areaLightData[i], bsdfData, localDiffuseLighting, localSpecularLighting); + diffuseLighting += localDiffuseLighting; + specularLighting += localSpecularLighting; + } + */ + + float4 iblDiffuseLighting = float4(0.0, 0.0, 0.0, 0.0); + float4 iblSpecularLighting = float4(0.0, 0.0, 0.0, 0.0); + + for (int j = 0; j < _EnvLightCount; ++j) + { + float4 localDiffuseLighting; + float4 localSpecularLighting; + EvaluateBSDF_Env(V, positionWS, prelightData, _EnvLightList[j], bsdfData, UNITY_PASS_TEXCUBEARRAY(_EnvTextures), localDiffuseLighting, localSpecularLighting); + iblDiffuseLighting.rgb = lerp(iblDiffuseLighting.rgb, localDiffuseLighting.rgb, localDiffuseLighting.a); // Should be remove by the compiler if it is smart as all is constant 0 + iblSpecularLighting.rgb = lerp(iblSpecularLighting.rgb, localSpecularLighting.rgb, localSpecularLighting.a); + } + + diffuseLighting += iblDiffuseLighting; + specularLighting += iblSpecularLighting; +} + +#endif // UNITY_LIGHTING_FORWARD_INCLUDED diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward/LightingForward.hlsl.meta similarity index 100% rename from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward.hlsl.meta rename to Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightingForward/LightingForward.hlsl.meta diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin.meta new file mode 100644 index 00000000000..ed50b37b7a2 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: af4ee1f6f88b039449ba02003b0f332d +folderAsset: yes +timeCreated: 1476653183 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs new file mode 100644 index 00000000000..785c67ace31 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs @@ -0,0 +1,56 @@ +using UnityEngine; + +//----------------------------------------------------------------------------- +// structure definition +//----------------------------------------------------------------------------- +namespace UnityEngine.Experimental.ScriptableRenderLoop +{ + namespace Builtin + { + //----------------------------------------------------------------------------- + // BuiltinData + // This structure include common data that should be present in all material + // and are independent from the BSDF parametrization. + // Note: These parameters can be store in GBuffer if the writer wants + //----------------------------------------------------------------------------- + [GenerateHLSL(PackingRules.Exact, false, true, 100)] + public struct BuiltinData + { + [SurfaceDataAttributes("Opacity")] + public float opacity; + + // These are lighting data. + // We would prefer to split lighting and material information but for performance reasons, + // those lighting information are fill + // at the same time than material information. + [SurfaceDataAttributes("Bake Diffuse Lighting")] + public Vector3 bakeDiffuseLighting; // This is the result of sampling lightmap/lightprobe/proxyvolume + + [SurfaceDataAttributes("Emissive Color")] + public Vector3 emissiveColor; + [SurfaceDataAttributes("Emissive Intensity")] + public float emissiveIntensity; + + // These is required for motion blur and temporalAA + [SurfaceDataAttributes("Velocity")] + public Vector2 velocity; + + // Distortion + [SurfaceDataAttributes("Distortion")] + public Vector2 distortion; + [SurfaceDataAttributes("Distortion Blur")] + public float distortionBlur; // Define the color buffer mipmap level to use + }; + + //----------------------------------------------------------------------------- + // LighTransportData + // This struct is use to store information for Enlighten/Progressive light mapper. both at runtime or off line. + //----------------------------------------------------------------------------- + [GenerateHLSL(PackingRules.Exact, false, true, 120)] + public struct LighTransportData + { + public Vector3 diffuseColor; + public Vector3 emissiveColor; + }; + } +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs.hlsl new file mode 100644 index 00000000000..e66e91d45b7 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs.hlsl @@ -0,0 +1,43 @@ +// +// This file was automatically generated from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs. Please don't edit by hand. +// + +// +// UnityEngine.Experimental.ScriptableRenderLoop.Builtin.BuiltinData: static fields +// +#define DEBUGVIEW_BUILTIN_BUILTINDATA_OPACITY (100) +#define DEBUGVIEW_BUILTIN_BUILTINDATA_BAKE_DIFFUSE_LIGHTING (101) +#define DEBUGVIEW_BUILTIN_BUILTINDATA_EMISSIVE_COLOR (102) +#define DEBUGVIEW_BUILTIN_BUILTINDATA_EMISSIVE_INTENSITY (103) +#define DEBUGVIEW_BUILTIN_BUILTINDATA_VELOCITY (104) +#define DEBUGVIEW_BUILTIN_BUILTINDATA_DISTORTION (105) +#define DEBUGVIEW_BUILTIN_BUILTINDATA_DISTORTION_BLUR (106) + +// +// UnityEngine.Experimental.ScriptableRenderLoop.Builtin.LighTransportData: static fields +// +#define DEBUGVIEW_BUILTIN_LIGHTRANSPORTDATA_DIFFUSE_COLOR (120) +#define DEBUGVIEW_BUILTIN_LIGHTRANSPORTDATA_EMISSIVE_COLOR (121) + +// Generated from UnityEngine.Experimental.ScriptableRenderLoop.Builtin.BuiltinData +// PackingRules = Exact +struct BuiltinData +{ + float opacity; + float3 bakeDiffuseLighting; + float3 emissiveColor; + float emissiveIntensity; + float2 velocity; + float2 distortion; + float distortionBlur; +}; + +// Generated from UnityEngine.Experimental.ScriptableRenderLoop.Builtin.LighTransportData +// PackingRules = Exact +struct LighTransportData +{ + float3 diffuseColor; + float3 emissiveColor; +}; + + diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs.hlsl.meta new file mode 100644 index 00000000000..a1b11ab5172 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8683f17295ce92e48b6000424f8ba166 +timeCreated: 1476011766 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs.meta new file mode 100644 index 00000000000..e3d00c6346f --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4e7ffefa010d39847ba8fc54d4aa8e46 +timeCreated: 1476011696 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.hlsl new file mode 100644 index 00000000000..3418ad631a6 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.hlsl @@ -0,0 +1,56 @@ +#ifndef UNITY_BUILTIN_DATA_INCLUDED +#define UNITY_BUILTIN_DATA_INCLUDED + +//----------------------------------------------------------------------------- +// BuiltinData +// This structure include common data that should be present in all material +// and are independent from the BSDF parametrization. +// Note: These parameters can be store in GBuffer if the writer wants +//----------------------------------------------------------------------------- + +#include "BuiltinData.cs.hlsl" + +void GetBuiltinDataDebug(uint paramId, BuiltinData builtinData, inout float3 result, inout bool needLinearToSRGB) +{ + switch (paramId) + { + case DEBUGVIEW_BUILTIN_BUILTINDATA_OPACITY: + result = builtinData.opacity.xxx; + break; + case DEBUGVIEW_BUILTIN_BUILTINDATA_BAKE_DIFFUSE_LIGHTING: + // TODO: require a remap + result = builtinData.bakeDiffuseLighting; + break; + case DEBUGVIEW_BUILTIN_BUILTINDATA_EMISSIVE_COLOR: + result = builtinData.emissiveColor; needLinearToSRGB = true; + break; + case DEBUGVIEW_BUILTIN_BUILTINDATA_EMISSIVE_INTENSITY: + result = builtinData.emissiveIntensity.xxx; + break; + case DEBUGVIEW_BUILTIN_BUILTINDATA_VELOCITY: + result = float3(builtinData.velocity, 0.0); + break; + case DEBUGVIEW_BUILTIN_BUILTINDATA_DISTORTION: + result = float3(builtinData.distortion, 0.0); + break; + case DEBUGVIEW_BUILTIN_BUILTINDATA_DISTORTION_BLUR: + result = builtinData.distortionBlur.xxx; + break; + } +} + +void GetLighTransportDataDebug(uint paramId, LighTransportData lightTransportData, inout float3 result, inout bool needLinearToSRGB) +{ + switch (paramId) + { + case DEBUGVIEW_BUILTIN_LIGHTRANSPORTDATA_DIFFUSE_COLOR: + result = lightTransportData.diffuseColor; needLinearToSRGB = true; + break; + case DEBUGVIEW_BUILTIN_LIGHTRANSPORTDATA_EMISSIVE_COLOR: + // TODO: Need a tonemap ? + result = lightTransportData.emissiveColor; + break; + } +} + +#endif // UNITY_BUILTIN_DATA_INCLUDED diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.hlsl.meta new file mode 100644 index 00000000000..29344606411 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Builtin/BuiltinData.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 82161f939b9c88745950020764de18c9 +timeCreated: 1475658936 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/CommonMaterial.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/CommonMaterial.hlsl deleted file mode 100644 index 77580e4508b..00000000000 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/CommonMaterial.hlsl +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef UNITY_COMMON_MATERIAL_INCLUDED -#define UNITY_COMMON_MATERIAL_INCLUDED - -//----------------------------------------------------------------------------- -// Parametrization function helpers -//----------------------------------------------------------------------------- - -float PerceptualRoughnessToRoughness(float perceptualRoughness) -{ - return perceptualRoughness * perceptualRoughness; -} - -float RoughnessToPerceptualRoughness(float roughness) -{ - return sqrt(roughness); -} - -// Smoothness is the user facing name -// it should be perceptualSmoothness but we don't want the user to have to deal with this name -float SmoothnessToRoughness(float smoothness) -{ - return (1 - smoothness) * (1 - smoothness); -} - -float SmoothnessToPerceptualRoughness(float smoothness) -{ - return (1 - smoothness); -} - -#endif // UNITY_COMMON_MATERIAL_INCLUDED \ No newline at end of file diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/DisneyGGX.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/DisneyGGX.hlsl deleted file mode 100644 index 6057281a4f7..00000000000 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/DisneyGGX.hlsl +++ /dev/null @@ -1,140 +0,0 @@ -#ifndef UNITY_MATERIAL_DISNEYGGX_INCLUDED -#define UNITY_MATERIAL_DISNEYGGX_INCLUDED - -//----------------------------------------------------------------------------- -// SurfaceData and BSDFData -//----------------------------------------------------------------------------- - -// Main structure that store the user data (i.e user input of master node in material graph) -struct SurfaceData -{ - float3 diffuseColor; - float occlusion; - - float3 specularColor; - float smoothness; - - float3 normal; // normal in world space - - // TODO: create a system surfaceData for thing like that + Transparent - // As we collect some lighting information (Lightmap, lightprobe/proxy volume) - // and emissive ahead (i.e in Gbuffer pass when doing deferred), we need to - // to have them in the SurfaceData structure. - float3 baked; - float3 emissiveColor; // Linear space - float emissiveIntensity; -}; - -struct BSDFData -{ - float3 diffuseColor; - float occlusion; - - float3 fresnel0; - float perceptualRoughness; - - float3 normalWS; - float roughness; - - // System - float3 bakedAndEmissive; -}; - -//----------------------------------------------------------------------------- -// conversion function for forward and deferred -//----------------------------------------------------------------------------- - -BSDFData ConvertSurfaceDataToBSDFData(SurfaceData data) -{ - BSDFData output; - - output.diffuseColor = data.diffuseColor; - output.occlusion = data.occlusion; - - output.fresnel0 = data.specularColor; - output.perceptualRoughness = SmoothnessToPerceptualRoughness(data.smoothness); - - output.normalWS = data.normal; - output.roughness = PerceptualRoughnessToRoughness(output.perceptualRoughness); - - output.bakedAndEmissive = data.baked + data.emissiveColor * data.emissiveIntensity; - - return output; -} - -#define GBUFFER_COUNT 4 - -// This will encode UnityStandardData into GBuffer -void EncodeIntoGBuffer(SurfaceData data, out float4 outGBuffer0, out float4 outGBuffer1, out float4 outGBuffer2, out float4 outGBuffer3) -{ - // RT0: diffuse color (rgb), occlusion (a) - sRGB rendertarget - outGBuffer0 = float4(data.diffuseColor, data.occlusion); - - // RT1: spec color (rgb), perceptual roughness (a) - sRGB rendertarget - outGBuffer1 = float4(data.specularColor, SmoothnessToPerceptualRoughness(data.smoothness)); - - // RT2: normal (rgb), --unused, very low precision-- (a) - outGBuffer2 = float4(PackNormalCartesian(data.normal), 1.0f); - - // RT3: 11, 11, 10 float - outGBuffer3 = float4(data.baked + data.emissiveColor * data.emissiveIntensity, 0.0f); -} - -// This decode the Gbuffer in a BSDFData struct -BSDFData DecodeFromGBuffer(float4 inGBuffer0, float4 inGBuffer1, float4 inGBuffer2, float4 inGBuffer3) -{ - BSDFData bsdfData; - bsdfData.diffuseColor = inGBuffer0.rgb; - bsdfData.occlusion = inGBuffer0.a; - - bsdfData.fresnel0 = inGBuffer1.rgb; - bsdfData.perceptualRoughness = inGBuffer1.a; - - bsdfData.normalWS = UnpackNormalCartesian(inGBuffer2.rgb); - bsdfData.roughness = PerceptualRoughnessToRoughness(bsdfData.perceptualRoughness); - - bsdfData.bakedAndEmissive = inGBuffer3.rgb; - - return bsdfData; -} - -//----------------------------------------------------------------------------- -// EvaluateBSDF functions for each light type -//----------------------------------------------------------------------------- - -void EvaluateBSDF_Punctual( float3 V, float3 positionWS, PunctualLightData light, BSDFData material, - out float4 diffuseLighting, - out float4 specularLighting) -{ - float3 unL = light.positionWS - positionWS; - float3 L = normalize(unL); - - // Always done, directional have it neutral - float attenuation = GetDistanceAttenuation(unL, light.invSqrAttenuationRadius); - // Always done, point and dir have it neutral - attenuation *= GetAngleAttenuation(L, light.forward, light.angleScale, light.angleOffset); - float illuminance = saturate(dot(material.normalWS, L)) * attenuation; - - diffuseLighting = float4(0.0f, 0.0f, 0.0f, 1.0f); - specularLighting = float4(0.0f, 0.0f, 0.0f, 1.0f); - - if (illuminance > 0.0f) - { - float NdotV = abs(dot(material.normalWS, V)) + 1e-5f; // TODO: check Eric idea about doing that when writting into the GBuffer (with our forward decal) - float3 H = normalize(V + L); - float LdotH = saturate(dot(L, H)); - float NdotH = saturate(dot(material.normalWS, H)); - float NdotL = saturate(dot(material.normalWS, L)); - float3 F = F_Schlick(material.fresnel0, LdotH); - float Vis = V_SmithJointGGX(NdotL, NdotV, material.roughness); - float D = D_GGX(NdotH, material.roughness); - specularLighting.rgb = F * Vis * D; - float disneyDiffuse = DisneyDiffuse(NdotV, NdotL, LdotH, material.perceptualRoughness); - diffuseLighting.rgb = material.diffuseColor * disneyDiffuse; - - diffuseLighting.rgb *= light.color * illuminance; - specularLighting.rgb *= light.color * illuminance; - } -} - -#endif // UNITY_MATERIAL_DISNEYGGX_INCLUDED \ No newline at end of file diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit.meta new file mode 100644 index 00000000000..90065e4600b --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: cebd0ba54432759488065d1592e05692 +folderAsset: yes +timeCreated: 1476653183 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLit.shader b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLit.shader new file mode 100644 index 00000000000..5eaac413d5a --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLit.shader @@ -0,0 +1,210 @@ +Shader "Unity/LayeredLit" +{ + Properties + { + // Following set of parameters represent the parameters node inside the MaterialGraph. + // They are use to fill a SurfaceData. With a MaterialGraph this should not exist. + + // Reminder. Color here are in linear but the UI (color picker) do the conversion sRGB to linear + _BaseColor0("BaseColor0", Color) = (1,1,1,1) + _BaseColor1("BaseColor1", Color) = (1, 1, 1, 1) + _BaseColor2("BaseColor2", Color) = (1, 1, 1, 1) + _BaseColor3("BaseColor3", Color) = (1, 1, 1, 1) + + _BaseColorMap0("BaseColorMap0", 2D) = "white" {} + _BaseColorMap1("BaseColorMap1", 2D) = "white" {} + _BaseColorMap2("BaseColorMap2", 2D) = "white" {} + _BaseColorMap3("BaseColorMap3", 2D) = "white" {} + + _Metallic0("Metallic0", Range(0.0, 1.0)) = 0 + _Metallic1("Metallic1", Range(0.0, 1.0)) = 0 + _Metallic2("Metallic2", Range(0.0, 1.0)) = 0 + _Metallic3("Metallic3", Range(0.0, 1.0)) = 0 + + _Smoothness0("Smoothness0", Range(0.0, 1.0)) = 0.5 + _Smoothness1("Smoothness1", Range(0.0, 1.0)) = 0.5 + _Smoothness2("Smoothness2", Range(0.0, 1.0)) = 0.5 + _Smoothness3("Smoothness3", Range(0.0, 1.0)) = 0.5 + + _MaskMap0("MaskMap0", 2D) = "white" {} + _MaskMap1("MaskMap1", 2D) = "white" {} + _MaskMap2("MaskMap2", 2D) = "white" {} + _MaskMap3("MaskMap3", 2D) = "white" {} + + _SpecularOcclusionMap0("SpecularOcclusion0", 2D) = "white" {} + _SpecularOcclusionMap1("SpecularOcclusion1", 2D) = "white" {} + _SpecularOcclusionMap2("SpecularOcclusion2", 2D) = "white" {} + _SpecularOcclusionMap3("SpecularOcclusion3", 2D) = "white" {} + + _NormalMap0("NormalMap0", 2D) = "bump" {} + _NormalMap1("NormalMap1", 2D) = "bump" {} + _NormalMap2("NormalMap2", 2D) = "bump" {} + _NormalMap3("NormalMap3", 2D) = "bump" {} + + [Enum(TangentSpace, 0, ObjectSpace, 1)] _NormalMapSpace("NormalMap space", Float) = 0 + + _HeightMap0("HeightMap0", 2D) = "black" {} + _HeightMap1("HeightMap1", 2D) = "black" {} + _HeightMap2("HeightMap2", 2D) = "black" {} + _HeightMap3("HeightMap3", 2D) = "black" {} + + _HeightScale0("Height Scale0", Float) = 1 + _HeightScale1("Height Scale1", Float) = 1 + _HeightScale2("Height Scale2", Float) = 1 + _HeightScale3("Height Scale3", Float) = 1 + + _HeightBias0("Height Bias0", Float) = 0 + _HeightBias1("Height Bias1", Float) = 0 + _HeightBias2("Height Bias2", Float) = 0 + _HeightBias3("Height Bias3", Float) = 0 + + [Enum(Parallax, 0, Displacement, 1)] _HeightMapMode("Heightmap usage", Float) = 0 + + _EmissiveColor0("EmissiveColor0", Color) = (0, 0, 0) + _EmissiveColor1("EmissiveColor1", Color) = (0, 0, 0) + _EmissiveColor2("EmissiveColor2", Color) = (0, 0, 0) + _EmissiveColor3("EmissiveColor3", Color) = (0, 0, 0) + + _EmissiveColorMap0("EmissiveColorMap0", 2D) = "white" {} + _EmissiveColorMap1("EmissiveColorMap1", 2D) = "white" {} + _EmissiveColorMap2("EmissiveColorMap2", 2D) = "white" {} + _EmissiveColorMap3("EmissiveColorMap3", 2D) = "white" {} + + _EmissiveIntensity0("EmissiveIntensity0", Float) = 0 + _EmissiveIntensity1("EmissiveIntensity1", Float) = 0 + _EmissiveIntensity2("EmissiveIntensity2", Float) = 0 + _EmissiveIntensity3("EmissiveIntensity3", Float) = 0 + + _LayerMaskMap("LayerMaskMap", 2D) = "white" {} + + [ToggleOff] _DistortionOnly("Distortion Only", Float) = 0.0 + [ToggleOff] _DistortionDepthTest("Distortion Only", Float) = 0.0 + + [ToggleOff] _AlphaCutoffEnable("Alpha Cutoff Enable", Float) = 0.0 + + _AlphaCutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5 + + // Blending state + [HideInInspector] _SurfaceType("__surfacetype", Float) = 0.0 + [HideInInspector] _BlendMode ("__blendmode", Float) = 0.0 + [HideInInspector] _SrcBlend ("__src", Float) = 1.0 + [HideInInspector] _DstBlend ("__dst", Float) = 0.0 + [HideInInspector] _ZWrite ("__zw", Float) = 1.0 + [HideInInspector] _CullMode("__cullmode", Float) = 2.0 + // Material Id + [HideInInspector] _MaterialId("_MaterialId", FLoat) = 0 + + [HideInInspector] _LayerCount("__layerCount", Float) = 2.0 + + [Enum(Mask Alpha, 0, BaseColor Alpha, 1)] _SmoothnessTextureChannel("Smoothness texture channel", Float) = 1 + [Enum(Use Emissive Color, 0, Use Emissive Mask, 1)] _EmissiveColorMode("Emissive color mode", Float) = 1 + [Enum(None, 0, DoubleSided, 1, DoubleSidedLigthingFlip, 2, DoubleSidedLigthingMirror, 3)] _DoubleSidedMode("Double sided mode", Float) = 0 + } + + HLSLINCLUDE + + #pragma target 5.0 + #pragma only_renderers d3d11 // TEMP: unitl we go futher in dev + + #pragma shader_feature _ALPHATEST_ON + #pragma shader_feature _ _DOUBLESIDED_LIGHTING_FLIP _DOUBLESIDED_LIGHTING_MIRROR + #pragma shader_feature _NORMALMAP + #pragma shader_feature _NORMALMAP_TANGENT_SPACE + #pragma shader_feature _MASKMAP + #pragma shader_feature _SPECULAROCCLUSIONMAP + #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + #pragma shader_feature _EMISSIVE_COLOR + #pragma shader_feature _EMISSIVE_COLOR_MAP + #pragma shader_feature _HEIGHTMAP + #pragma shader_feature _HEIGHTMAP_AS_DISPLACEMENT + #pragma shader_feature _LAYERMASKMAP + #pragma shader_feature _ _LAYEREDLIT_3_LAYERS _LAYEREDLIT_4_LAYERS + + //------------------------------------------------------------------------------------- + // Include + //------------------------------------------------------------------------------------- + #include "common.hlsl" + #include "../../ShaderPass/ShaderPass.cs.hlsl" + + ENDHLSL + + SubShader + { + Tags { "RenderType"="Opaque" "PerformanceChecks"="False" } + LOD 300 + + // ------------------------------------------------------------------ + // Deferred pass + Pass + { + Name "GBuffer" // Name is not used + Tags { "LightMode" = "GBuffer" } // This will be only for opaque object based on the RenderQueue index + + Cull [_CullMode] + + HLSLPROGRAM + + #pragma vertex VertDefault + #pragma fragment Frag + + #ifdef SHADER_STAGE_FRAGMENT + + #define SHADERPASS SHADERPASS_GBUFFER + #include "LayeredLitCommon.hlsl" + + #include "../../ShaderPass/ShaderPassGBuffer.hlsl" + + #endif + + ENDHLSL + } + + // ------------------------------------------------------------------ + // Debug pass + Pass + { + Name "Debug" + Tags{ "LightMode" = "DebugViewMaterial" } + + Cull[_CullMode] + + HLSLPROGRAM + + #pragma vertex VertDefault + #pragma fragment Frag + + #define SHADERPASS SHADERPASS_DEBUG_VIEW_MATERIAL + #include "LayeredLitCommon.hlsl" + + #include "../../ShaderPass/ShaderPassDebugViewMaterial.hlsl" + + ENDHLSL + } + + // ------------------------------------------------------------------ + // forward pass + Pass + { + Name "Forward" // Name is not used + Tags{ "LightMode" = "Forward" } // This will be only for transparent object based on the RenderQueue index + + Blend[_SrcBlend][_DstBlend] + ZWrite[_ZWrite] + Cull[_CullMode] + + HLSLPROGRAM + + #pragma vertex VertDefault + #pragma fragment Frag + + #define SHADERPASS SHADERPASS_FORWARD + #include "LayeredLitCommon.hlsl" + + #include "../../ShaderPass/ShaderPassForward.hlsl" + + ENDHLSL + } + } + + CustomEditor "LayeredLitGUI" +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLit.shader.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLit.shader.meta new file mode 100644 index 00000000000..7a8d6986e06 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLit.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 81d02e8644315b742b154842a3a2f98c +timeCreated: 1475846632 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitCommon.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitCommon.hlsl new file mode 100644 index 00000000000..c56d938dbbd --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitCommon.hlsl @@ -0,0 +1,446 @@ +// GENERATED BY SHADER GRAPH +// Question for shader graph: how to handle dynamic parameter data like matData0 that can change name + +// No guard header! + +#define UNITY_MATERIAL_LIT // Need to be define before including Material.hlsl +#include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/Lighting.hlsl" // This include Material.hlsl +#include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderVariables.hlsl" +#include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Debug/DebugViewMaterial.hlsl" + +// This files is generated by the ShaderGraph or written by hand + +// Note for ShaderGraph: +// ShaderGraph should generate the vertex shader output to add the variable that may be required +// For example if we require view vector in shader graph, the output must contain positionWS and we calcualte the view vector with it. +// Still some input are mandatory depends on the type of loop. positionWS is mandatory in this current framework. So the ShaderGraph should always generate it. + + +#define PROP_DECL(type, name) type name, name##0, name##1, name##2, name##3; +#define PROP_DECL_TEX2D(name)\ + UNITY_DECLARE_TEX2D(name##0);\ + UNITY_DECLARE_TEX2D_NOSAMPLER(name##1);\ + UNITY_DECLARE_TEX2D_NOSAMPLER(name##2);\ + UNITY_DECLARE_TEX2D_NOSAMPLER(name##3); +#define PROP_SAMPLE(name, textureName, texcoord, swizzle)\ + name##0 = UNITY_SAMPLE_TEX2D_SAMPLER(textureName##0, textureName##0, texcoord).##swizzle; \ + name##1 = UNITY_SAMPLE_TEX2D_SAMPLER(textureName##1, textureName##0, texcoord).##swizzle; \ + name##2 = UNITY_SAMPLE_TEX2D_SAMPLER(textureName##2, textureName##0, texcoord).##swizzle; \ + name##3 = UNITY_SAMPLE_TEX2D_SAMPLER(textureName##3, textureName##0, texcoord).##swizzle; +#define PROP_MUL(name, multiplier, swizzle)\ + name##0 *= multiplier##0.##swizzle; \ + name##1 *= multiplier##1.##swizzle; \ + name##2 *= multiplier##2.##swizzle; \ + name##3 *= multiplier##3.##swizzle; +#define PROP_ASSIGN(name, input, swizzle)\ + name##0 = input##0.##swizzle; \ + name##1 = input##1.##swizzle; \ + name##2 = input##2.##swizzle; \ + name##3 = input##3.##swizzle; +#define PROP_ASSIGN_VALUE(name, input)\ + name##0 = input; \ + name##1 = input; \ + name##2 = input; \ + name##3 = input; +#define PROP_BLEND_COLOR(name, mask) name = BlendLayeredColor(name##0, name##1, name##2, name##3, mask); +#define PROP_BLEND_SCALAR(name, mask) name = BlendLayeredScalar(name##0, name##1, name##2, name##3, mask); + +#define _MAX_LAYER 4 + +#if defined(_LAYEREDLIT_4_LAYERS) +# define _LAYER_COUNT 4 +#elif defined(_LAYEREDLIT_3_LAYERS) +# define _LAYER_COUNT 3 +#else +# define _LAYER_COUNT 2 +#endif + +//------------------------------------------------------------------------------------- +// variable declaration +//------------------------------------------------------------------------------------- + +// Set of users variables +PROP_DECL(float4, _BaseColor); +PROP_DECL_TEX2D(_BaseColorMap); +PROP_DECL(float, _Metallic); +PROP_DECL(float, _Smoothness); +PROP_DECL_TEX2D(_MaskMap); +PROP_DECL_TEX2D(_SpecularOcclusionMap); +PROP_DECL_TEX2D(_NormalMap); +PROP_DECL_TEX2D(_Heightmap); +PROP_DECL(float, _HeightScale); +PROP_DECL(float, _HeightBias); +PROP_DECL(float4, _EmissiveColor); +PROP_DECL(float, _EmissiveIntensity); + +float _AlphaCutoff; +UNITY_DECLARE_TEX2D(_LayerMaskMap); + +//------------------------------------------------------------------------------------- +// Lighting architecture +//------------------------------------------------------------------------------------- + +// TODO: Check if we will have different Varyings based on different pass, not sure about that... + +// Forward +struct Attributes +{ + float3 positionOS : POSITION; + float3 normalOS : NORMAL; + float2 uv0 : TEXCOORD0; + float4 tangentOS : TANGENT; + float4 color : TANGENT; +}; + +struct Varyings +{ + float4 positionHS; + float3 positionWS; + float2 texCoord0; + float3 tangentToWorld[3]; + float4 vertexColor; + +#ifdef SHADER_STAGE_FRAGMENT + #if defined(_DOUBLESIDED_LIGHTING_FLIP) || defined(_DOUBLESIDED_LIGHTING_MIRROR) + FRONT_FACE_TYPE cullFace; + #endif +#endif +}; + +struct PackedVaryings +{ + float4 positionHS : SV_Position; + float4 interpolators[6] : TEXCOORD0; + +#ifdef SHADER_STAGE_FRAGMENT + #if defined(_DOUBLESIDED_LIGHTING_FLIP) || defined(_DOUBLESIDED_LIGHTING_MIRROR) + FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMATIC; + #endif +#endif +}; + +// Function to pack data to use as few interpolator as possible, the ShaderGraph should generate these functions +PackedVaryings PackVaryings(Varyings input) +{ + PackedVaryings output; + output.positionHS = input.positionHS; + output.interpolators[0].xyz = input.positionWS.xyz; + output.interpolators[0].w = input.texCoord0.x; + output.interpolators[1].xyz = input.tangentToWorld[0]; + output.interpolators[2].xyz = input.tangentToWorld[1]; + output.interpolators[3].xyz = input.tangentToWorld[2]; + output.interpolators[4].x = input.texCoord0.y; + output.interpolators[4].yzw = float3(0.0, 0.0, 0.0); + output.interpolators[5] = input.vertexColor; + + return output; +} + +Varyings UnpackVaryings(PackedVaryings input) +{ + Varyings output; + output.positionHS = input.positionHS; + output.positionWS.xyz = input.interpolators[0].xyz; + output.texCoord0.x = input.interpolators[0].w; + output.texCoord0.y = input.interpolators[4].x; + output.tangentToWorld[0] = input.interpolators[1].xyz; + output.tangentToWorld[1] = input.interpolators[2].xyz; + output.tangentToWorld[2] = input.interpolators[3].xyz; + output.vertexColor = input.interpolators[5]; + +#ifdef SHADER_STAGE_FRAGMENT + #if defined(_DOUBLESIDED_LIGHTING_FLIP) || defined(_DOUBLESIDED_LIGHTING_MIRROR) + output.cullFace = input.cullFace; + #endif +#endif + + return output; +} + +// TODO: Here we will also have all the vertex deformation (GPU skinning, vertex animation, morph target...) or we will need to generate a compute shaders instead (better! but require work to deal with unpacking like fp16) +PackedVaryings VertDefault(Attributes input) +{ + Varyings output; + + output.positionWS = TransformObjectToWorld(input.positionOS); + // TODO deal with camera center rendering and instancing (This is the reason why we always perform tow steps transform to clip space + instancing matrix) + output.positionHS = TransformWorldToHClip(output.positionWS); + + float3 normalWS = TransformObjectToWorldNormal(input.normalOS); + + output.texCoord0 = input.uv0; + + float4 tangentWS = float4(TransformObjectToWorldDir(input.tangentOS.xyz), input.tangentOS.w); + + float3x3 tangentToWorld = CreateTangentToWorld(normalWS, tangentWS.xyz, tangentWS.w); + output.tangentToWorld[0].xyz = tangentToWorld[0]; + output.tangentToWorld[1].xyz = tangentToWorld[1]; + output.tangentToWorld[2].xyz = tangentToWorld[2]; + + output.vertexColor = input.color; + + return PackVaryings(output); +} + + +//------------------------------------------------------------------------------------- +// Fill SurfaceData/Lighting data function +//------------------------------------------------------------------------------------- + +#if SHADER_STAGE_FRAGMENT + +float3 BlendLayeredColor(float3 rgb0, float3 rgb1, float3 rgb2, float3 rgb3, float weight[4]) +{ + float3 result = float3(0.0, 0.0, 0.0); + + result = rgb0 * weight[0] + rgb1 * weight[1]; +#if _LAYER_COUNT >= 3 + result += (rgb2 * weight[2]); +#endif +#if _LAYER_COUNT >= 4 + result += rgb3 * weight[3]; +#endif + + return result; +} + +float3 BlendLayeredNormal(float3 normal0, float3 normal1, float3 normal2, float3 normal3, float weight[4]) +{ + float3 result = float3(0.0, 0.0, 0.0); + + // TODO : real normal map blending function + result = normal0 * weight[0] + normal1 * weight[1]; +#if _LAYER_COUNT >= 3 + result += normal2 * weight[2]; +#endif +#if _LAYER_COUNT >= 4 + result += normal3 * weight[3]; +#endif + + return result; +} + +float BlendLayeredScalar(float x0, float x1, float x2, float x3, float weight[4]) +{ + float result = 0.0; + + result = x0 * weight[0] + x1 * weight[1]; +#if _LAYER_COUNT >= 3 + result += x2 * weight[2]; +#endif +#if _LAYER_COUNT >= 4 + result += x3 * weight[3]; +#endif + + return result; +} + +void ComputeMaskWeights(float4 inputMasks, out float outWeights[_MAX_LAYER]) +{ + float masks[_MAX_LAYER]; + masks[0] = inputMasks.r; + masks[1] = inputMasks.g; + masks[2] = inputMasks.b; + masks[3] = inputMasks.a; + + // calculate weight of each layers + float left = 1.0f; + + // ATTRIBUTE_UNROLL + for (int i = _LAYER_COUNT - 1; i > 0; --i) + { + outWeights[i] = masks[i] * left; + left -= outWeights[i]; + } + outWeights[0] = left; +} + +void GetSurfaceAndBuiltinData(Varyings input, out SurfaceData surfaceData, out BuiltinData builtinData) +{ + float4 maskValues = float4(1.0, 1.0, 1.0, 1.0);// input.vertexColor; + +#ifdef _LAYERMASKMAP + float4 maskMap = UNITY_SAMPLE_TEX2D(_LayerMaskMap, input.texCoord0); + maskValues *= maskMap; +#endif + + float weights[_MAX_LAYER]; + ComputeMaskWeights(maskValues, weights); + + PROP_DECL(float3, baseColor); + PROP_SAMPLE(baseColor, _BaseColorMap, input.texCoord0, rgb); + PROP_MUL(baseColor, _BaseColor, rgb); + PROP_BLEND_COLOR(baseColor, weights); + + surfaceData.baseColor = baseColor; + + PROP_DECL(float, alpha); +#ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + PROP_ASSIGN(alpha, _BaseColor, a); +#else + PROP_SAMPLE(alpha, _BaseColorMap, input.texCoord0, a); + PROP_MUL(alpha, _BaseColor, a); +#endif + PROP_BLEND_SCALAR(alpha, weights); + +#ifdef _ALPHATEST_ON + clip(alpha - _AlphaCutoff); +#endif + + builtinData.opacity = alpha; + + PROP_DECL(float, specularOcclusion); +#ifdef _SPECULAROCCLUSIONMAP + // TODO: Do something. For now just take alpha channel + PROP_SAMPLE(specularOcclusion, _SpecularOcclusionMap, input.texCoord0, a); +#else + // Horizon Occlusion for Normal Mapped Reflections: http://marmosetco.tumblr.com/post/81245981087 + //surfaceData.specularOcclusion = saturate(1.0 + horizonFade * dot(r, input.tangentToWorld[2].xyz); + // smooth it + //surfaceData.specularOcclusion *= surfaceData.specularOcclusion; + PROP_ASSIGN_VALUE(specularOcclusion, 1.0); +#endif + PROP_BLEND_SCALAR(specularOcclusion, weights); + surfaceData.specularOcclusion = specularOcclusion; + + // TODO: think about using BC5 + float3 vertexNormalWS = input.tangentToWorld[2].xyz; + +#ifdef _NORMALMAP + #ifdef _NORMALMAP_TANGENT_SPACE + float3 normalTS0 = UnpackNormalAG(UNITY_SAMPLE_TEX2D_SAMPLER(_NormalMap0, _NormalMap0, input.texCoord0)); + float3 normalTS1 = UnpackNormalAG(UNITY_SAMPLE_TEX2D_SAMPLER(_NormalMap1, _NormalMap0, input.texCoord0)); + float3 normalTS2 = UnpackNormalAG(UNITY_SAMPLE_TEX2D_SAMPLER(_NormalMap2, _NormalMap0, input.texCoord0)); + float3 normalTS3 = UnpackNormalAG(UNITY_SAMPLE_TEX2D_SAMPLER(_NormalMap3, _NormalMap0, input.texCoord0)); + + float3 normalTS = BlendLayeredNormal(normalTS0, normalTS1, normalTS2, normalTS3, weights); + + surfaceData.normalWS = TransformTangentToWorld(normalTS, input.tangentToWorld); + #else // Object space (TODO: We need to apply the world rotation here!) + surfaceData.normalWS = UNITY_SAMPLE_TEX2D(_NormalMap, input.texCoord0).rgb; + #endif +#else + surfaceData.normalWS = vertexNormalWS; +#endif + +#if defined(_DOUBLESIDED_LIGHTING_FLIP) || defined(_DOUBLESIDED_LIGHTING_MIRROR) + #ifdef _DOUBLESIDED_LIGHTING_FLIP + float3 oppositeNormalWS = -surfaceData.normalWS; + #else + // Mirror the normal with the plane define by vertex normal + float3 oppositeNormalWS = reflect(surfaceData.normalWS, vertexNormalWS); + #endif + // TODO : Test if GetOdddNegativeScale() is necessary here in case of normal map, as GetOdddNegativeScale is take into account in CreateTangentToWorld(); + surfaceData.normalWS = IS_FRONT_VFACE(input.cullFace, GetOdddNegativeScale() >= 0.0 ? surfaceData.normalWS : oppositeNormalWS, -GetOdddNegativeScale() >= 0.0 ? surfaceData.normalWS : oppositeNormalWS); +#endif + + + PROP_DECL(float, perceptualSmoothness); +#ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + PROP_SAMPLE(perceptualSmoothness, _BaseColorMap, input.texCoord0, a); +#elif defined(_MASKMAP) + PROP_SAMPLE(perceptualSmoothness, _MaskMap, input.texCoord0, a); +#else + PROP_ASSIGN_VALUE(perceptualSmoothness, 1.0); +#endif + PROP_MUL(perceptualSmoothness, _Smoothness, r); + PROP_BLEND_SCALAR(perceptualSmoothness, weights); + + surfaceData.perceptualSmoothness = perceptualSmoothness; + + surfaceData.materialId = 0; + + // MaskMap is Metallic, Ambient Occlusion, (Optional) - emissive Mask, Optional - Smoothness (in alpha) + PROP_DECL(float, metallic); + PROP_DECL(float, ambientOcclusion); +#ifdef _MASKMAP + PROP_SAMPLE(metallic, _MaskMap, input.texCoord0, a); + PROP_SAMPLE(ambientOcclusion, _MaskMap, input.texCoord0, g); +#else + PROP_ASSIGN_VALUE(metallic, 1.0); + PROP_ASSIGN_VALUE(ambientOcclusion, 1.0); +#endif + PROP_MUL(metallic, _Metallic, r); + + PROP_BLEND_SCALAR(metallic, weights); + PROP_BLEND_SCALAR(ambientOcclusion, weights); + + surfaceData.metallic = metallic; + surfaceData.ambientOcclusion = ambientOcclusion; + + surfaceData.tangentWS = float3(1.0, 0.0, 0.0); + surfaceData.anisotropy = 0; + surfaceData.specular = 0.04; + + surfaceData.subSurfaceRadius = 1.0; + surfaceData.thickness = 0.0; + surfaceData.subSurfaceProfile = 0; + + surfaceData.coatNormalWS = float3(1.0, 0.0, 0.0); + surfaceData.coatPerceptualSmoothness = 1.0; + surfaceData.specularColor = float3(0.0, 0.0, 0.0); + + // Builtin Data + + // TODO: Sample lightmap/lightprobe/volume proxy + // This should also handle projective lightmap + // Note that data input above can be use to sample into lightmap (like normal) + builtinData.bakeDiffuseLighting = float3(0.0, 0.0, 0.0);// tex2D(_DiffuseLightingMap, input.texCoord0).rgb; + + // If we chose an emissive color, we have a dedicated texture for it and don't use MaskMap + PROP_DECL(float3, emissiveColor); +#ifdef _EMISSIVE_COLOR + #ifdef _EMISSIVE_COLOR_MAP + PROP_SAMPLE(emissiveColor, _EmissiveColorMap, input.texCoord0, rgb); + #else + PROP_ASSIGN(emissiveColor, _EmissiveColor, rgb); + #endif +#elif defined(_MASKMAP) // If we have a MaskMap, use emissive slot as a mask on baseColor + PROP_SAMPLE(emissiveColor, _MaskMap, input.texCoord0, bbb); + PROP_MUL(emissiveColor, baseColor, rgb); +#else + PROP_ASSIGN_VALUE(emissiveColor, float3(0.0, 0.0, 0.0)); +#endif + PROP_BLEND_COLOR(emissiveColor, weights); + builtinData.emissiveColor = emissiveColor; + + PROP_DECL(float, emissiveIntensity); + PROP_ASSIGN(emissiveIntensity, _EmissiveIntensity, r); + PROP_BLEND_SCALAR(emissiveIntensity, weights); + builtinData.emissiveIntensity = emissiveIntensity; + + builtinData.velocity = float2(0.0, 0.0); + + builtinData.distortion = float2(0.0, 0.0); + builtinData.distortionBlur = 0.0; +} + +void GetVaryingsDataDebug(uint paramId, Varyings input, inout float3 result, inout bool needLinearToSRGB) +{ + switch (paramId) + { + case DEBUGVIEW_VARYING_DEPTH: + // TODO: provide a customize parameter (like a slider) + float linearDepth = frac(LinearEyeDepth(input.positionHS.z, _ZBufferParams) * 0.1); + result = linearDepth.xxx; + break; + case DEBUGVIEW_VARYING_TEXCOORD0: + // TODO: require a remap + result = float3(input.texCoord0, 0.0); + break; + case DEBUGVIEW_VARYING_VERTEXNORMALWS: + result = input.tangentToWorld[2].xyz * 0.5 + 0.5; + break; + case DEBUGVIEW_VARYING_VERTEXTANGENTWS: + result = input.tangentToWorld[0].xyz * 0.5 + 0.5; + break; + case DEBUGVIEW_VARYING_VERTEXBITANGENTWS: + result = input.tangentToWorld[1].xyz * 0.5 + 0.5; + break; + case DEBUGVIEW_VARYING_VERTEXCOLOR: + result = input.vertexColor.xyz; + break; + } +} + +#endif // #if SHADER_STAGE_FRAGMENT diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitCommon.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitCommon.hlsl.meta new file mode 100644 index 00000000000..c5aae2ac7b5 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitCommon.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4475f12491047e54d9ddd0a61e36ead2 +timeCreated: 1476924487 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitUI.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitUI.cs new file mode 100644 index 00000000000..563d8203b94 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitUI.cs @@ -0,0 +1,430 @@ +using System; +using UnityEngine; +using UnityEngine.Rendering; + +namespace UnityEditor +{ + internal class LayeredLitGUI : LitGUI + { + private class Styles + { + public readonly GUIContent[] materialLayerLabels = + { + new GUIContent("Material Layer 0"), + new GUIContent("Material Layer 1"), + new GUIContent("Material Layer 2"), + new GUIContent("Material Layer 3"), + }; + public readonly GUIContent syncButton = new GUIContent("Re-Synchronize Layers", "Re-synchronize all layers's properties with the referenced Material"); + public readonly GUIContent layers = new GUIContent("Layers"); + public readonly GUIContent layerMapMask = new GUIContent("Layer Mask", "Layer mask (multiplied by vertex color)"); + public readonly GUIContent layerCount = new GUIContent("Layer Count", "Number of layers."); + } + + static Styles s_Styles = null; + private static Styles styles { get { if (s_Styles == null) s_Styles = new Styles(); return s_Styles; } } + + // Needed for json serialization to work + [Serializable] + internal struct SerializeableGUIDs + { + public string[] GUIDArray; + } + + private const int kMaxLayerCount = 4; + private const int kSyncButtonWidth = 58; + private string kLayerMaskMap = "_LayerMaskMap"; + private string kLayerCount = "_LayerCount"; + + private Material[] m_MaterialLayers = new Material[kMaxLayerCount]; + + MaterialProperty layerCountProperty = null; + MaterialProperty layerMaskMapProperty = null; + + int layerCount + { + set { layerCountProperty.floatValue = (float)value; } + get { return (int)layerCountProperty.floatValue; } + } + + void SynchronizeAllLayersProperties() + { + for (int i = 0; i < layerCount; ++i) + { + SynchronizeLayerProperties(i); + } + } + + void SynchronizeLayerProperties(int layerIndex) + { + Material material = m_MaterialEditor.target as Material; + Material layerMaterial = m_MaterialLayers[layerIndex]; + + if (layerMaterial != null) + { + Shader layerShader = layerMaterial.shader; + int propertyCount = ShaderUtil.GetPropertyCount(layerShader); + for (int i = 0; i < propertyCount; ++i) + { + string propertyName = ShaderUtil.GetPropertyName(layerShader, i); + string layerPropertyName = propertyName + layerIndex; + if (material.HasProperty(layerPropertyName)) + { + ShaderUtil.ShaderPropertyType type = ShaderUtil.GetPropertyType(layerShader, i); + switch (type) + { + case ShaderUtil.ShaderPropertyType.Color: + { + material.SetColor(layerPropertyName, layerMaterial.GetColor(propertyName)); + break; + } + case ShaderUtil.ShaderPropertyType.Float: + case ShaderUtil.ShaderPropertyType.Range: + { + material.SetFloat(layerPropertyName, layerMaterial.GetFloat(propertyName)); + break; + } + case ShaderUtil.ShaderPropertyType.Vector: + { + material.SetVector(layerPropertyName, layerMaterial.GetVector(propertyName)); + break; + } + case ShaderUtil.ShaderPropertyType.TexEnv: + { + material.SetTexture(layerPropertyName, layerMaterial.GetTexture(propertyName)); + break; + } + } + } + } + } + } + + void InitializeMaterialLayers(AssetImporter materialImporter) + { + if (materialImporter.userData != string.Empty) + { + SerializeableGUIDs layersGUID = JsonUtility.FromJson(materialImporter.userData); + if (layersGUID.GUIDArray.Length > 0) + { + m_MaterialLayers = new Material[layersGUID.GUIDArray.Length]; + for (int i = 0; i < layersGUID.GUIDArray.Length; ++i) + { + m_MaterialLayers[i] = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(layersGUID.GUIDArray[i]), typeof(Material)) as Material; + } + } + } + } + + void SaveMaterialLayers(AssetImporter materialImporter) + { + SerializeableGUIDs layersGUID; + layersGUID.GUIDArray = new string[m_MaterialLayers.Length]; + for (int i = 0; i < m_MaterialLayers.Length; ++i) + { + if (m_MaterialLayers[i] != null) + layersGUID.GUIDArray[i] = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(m_MaterialLayers[i].GetInstanceID())); + } + + materialImporter.userData = JsonUtility.ToJson(layersGUID); + } + + bool CheckInputOptionConsistency(string optionName, string[] shortNames, ref string outValueNames) + { + bool result = true; + outValueNames = ""; + for (int i = 0; i < layerCount; ++i) + { + Material layer = m_MaterialLayers[i]; + if (layer != null) + { + int currentValue = (int)layer.GetFloat(optionName); // All options are in fact enums + Debug.Assert(currentValue < shortNames.Length); + outValueNames += shortNames[currentValue] + " "; + + for (int j = i + 1; j < layerCount; ++j) + { + Material otherLayer = m_MaterialLayers[j]; + if (otherLayer != null) + { + if (currentValue != (int)otherLayer.GetFloat(optionName)) + { + result = false; + } + } + } + } + else + { + outValueNames += "X "; + } + } + + return result; + } + + bool CheckInputMapConsistency(string mapName, ref string outValueNames) + { + bool result = true; + outValueNames = ""; + for (int i = 0; i < layerCount; ++i) + { + Material layer = m_MaterialLayers[i]; + if (layer != null) + { + bool currentValue = layer.GetTexture(mapName) != null; + outValueNames += (currentValue ? "Y" : "N") + " "; + + for (int j = i + 1; j < layerCount; ++j) + { + Material otherLayer = m_MaterialLayers[j]; + if (otherLayer != null) + { + bool otherValue = otherLayer.GetTexture(mapName) != null; + if (currentValue != otherValue) + { + result = false; + } + } + } + } + else + { + outValueNames += "N "; + } + } + + return result; + } + + void CheckLayerConsistency() + { + string optionValueNames = ""; + // We need to check consistency between all layers. + // Each input options and each input maps might can result in different #defines in the shader so all of them need to be consistent + // otherwise the result will be undetermined + + // Input options consistency + string[] smoothnessSourceShortNames = { "Mask", "Albedo" }; + string[] emissiveModeShortNames = { "Color", "Mask" }; + string[] normalMapShortNames = { "Tan", "Obj" }; + string[] heightMapShortNames = { "Parallax", "Disp" }; + + string warningInputOptions = ""; + if (!CheckInputOptionConsistency(kSmoothnessTextureChannelProp, smoothnessSourceShortNames, ref optionValueNames)) + { + warningInputOptions += "Smoothness Source: " + optionValueNames + "\n"; + } + if (!CheckInputOptionConsistency(kEmissiveColorMode, emissiveModeShortNames, ref optionValueNames)) + { + warningInputOptions += "Emissive Mode: " + optionValueNames + "\n"; + } + if (!CheckInputOptionConsistency(kNormalMapSpace, normalMapShortNames, ref optionValueNames)) + { + warningInputOptions += "Normal Map Space: " + optionValueNames + "\n"; + } + if (!CheckInputOptionConsistency(kHeightMapMode, heightMapShortNames, ref optionValueNames)) + { + warningInputOptions += "Height Map Mode: " + optionValueNames + "\n"; + } + + if (warningInputOptions != string.Empty) + { + warningInputOptions = "Input Option Consistency Error:\n" + warningInputOptions; + } + + // Check input maps consistency + string warningInputMaps = ""; + + if (!CheckInputMapConsistency(kNormalMap, ref optionValueNames)) + { + warningInputMaps += "Normal Map: " + optionValueNames + "\n"; + } + if (!CheckInputMapConsistency(kMaskMap, ref optionValueNames)) + { + warningInputMaps += "Mask Map: " + optionValueNames + "\n"; + } + if (!CheckInputMapConsistency(kspecularOcclusionMap, ref optionValueNames)) + { + warningInputMaps += "Specular Occlusion Map: " + optionValueNames + "\n"; + } + if (!CheckInputMapConsistency(kEmissiveColorMap, ref optionValueNames)) + { + warningInputMaps += "Emissive Color Map: " + optionValueNames + "\n"; + } + if (!CheckInputMapConsistency(kHeightMap, ref optionValueNames)) + { + warningInputMaps += "Height Map: " + optionValueNames + "\n"; + } + + if (warningInputMaps != string.Empty) + { + warningInputMaps = "Input Maps Consistency Error:\n" + warningInputMaps; + if (warningInputOptions != string.Empty) + warningInputMaps = "\n" + warningInputMaps; + } + + string warning = warningInputOptions + warningInputMaps; + if (warning != string.Empty) + { + EditorGUILayout.HelpBox(warning, MessageType.Error); + } + } + + void SynchronizeInputOptions() + { + Material material = m_MaterialEditor.target as Material; + + // We synchronize input options with the firsts non null Layer (all layers should have consistent options) + Material firstLayer = null; + int i = 0; + while (i < layerCount && !(firstLayer = m_MaterialLayers[i])) ++i; + + if (firstLayer != null) + { + material.SetFloat(kSmoothnessTextureChannelProp, firstLayer.GetFloat(kSmoothnessTextureChannelProp)); + material.SetFloat(kEmissiveColorMode, firstLayer.GetFloat(kEmissiveColorMode)); + material.SetFloat(kNormalMapSpace, firstLayer.GetFloat(kNormalMapSpace)); + material.SetFloat(kHeightMapMode, firstLayer.GetFloat(kHeightMapMode)); + } + } + + bool LayersGUI(AssetImporter materialImporter) + { + Material material = m_MaterialEditor.target as Material; + + bool layerChanged = false; + + EditorGUI.indentLevel++; + GUILayout.Label(styles.layers, EditorStyles.boldLabel); + + EditorGUI.BeginChangeCheck(); + int newLayerCount = EditorGUILayout.IntSlider(styles.layerCount, (int)layerCountProperty.floatValue, 2, 4); + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(material, "Change layer count"); + layerCountProperty.floatValue = (float)newLayerCount; + SynchronizeAllLayersProperties(); + layerChanged = true; + } + + m_MaterialEditor.TexturePropertySingleLine(styles.layerMapMask, layerMaskMapProperty); + + for (int i = 0; i < layerCount; i++) + { + EditorGUI.BeginChangeCheck(); + m_MaterialLayers[i] = EditorGUILayout.ObjectField(styles.materialLayerLabels[i], m_MaterialLayers[i], typeof(Material), true) as Material; + if (EditorGUI.EndChangeCheck()) + { + Undo.RecordObject(materialImporter, "Change layer material"); + SynchronizeLayerProperties(i); + layerChanged = true; + } + } + + EditorGUILayout.Space(); + GUILayout.BeginHorizontal(); + { + GUILayout.FlexibleSpace(); + if (GUILayout.Button(styles.syncButton)) + { + SynchronizeAllLayersProperties(); + layerChanged = true; + } + } + GUILayout.EndHorizontal(); + + EditorGUI.indentLevel--; + + return layerChanged; + } + + protected override void SetupKeywordsForInputMaps(Material material) + { + // Find first non null layer + int i = 0; + while (i < layerCount && (m_MaterialLayers[i] == null)) ++i; + + if (i < layerCount) + { + SetKeyword(material, "_NORMALMAP", material.GetTexture(kNormalMap + i)); + SetKeyword(material, "_MASKMAP", material.GetTexture(kMaskMap + i)); + SetKeyword(material, "_SPECULAROCCLUSIONMAP", material.GetTexture(kspecularOcclusionMap + i)); + SetKeyword(material, "_EMISSIVE_COLOR_MAP", material.GetTexture(kEmissiveColorMap + i)); + SetKeyword(material, "_HEIGHTMAP", material.GetTexture(kHeightMap + i)); + } + + SetKeyword(material, "_LAYERMASKMAP", material.GetTexture(kLayerMaskMap)); + } + + void SetupMaterialForLayers(Material material) + { + if (layerCount == 4) + { + SetKeyword(material, "_LAYEREDLIT_4_LAYERS", true); + SetKeyword(material, "_LAYEREDLIT_3_LAYERS", false); + } + else if (layerCount == 3) + { + SetKeyword(material, "_LAYEREDLIT_4_LAYERS", false); + SetKeyword(material, "_LAYEREDLIT_3_LAYERS", true); + } + else + { + SetKeyword(material, "_LAYEREDLIT_4_LAYERS", false); + SetKeyword(material, "_LAYEREDLIT_3_LAYERS", false); + } + } + + public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] props) + { + FindOptionProperties(props); + layerMaskMapProperty = FindProperty(kLayerMaskMap, props); + layerCountProperty = FindProperty(kLayerCount, props); + + m_MaterialEditor = materialEditor; + + m_MaterialEditor.serializedObject.Update(); + + Material material = m_MaterialEditor.target as Material; + AssetImporter materialImporter = AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(material.GetInstanceID())); + + InitializeMaterialLayers(materialImporter); + + bool optionsChanged = false; + EditorGUI.BeginChangeCheck(); + { + ShaderOptionsGUI(); + EditorGUILayout.Space(); + } + if (EditorGUI.EndChangeCheck()) + { + optionsChanged = true; + } + + bool layerChanged = LayersGUI(materialImporter); + + CheckLayerConsistency(); + + if (layerChanged || optionsChanged) + { + SynchronizeInputOptions(); + + foreach (var obj in m_MaterialEditor.targets) + { + SetupMaterial((Material)obj); + SetupMaterialForLayers((Material)obj); + } + + SaveMaterialLayers(materialImporter); + } + + m_MaterialEditor.serializedObject.ApplyModifiedProperties(); + + if (layerChanged) + { + materialImporter.SaveAndReimport(); + } + } + } +} // namespace UnityEditor diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitUI.cs.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitUI.cs.meta new file mode 100644 index 00000000000..87fc8a717fe --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/LayeredLit/LayeredLitUI.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 25870545853609a4abdc1898940f4406 +timeCreated: 1475845767 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit.meta new file mode 100644 index 00000000000..199a0338537 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bc7a695b2cdc540469c664a11eb502d0 +folderAsset: yes +timeCreated: 1476653183 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs new file mode 100644 index 00000000000..956e6a21ebe --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs @@ -0,0 +1,8474 @@ +using UnityEngine; +using UnityEngine.Rendering; +using System; + +//----------------------------------------------------------------------------- +// structure definition +//----------------------------------------------------------------------------- +namespace UnityEngine.Experimental.ScriptableRenderLoop +{ + namespace Lit + { + [GenerateHLSL(PackingRules.Exact)] + public enum MaterialId + { + LitStandard = 0, + LitSSS = 1, + LitClearCoat = 2, + LitSpecular = 3, + LitAniso = 4 // Should be the last as it is not setup by the users but generated based on anisotropy property + }; + + //----------------------------------------------------------------------------- + // SurfaceData + //----------------------------------------------------------------------------- + + // Main structure that store the user data (i.e user input of master node in material graph) + [GenerateHLSL(PackingRules.Exact, false, true, 1000)] + public struct SurfaceData + { + [SurfaceDataAttributes("Base Color")] + public Vector3 baseColor; + [SurfaceDataAttributes("Specular Occlusion")] + public float specularOcclusion; + + [SurfaceDataAttributes("Normal")] + public Vector3 normalWS; + [SurfaceDataAttributes("Smoothness")] + public float perceptualSmoothness; + [SurfaceDataAttributes("Material ID")] + public MaterialId materialId; + + [SurfaceDataAttributes("Ambient Occlusion")] + public float ambientOcclusion; + + // MaterialId dependent attribute + + // standard + [SurfaceDataAttributes("Tangent")] + public Vector3 tangentWS; + [SurfaceDataAttributes("Anisotropy")] + public float anisotropy; // anisotropic ratio(0->no isotropic; 1->full anisotropy in tangent direction) + [SurfaceDataAttributes("Metallic")] + public float metallic; + [SurfaceDataAttributes("Specular")] + public float specular; // 0.02, 0.04, 0.16, 0.2 + + // SSS + [SurfaceDataAttributes("SubSurface Radius")] + public float subSurfaceRadius; + [SurfaceDataAttributes("Thickness")] + public float thickness; + [SurfaceDataAttributes("SubSurface Profile")] + public int subSurfaceProfile; + + // Clearcoat + [SurfaceDataAttributes("Coat Normal")] + public Vector3 coatNormalWS; + [SurfaceDataAttributes("Coat Smoothness")] + public float coatPerceptualSmoothness; + + // SpecColor + [SurfaceDataAttributes("Specular Color")] + public Vector3 specularColor; + }; + + //----------------------------------------------------------------------------- + // BSDFData + //----------------------------------------------------------------------------- + + [GenerateHLSL(PackingRules.Exact, false, true, 1030)] + public struct BSDFData + { + public Vector3 diffuseColor; + + public Vector3 fresnel0; + + public float specularOcclusion; + + public Vector3 normalWS; + public float perceptualRoughness; + public float roughness; + public float materialId; + + // MaterialId dependent attribute + + // standard + public Vector3 tangentWS; + public Vector3 bitangentWS; + public float roughnessT; + public float roughnessB; + public float anisotropy; + + // fold into fresnel0 + + // SSS + public float subSurfaceRadius; + public float thickness; + public int subSurfaceProfile; + + // Clearcoat + public Vector3 coatNormalWS; + public float coatRoughness; + + // SpecColor + // fold into fresnel0 + }; + + //----------------------------------------------------------------------------- + // RenderLoop management + //----------------------------------------------------------------------------- + + [GenerateHLSL(PackingRules.Exact)] + public enum GBufferMaterial + { + Count = 3 + }; + + public class RenderLoop : Object + { + //----------------------------------------------------------------------------- + // GBuffer management + //----------------------------------------------------------------------------- + + #if (VELOCITY_IN_GBUFFER) + public const int s_GBufferCount = (int)GBufferMaterial.Count + 2; // +1 for emissive buffer + #else + public const int s_GBufferCount = (int)GBufferMaterial.Count + 1; + #endif + + public int GetGBufferCount() { return s_GBufferCount; } + + public RenderTextureFormat[] RTFormat = + { + RenderTextureFormat.ARGB32, + RenderTextureFormat.ARGB2101010, + RenderTextureFormat.ARGB32, + #if (VELOCITY_IN_GBUFFER) + RenderTextureFormat.RGHalf, + #endif + RenderTextureFormat.RGB111110Float + }; + + public RenderTextureReadWrite[] RTReadWrite = + { + RenderTextureReadWrite.sRGB, + RenderTextureReadWrite.Linear, + RenderTextureReadWrite.Linear, + #if (VELOCITY_IN_GBUFFER) + RenderTextureReadWrite.Linear, + #endif + RenderTextureReadWrite.Linear + }; + + //----------------------------------------------------------------------------- + // Init precomputed texture + //----------------------------------------------------------------------------- + + public bool isInit; + + // For image based lighting + private Material m_InitPreFGD; + private RenderTexture m_PreIntegratedFGD; + + // For area lighting + private Texture2D m_LtcGGXMatrix; + private Texture2D m_LtcGGXMagnitude; + const int k_LtcLUTMatrixDim = 3; // size of the matrix (3x3) + const int k_LtcLUTResolution = 64; + + Material CreateEngineMaterial(string shaderPath) + { + Material mat = new Material(Shader.Find(shaderPath) as Shader); + mat.hideFlags = HideFlags.HideAndDontSave; + return mat; + } + + Texture2D CreateLUT(int width, int height, TextureFormat format, Color[] pixels) + { + Texture2D tex = new Texture2D(width, height, format, false /*mipmap*/, true /*linear*/); + tex.hideFlags = HideFlags.HideAndDontSave; + tex.wrapMode = TextureWrapMode.Clamp; + tex.SetPixels(pixels); + tex.Apply(); + return tex; + } + + // Load LUT with one scalar in alpha of a tex2D + Texture2D LoadLUT(TextureFormat format, float[] LUTScalar) + { + const int count = k_LtcLUTResolution * k_LtcLUTResolution; + Color[] pixels = new Color[count]; + + // amplitude + for (int i = 0; i < count; i++) + { + pixels[i] = new Color(0, 0, 0, LUTScalar[i]); + } + + return CreateLUT(k_LtcLUTResolution, k_LtcLUTResolution, format, pixels); + } + + // Load LUT with 3x3 matrix in RGBA of a tex2D (some part are zero) + Texture2D LoadLUT(TextureFormat format, double[,] LUTTransformInv) + { + const int count = k_LtcLUTResolution * k_LtcLUTResolution; + Color[] pixels = new Color[count]; + + // transformInv + for (int i = 0; i < count; i++) + { + // Only columns 0, 2, 4 and 6 contain interesting values (at least in the case of GGX). + pixels[i] = new Color( (float)LUTTransformInv[i, 0], + (float)LUTTransformInv[i, 2], + (float)LUTTransformInv[i, 4], + (float)LUTTransformInv[i, 6]); + } + + return CreateLUT(k_LtcLUTResolution, k_LtcLUTResolution, format, pixels); + } + + public void Rebuild() + { + m_InitPreFGD = CreateEngineMaterial("Hidden/Unity/PreIntegratedFGD"); + m_PreIntegratedFGD = new RenderTexture(128, 128, 0, RenderTextureFormat.ARGBHalf); + + m_LtcGGXMatrix = LoadLUT(TextureFormat.RGBAHalf, s_LtcGGXMatrixData); + m_LtcGGXMagnitude = LoadLUT(TextureFormat.RGBAHalf, s_LtcGGXMagnitudeData); + + isInit = false; + } + + public void OnDisable() + { + if (m_InitPreFGD) DestroyImmediate(m_InitPreFGD); + // TODO: how to delete RenderTexture ? + isInit = false; + } + + public void RenderInit(UnityEngine.Experimental.Rendering.RenderLoop renderLoop) + { + var cmd = new CommandBuffer(); + cmd.name = "Init PreFGD"; + cmd.Blit(null, new RenderTargetIdentifier(m_PreIntegratedFGD), m_InitPreFGD, 0); + renderLoop.ExecuteCommandBuffer(cmd); + cmd.Dispose(); + + isInit = true; + } + + public void Bind() + { + Shader.SetGlobalTexture("_PreIntegratedFGD", m_PreIntegratedFGD); + Shader.SetGlobalTexture("_LtcGGXMatrix", m_LtcGGXMatrix); + Shader.SetGlobalTexture("_LtcGGXMagnitude", m_LtcGGXMagnitude); + } + + //----------------------------------------------------------------------------- + // Area light Look up table (fit from GGX with smith joint visibility + //----------------------------------------------------------------------------- + + // Precomputed table - This table is precompute for squared roughness and normalize so that last member is 1 and don't need to be store in a texture. + // It have been generated from a GGX BRDF with Smith-Correlated visibility term. + static double[,] s_LtcGGXMatrixData = new double[k_LtcLUTResolution * k_LtcLUTResolution, k_LtcLUTMatrixDim * k_LtcLUTMatrixDim] + { + {499.999756, -0.000000, 0.000000, -0.000000, 499.999756, -0.000000, 0.000000, -0.000000, 1.000000}, + {499.999756, -0.000000, 0.000000, -0.000000, 499.999756, -0.000000, 0.000000, -0.000000, 1.000000}, + {496.124756, -0.000000, 0.000000, -0.000000, 496.124756, -0.000000, 0.000000, -0.000000, 1.000000}, + {220.499603, -0.000000, 0.000000, -0.000000, 220.499603, -0.000000, 0.000000, -0.000000, 1.000000}, + {124.030647, -0.000000, 0.000000, -0.000000, 124.030647, -0.000000, 0.000000, -0.000000, 1.000000}, + {79.379128, -0.000000, 0.000000, -0.000000, 79.379128, -0.000000, 0.000000, -0.000000, 1.000000}, + {55.123638, -0.000000, 0.000000, -0.000000, 55.123638, -0.000000, 0.000000, -0.000000, 1.000000}, + {40.498169, -0.000000, 0.000000, -0.000000, 40.498169, -0.000000, 0.000000, -0.000000, 1.000000}, + {31.005251, -0.000000, 0.000000, -0.000000, 31.005251, -0.000000, 0.000000, -0.000000, 1.000000}, + {24.496883, -0.000000, 0.000000, -0.000000, 24.496883, -0.000000, 0.000000, -0.000000, 1.000000}, + {19.841213, -0.000000, 0.000000, -0.000000, 19.841213, -0.000000, 0.000000, -0.000000, 1.000000}, + {16.396168, -0.000000, 0.000000, -0.000000, 16.396168, -0.000000, 0.000000, -0.000000, 1.000000}, + {13.775769, -0.000000, 0.000000, -0.000000, 13.775769, -0.000000, 0.000000, -0.000000, 1.000000}, + {11.736223, -0.000000, 0.000000, -0.000000, 11.736223, -0.000000, 0.000000, -0.000000, 1.000000}, + {10.117792, -0.000000, 0.000000, -0.000000, 10.117792, -0.000000, 0.000000, -0.000000, 1.000000}, + {8.811788, -0.000000, 0.000000, -0.000000, 8.811788, -0.000000, 0.000000, -0.000000, 1.000000}, + {7.742715, -0.000000, 0.000000, -0.000000, 7.742715, -0.000000, 0.000000, -0.000000, 1.000000}, + {6.856590, -0.000000, 0.000000, -0.000000, 6.856590, -0.000000, 0.000000, -0.000000, 1.000000}, + {6.113935, -0.000000, 0.000000, -0.000000, 6.113935, -0.000000, 0.000000, -0.000000, 1.000000}, + {5.485600, -0.000000, 0.000000, -0.000000, 5.485600, -0.000000, 0.000000, -0.000000, 1.000000}, + {4.949624, -0.000000, 0.000000, -0.000000, 4.949624, -0.000000, 0.000000, -0.000000, 1.000000}, + {4.490011, -0.000000, 0.000000, -0.000000, 4.490011, -0.000000, 0.000000, -0.000000, 1.000000}, + {4.096192, -0.000000, 0.000000, -0.000000, 4.096192, -0.000000, 0.000000, -0.000000, 1.000000}, + {3.770367, -0.000000, 0.000000, -0.000000, 3.770367, -0.000000, 0.000000, -0.000000, 1.000000}, + {3.518105, -0.000000, 0.000000, -0.000000, 3.518105, -0.000000, 0.000000, -0.000000, 1.000000}, + {3.241291, -0.000000, 0.000000, -0.000000, 3.241291, -0.000000, 0.000000, -0.000000, 1.000000}, + {2.995717, -0.000000, 0.000000, -0.000000, 2.995717, -0.000000, 0.000000, -0.000000, 1.000000}, + {2.777828, -0.000000, 0.000000, -0.000000, 2.777828, -0.000000, 0.000000, -0.000000, 1.000000}, + {2.584874, -0.000000, 0.000000, -0.000000, 2.584874, -0.000000, 0.000000, -0.000000, 1.000000}, + {2.414762, -0.000000, 0.000000, -0.000000, 2.414762, -0.000000, 0.000000, -0.000000, 1.000000}, + {2.266992, -0.000000, 0.000000, -0.000000, 2.266992, -0.000000, 0.000000, -0.000000, 1.000000}, + {2.141645, -0.000000, 0.000000, -0.000000, 2.141645, -0.000000, 0.000000, -0.000000, 1.000000}, + {2.028596, -0.000000, 0.000000, -0.000000, 2.028596, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.913056, -0.000000, 0.000000, -0.000000, 1.913056, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.811136, -0.000000, 0.000000, -0.000000, 1.811136, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.722395, -0.000000, 0.000000, -0.000000, 1.722395, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.646110, -0.000000, 0.000000, -0.000000, 1.646110, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.572143, -0.000000, 0.000000, -0.000000, 1.572143, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.502802, -0.000000, 0.000000, -0.000000, 1.502802, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.442505, -0.000000, 0.000000, -0.000000, 1.442505, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.390581, -0.000000, 0.000000, -0.000000, 1.390581, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.337562, -0.000000, 0.000000, -0.000000, 1.337562, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.291246, -0.000000, 0.000000, -0.000000, 1.291246, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.251378, -0.000000, 0.000000, -0.000000, 1.251378, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.211648, -0.000000, 0.000000, -0.000000, 1.211648, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.176736, -0.000000, 0.000000, -0.000000, 1.176736, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.146271, -0.000000, 0.000000, -0.000000, 1.146271, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.116030, -0.000000, 0.000000, -0.000000, 1.116030, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.089959, -0.000000, 0.000000, -0.000000, 1.089959, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.065901, -0.000000, 0.000000, -0.000000, 1.065901, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.043491, -0.000000, 0.000000, -0.000000, 1.043491, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.024384, -0.000000, 0.000000, -0.000000, 1.024384, -0.000000, 0.000000, -0.000000, 1.000000}, + {1.005152, -0.000000, 0.000000, -0.000000, 1.005152, -0.000000, 0.000000, -0.000000, 1.000000}, + {0.988931, -0.000000, 0.000000, -0.000000, 0.988931, -0.000000, 0.000000, -0.000000, 1.000000}, + {0.973526, -0.000000, 0.000000, -0.000000, 0.973526, -0.000000, 0.000000, -0.000000, 1.000000}, + {0.959606, -0.000000, 0.000000, -0.000000, 0.959606, -0.000000, 0.000000, -0.000000, 1.000000}, + {0.947352, -0.000000, 0.000000, -0.000000, 0.947352, -0.000000, 0.000000, -0.000000, 1.000000}, + {0.935462, -0.000000, 0.000000, -0.000000, 0.935462, -0.000000, 0.000000, -0.000000, 1.000000}, + {0.925545, -0.000000, 0.000000, -0.000000, 0.925545, -0.000000, 0.000000, -0.000000, 1.000000}, + {0.915651, -0.000000, 0.000000, -0.000000, 0.915651, -0.000000, 0.000000, -0.000000, 1.000000}, + {0.907310, -0.000000, 0.000000, -0.000000, 0.907310, -0.000000, 0.000000, -0.000000, 1.000000}, + {0.899582, -0.000000, 0.000000, -0.000000, 0.899582, -0.000000, 0.000000, -0.000000, 1.000000}, + {0.892452, -0.000000, 0.000000, -0.000000, 0.892452, -0.000000, 0.000000, -0.000000, 1.000000}, + {0.886714, -0.000000, 0.000000, -0.000000, 0.886714, -0.000000, 0.000000, -0.000000, 1.000000}, + {499.997467, -0.000000, -0.024938, -0.000000, 500.315308, -0.000000, 12.469114, -0.000000, 1.000000}, + {499.997467, -0.000000, -0.024938, -0.000000, 500.315308, -0.000000, 12.469114, -0.000000, 1.000000}, + {496.120789, -0.000000, -0.024938, -0.000000, 496.432007, -0.000000, 12.372410, -0.000000, 1.000000}, + {220.501129, -0.000000, -0.024938, -0.000000, 220.634109, -0.000000, 5.498928, -0.000000, 1.000000}, + {124.029526, -0.000000, -0.024938, -0.000000, 124.107147, -0.000000, 3.093094, -0.000000, 1.000000}, + {79.380730, -0.000000, -0.024938, -0.000000, 79.425026, -0.000000, 1.979585, -0.000000, 1.000000}, + {55.125454, -0.000000, -0.024938, -0.000000, 55.154995, -0.000000, 1.374758, -0.000000, 1.000000}, + {40.497589, -0.000000, -0.024938, -0.000000, 40.519520, -0.000000, 1.009913, -0.000000, 1.000000}, + {31.004519, -0.000000, -0.024938, -0.000000, 31.025820, -0.000000, 0.773211, -0.000000, 1.000000}, + {24.500708, -0.000000, -0.024938, -0.000000, 24.513670, -0.000000, 0.611046, -0.000000, 1.000000}, + {19.841555, -0.000000, -0.024938, -0.000000, 19.853317, -0.000000, 0.494783, -0.000000, 1.000000}, + {16.396729, -0.000000, -0.024938, -0.000000, 16.405884, -0.000000, 0.408921, -0.000000, 1.000000}, + {13.775448, -0.000000, -0.024938, -0.000000, 13.784056, -0.000000, 0.343552, -0.000000, 1.000000}, + {11.736258, -0.000000, -0.024938, -0.000000, 11.743598, -0.000000, 0.292695, -0.000000, 1.000000}, + {10.117566, -0.000000, -0.024937, -0.000000, 10.124036, -0.000000, 0.252312, -0.000000, 1.000000}, + {8.812078, -0.000000, -0.024937, -0.000000, 8.817113, -0.000000, 0.219782, -0.000000, 1.000000}, + {7.742629, -0.000000, -0.024935, -0.000000, 7.747515, -0.000000, 0.193081, -0.000000, 1.000000}, + {6.856578, -0.000000, -0.024932, -0.000000, 6.860840, -0.000000, 0.170986, -0.000000, 1.000000}, + {6.113971, -0.000000, -0.024925, -0.000000, 6.117671, -0.000000, 0.152466, -0.000000, 1.000000}, + {5.485563, -0.000000, -0.024910, -0.000000, 5.489127, -0.000000, 0.136802, -0.000000, 1.000000}, + {4.949559, -0.000000, -0.024870, -0.000000, 4.952751, -0.000000, 0.123416, -0.000000, 1.000000}, + {4.489937, -0.000000, -0.024745, -0.000000, 4.492629, -0.000000, 0.111934, -0.000000, 1.000000}, + {4.096371, -0.000000, -0.024262, -0.000000, 4.098849, -0.000000, 0.102052, -0.000000, 1.000000}, + {3.771275, -0.000000, -0.022097, -0.000000, 3.773541, -0.000000, 0.093597, -0.000000, 1.000000}, + {3.516103, -0.000000, -0.023925, -0.000000, 3.518279, -0.000000, 0.087490, -0.000000, 1.000000}, + {3.241332, -0.000000, -0.024830, -0.000000, 3.243283, -0.000000, 0.080765, -0.000000, 1.000000}, + {2.995699, -0.000000, -0.024748, -0.000000, 2.997590, -0.000000, 0.074613, -0.000000, 1.000000}, + {2.777862, -0.000000, -0.024592, -0.000000, 2.779489, -0.000000, 0.069120, -0.000000, 1.000000}, + {2.584914, -0.000000, -0.024281, -0.000000, 2.586422, -0.000000, 0.064225, -0.000000, 1.000000}, + {2.414872, -0.000000, -0.023657, -0.000000, 2.416185, -0.000000, 0.059820, -0.000000, 1.000000}, + {2.267114, -0.000000, -0.022465, -0.000000, 2.268396, -0.000000, 0.055784, -0.000000, 1.000000}, + {2.141941, -0.000000, -0.020477, -0.000000, 2.143198, -0.000000, 0.052087, -0.000000, 1.000000}, + {2.028542, -0.000000, -0.023611, -0.000000, 2.029632, -0.000000, 0.049974, -0.000000, 1.000000}, + {1.913215, -0.000000, -0.023107, -0.000000, 1.914276, -0.000000, 0.046906, -0.000000, 1.000000}, + {1.811212, -0.000000, -0.022033, -0.000000, 1.812173, -0.000000, 0.043959, -0.000000, 1.000000}, + {1.722411, -0.000000, -0.020495, -0.000000, 1.723353, -0.000000, 0.041147, -0.000000, 1.000000}, + {1.646026, -0.000000, -0.018657, -0.000000, 1.646907, -0.000000, 0.038474, -0.000000, 1.000000}, + {1.572377, -0.000000, -0.021412, -0.000000, 1.573126, -0.000000, 0.037363, -0.000000, 1.000000}, + {1.502932, -0.000000, -0.019942, -0.000000, 1.503651, -0.000000, 0.034957, -0.000000, 1.000000}, + {1.442565, -0.000000, -0.018071, -0.000000, 1.443349, -0.000000, 0.032557, -0.000000, 1.000000}, + {1.389405, -0.000000, -0.017912, -0.000000, 1.389993, -0.000000, 0.030870, -0.000000, 1.000000}, + {1.337534, -0.000000, -0.018389, -0.000000, 1.338214, -0.000000, 0.029500, -0.000000, 1.000000}, + {1.291183, -0.000000, -0.016379, -0.000000, 1.291845, -0.000000, 0.027284, -0.000000, 1.000000}, + {1.250589, -0.000000, -0.015515, -0.000000, 1.251112, -0.000000, 0.025561, -0.000000, 1.000000}, + {1.211601, -0.000000, -0.016135, -0.000000, 1.212186, -0.000000, 0.024493, -0.000000, 1.000000}, + {1.176648, -0.000000, -0.013892, -0.000000, 1.177168, -0.000000, 0.022343, -0.000000, 1.000000}, + {1.145530, -0.000000, -0.013874, -0.000000, 1.145999, -0.000000, 0.021082, -0.000000, 1.000000}, + {1.115965, -0.000000, -0.013290, -0.000000, 1.116396, -0.000000, 0.019656, -0.000000, 1.000000}, + {1.089884, -0.000000, -0.010950, -0.000000, 1.090292, -0.000000, 0.017533, -0.000000, 1.000000}, + {1.065711, -0.000000, -0.012243, -0.000000, 1.066189, -0.000000, 0.016981, -0.000000, 1.000000}, + {1.043418, -0.000000, -0.009963, -0.000000, 1.043784, -0.000000, 0.015012, -0.000000, 1.000000}, + {1.023707, -0.000000, -0.009491, -0.000000, 1.024012, -0.000000, 0.013768, -0.000000, 1.000000}, + {1.005073, -0.000000, -0.008990, -0.000000, 1.005400, -0.000000, 0.012594, -0.000000, 1.000000}, + {0.988718, -0.000000, -0.006973, -0.000000, 0.988881, -0.000000, 0.010736, -0.000000, 1.000000}, + {0.973377, -0.000000, -0.007934, -0.000000, 0.973646, -0.000000, 0.010213, -0.000000, 1.000000}, + {0.959581, -0.000000, -0.005300, -0.000000, 0.959736, -0.000000, 0.008216, -0.000000, 1.000000}, + {0.947100, -0.000000, -0.005782, -0.000000, 0.947218, -0.000000, 0.007536, -0.000000, 1.000000}, + {0.935461, -0.000000, -0.004359, -0.000000, 0.935582, -0.000000, 0.006105, -0.000000, 1.000000}, + {0.925285, -0.000000, -0.003382, -0.000000, 0.925340, -0.000000, 0.004898, -0.000000, 1.000000}, + {0.915672, -0.000000, -0.003535, -0.000000, 0.915789, -0.000000, 0.004238, -0.000000, 1.000000}, + {0.907287, -0.000000, -0.001205, -0.000000, 0.907276, -0.000000, 0.002472, -0.000000, 1.000000}, + {0.899553, -0.000000, -0.002254, -0.000000, 0.899631, -0.000000, 0.002261, -0.000000, 1.000000}, + {0.892552, -0.000000, -0.000191, -0.000000, 0.892524, -0.000000, 0.000671, -0.000000, 1.000000}, + {0.886461, -0.000000, 0.000076, -0.000000, 0.886428, -0.000000, -0.000037, -0.000000, 1.000000}, + {500.000763, -0.000000, -0.049908, -0.000000, 501.241730, -0.000000, 24.953888, -0.000000, 1.000000}, + {500.000763, -0.000000, -0.049908, -0.000000, 501.241730, -0.000000, 24.953888, -0.000000, 1.000000}, + {496.124786, -0.000000, -0.049908, -0.000000, 497.354095, -0.000000, 24.760460, -0.000000, 1.000000}, + {220.502029, -0.000000, -0.049908, -0.000000, 221.048279, -0.000000, 11.004783, -0.000000, 1.000000}, + {124.031570, -0.000000, -0.049908, -0.000000, 124.337486, -0.000000, 6.190133, -0.000000, 1.000000}, + {79.375877, -0.000000, -0.049908, -0.000000, 79.579933, -0.000000, 3.961427, -0.000000, 1.000000}, + {55.123718, -0.000000, -0.049908, -0.000000, 55.262177, -0.000000, 2.751114, -0.000000, 1.000000}, + {40.498699, -0.000000, -0.049908, -0.000000, 40.605160, -0.000000, 2.021145, -0.000000, 1.000000}, + {31.006849, -0.000000, -0.049908, -0.000000, 31.083014, -0.000000, 1.547495, -0.000000, 1.000000}, + {24.497278, -0.000000, -0.049907, -0.000000, 24.555908, -0.000000, 1.222601, -0.000000, 1.000000}, + {19.841276, -0.000000, -0.049907, -0.000000, 19.890913, -0.000000, 0.990210, -0.000000, 1.000000}, + {16.397182, -0.000000, -0.049907, -0.000000, 16.436363, -0.000000, 0.818381, -0.000000, 1.000000}, + {13.775660, -0.000000, -0.049907, -0.000000, 13.810318, -0.000000, 0.687523, -0.000000, 1.000000}, + {11.736480, -0.000000, -0.049906, -0.000000, 11.765283, -0.000000, 0.585738, -0.000000, 1.000000}, + {10.117846, -0.000000, -0.049905, -0.000000, 10.142936, -0.000000, 0.504958, -0.000000, 1.000000}, + {8.811889, -0.000000, -0.049903, -0.000000, 8.833607, -0.000000, 0.439785, -0.000000, 1.000000}, + {7.742730, -0.000000, -0.049899, -0.000000, 7.761981, -0.000000, 0.386421, -0.000000, 1.000000}, + {6.856680, -0.000000, -0.049893, -0.000000, 6.873636, -0.000000, 0.342192, -0.000000, 1.000000}, + {6.114114, -0.000000, -0.049879, -0.000000, 6.129047, -0.000000, 0.305132, -0.000000, 1.000000}, + {5.485716, -0.000000, -0.049847, -0.000000, 5.499178, -0.000000, 0.273756, -0.000000, 1.000000}, + {4.949782, -0.000000, -0.049764, -0.000000, 4.961692, -0.000000, 0.246984, -0.000000, 1.000000}, + {4.490149, -0.000000, -0.049505, -0.000000, 4.501019, -0.000000, 0.224018, -0.000000, 1.000000}, + {4.097056, -0.000000, -0.048478, -0.000000, 4.107090, -0.000000, 0.204225, -0.000000, 1.000000}, + {3.774032, -0.000000, -0.043886, -0.000000, 3.783077, -0.000000, 0.187406, -0.000000, 1.000000}, + {3.508570, -0.000000, -0.045740, -0.000000, 3.516984, -0.000000, 0.174357, -0.000000, 1.000000}, + {3.241517, -0.000000, -0.049683, -0.000000, 3.249252, -0.000000, 0.161645, -0.000000, 1.000000}, + {2.995973, -0.000000, -0.049517, -0.000000, 3.003005, -0.000000, 0.149331, -0.000000, 1.000000}, + {2.778171, -0.000000, -0.049198, -0.000000, 2.784698, -0.000000, 0.138350, -0.000000, 1.000000}, + {2.585188, -0.000000, -0.048562, -0.000000, 2.591244, -0.000000, 0.128554, -0.000000, 1.000000}, + {2.415389, -0.000000, -0.047285, -0.000000, 2.420921, -0.000000, 0.119684, -0.000000, 1.000000}, + {2.267856, -0.000000, -0.044864, -0.000000, 2.273003, -0.000000, 0.111664, -0.000000, 1.000000}, + {2.142349, -0.000000, -0.041214, -0.000000, 2.147094, -0.000000, 0.104325, -0.000000, 1.000000}, + {2.026238, -0.000000, -0.045263, -0.000000, 2.030645, -0.000000, 0.099390, -0.000000, 1.000000}, + {1.913620, -0.000000, -0.046191, -0.000000, 1.917722, -0.000000, 0.093860, -0.000000, 1.000000}, + {1.811767, -0.000000, -0.044024, -0.000000, 1.815528, -0.000000, 0.087973, -0.000000, 1.000000}, + {1.722954, -0.000000, -0.040932, -0.000000, 1.726578, -0.000000, 0.082334, -0.000000, 1.000000}, + {1.644901, -0.000000, -0.039208, -0.000000, 1.648202, -0.000000, 0.077520, -0.000000, 1.000000}, + {1.571913, -0.000000, -0.041873, -0.000000, 1.575045, -0.000000, 0.074419, -0.000000, 1.000000}, + {1.503270, -0.000000, -0.039833, -0.000000, 1.506199, -0.000000, 0.069899, -0.000000, 1.000000}, + {1.442908, -0.000000, -0.036082, -0.000000, 1.445582, -0.000000, 0.065106, -0.000000, 1.000000}, + {1.388112, -0.000000, -0.036042, -0.000000, 1.390726, -0.000000, 0.061864, -0.000000, 1.000000}, + {1.337609, -0.000000, -0.036698, -0.000000, 1.340105, -0.000000, 0.058965, -0.000000, 1.000000}, + {1.291279, -0.000000, -0.032700, -0.000000, 1.293611, -0.000000, 0.054525, -0.000000, 1.000000}, + {1.249435, -0.000000, -0.031700, -0.000000, 1.251650, -0.000000, 0.051350, -0.000000, 1.000000}, + {1.211340, -0.000000, -0.031811, -0.000000, 1.213610, -0.000000, 0.048750, -0.000000, 1.000000}, + {1.176439, -0.000000, -0.028136, -0.000000, 1.178426, -0.000000, 0.044750, -0.000000, 1.000000}, + {1.144471, -0.000000, -0.027408, -0.000000, 1.146456, -0.000000, 0.042026, -0.000000, 1.000000}, + {1.115653, -0.000000, -0.026454, -0.000000, 1.117463, -0.000000, 0.039242, -0.000000, 1.000000}, + {1.088942, -0.000000, -0.023544, -0.000000, 1.090648, -0.000000, 0.035801, -0.000000, 1.000000}, + {1.064893, -0.000000, -0.022785, -0.000000, 1.066460, -0.000000, 0.033264, -0.000000, 1.000000}, + {1.043063, -0.000000, -0.020388, -0.000000, 1.044470, -0.000000, 0.030166, -0.000000, 1.000000}, + {1.022807, -0.000000, -0.018916, -0.000000, 1.024093, -0.000000, 0.027487, -0.000000, 1.000000}, + {1.004772, -0.000000, -0.017485, -0.000000, 1.005940, -0.000000, 0.024861, -0.000000, 1.000000}, + {0.987888, -0.000000, -0.015340, -0.000000, 0.988963, -0.000000, 0.022016, -0.000000, 1.000000}, + {0.972935, -0.000000, -0.014043, -0.000000, 0.973770, -0.000000, 0.019711, -0.000000, 1.000000}, + {0.959224, -0.000000, -0.012082, -0.000000, 0.959891, -0.000000, 0.017081, -0.000000, 1.000000}, + {0.946621, -0.000000, -0.010581, -0.000000, 0.947148, -0.000000, 0.014730, -0.000000, 1.000000}, + {0.935432, -0.000000, -0.009036, -0.000000, 0.935867, -0.000000, 0.012380, -0.000000, 1.000000}, + {0.924873, -0.000000, -0.007271, -0.000000, 0.925218, -0.000000, 0.010048, -0.000000, 1.000000}, + {0.915710, -0.000000, -0.005702, -0.000000, 0.915873, -0.000000, 0.007844, -0.000000, 1.000000}, + {0.907153, -0.000000, -0.004224, -0.000000, 0.907238, -0.000000, 0.005758, -0.000000, 1.000000}, + {0.899406, -0.000000, -0.002766, -0.000000, 0.899481, -0.000000, 0.003776, -0.000000, 1.000000}, + {0.892606, -0.000000, -0.001541, -0.000000, 0.892650, -0.000000, 0.001899, -0.000000, 1.000000}, + {0.886250, -0.000000, 0.000097, -0.000000, 0.886236, -0.000000, -0.000010, -0.000000, 1.000000}, + {500.003906, -0.000000, -0.074939, -0.000000, 502.811340, -0.000000, 37.469978, -0.000000, 1.000000}, + {500.003906, -0.000000, -0.074939, -0.000000, 502.811340, -0.000000, 37.469978, -0.000000, 1.000000}, + {496.126373, -0.000000, -0.074939, -0.000000, 498.908203, -0.000000, 37.179375, -0.000000, 1.000000}, + {220.498306, -0.000000, -0.074939, -0.000000, 221.739334, -0.000000, 16.524048, -0.000000, 1.000000}, + {124.030350, -0.000000, -0.074939, -0.000000, 124.718994, -0.000000, 9.294769, -0.000000, 1.000000}, + {79.379128, -0.000000, -0.074939, -0.000000, 79.824699, -0.000000, 5.948611, -0.000000, 1.000000}, + {55.123489, -0.000000, -0.074939, -0.000000, 55.433598, -0.000000, 4.130918, -0.000000, 1.000000}, + {40.500011, -0.000000, -0.074939, -0.000000, 40.723366, -0.000000, 3.035039, -0.000000, 1.000000}, + {31.005369, -0.000000, -0.074939, -0.000000, 31.179090, -0.000000, 2.323509, -0.000000, 1.000000}, + {24.496525, -0.000000, -0.074939, -0.000000, 24.633451, -0.000000, 1.835765, -0.000000, 1.000000}, + {19.841644, -0.000000, -0.074938, -0.000000, 19.952940, -0.000000, 1.486910, -0.000000, 1.000000}, + {16.396143, -0.000000, -0.074938, -0.000000, 16.487474, -0.000000, 1.228654, -0.000000, 1.000000}, + {13.776081, -0.000000, -0.074937, -0.000000, 13.853146, -0.000000, 1.032362, -0.000000, 1.000000}, + {11.736395, -0.000000, -0.074935, -0.000000, 11.802135, -0.000000, 0.879502, -0.000000, 1.000000}, + {10.117812, -0.000000, -0.074933, -0.000000, 10.174429, -0.000000, 0.758217, -0.000000, 1.000000}, + {8.811981, -0.000000, -0.074929, -0.000000, 8.861101, -0.000000, 0.660355, -0.000000, 1.000000}, + {7.742858, -0.000000, -0.074923, -0.000000, 7.786114, -0.000000, 0.580231, -0.000000, 1.000000}, + {6.856779, -0.000000, -0.074912, -0.000000, 6.894941, -0.000000, 0.513821, -0.000000, 1.000000}, + {6.114171, -0.000000, -0.074889, -0.000000, 6.148230, -0.000000, 0.458161, -0.000000, 1.000000}, + {5.485709, -0.000000, -0.074839, -0.000000, 5.516331, -0.000000, 0.411046, -0.000000, 1.000000}, + {4.950073, -0.000000, -0.074708, -0.000000, 4.977382, -0.000000, 0.370891, -0.000000, 1.000000}, + {4.490536, -0.000000, -0.074292, -0.000000, 4.515291, -0.000000, 0.336361, -0.000000, 1.000000}, + {4.098239, -0.000000, -0.072590, -0.000000, 4.120820, -0.000000, 0.306734, -0.000000, 1.000000}, + {3.778176, -0.000000, -0.065358, -0.000000, 3.798698, -0.000000, 0.281599, -0.000000, 1.000000}, + {3.501400, -0.000000, -0.068271, -0.000000, 3.520339, -0.000000, 0.261196, -0.000000, 1.000000}, + {3.241759, -0.000000, -0.074584, -0.000000, 3.259283, -0.000000, 0.242727, -0.000000, 1.000000}, + {2.996215, -0.000000, -0.074327, -0.000000, 3.012302, -0.000000, 0.224223, -0.000000, 1.000000}, + {2.778568, -0.000000, -0.073832, -0.000000, 2.793303, -0.000000, 0.207776, -0.000000, 1.000000}, + {2.585738, -0.000000, -0.072843, -0.000000, 2.599365, -0.000000, 0.193040, -0.000000, 1.000000}, + {2.416121, -0.000000, -0.070857, -0.000000, 2.428695, -0.000000, 0.179718, -0.000000, 1.000000}, + {2.268859, -0.000000, -0.067130, -0.000000, 2.280476, -0.000000, 0.167671, -0.000000, 1.000000}, + {2.141096, -0.000000, -0.063785, -0.000000, 2.152040, -0.000000, 0.157027, -0.000000, 1.000000}, + {2.023644, -0.000000, -0.066946, -0.000000, 2.033512, -0.000000, 0.148756, -0.000000, 1.000000}, + {1.914204, -0.000000, -0.069230, -0.000000, 1.923599, -0.000000, 0.140941, -0.000000, 1.000000}, + {1.812284, -0.000000, -0.065931, -0.000000, 1.821127, -0.000000, 0.132011, -0.000000, 1.000000}, + {1.723733, -0.000000, -0.061254, -0.000000, 1.731673, -0.000000, 0.123587, -0.000000, 1.000000}, + {1.643700, -0.000000, -0.060073, -0.000000, 1.651181, -0.000000, 0.116759, -0.000000, 1.000000}, + {1.570878, -0.000000, -0.061255, -0.000000, 1.577947, -0.000000, 0.111093, -0.000000, 1.000000}, + {1.503769, -0.000000, -0.059626, -0.000000, 1.510444, -0.000000, 0.104935, -0.000000, 1.000000}, + {1.442635, -0.000000, -0.055255, -0.000000, 1.448715, -0.000000, 0.098180, -0.000000, 1.000000}, + {1.387056, -0.000000, -0.054241, -0.000000, 1.392869, -0.000000, 0.092851, -0.000000, 1.000000}, + {1.337041, -0.000000, -0.053462, -0.000000, 1.342574, -0.000000, 0.087917, -0.000000, 1.000000}, + {1.290878, -0.000000, -0.050026, -0.000000, 1.296141, -0.000000, 0.082196, -0.000000, 1.000000}, + {1.248439, -0.000000, -0.047915, -0.000000, 1.253429, -0.000000, 0.077195, -0.000000, 1.000000}, + {1.210667, -0.000000, -0.046026, -0.000000, 1.215250, -0.000000, 0.072448, -0.000000, 1.000000}, + {1.175449, -0.000000, -0.043601, -0.000000, 1.180079, -0.000000, 0.067715, -0.000000, 1.000000}, + {1.143403, -0.000000, -0.040953, -0.000000, 1.147558, -0.000000, 0.062874, -0.000000, 1.000000}, + {1.114792, -0.000000, -0.038485, -0.000000, 1.118552, -0.000000, 0.058326, -0.000000, 1.000000}, + {1.087870, -0.000000, -0.036310, -0.000000, 1.091672, -0.000000, 0.054108, -0.000000, 1.000000}, + {1.064033, -0.000000, -0.033135, -0.000000, 1.067198, -0.000000, 0.049455, -0.000000, 1.000000}, + {1.041912, -0.000000, -0.031405, -0.000000, 1.045065, -0.000000, 0.045583, -0.000000, 1.000000}, + {1.021936, -0.000000, -0.028342, -0.000000, 1.024621, -0.000000, 0.041212, -0.000000, 1.000000}, + {1.003819, -0.000000, -0.025671, -0.000000, 1.006238, -0.000000, 0.037092, -0.000000, 1.000000}, + {0.987085, -0.000000, -0.023775, -0.000000, 0.989336, -0.000000, 0.033446, -0.000000, 1.000000}, + {0.972217, -0.000000, -0.020270, -0.000000, 0.973956, -0.000000, 0.029156, -0.000000, 1.000000}, + {0.958542, -0.000000, -0.018758, -0.000000, 0.960061, -0.000000, 0.025897, -0.000000, 1.000000}, + {0.946206, -0.000000, -0.015383, -0.000000, 0.947357, -0.000000, 0.021807, -0.000000, 1.000000}, + {0.934889, -0.000000, -0.013428, -0.000000, 0.935841, -0.000000, 0.018565, -0.000000, 1.000000}, + {0.924647, -0.000000, -0.011186, -0.000000, 0.925321, -0.000000, 0.015190, -0.000000, 1.000000}, + {0.915382, -0.000000, -0.008364, -0.000000, 0.915812, -0.000000, 0.011722, -0.000000, 1.000000}, + {0.906943, -0.000000, -0.006877, -0.000000, 0.907291, -0.000000, 0.008911, -0.000000, 1.000000}, + {0.899339, -0.000000, -0.003664, -0.000000, 0.899526, -0.000000, 0.005431, -0.000000, 1.000000}, + {0.892387, -0.000000, -0.002221, -0.000000, 0.892474, -0.000000, 0.002847, -0.000000, 1.000000}, + {0.886227, -0.000000, 0.000064, -0.000000, 0.886204, -0.000000, -0.000034, -0.000000, 1.000000}, + {499.983826, -0.000000, -0.100065, -0.000000, 505.023865, -0.000000, 50.030712, -0.000000, 1.000000}, + {499.983826, -0.000000, -0.100065, -0.000000, 505.023865, -0.000000, 50.030712, -0.000000, 1.000000}, + {496.132507, -0.000000, -0.100065, -0.000000, 501.084991, -0.000000, 49.645359, -0.000000, 1.000000}, + {220.501862, -0.000000, -0.100065, -0.000000, 222.708817, -0.000000, 22.064491, -0.000000, 1.000000}, + {124.032257, -0.000000, -0.100065, -0.000000, 125.271431, -0.000000, 12.411230, -0.000000, 1.000000}, + {79.379440, -0.000000, -0.100065, -0.000000, 80.174622, -0.000000, 7.943080, -0.000000, 1.000000}, + {55.123135, -0.000000, -0.100064, -0.000000, 55.675999, -0.000000, 5.515856, -0.000000, 1.000000}, + {40.497456, -0.000000, -0.100064, -0.000000, 40.905289, -0.000000, 4.052378, -0.000000, 1.000000}, + {31.005117, -0.000000, -0.100064, -0.000000, 31.316229, -0.000000, 3.102522, -0.000000, 1.000000}, + {24.498039, -0.000000, -0.100063, -0.000000, 24.743013, -0.000000, 2.451441, -0.000000, 1.000000}, + {19.841043, -0.000000, -0.100062, -0.000000, 20.039982, -0.000000, 1.985378, -0.000000, 1.000000}, + {16.396048, -0.000000, -0.100061, -0.000000, 16.560276, -0.000000, 1.640648, -0.000000, 1.000000}, + {13.776016, -0.000000, -0.100059, -0.000000, 13.913796, -0.000000, 1.378505, -0.000000, 1.000000}, + {11.736537, -0.000000, -0.100056, -0.000000, 11.853859, -0.000000, 1.174419, -0.000000, 1.000000}, + {10.118081, -0.000000, -0.100052, -0.000000, 10.218950, -0.000000, 1.012446, -0.000000, 1.000000}, + {8.812102, -0.000000, -0.100045, -0.000000, 8.899796, -0.000000, 0.881770, -0.000000, 1.000000}, + {7.743134, -0.000000, -0.100035, -0.000000, 7.820218, -0.000000, 0.774784, -0.000000, 1.000000}, + {6.856761, -0.000000, -0.100018, -0.000000, 6.924968, -0.000000, 0.686070, -0.000000, 1.000000}, + {6.114274, -0.000000, -0.099985, -0.000000, 6.174966, -0.000000, 0.611784, -0.000000, 1.000000}, + {5.486098, -0.000000, -0.099914, -0.000000, 5.540296, -0.000000, 0.548911, -0.000000, 1.000000}, + {4.950230, -0.000000, -0.099727, -0.000000, 4.999048, -0.000000, 0.495238, -0.000000, 1.000000}, + {4.490978, -0.000000, -0.099115, -0.000000, 4.535179, -0.000000, 0.449195, -0.000000, 1.000000}, + {4.100280, -0.000000, -0.096506, -0.000000, 4.140200, -0.000000, 0.409693, -0.000000, 1.000000}, + {3.778569, -0.000000, -0.088914, -0.000000, 3.815209, -0.000000, 0.376297, -0.000000, 1.000000}, + {3.495200, -0.000000, -0.091444, -0.000000, 3.528899, -0.000000, 0.348182, -0.000000, 1.000000}, + {3.241935, -0.000000, -0.099470, -0.000000, 3.273196, -0.000000, 0.324086, -0.000000, 1.000000}, + {2.996644, -0.000000, -0.099199, -0.000000, 3.025353, -0.000000, 0.299427, -0.000000, 1.000000}, + {2.779053, -0.000000, -0.098507, -0.000000, 2.805380, -0.000000, 0.277436, -0.000000, 1.000000}, + {2.586476, -0.000000, -0.097117, -0.000000, 2.610731, -0.000000, 0.257765, -0.000000, 1.000000}, + {2.417085, -0.000000, -0.094336, -0.000000, 2.439497, -0.000000, 0.240043, -0.000000, 1.000000}, + {2.270406, -0.000000, -0.089196, -0.000000, 2.291107, -0.000000, 0.223905, -0.000000, 1.000000}, + {2.139853, -0.000000, -0.086879, -0.000000, 2.158984, -0.000000, 0.209936, -0.000000, 1.000000}, + {2.021571, -0.000000, -0.088889, -0.000000, 2.039346, -0.000000, 0.198304, -0.000000, 1.000000}, + {1.914086, -0.000000, -0.091324, -0.000000, 1.930882, -0.000000, 0.187834, -0.000000, 1.000000}, + {1.813416, -0.000000, -0.087712, -0.000000, 1.828976, -0.000000, 0.176267, -0.000000, 1.000000}, + {1.723984, -0.000000, -0.082584, -0.000000, 1.738285, -0.000000, 0.165269, -0.000000, 1.000000}, + {1.642613, -0.000000, -0.081077, -0.000000, 1.656077, -0.000000, 0.156015, -0.000000, 1.000000}, + {1.569811, -0.000000, -0.080575, -0.000000, 1.582335, -0.000000, 0.147811, -0.000000, 1.000000}, + {1.504189, -0.000000, -0.078769, -0.000000, 1.515917, -0.000000, 0.139826, -0.000000, 1.000000}, + {1.442117, -0.000000, -0.075025, -0.000000, 1.453279, -0.000000, 0.131437, -0.000000, 1.000000}, + {1.386219, -0.000000, -0.072455, -0.000000, 1.396548, -0.000000, 0.123838, -0.000000, 1.000000}, + {1.336734, -0.000000, -0.069700, -0.000000, 1.345977, -0.000000, 0.116663, -0.000000, 1.000000}, + {1.290254, -0.000000, -0.067901, -0.000000, 1.299658, -0.000000, 0.110078, -0.000000, 1.000000}, + {1.247579, -0.000000, -0.064105, -0.000000, 1.256130, -0.000000, 0.103060, -0.000000, 1.000000}, + {1.209898, -0.000000, -0.060546, -0.000000, 1.217607, -0.000000, 0.096296, -0.000000, 1.000000}, + {1.174434, -0.000000, -0.058685, -0.000000, 1.182144, -0.000000, 0.090393, -0.000000, 1.000000}, + {1.142631, -0.000000, -0.054454, -0.000000, 1.149469, -0.000000, 0.083838, -0.000000, 1.000000}, + {1.113513, -0.000000, -0.051220, -0.000000, 1.119927, -0.000000, 0.077738, -0.000000, 1.000000}, + {1.086981, -0.000000, -0.048682, -0.000000, 1.093063, -0.000000, 0.072191, -0.000000, 1.000000}, + {1.062786, -0.000000, -0.044314, -0.000000, 1.068357, -0.000000, 0.065921, -0.000000, 1.000000}, + {1.040858, -0.000000, -0.041433, -0.000000, 1.045878, -0.000000, 0.060476, -0.000000, 1.000000}, + {1.020989, -0.000000, -0.037974, -0.000000, 1.025619, -0.000000, 0.054945, -0.000000, 1.000000}, + {1.002567, -0.000000, -0.034336, -0.000000, 1.006743, -0.000000, 0.049497, -0.000000, 1.000000}, + {0.986308, -0.000000, -0.031079, -0.000000, 0.989842, -0.000000, 0.044312, -0.000000, 1.000000}, + {0.971085, -0.000000, -0.027686, -0.000000, 0.974268, -0.000000, 0.039176, -0.000000, 1.000000}, + {0.957699, -0.000000, -0.024253, -0.000000, 0.960263, -0.000000, 0.034145, -0.000000, 1.000000}, + {0.945356, -0.000000, -0.021318, -0.000000, 0.947588, -0.000000, 0.029488, -0.000000, 1.000000}, + {0.934259, -0.000000, -0.017754, -0.000000, 0.935834, -0.000000, 0.024674, -0.000000, 1.000000}, + {0.924229, -0.000000, -0.014611, -0.000000, 0.925383, -0.000000, 0.020181, -0.000000, 1.000000}, + {0.914933, -0.000000, -0.011603, -0.000000, 0.915777, -0.000000, 0.015785, -0.000000, 1.000000}, + {0.906746, -0.000000, -0.008179, -0.000000, 0.907248, -0.000000, 0.011415, -0.000000, 1.000000}, + {0.899098, -0.000000, -0.005942, -0.000000, 0.899435, -0.000000, 0.007740, -0.000000, 1.000000}, + {0.892211, -0.000000, -0.002476, -0.000000, 0.892303, -0.000000, 0.003563, -0.000000, 1.000000}, + {0.886070, -0.000000, 0.000087, -0.000000, 0.886099, -0.000000, -0.000117, -0.000000, 1.000000}, + {499.988678, -0.000000, -0.125316, -0.000000, 507.848236, -0.000000, 62.656498, -0.000000, 1.000000}, + {499.988678, -0.000000, -0.125316, -0.000000, 507.848236, -0.000000, 62.656498, -0.000000, 1.000000}, + {496.129761, -0.000000, -0.125316, -0.000000, 503.914063, -0.000000, 62.172882, -0.000000, 1.000000}, + {220.497086, -0.000000, -0.125316, -0.000000, 223.959366, -0.000000, 27.631804, -0.000000, 1.000000}, + {124.019318, -0.000000, -0.125316, -0.000000, 125.981674, -0.000000, 15.541595, -0.000000, 1.000000}, + {79.381973, -0.000000, -0.125315, -0.000000, 80.623238, -0.000000, 9.947818, -0.000000, 1.000000}, + {55.123730, -0.000000, -0.125315, -0.000000, 55.990360, -0.000000, 6.907876, -0.000000, 1.000000}, + {40.499413, -0.000000, -0.125315, -0.000000, 41.132862, -0.000000, 5.075211, -0.000000, 1.000000}, + {31.005598, -0.000000, -0.125314, -0.000000, 31.492960, -0.000000, 3.885517, -0.000000, 1.000000}, + {24.498001, -0.000000, -0.125312, -0.000000, 24.882656, -0.000000, 3.070006, -0.000000, 1.000000}, + {19.841513, -0.000000, -0.125310, -0.000000, 20.152517, -0.000000, 2.486452, -0.000000, 1.000000}, + {16.395920, -0.000000, -0.125308, -0.000000, 16.653996, -0.000000, 2.054650, -0.000000, 1.000000}, + {13.776306, -0.000000, -0.125304, -0.000000, 13.992229, -0.000000, 1.726372, -0.000000, 1.000000}, + {11.736536, -0.000000, -0.125299, -0.000000, 11.920282, -0.000000, 1.470755, -0.000000, 1.000000}, + {10.118100, -0.000000, -0.125292, -0.000000, 10.276620, -0.000000, 1.267936, -0.000000, 1.000000}, + {8.812184, -0.000000, -0.125282, -0.000000, 8.949860, -0.000000, 1.104275, -0.000000, 1.000000}, + {7.743106, -0.000000, -0.125267, -0.000000, 7.863972, -0.000000, 0.970299, -0.000000, 1.000000}, + {6.857152, -0.000000, -0.125242, -0.000000, 6.963921, -0.000000, 0.859257, -0.000000, 1.000000}, + {6.114560, -0.000000, -0.125197, -0.000000, 6.209592, -0.000000, 0.766163, -0.000000, 1.000000}, + {5.486320, -0.000000, -0.125099, -0.000000, 5.571335, -0.000000, 0.687425, -0.000000, 1.000000}, + {4.950572, -0.000000, -0.124844, -0.000000, 5.027175, -0.000000, 0.620248, -0.000000, 1.000000}, + {4.491789, -0.000000, -0.123975, -0.000000, 4.560817, -0.000000, 0.562587, -0.000000, 1.000000}, + {4.103055, -0.000000, -0.120083, -0.000000, 4.165789, -0.000000, 0.513305, -0.000000, 1.000000}, + {3.777709, -0.000000, -0.113248, -0.000000, 3.835187, -0.000000, 0.471403, -0.000000, 1.000000}, + {3.489725, -0.000000, -0.115143, -0.000000, 3.542538, -0.000000, 0.435448, -0.000000, 1.000000}, + {3.237550, -0.000000, -0.122470, -0.000000, 3.286473, -0.000000, 0.404937, -0.000000, 1.000000}, + {2.997180, -0.000000, -0.124153, -0.000000, 3.042161, -0.000000, 0.375008, -0.000000, 1.000000}, + {2.779752, -0.000000, -0.123233, -0.000000, 2.821080, -0.000000, 0.347483, -0.000000, 1.000000}, + {2.587363, -0.000000, -0.121377, -0.000000, 2.625501, -0.000000, 0.322832, -0.000000, 1.000000}, + {2.418493, -0.000000, -0.117683, -0.000000, 2.453598, -0.000000, 0.300661, -0.000000, 1.000000}, + {2.271636, -0.000000, -0.111763, -0.000000, 2.304001, -0.000000, 0.280542, -0.000000, 1.000000}, + {2.138656, -0.000000, -0.110167, -0.000000, 2.168852, -0.000000, 0.263093, -0.000000, 1.000000}, + {2.019761, -0.000000, -0.111032, -0.000000, 2.047639, -0.000000, 0.247931, -0.000000, 1.000000}, + {1.912891, -0.000000, -0.112309, -0.000000, 1.939135, -0.000000, 0.234426, -0.000000, 1.000000}, + {1.814850, -0.000000, -0.109323, -0.000000, 1.839034, -0.000000, 0.220689, -0.000000, 1.000000}, + {1.723768, -0.000000, -0.104629, -0.000000, 1.746386, -0.000000, 0.207252, -0.000000, 1.000000}, + {1.641915, -0.000000, -0.102120, -0.000000, 1.662966, -0.000000, 0.195394, -0.000000, 1.000000}, + {1.569105, -0.000000, -0.099893, -0.000000, 1.588437, -0.000000, 0.184631, -0.000000, 1.000000}, + {1.503554, -0.000000, -0.097455, -0.000000, 1.521679, -0.000000, 0.174583, -0.000000, 1.000000}, + {1.441778, -0.000000, -0.094928, -0.000000, 1.458937, -0.000000, 0.164771, -0.000000, 1.000000}, + {1.385807, -0.000000, -0.090627, -0.000000, 1.401628, -0.000000, 0.154927, -0.000000, 1.000000}, + {1.335691, -0.000000, -0.086796, -0.000000, 1.350160, -0.000000, 0.145743, -0.000000, 1.000000}, + {1.289436, -0.000000, -0.084635, -0.000000, 1.303330, -0.000000, 0.137498, -0.000000, 1.000000}, + {1.247463, -0.000000, -0.080219, -0.000000, 1.260158, -0.000000, 0.128819, -0.000000, 1.000000}, + {1.208796, -0.000000, -0.075910, -0.000000, 1.220506, -0.000000, 0.120424, -0.000000, 1.000000}, + {1.173811, -0.000000, -0.072647, -0.000000, 1.184842, -0.000000, 0.112685, -0.000000, 1.000000}, + {1.141949, -0.000000, -0.068515, -0.000000, 1.152425, -0.000000, 0.104874, -0.000000, 1.000000}, + {1.112584, -0.000000, -0.064082, -0.000000, 1.121989, -0.000000, 0.097076, -0.000000, 1.000000}, + {1.086414, -0.000000, -0.059860, -0.000000, 1.094814, -0.000000, 0.089718, -0.000000, 1.000000}, + {1.061834, -0.000000, -0.056167, -0.000000, 1.069931, -0.000000, 0.082653, -0.000000, 1.000000}, + {1.040016, -0.000000, -0.051208, -0.000000, 1.047066, -0.000000, 0.075299, -0.000000, 1.000000}, + {1.019809, -0.000000, -0.047463, -0.000000, 1.026480, -0.000000, 0.068631, -0.000000, 1.000000}, + {1.001626, -0.000000, -0.043084, -0.000000, 1.007392, -0.000000, 0.061772, -0.000000, 1.000000}, + {0.985189, -0.000000, -0.038572, -0.000000, 0.990411, -0.000000, 0.055197, -0.000000, 1.000000}, + {0.970203, -0.000000, -0.035021, -0.000000, 0.974849, -0.000000, 0.049107, -0.000000, 1.000000}, + {0.956741, -0.000000, -0.030024, -0.000000, 0.960630, -0.000000, 0.042536, -0.000000, 1.000000}, + {0.944591, -0.000000, -0.026461, -0.000000, 0.947661, -0.000000, 0.036732, -0.000000, 1.000000}, + {0.933605, -0.000000, -0.022093, -0.000000, 0.936114, -0.000000, 0.030734, -0.000000, 1.000000}, + {0.923538, -0.000000, -0.018221, -0.000000, 0.925506, -0.000000, 0.025107, -0.000000, 1.000000}, + {0.914564, -0.000000, -0.014631, -0.000000, 0.915917, -0.000000, 0.019829, -0.000000, 1.000000}, + {0.906314, -0.000000, -0.010410, -0.000000, 0.907137, -0.000000, 0.014384, -0.000000, 1.000000}, + {0.898843, -0.000000, -0.007030, -0.000000, 0.899280, -0.000000, 0.009481, -0.000000, 1.000000}, + {0.892090, -0.000000, -0.003253, -0.000000, 0.892242, -0.000000, 0.004531, -0.000000, 1.000000}, + {0.885826, -0.000000, 0.000163, -0.000000, 0.885772, -0.000000, -0.000108, -0.000000, 1.000000}, + {499.975067, -0.000000, -0.150725, -0.000000, 511.384979, -0.000000, 75.358841, -0.000000, 1.000000}, + {499.975067, -0.000000, -0.150725, -0.000000, 511.384979, -0.000000, 75.358841, -0.000000, 1.000000}, + {496.103210, -0.000000, -0.150725, -0.000000, 507.432037, -0.000000, 74.775238, -0.000000, 1.000000}, + {220.498627, -0.000000, -0.150725, -0.000000, 225.508652, -0.000000, 33.234734, -0.000000, 1.000000}, + {124.037292, -0.000000, -0.150725, -0.000000, 126.842415, -0.000000, 18.695688, -0.000000, 1.000000}, + {79.374237, -0.000000, -0.150724, -0.000000, 81.185875, -0.000000, 11.963627, -0.000000, 1.000000}, + {55.122051, -0.000000, -0.150724, -0.000000, 56.377090, -0.000000, 8.308264, -0.000000, 1.000000}, + {40.495537, -0.000000, -0.150723, -0.000000, 41.419373, -0.000000, 6.103695, -0.000000, 1.000000}, + {31.006496, -0.000000, -0.150722, -0.000000, 31.705175, -0.000000, 4.673535, -0.000000, 1.000000}, + {24.502220, -0.000000, -0.150719, -0.000000, 25.054398, -0.000000, 3.693235, -0.000000, 1.000000}, + {19.841686, -0.000000, -0.150716, -0.000000, 20.291641, -0.000000, 2.990625, -0.000000, 1.000000}, + {16.396605, -0.000000, -0.150712, -0.000000, 16.768789, -0.000000, 2.471370, -0.000000, 1.000000}, + {13.776132, -0.000000, -0.150705, -0.000000, 14.088309, -0.000000, 2.076396, -0.000000, 1.000000}, + {11.736781, -0.000000, -0.150697, -0.000000, 12.002884, -0.000000, 1.769014, -0.000000, 1.000000}, + {10.118110, -0.000000, -0.150686, -0.000000, 10.347181, -0.000000, 1.525028, -0.000000, 1.000000}, + {8.812341, -0.000000, -0.150671, -0.000000, 9.011584, -0.000000, 1.328194, -0.000000, 1.000000}, + {7.743464, -0.000000, -0.150649, -0.000000, 7.918241, -0.000000, 1.167073, -0.000000, 1.000000}, + {6.857213, -0.000000, -0.150614, -0.000000, 7.011972, -0.000000, 1.033487, -0.000000, 1.000000}, + {6.114755, -0.000000, -0.150553, -0.000000, 6.252233, -0.000000, 0.921551, -0.000000, 1.000000}, + {5.486509, -0.000000, -0.150423, -0.000000, 5.609710, -0.000000, 0.826825, -0.000000, 1.000000}, + {4.951097, -0.000000, -0.150081, -0.000000, 5.061741, -0.000000, 0.746066, -0.000000, 1.000000}, + {4.492796, -0.000000, -0.148855, -0.000000, 4.592881, -0.000000, 0.676774, -0.000000, 1.000000}, + {4.106829, -0.000000, -0.143114, -0.000000, 4.197904, -0.000000, 0.617765, -0.000000, 1.000000}, + {3.776172, -0.000000, -0.138048, -0.000000, 3.859241, -0.000000, 0.567013, -0.000000, 1.000000}, + {3.485237, -0.000000, -0.139282, -0.000000, 3.561492, -0.000000, 0.523169, -0.000000, 1.000000}, + {3.232046, -0.000000, -0.145310, -0.000000, 3.302608, -0.000000, 0.485838, -0.000000, 1.000000}, + {2.997767, -0.000000, -0.149207, -0.000000, 3.062907, -0.000000, 0.451090, -0.000000, 1.000000}, + {2.780419, -0.000000, -0.148017, -0.000000, 2.840446, -0.000000, 0.417909, -0.000000, 1.000000}, + {2.588510, -0.000000, -0.145605, -0.000000, 2.643693, -0.000000, 0.388345, -0.000000, 1.000000}, + {2.420171, -0.000000, -0.140849, -0.000000, 2.471030, -0.000000, 0.361647, -0.000000, 1.000000}, + {2.271814, -0.000000, -0.135408, -0.000000, 2.318790, -0.000000, 0.337650, -0.000000, 1.000000}, + {2.137570, -0.000000, -0.133633, -0.000000, 2.181172, -0.000000, 0.316517, -0.000000, 1.000000}, + {2.018142, -0.000000, -0.133331, -0.000000, 2.058458, -0.000000, 0.297881, -0.000000, 1.000000}, + {1.911721, -0.000000, -0.133095, -0.000000, 1.949249, -0.000000, 0.281156, -0.000000, 1.000000}, + {1.815834, -0.000000, -0.130985, -0.000000, 1.850734, -0.000000, 0.265446, -0.000000, 1.000000}, + {1.723832, -0.000000, -0.126806, -0.000000, 1.756498, -0.000000, 0.249452, -0.000000, 1.000000}, + {1.641533, -0.000000, -0.123155, -0.000000, 1.671640, -0.000000, 0.235015, -0.000000, 1.000000}, + {1.569057, -0.000000, -0.119176, -0.000000, 1.596424, -0.000000, 0.221675, -0.000000, 1.000000}, + {1.502528, -0.000000, -0.116564, -0.000000, 1.528443, -0.000000, 0.209495, -0.000000, 1.000000}, + {1.441651, -0.000000, -0.114442, -0.000000, 1.466111, -0.000000, 0.198148, -0.000000, 1.000000}, + {1.386014, -0.000000, -0.108702, -0.000000, 1.407911, -0.000000, 0.186116, -0.000000, 1.000000}, + {1.335108, -0.000000, -0.104388, -0.000000, 1.355553, -0.000000, 0.175068, -0.000000, 1.000000}, + {1.288948, -0.000000, -0.100873, -0.000000, 1.307853, -0.000000, 0.164819, -0.000000, 1.000000}, + {1.247475, -0.000000, -0.096616, -0.000000, 1.264802, -0.000000, 0.154775, -0.000000, 1.000000}, + {1.208317, -0.000000, -0.091453, -0.000000, 1.224510, -0.000000, 0.144569, -0.000000, 1.000000}, + {1.173928, -0.000000, -0.086347, -0.000000, 1.188000, -0.000000, 0.134849, -0.000000, 1.000000}, + {1.141393, -0.000000, -0.082366, -0.000000, 1.155138, -0.000000, 0.125718, -0.000000, 1.000000}, + {1.112421, -0.000000, -0.076983, -0.000000, 1.124588, -0.000000, 0.116446, -0.000000, 1.000000}, + {1.085617, -0.000000, -0.071706, -0.000000, 1.096798, -0.000000, 0.107384, -0.000000, 1.000000}, + {1.061435, -0.000000, -0.067265, -0.000000, 1.071699, -0.000000, 0.098925, -0.000000, 1.000000}, + {1.039405, -0.000000, -0.061565, -0.000000, 1.048640, -0.000000, 0.090198, -0.000000, 1.000000}, + {1.019217, -0.000000, -0.056655, -0.000000, 1.027570, -0.000000, 0.081968, -0.000000, 1.000000}, + {1.000977, -0.000000, -0.051743, -0.000000, 1.008677, -0.000000, 0.074058, -0.000000, 1.000000}, + {0.984202, -0.000000, -0.046389, -0.000000, 0.991082, -0.000000, 0.066087, -0.000000, 1.000000}, + {0.969449, -0.000000, -0.041229, -0.000000, 0.975348, -0.000000, 0.058478, -0.000000, 1.000000}, + {0.955665, -0.000000, -0.036702, -0.000000, 0.961025, -0.000000, 0.051242, -0.000000, 1.000000}, + {0.943725, -0.000000, -0.031285, -0.000000, 0.948032, -0.000000, 0.043797, -0.000000, 1.000000}, + {0.932732, -0.000000, -0.026812, -0.000000, 0.936218, -0.000000, 0.036990, -0.000000, 1.000000}, + {0.922815, -0.000000, -0.021847, -0.000000, 0.925515, -0.000000, 0.030171, -0.000000, 1.000000}, + {0.914039, -0.000000, -0.016994, -0.000000, 0.915852, -0.000000, 0.023478, -0.000000, 1.000000}, + {0.905853, -0.000000, -0.013168, -0.000000, 0.907115, -0.000000, 0.017547, -0.000000, 1.000000}, + {0.898514, -0.000000, -0.007937, -0.000000, 0.899218, -0.000000, 0.011117, -0.000000, 1.000000}, + {0.891748, -0.000000, -0.004133, -0.000000, 0.892026, -0.000000, 0.005548, -0.000000, 1.000000}, + {0.885656, -0.000000, 0.000266, -0.000000, 0.885656, -0.000000, -0.000179, -0.000000, 1.000000}, + {500.137848, -0.000000, -0.176326, -0.000000, 515.448792, -0.000000, 88.187454, -0.000000, 1.000000}, + {500.137848, -0.000000, -0.176326, -0.000000, 515.448792, -0.000000, 88.187454, -0.000000, 1.000000}, + {496.078827, -0.000000, -0.176326, -0.000000, 511.576691, -0.000000, 87.471741, -0.000000, 1.000000}, + {220.496750, -0.000000, -0.176326, -0.000000, 227.360535, -0.000000, 38.879414, -0.000000, 1.000000}, + {124.028099, -0.000000, -0.176326, -0.000000, 127.887680, -0.000000, 21.869419, -0.000000, 1.000000}, + {79.379059, -0.000000, -0.176325, -0.000000, 81.847160, -0.000000, 13.996596, -0.000000, 1.000000}, + {55.123569, -0.000000, -0.176324, -0.000000, 56.838345, -0.000000, 9.719764, -0.000000, 1.000000}, + {40.497410, -0.000000, -0.176323, -0.000000, 41.758190, -0.000000, 7.140716, -0.000000, 1.000000}, + {31.010031, -0.000000, -0.176320, -0.000000, 31.968016, -0.000000, 5.467903, -0.000000, 1.000000}, + {24.498796, -0.000000, -0.176317, -0.000000, 25.258919, -0.000000, 4.319749, -0.000000, 1.000000}, + {19.841389, -0.000000, -0.176311, -0.000000, 20.457605, -0.000000, 3.498529, -0.000000, 1.000000}, + {16.397121, -0.000000, -0.176305, -0.000000, 16.906359, -0.000000, 2.891195, -0.000000, 1.000000}, + {13.776705, -0.000000, -0.176295, -0.000000, 14.203604, -0.000000, 2.429163, -0.000000, 1.000000}, + {11.737144, -0.000000, -0.176283, -0.000000, 12.100784, -0.000000, 2.069515, -0.000000, 1.000000}, + {10.118380, -0.000000, -0.176267, -0.000000, 10.431730, -0.000000, 1.784079, -0.000000, 1.000000}, + {8.812522, -0.000000, -0.176244, -0.000000, 9.085212, -0.000000, 1.553809, -0.000000, 1.000000}, + {7.743594, -0.000000, -0.176213, -0.000000, 7.982780, -0.000000, 1.365311, -0.000000, 1.000000}, + {6.857443, -0.000000, -0.176165, -0.000000, 7.069174, -0.000000, 1.209043, -0.000000, 1.000000}, + {6.115237, -0.000000, -0.176083, -0.000000, 6.303002, -0.000000, 1.078138, -0.000000, 1.000000}, + {5.487206, -0.000000, -0.175914, -0.000000, 5.655299, -0.000000, 0.967364, -0.000000, 1.000000}, + {4.951627, -0.000000, -0.175459, -0.000000, 5.103069, -0.000000, 0.872822, -0.000000, 1.000000}, + {4.494173, -0.000000, -0.173714, -0.000000, 4.631212, -0.000000, 0.791896, -0.000000, 1.000000}, + {4.110331, -0.000000, -0.166438, -0.000000, 4.234978, -0.000000, 0.723129, -0.000000, 1.000000}, + {3.774621, -0.000000, -0.163092, -0.000000, 3.888469, -0.000000, 0.663263, -0.000000, 1.000000}, + {3.481253, -0.000000, -0.163796, -0.000000, 3.585593, -0.000000, 0.611419, -0.000000, 1.000000}, + {3.226119, -0.000000, -0.168430, -0.000000, 3.322400, -0.000000, 0.566981, -0.000000, 1.000000}, + {2.998593, -0.000000, -0.174378, -0.000000, 3.087643, -0.000000, 0.527768, -0.000000, 1.000000}, + {2.781536, -0.000000, -0.172860, -0.000000, 2.863415, -0.000000, 0.489044, -0.000000, 1.000000}, + {2.589859, -0.000000, -0.169774, -0.000000, 2.665395, -0.000000, 0.454364, -0.000000, 1.000000}, + {2.422226, -0.000000, -0.163780, -0.000000, 2.491674, -0.000000, 0.423142, -0.000000, 1.000000}, + {2.271880, -0.000000, -0.159524, -0.000000, 2.336085, -0.000000, 0.395227, -0.000000, 1.000000}, + {2.136761, -0.000000, -0.157259, -0.000000, 2.196419, -0.000000, 0.370258, -0.000000, 1.000000}, + {2.016938, -0.000000, -0.155739, -0.000000, 2.072157, -0.000000, 0.348111, -0.000000, 1.000000}, + {1.910869, -0.000000, -0.153894, -0.000000, 1.961848, -0.000000, 0.328188, -0.000000, 1.000000}, + {1.815034, -0.000000, -0.152270, -0.000000, 1.862665, -0.000000, 0.309955, -0.000000, 1.000000}, + {1.723901, -0.000000, -0.149119, -0.000000, 1.768507, -0.000000, 0.292020, -0.000000, 1.000000}, + {1.641692, -0.000000, -0.144131, -0.000000, 1.682457, -0.000000, 0.274827, -0.000000, 1.000000}, + {1.568958, -0.000000, -0.138928, -0.000000, 1.606070, -0.000000, 0.259001, -0.000000, 1.000000}, + {1.501811, -0.000000, -0.135819, -0.000000, 1.536432, -0.000000, 0.244606, -0.000000, 1.000000}, + {1.441540, -0.000000, -0.132694, -0.000000, 1.473682, -0.000000, 0.231117, -0.000000, 1.000000}, + {1.386211, -0.000000, -0.127474, -0.000000, 1.415470, -0.000000, 0.217634, -0.000000, 1.000000}, + {1.335120, -0.000000, -0.122118, -0.000000, 1.361721, -0.000000, 0.204512, -0.000000, 1.000000}, + {1.289377, -0.000000, -0.116811, -0.000000, 1.313414, -0.000000, 0.192047, -0.000000, 1.000000}, + {1.247203, -0.000000, -0.112536, -0.000000, 1.269721, -0.000000, 0.180439, -0.000000, 1.000000}, + {1.208800, -0.000000, -0.107041, -0.000000, 1.229093, -0.000000, 0.168721, -0.000000, 1.000000}, + {1.173918, -0.000000, -0.100700, -0.000000, 1.191805, -0.000000, 0.157202, -0.000000, 1.000000}, + {1.141539, -0.000000, -0.095628, -0.000000, 1.158289, -0.000000, 0.146366, -0.000000, 1.000000}, + {1.112548, -0.000000, -0.090031, -0.000000, 1.127686, -0.000000, 0.135788, -0.000000, 1.000000}, + {1.085812, -0.000000, -0.083715, -0.000000, 1.099267, -0.000000, 0.125136, -0.000000, 1.000000}, + {1.061281, -0.000000, -0.077684, -0.000000, 1.073643, -0.000000, 0.114829, -0.000000, 1.000000}, + {1.038917, -0.000000, -0.072414, -0.000000, 1.050455, -0.000000, 0.105254, -0.000000, 1.000000}, + {1.019049, -0.000000, -0.065656, -0.000000, 1.029130, -0.000000, 0.095291, -0.000000, 1.000000}, + {1.000216, -0.000000, -0.060083, -0.000000, 1.009833, -0.000000, 0.086050, -0.000000, 1.000000}, + {0.983558, -0.000000, -0.054356, -0.000000, 0.992151, -0.000000, 0.076948, -0.000000, 1.000000}, + {0.968492, -0.000000, -0.048041, -0.000000, 0.976051, -0.000000, 0.068061, -0.000000, 1.000000}, + {0.954849, -0.000000, -0.042631, -0.000000, 0.961450, -0.000000, 0.059557, -0.000000, 1.000000}, + {0.942548, -0.000000, -0.036554, -0.000000, 0.948345, -0.000000, 0.051056, -0.000000, 1.000000}, + {0.931768, -0.000000, -0.030994, -0.000000, 0.936276, -0.000000, 0.042978, -0.000000, 1.000000}, + {0.922134, -0.000000, -0.025629, -0.000000, 0.925676, -0.000000, 0.035135, -0.000000, 1.000000}, + {0.913335, -0.000000, -0.019997, -0.000000, 0.915830, -0.000000, 0.027508, -0.000000, 1.000000}, + {0.905483, -0.000000, -0.014687, -0.000000, 0.907031, -0.000000, 0.020128, -0.000000, 1.000000}, + {0.898067, -0.000000, -0.009774, -0.000000, 0.898977, -0.000000, 0.013180, -0.000000, 1.000000}, + {0.891410, -0.000000, -0.004567, -0.000000, 0.891737, -0.000000, 0.006331, -0.000000, 1.000000}, + {0.885377, -0.000000, 0.000120, -0.000000, 0.885377, -0.000000, -0.000109, -0.000000, 1.000000}, + {500.002136, -0.000000, -0.202154, -0.000000, 520.401855, -0.000000, 101.077248, -0.000000, 1.000000}, + {500.002136, -0.000000, -0.202154, -0.000000, 520.401855, -0.000000, 101.077248, -0.000000, 1.000000}, + {496.121338, -0.000000, -0.202154, -0.000000, 516.361938, -0.000000, 100.292641, -0.000000, 1.000000}, + {220.502655, -0.000000, -0.202153, -0.000000, 229.510117, -0.000000, 44.575531, -0.000000, 1.000000}, + {123.999191, -0.000000, -0.202153, -0.000000, 129.105179, -0.000000, 25.067114, -0.000000, 1.000000}, + {79.376472, -0.000000, -0.202152, -0.000000, 82.622795, -0.000000, 16.046227, -0.000000, 1.000000}, + {55.120224, -0.000000, -0.202151, -0.000000, 57.375393, -0.000000, 11.142715, -0.000000, 1.000000}, + {40.498074, -0.000000, -0.202148, -0.000000, 42.151817, -0.000000, 8.186816, -0.000000, 1.000000}, + {31.005764, -0.000000, -0.202145, -0.000000, 32.273041, -0.000000, 6.267910, -0.000000, 1.000000}, + {24.496655, -0.000000, -0.202139, -0.000000, 25.498249, -0.000000, 4.952050, -0.000000, 1.000000}, + {19.841209, -0.000000, -0.202131, -0.000000, 20.652281, -0.000000, 4.010926, -0.000000, 1.000000}, + {16.396740, -0.000000, -0.202121, -0.000000, 17.065317, -0.000000, 3.314617, -0.000000, 1.000000}, + {13.776087, -0.000000, -0.202107, -0.000000, 14.337918, -0.000000, 2.784805, -0.000000, 1.000000}, + {11.736927, -0.000000, -0.202089, -0.000000, 12.215576, -0.000000, 2.372608, -0.000000, 1.000000}, + {10.117808, -0.000000, -0.202065, -0.000000, 10.530962, -0.000000, 2.045225, -0.000000, 1.000000}, + {8.812817, -0.000000, -0.202034, -0.000000, 9.170947, -0.000000, 1.781436, -0.000000, 1.000000}, + {7.743863, -0.000000, -0.201990, -0.000000, 8.058211, -0.000000, 1.565313, -0.000000, 1.000000}, + {6.857856, -0.000000, -0.201926, -0.000000, 7.135773, -0.000000, 1.386182, -0.000000, 1.000000}, + {6.115432, -0.000000, -0.201820, -0.000000, 6.362723, -0.000000, 1.236057, -0.000000, 1.000000}, + {5.487375, -0.000000, -0.201601, -0.000000, 5.708670, -0.000000, 1.109041, -0.000000, 1.000000}, + {4.952326, -0.000000, -0.200992, -0.000000, 5.151335, -0.000000, 1.000741, -0.000000, 1.000000}, + {4.496054, -0.000000, -0.198467, -0.000000, 4.676206, -0.000000, 0.908137, -0.000000, 1.000000}, + {4.111419, -0.000000, -0.191120, -0.000000, 4.275214, -0.000000, 0.829276, -0.000000, 1.000000}, + {3.773230, -0.000000, -0.188319, -0.000000, 3.922716, -0.000000, 0.760296, -0.000000, 1.000000}, + {3.477818, -0.000000, -0.188648, -0.000000, 3.614793, -0.000000, 0.700339, -0.000000, 1.000000}, + {3.221098, -0.000000, -0.192139, -0.000000, 3.347462, -0.000000, 0.648791, -0.000000, 1.000000}, + {2.995774, -0.000000, -0.198064, -0.000000, 3.112610, -0.000000, 0.604101, -0.000000, 1.000000}, + {2.782646, -0.000000, -0.197759, -0.000000, 2.890333, -0.000000, 0.560737, -0.000000, 1.000000}, + {2.591527, -0.000000, -0.193848, -0.000000, 2.690751, -0.000000, 0.521002, -0.000000, 1.000000}, + {2.423693, -0.000000, -0.187492, -0.000000, 2.514939, -0.000000, 0.485291, -0.000000, 1.000000}, + {2.271948, -0.000000, -0.183692, -0.000000, 2.356494, -0.000000, 0.453180, -0.000000, 1.000000}, + {2.136155, -0.000000, -0.180966, -0.000000, 2.214588, -0.000000, 0.424463, -0.000000, 1.000000}, + {2.016137, -0.000000, -0.178201, -0.000000, 2.088436, -0.000000, 0.398745, -0.000000, 1.000000}, + {1.910310, -0.000000, -0.174738, -0.000000, 1.976897, -0.000000, 0.375515, -0.000000, 1.000000}, + {1.813429, -0.000000, -0.173377, -0.000000, 1.875835, -0.000000, 0.354591, -0.000000, 1.000000}, + {1.724669, -0.000000, -0.171366, -0.000000, 1.782674, -0.000000, 0.334854, -0.000000, 1.000000}, + {1.642285, -0.000000, -0.164999, -0.000000, 1.695323, -0.000000, 0.314955, -0.000000, 1.000000}, + {1.568593, -0.000000, -0.159429, -0.000000, 1.616958, -0.000000, 0.296641, -0.000000, 1.000000}, + {1.501747, -0.000000, -0.155140, -0.000000, 1.546379, -0.000000, 0.279952, -0.000000, 1.000000}, + {1.442147, -0.000000, -0.150522, -0.000000, 1.482591, -0.000000, 0.264179, -0.000000, 1.000000}, + {1.386560, -0.000000, -0.146354, -0.000000, 1.424087, -0.000000, 0.249275, -0.000000, 1.000000}, + {1.336091, -0.000000, -0.139864, -0.000000, 1.369359, -0.000000, 0.234266, -0.000000, 1.000000}, + {1.290110, -0.000000, -0.133329, -0.000000, 1.319812, -0.000000, 0.219634, -0.000000, 1.000000}, + {1.247460, -0.000000, -0.128134, -0.000000, 1.275250, -0.000000, 0.206112, -0.000000, 1.000000}, + {1.210189, -0.000000, -0.122320, -0.000000, 1.234548, -0.000000, 0.192902, -0.000000, 1.000000}, + {1.174714, -0.000000, -0.115431, -0.000000, 1.196491, -0.000000, 0.179668, -0.000000, 1.000000}, + {1.142451, -0.000000, -0.108658, -0.000000, 1.162076, -0.000000, 0.166836, -0.000000, 1.000000}, + {1.112871, -0.000000, -0.102621, -0.000000, 1.131117, -0.000000, 0.154679, -0.000000, 1.000000}, + {1.086229, -0.000000, -0.095825, -0.000000, 1.102497, -0.000000, 0.142680, -0.000000, 1.000000}, + {1.061453, -0.000000, -0.088686, -0.000000, 1.075995, -0.000000, 0.130891, -0.000000, 1.000000}, + {1.038903, -0.000000, -0.082343, -0.000000, 1.052435, -0.000000, 0.119805, -0.000000, 1.000000}, + {1.018590, -0.000000, -0.075305, -0.000000, 1.030991, -0.000000, 0.108658, -0.000000, 1.000000}, + {0.999955, -0.000000, -0.068336, -0.000000, 1.010974, -0.000000, 0.097934, -0.000000, 1.000000}, + {0.983050, -0.000000, -0.061738, -0.000000, 0.993355, -0.000000, 0.087585, -0.000000, 1.000000}, + {0.967750, -0.000000, -0.054981, -0.000000, 0.976869, -0.000000, 0.077547, -0.000000, 1.000000}, + {0.954319, -0.000000, -0.048012, -0.000000, 0.962132, -0.000000, 0.067642, -0.000000, 1.000000}, + {0.941693, -0.000000, -0.042210, -0.000000, 0.948741, -0.000000, 0.058381, -0.000000, 1.000000}, + {0.930924, -0.000000, -0.035178, -0.000000, 0.936629, -0.000000, 0.048898, -0.000000, 1.000000}, + {0.921219, -0.000000, -0.029154, -0.000000, 0.925665, -0.000000, 0.040093, -0.000000, 1.000000}, + {0.912509, -0.000000, -0.023188, -0.000000, 0.915857, -0.000000, 0.031532, -0.000000, 1.000000}, + {0.904780, -0.000000, -0.016546, -0.000000, 0.906863, -0.000000, 0.022884, -0.000000, 1.000000}, + {0.897692, -0.000000, -0.011130, -0.000000, 0.898842, -0.000000, 0.015020, -0.000000, 1.000000}, + {0.891087, -0.000000, -0.005098, -0.000000, 0.891608, -0.000000, 0.007156, -0.000000, 1.000000}, + {0.885051, -0.000000, 0.000194, -0.000000, 0.885016, -0.000000, -0.000143, -0.000000, 1.000000}, + {500.122223, -0.000000, -0.228243, -0.000000, 525.877747, -0.000000, 114.149078, -0.000000, 1.000000}, + {500.122223, -0.000000, -0.228243, -0.000000, 525.877747, -0.000000, 114.149078, -0.000000, 1.000000}, + {496.093170, -0.000000, -0.228243, -0.000000, 521.986084, -0.000000, 113.229523, -0.000000, 1.000000}, + {220.491501, -0.000000, -0.228243, -0.000000, 231.998520, -0.000000, 50.325714, -0.000000, 1.000000}, + {124.052315, -0.000000, -0.228242, -0.000000, 130.483047, -0.000000, 28.314045, -0.000000, 1.000000}, + {79.374489, -0.000000, -0.228241, -0.000000, 83.516861, -0.000000, 18.116611, -0.000000, 1.000000}, + {55.126289, -0.000000, -0.228239, -0.000000, 57.994217, -0.000000, 12.582159, -0.000000, 1.000000}, + {40.494789, -0.000000, -0.228235, -0.000000, 42.608646, -0.000000, 9.242578, -0.000000, 1.000000}, + {31.007071, -0.000000, -0.228230, -0.000000, 32.619976, -0.000000, 7.077108, -0.000000, 1.000000}, + {24.497461, -0.000000, -0.228222, -0.000000, 25.772018, -0.000000, 5.591317, -0.000000, 1.000000}, + {19.841955, -0.000000, -0.228211, -0.000000, 20.874607, -0.000000, 4.528726, -0.000000, 1.000000}, + {16.397472, -0.000000, -0.228196, -0.000000, 17.249781, -0.000000, 3.742531, -0.000000, 1.000000}, + {13.776735, -0.000000, -0.228176, -0.000000, 14.492861, -0.000000, 3.144354, -0.000000, 1.000000}, + {11.737115, -0.000000, -0.228151, -0.000000, 12.346711, -0.000000, 2.678810, -0.000000, 1.000000}, + {10.118634, -0.000000, -0.228118, -0.000000, 10.644080, -0.000000, 2.309386, -0.000000, 1.000000}, + {8.812924, -0.000000, -0.228074, -0.000000, 9.269695, -0.000000, 2.011329, -0.000000, 1.000000}, + {7.744034, -0.000000, -0.228016, -0.000000, 8.144842, -0.000000, 1.767344, -0.000000, 1.000000}, + {6.858088, -0.000000, -0.227931, -0.000000, 7.212428, -0.000000, 1.565093, -0.000000, 1.000000}, + {6.115783, -0.000000, -0.227793, -0.000000, 6.430929, -0.000000, 1.395625, -0.000000, 1.000000}, + {5.487657, -0.000000, -0.227510, -0.000000, 5.769895, -0.000000, 1.252177, -0.000000, 1.000000}, + {4.952886, -0.000000, -0.226687, -0.000000, 5.206831, -0.000000, 1.129947, -0.000000, 1.000000}, + {4.498596, -0.000000, -0.222958, -0.000000, 4.728174, -0.000000, 1.025697, -0.000000, 1.000000}, + {4.111821, -0.000000, -0.216263, -0.000000, 4.320670, -0.000000, 0.936399, -0.000000, 1.000000}, + {3.771975, -0.000000, -0.213770, -0.000000, 3.962561, -0.000000, 0.858223, -0.000000, 1.000000}, + {3.474705, -0.000000, -0.213818, -0.000000, 3.649158, -0.000000, 0.790099, -0.000000, 1.000000}, + {3.217051, -0.000000, -0.216378, -0.000000, 3.377828, -0.000000, 0.731423, -0.000000, 1.000000}, + {2.991493, -0.000000, -0.221334, -0.000000, 3.139953, -0.000000, 0.680570, -0.000000, 1.000000}, + {2.783987, -0.000000, -0.222700, -0.000000, 2.921229, -0.000000, 0.633180, -0.000000, 1.000000}, + {2.593481, -0.000000, -0.217779, -0.000000, 2.719782, -0.000000, 0.588350, -0.000000, 1.000000}, + {2.424382, -0.000000, -0.212017, -0.000000, 2.540804, -0.000000, 0.548022, -0.000000, 1.000000}, + {2.271759, -0.000000, -0.208226, -0.000000, 2.379544, -0.000000, 0.511726, -0.000000, 1.000000}, + {2.135913, -0.000000, -0.204723, -0.000000, 2.235539, -0.000000, 0.479155, -0.000000, 1.000000}, + {2.015712, -0.000000, -0.200659, -0.000000, 2.107507, -0.000000, 0.449816, -0.000000, 1.000000}, + {1.909178, -0.000000, -0.196539, -0.000000, 1.993785, -0.000000, 0.423315, -0.000000, 1.000000}, + {1.812193, -0.000000, -0.194714, -0.000000, 1.891061, -0.000000, 0.399540, -0.000000, 1.000000}, + {1.724654, -0.000000, -0.192304, -0.000000, 1.797391, -0.000000, 0.377470, -0.000000, 1.000000}, + {1.643706, -0.000000, -0.186074, -0.000000, 1.709625, -0.000000, 0.355460, -0.000000, 1.000000}, + {1.569063, -0.000000, -0.180126, -0.000000, 1.629651, -0.000000, 0.334774, -0.000000, 1.000000}, + {1.502403, -0.000000, -0.174491, -0.000000, 1.557406, -0.000000, 0.315483, -0.000000, 1.000000}, + {1.442658, -0.000000, -0.168890, -0.000000, 1.492295, -0.000000, 0.297574, -0.000000, 1.000000}, + {1.387433, -0.000000, -0.164301, -0.000000, 1.432868, -0.000000, 0.280697, -0.000000, 1.000000}, + {1.337891, -0.000000, -0.157574, -0.000000, 1.378132, -0.000000, 0.263940, -0.000000, 1.000000}, + {1.291350, -0.000000, -0.150381, -0.000000, 1.327500, -0.000000, 0.247574, -0.000000, 1.000000}, + {1.249125, -0.000000, -0.143636, -0.000000, 1.281654, -0.000000, 0.231814, -0.000000, 1.000000}, + {1.210989, -0.000000, -0.137179, -0.000000, 1.240054, -0.000000, 0.216849, -0.000000, 1.000000}, + {1.176099, -0.000000, -0.130248, -0.000000, 1.202006, -0.000000, 0.202095, -0.000000, 1.000000}, + {1.143640, -0.000000, -0.122030, -0.000000, 1.166520, -0.000000, 0.187469, -0.000000, 1.000000}, + {1.113656, -0.000000, -0.114914, -0.000000, 1.134639, -0.000000, 0.173427, -0.000000, 1.000000}, + {1.087245, -0.000000, -0.107734, -0.000000, 1.105856, -0.000000, 0.160079, -0.000000, 1.000000}, + {1.062218, -0.000000, -0.099742, -0.000000, 1.078947, -0.000000, 0.146995, -0.000000, 1.000000}, + {1.039564, -0.000000, -0.091852, -0.000000, 1.054720, -0.000000, 0.134005, -0.000000, 1.000000}, + {1.018476, -0.000000, -0.085016, -0.000000, 1.032979, -0.000000, 0.121964, -0.000000, 1.000000}, + {1.000159, -0.000000, -0.076685, -0.000000, 1.012538, -0.000000, 0.109632, -0.000000, 1.000000}, + {0.982598, -0.000000, -0.069218, -0.000000, 0.994354, -0.000000, 0.098101, -0.000000, 1.000000}, + {0.967187, -0.000000, -0.061944, -0.000000, 0.977866, -0.000000, 0.086843, -0.000000, 1.000000}, + {0.953322, -0.000000, -0.054171, -0.000000, 0.962735, -0.000000, 0.075863, -0.000000, 1.000000}, + {0.941093, -0.000000, -0.046914, -0.000000, 0.949198, -0.000000, 0.065247, -0.000000, 1.000000}, + {0.929940, -0.000000, -0.039891, -0.000000, 0.937012, -0.000000, 0.054986, -0.000000, 1.000000}, + {0.920349, -0.000000, -0.032428, -0.000000, 0.925826, -0.000000, 0.044881, -0.000000, 1.000000}, + {0.911883, -0.000000, -0.025649, -0.000000, 0.915800, -0.000000, 0.035198, -0.000000, 1.000000}, + {0.904131, -0.000000, -0.019146, -0.000000, 0.906757, -0.000000, 0.025940, -0.000000, 1.000000}, + {0.897232, -0.000000, -0.012147, -0.000000, 0.898667, -0.000000, 0.016695, -0.000000, 1.000000}, + {0.890751, -0.000000, -0.006171, -0.000000, 0.891334, -0.000000, 0.008220, -0.000000, 1.000000}, + {0.884623, -0.000000, 0.000406, -0.000000, 0.884599, -0.000000, -0.000256, -0.000000, 1.000000}, + {500.103027, -0.000000, -0.254630, -0.000000, 532.306519, -0.000000, 127.341362, -0.000000, 1.000000}, + {500.103027, -0.000000, -0.254630, -0.000000, 532.306519, -0.000000, 127.341362, -0.000000, 1.000000}, + {496.100189, -0.000000, -0.254631, -0.000000, 528.302429, -0.000000, 126.321968, -0.000000, 1.000000}, + {220.501587, -0.000000, -0.254630, -0.000000, 234.797379, -0.000000, 56.146561, -0.000000, 1.000000}, + {124.030739, -0.000000, -0.254629, -0.000000, 132.072113, -0.000000, 31.581966, -0.000000, 1.000000}, + {79.376091, -0.000000, -0.254627, -0.000000, 84.526520, -0.000000, 20.211533, -0.000000, 1.000000}, + {55.118771, -0.000000, -0.254625, -0.000000, 58.700134, -0.000000, 14.034864, -0.000000, 1.000000}, + {40.498608, -0.000000, -0.254620, -0.000000, 43.125511, -0.000000, 10.312164, -0.000000, 1.000000}, + {31.003874, -0.000000, -0.254612, -0.000000, 33.016865, -0.000000, 7.894447, -0.000000, 1.000000}, + {24.497622, -0.000000, -0.254601, -0.000000, 26.084778, -0.000000, 6.237792, -0.000000, 1.000000}, + {19.841394, -0.000000, -0.254587, -0.000000, 21.127436, -0.000000, 5.052134, -0.000000, 1.000000}, + {16.397062, -0.000000, -0.254565, -0.000000, 17.458454, -0.000000, 4.175098, -0.000000, 1.000000}, + {13.776876, -0.000000, -0.254539, -0.000000, 14.667887, -0.000000, 3.507907, -0.000000, 1.000000}, + {11.737298, -0.000000, -0.254504, -0.000000, 12.496222, -0.000000, 2.988537, -0.000000, 1.000000}, + {10.118900, -0.000000, -0.254459, -0.000000, 10.772487, -0.000000, 2.576407, -0.000000, 1.000000}, + {8.813082, -0.000000, -0.254400, -0.000000, 9.381595, -0.000000, 2.243875, -0.000000, 1.000000}, + {7.744377, -0.000000, -0.254323, -0.000000, 8.242908, -0.000000, 1.971711, -0.000000, 1.000000}, + {6.858314, -0.000000, -0.254213, -0.000000, 7.299338, -0.000000, 1.746056, -0.000000, 1.000000}, + {6.116047, -0.000000, -0.254036, -0.000000, 6.508431, -0.000000, 1.556966, -0.000000, 1.000000}, + {5.488258, -0.000000, -0.253672, -0.000000, 5.839362, -0.000000, 1.397014, -0.000000, 1.000000}, + {4.953928, -0.000000, -0.252536, -0.000000, 5.269868, -0.000000, 1.260769, -0.000000, 1.000000}, + {4.502042, -0.000000, -0.246960, -0.000000, 4.787960, -0.000000, 1.144903, -0.000000, 1.000000}, + {4.111449, -0.000000, -0.241994, -0.000000, 4.371355, -0.000000, 1.044598, -0.000000, 1.000000}, + {3.770156, -0.000000, -0.239634, -0.000000, 4.007247, -0.000000, 0.957071, -0.000000, 1.000000}, + {3.471863, -0.000000, -0.239300, -0.000000, 3.688913, -0.000000, 0.880745, -0.000000, 1.000000}, + {3.212559, -0.000000, -0.240961, -0.000000, 3.412190, -0.000000, 0.814673, -0.000000, 1.000000}, + {2.986591, -0.000000, -0.244737, -0.000000, 3.171037, -0.000000, 0.757477, -0.000000, 1.000000}, + {2.785418, -0.000000, -0.247656, -0.000000, 2.956166, -0.000000, 0.706487, -0.000000, 1.000000}, + {2.595679, -0.000000, -0.241602, -0.000000, 2.752573, -0.000000, 0.656518, -0.000000, 1.000000}, + {2.425078, -0.000000, -0.236800, -0.000000, 2.569859, -0.000000, 0.611459, -0.000000, 1.000000}, + {2.271984, -0.000000, -0.232837, -0.000000, 2.405893, -0.000000, 0.570904, -0.000000, 1.000000}, + {2.135780, -0.000000, -0.228497, -0.000000, 2.259562, -0.000000, 0.534347, -0.000000, 1.000000}, + {2.015866, -0.000000, -0.223057, -0.000000, 2.129377, -0.000000, 0.501389, -0.000000, 1.000000}, + {1.908273, -0.000000, -0.218877, -0.000000, 2.013013, -0.000000, 0.471732, -0.000000, 1.000000}, + {1.811260, -0.000000, -0.215926, -0.000000, 1.908179, -0.000000, 0.444832, -0.000000, 1.000000}, + {1.725002, -0.000000, -0.212658, -0.000000, 1.813764, -0.000000, 0.420265, -0.000000, 1.000000}, + {1.645228, -0.000000, -0.207778, -0.000000, 1.726113, -0.000000, 0.396551, -0.000000, 1.000000}, + {1.570355, -0.000000, -0.200955, -0.000000, 1.644067, -0.000000, 0.373226, -0.000000, 1.000000}, + {1.504491, -0.000000, -0.193737, -0.000000, 1.570159, -0.000000, 0.351686, -0.000000, 1.000000}, + {1.443768, -0.000000, -0.187609, -0.000000, 1.503430, -0.000000, 0.331315, -0.000000, 1.000000}, + {1.389422, -0.000000, -0.181798, -0.000000, 1.443022, -0.000000, 0.312214, -0.000000, 1.000000}, + {1.340532, -0.000000, -0.175411, -0.000000, 1.387548, -0.000000, 0.293937, -0.000000, 1.000000}, + {1.294192, -0.000000, -0.167390, -0.000000, 1.336115, -0.000000, 0.275390, -0.000000, 1.000000}, + {1.251942, -0.000000, -0.159030, -0.000000, 1.288808, -0.000000, 0.257580, -0.000000, 1.000000}, + {1.212910, -0.000000, -0.151889, -0.000000, 1.246415, -0.000000, 0.240685, -0.000000, 1.000000}, + {1.178843, -0.000000, -0.144487, -0.000000, 1.207720, -0.000000, 0.224191, -0.000000, 1.000000}, + {1.145883, -0.000000, -0.135860, -0.000000, 1.171619, -0.000000, 0.208076, -0.000000, 1.000000}, + {1.115708, -0.000000, -0.127168, -0.000000, 1.138902, -0.000000, 0.192163, -0.000000, 1.000000}, + {1.088149, -0.000000, -0.119284, -0.000000, 1.109597, -0.000000, 0.177288, -0.000000, 1.000000}, + {1.063894, -0.000000, -0.110899, -0.000000, 1.082339, -0.000000, 0.162657, -0.000000, 1.000000}, + {1.040087, -0.000000, -0.101909, -0.000000, 1.057316, -0.000000, 0.148334, -0.000000, 1.000000}, + {1.019179, -0.000000, -0.093683, -0.000000, 1.034936, -0.000000, 0.134590, -0.000000, 1.000000}, + {1.000154, -0.000000, -0.085460, -0.000000, 1.014711, -0.000000, 0.121574, -0.000000, 1.000000}, + {0.982812, -0.000000, -0.076492, -0.000000, 0.995743, -0.000000, 0.108528, -0.000000, 1.000000}, + {0.966830, -0.000000, -0.068357, -0.000000, 0.979060, -0.000000, 0.095997, -0.000000, 1.000000}, + {0.952733, -0.000000, -0.060522, -0.000000, 0.963675, -0.000000, 0.084182, -0.000000, 1.000000}, + {0.940343, -0.000000, -0.051711, -0.000000, 0.949730, -0.000000, 0.072128, -0.000000, 1.000000}, + {0.928987, -0.000000, -0.044153, -0.000000, 0.937170, -0.000000, 0.060903, -0.000000, 1.000000}, + {0.919374, -0.000000, -0.036123, -0.000000, 0.926009, -0.000000, 0.049763, -0.000000, 1.000000}, + {0.910883, -0.000000, -0.028427, -0.000000, 0.915768, -0.000000, 0.039010, -0.000000, 1.000000}, + {0.903483, -0.000000, -0.021144, -0.000000, 0.906677, -0.000000, 0.028717, -0.000000, 1.000000}, + {0.896611, -0.000000, -0.013532, -0.000000, 0.898392, -0.000000, 0.018558, -0.000000, 1.000000}, + {0.890131, -0.000000, -0.006580, -0.000000, 0.890875, -0.000000, 0.009008, -0.000000, 1.000000}, + {0.884366, -0.000000, 0.000233, -0.000000, 0.884355, -0.000000, -0.000117, -0.000000, 1.000000}, + {500.085388, -0.000000, -0.281355, -0.000000, 539.498718, -0.000000, 140.701538, -0.000000, 1.000000}, + {500.085388, -0.000000, -0.281355, -0.000000, 539.498718, -0.000000, 140.701538, -0.000000, 1.000000}, + {496.129486, -0.000000, -0.281355, -0.000000, 535.442322, -0.000000, 139.588684, -0.000000, 1.000000}, + {220.504822, -0.000000, -0.281355, -0.000000, 237.947388, -0.000000, 62.040401, -0.000000, 1.000000}, + {124.021149, -0.000000, -0.281354, -0.000000, 133.850250, -0.000000, 34.894020, -0.000000, 1.000000}, + {79.382919, -0.000000, -0.281351, -0.000000, 85.656876, -0.000000, 22.334780, -0.000000, 1.000000}, + {55.149910, -0.000000, -0.281347, -0.000000, 59.449463, -0.000000, 15.516068, -0.000000, 1.000000}, + {40.500046, -0.000000, -0.281341, -0.000000, 43.702549, -0.000000, 11.394857, -0.000000, 1.000000}, + {31.005716, -0.000000, -0.281331, -0.000000, 33.458839, -0.000000, 8.723551, -0.000000, 1.000000}, + {24.495970, -0.000000, -0.281317, -0.000000, 26.436306, -0.000000, 6.891986, -0.000000, 1.000000}, + {19.841774, -0.000000, -0.281296, -0.000000, 21.410387, -0.000000, 5.582484, -0.000000, 1.000000}, + {16.397760, -0.000000, -0.281269, -0.000000, 17.692585, -0.000000, 4.613454, -0.000000, 1.000000}, + {13.777157, -0.000000, -0.281232, -0.000000, 14.865791, -0.000000, 3.876162, -0.000000, 1.000000}, + {11.739849, -0.000000, -0.281186, -0.000000, 12.664932, -0.000000, 3.302845, -0.000000, 1.000000}, + {10.119039, -0.000000, -0.281126, -0.000000, 10.916929, -0.000000, 2.846814, -0.000000, 1.000000}, + {8.813169, -0.000000, -0.281049, -0.000000, 9.507375, -0.000000, 2.479377, -0.000000, 1.000000}, + {7.744403, -0.000000, -0.280948, -0.000000, 8.353477, -0.000000, 2.178619, -0.000000, 1.000000}, + {6.858627, -0.000000, -0.280807, -0.000000, 7.396985, -0.000000, 1.929334, -0.000000, 1.000000}, + {6.116360, -0.000000, -0.280583, -0.000000, 6.595296, -0.000000, 1.720405, -0.000000, 1.000000}, + {5.488473, -0.000000, -0.280110, -0.000000, 5.917017, -0.000000, 1.543655, -0.000000, 1.000000}, + {4.954888, -0.000000, -0.278502, -0.000000, 5.340717, -0.000000, 1.393211, -0.000000, 1.000000}, + {4.503970, -0.000000, -0.271941, -0.000000, 4.853060, -0.000000, 1.265407, -0.000000, 1.000000}, + {4.111181, -0.000000, -0.267891, -0.000000, 4.428566, -0.000000, 1.154133, -0.000000, 1.000000}, + {3.768369, -0.000000, -0.265773, -0.000000, 4.057742, -0.000000, 1.057074, -0.000000, 1.000000}, + {3.469303, -0.000000, -0.265095, -0.000000, 3.734051, -0.000000, 0.972462, -0.000000, 1.000000}, + {3.208770, -0.000000, -0.265972, -0.000000, 3.452065, -0.000000, 0.898932, -0.000000, 1.000000}, + {2.982601, -0.000000, -0.268632, -0.000000, 3.207271, -0.000000, 0.835382, -0.000000, 1.000000}, + {2.783643, -0.000000, -0.271034, -0.000000, 2.991666, -0.000000, 0.779474, -0.000000, 1.000000}, + {2.597197, -0.000000, -0.266337, -0.000000, 2.788484, -0.000000, 0.725532, -0.000000, 1.000000}, + {2.425579, -0.000000, -0.261946, -0.000000, 2.602286, -0.000000, 0.675694, -0.000000, 1.000000}, + {2.272363, -0.000000, -0.257507, -0.000000, 2.435682, -0.000000, 0.630789, -0.000000, 1.000000}, + {2.136257, -0.000000, -0.252249, -0.000000, 2.286722, -0.000000, 0.590288, -0.000000, 1.000000}, + {2.016254, -0.000000, -0.245987, -0.000000, 2.153961, -0.000000, 0.553734, -0.000000, 1.000000}, + {1.907715, -0.000000, -0.241477, -0.000000, 2.034765, -0.000000, 0.520631, -0.000000, 1.000000}, + {1.811054, -0.000000, -0.237456, -0.000000, 1.927814, -0.000000, 0.490697, -0.000000, 1.000000}, + {1.725645, -0.000000, -0.232799, -0.000000, 1.831199, -0.000000, 0.463338, -0.000000, 1.000000}, + {1.647041, -0.000000, -0.228883, -0.000000, 1.743480, -0.000000, 0.437833, -0.000000, 1.000000}, + {1.573429, -0.000000, -0.221666, -0.000000, 1.660221, -0.000000, 0.412361, -0.000000, 1.000000}, + {1.507411, -0.000000, -0.213485, -0.000000, 1.584587, -0.000000, 0.388152, -0.000000, 1.000000}, + {1.446732, -0.000000, -0.206352, -0.000000, 1.516284, -0.000000, 0.365515, -0.000000, 1.000000}, + {1.392234, -0.000000, -0.199052, -0.000000, 1.453997, -0.000000, 0.343852, -0.000000, 1.000000}, + {1.342587, -0.000000, -0.192529, -0.000000, 1.397789, -0.000000, 0.323495, -0.000000, 1.000000}, + {1.299102, -0.000000, -0.184474, -0.000000, 1.345410, -0.000000, 0.303644, -0.000000, 1.000000}, + {1.255443, -0.000000, -0.175094, -0.000000, 1.297125, -0.000000, 0.283501, -0.000000, 1.000000}, + {1.216458, -0.000000, -0.166503, -0.000000, 1.253496, -0.000000, 0.264238, -0.000000, 1.000000}, + {1.181663, -0.000000, -0.158164, -0.000000, 1.213940, -0.000000, 0.246031, -0.000000, 1.000000}, + {1.149839, -0.000000, -0.149660, -0.000000, 1.177642, -0.000000, 0.228438, -0.000000, 1.000000}, + {1.118388, -0.000000, -0.139728, -0.000000, 1.143770, -0.000000, 0.210864, -0.000000, 1.000000}, + {1.090139, -0.000000, -0.130611, -0.000000, 1.113322, -0.000000, 0.194271, -0.000000, 1.000000}, + {1.065430, -0.000000, -0.121766, -0.000000, 1.086090, -0.000000, 0.178163, -0.000000, 1.000000}, + {1.041704, -0.000000, -0.112248, -0.000000, 1.060429, -0.000000, 0.162552, -0.000000, 1.000000}, + {1.019805, -0.000000, -0.102431, -0.000000, 1.037337, -0.000000, 0.147282, -0.000000, 1.000000}, + {1.000136, -0.000000, -0.093689, -0.000000, 1.016569, -0.000000, 0.133074, -0.000000, 1.000000}, + {0.982816, -0.000000, -0.084240, -0.000000, 0.997568, -0.000000, 0.118970, -0.000000, 1.000000}, + {0.966497, -0.000000, -0.074905, -0.000000, 0.980175, -0.000000, 0.105174, -0.000000, 1.000000}, + {0.952294, -0.000000, -0.065937, -0.000000, 0.964740, -0.000000, 0.091903, -0.000000, 1.000000}, + {0.939346, -0.000000, -0.057105, -0.000000, 0.950457, -0.000000, 0.079127, -0.000000, 1.000000}, + {0.928469, -0.000000, -0.048083, -0.000000, 0.937540, -0.000000, 0.066597, -0.000000, 1.000000}, + {0.918467, -0.000000, -0.039785, -0.000000, 0.926216, -0.000000, 0.054651, -0.000000, 1.000000}, + {0.909924, -0.000000, -0.031266, -0.000000, 0.915738, -0.000000, 0.042831, -0.000000, 1.000000}, + {0.902773, -0.000000, -0.022766, -0.000000, 0.906595, -0.000000, 0.031309, -0.000000, 1.000000}, + {0.895922, -0.000000, -0.015399, -0.000000, 0.898194, -0.000000, 0.020658, -0.000000, 1.000000}, + {0.889737, -0.000000, -0.006970, -0.000000, 0.890620, -0.000000, 0.009789, -0.000000, 1.000000}, + {0.883759, -0.000000, 0.000554, -0.000000, 0.883808, -0.000000, -0.000305, -0.000000, 1.000000}, + {500.004059, -0.000000, -0.308458, -0.000000, 547.499817, -0.000000, 154.230072, -0.000000, 1.000000}, + {500.004059, -0.000000, -0.308458, -0.000000, 547.499817, -0.000000, 154.230072, -0.000000, 1.000000}, + {496.133301, -0.000000, -0.308458, -0.000000, 543.290894, -0.000000, 153.036163, -0.000000, 1.000000}, + {220.502060, -0.000000, -0.308457, -0.000000, 241.478271, -0.000000, 68.015839, -0.000000, 1.000000}, + {124.038658, -0.000000, -0.308455, -0.000000, 135.831497, -0.000000, 38.260685, -0.000000, 1.000000}, + {79.373352, -0.000000, -0.308453, -0.000000, 86.937347, -0.000000, 24.483274, -0.000000, 1.000000}, + {55.120831, -0.000000, -0.308448, -0.000000, 60.371891, -0.000000, 17.002504, -0.000000, 1.000000}, + {40.501167, -0.000000, -0.308439, -0.000000, 44.350986, -0.000000, 12.492838, -0.000000, 1.000000}, + {31.007027, -0.000000, -0.308426, -0.000000, 33.955410, -0.000000, 9.564268, -0.000000, 1.000000}, + {24.496967, -0.000000, -0.308407, -0.000000, 26.827276, -0.000000, 7.556172, -0.000000, 1.000000}, + {19.841742, -0.000000, -0.308381, -0.000000, 21.728579, -0.000000, 6.120216, -0.000000, 1.000000}, + {16.396502, -0.000000, -0.308344, -0.000000, 17.953857, -0.000000, 5.057411, -0.000000, 1.000000}, + {13.777060, -0.000000, -0.308297, -0.000000, 15.084830, -0.000000, 4.249446, -0.000000, 1.000000}, + {11.737354, -0.000000, -0.308236, -0.000000, 12.851175, -0.000000, 3.620251, -0.000000, 1.000000}, + {10.119093, -0.000000, -0.308158, -0.000000, 11.078324, -0.000000, 3.121022, -0.000000, 1.000000}, + {8.813456, -0.000000, -0.308059, -0.000000, 9.647766, -0.000000, 2.718237, -0.000000, 1.000000}, + {7.744670, -0.000000, -0.307930, -0.000000, 8.476608, -0.000000, 2.388505, -0.000000, 1.000000}, + {6.858791, -0.000000, -0.307751, -0.000000, 7.506066, -0.000000, 2.115157, -0.000000, 1.000000}, + {6.116662, -0.000000, -0.307467, -0.000000, 6.692422, -0.000000, 1.886139, -0.000000, 1.000000}, + {5.489186, -0.000000, -0.306847, -0.000000, 6.004448, -0.000000, 1.692433, -0.000000, 1.000000}, + {4.956407, -0.000000, -0.304492, -0.000000, 5.420118, -0.000000, 1.527707, -0.000000, 1.000000}, + {4.504546, -0.000000, -0.297869, -0.000000, 4.924323, -0.000000, 1.387340, -0.000000, 1.000000}, + {4.110711, -0.000000, -0.294196, -0.000000, 4.491868, -0.000000, 1.265113, -0.000000, 1.000000}, + {3.766632, -0.000000, -0.292215, -0.000000, 4.114164, -0.000000, 1.158363, -0.000000, 1.000000}, + {3.466798, -0.000000, -0.291212, -0.000000, 3.784793, -0.000000, 1.065333, -0.000000, 1.000000}, + {3.205278, -0.000000, -0.291376, -0.000000, 3.497379, -0.000000, 0.984259, -0.000000, 1.000000}, + {2.977990, -0.000000, -0.292664, -0.000000, 3.247300, -0.000000, 0.913924, -0.000000, 1.000000}, + {2.780754, -0.000000, -0.293825, -0.000000, 3.029927, -0.000000, 0.852807, -0.000000, 1.000000}, + {2.598023, -0.000000, -0.291780, -0.000000, 2.827943, -0.000000, 0.795426, -0.000000, 1.000000}, + {2.426359, -0.000000, -0.287189, -0.000000, 2.638381, -0.000000, 0.740788, -0.000000, 1.000000}, + {2.273150, -0.000000, -0.282217, -0.000000, 2.468720, -0.000000, 0.691511, -0.000000, 1.000000}, + {2.137629, -0.000000, -0.275934, -0.000000, 2.316854, -0.000000, 0.647072, -0.000000, 1.000000}, + {2.016649, -0.000000, -0.269536, -0.000000, 2.180969, -0.000000, 0.606828, -0.000000, 1.000000}, + {1.908316, -0.000000, -0.264354, -0.000000, 2.059195, -0.000000, 0.570376, -0.000000, 1.000000}, + {1.811435, -0.000000, -0.259004, -0.000000, 1.949594, -0.000000, 0.537145, -0.000000, 1.000000}, + {1.726024, -0.000000, -0.253698, -0.000000, 1.851022, -0.000000, 0.506971, -0.000000, 1.000000}, + {1.646184, -0.000000, -0.249188, -0.000000, 1.761314, -0.000000, 0.478495, -0.000000, 1.000000}, + {1.575210, -0.000000, -0.242344, -0.000000, 1.677494, -0.000000, 0.451335, -0.000000, 1.000000}, + {1.508448, -0.000000, -0.233604, -0.000000, 1.600387, -0.000000, 0.424862, -0.000000, 1.000000}, + {1.447650, -0.000000, -0.225295, -0.000000, 1.529939, -0.000000, 0.399420, -0.000000, 1.000000}, + {1.393654, -0.000000, -0.216970, -0.000000, 1.465873, -0.000000, 0.375509, -0.000000, 1.000000}, + {1.344273, -0.000000, -0.209296, -0.000000, 1.408222, -0.000000, 0.352670, -0.000000, 1.000000}, + {1.301307, -0.000000, -0.201157, -0.000000, 1.355528, -0.000000, 0.331085, -0.000000, 1.000000}, + {1.257490, -0.000000, -0.191377, -0.000000, 1.306143, -0.000000, 0.309278, -0.000000, 1.000000}, + {1.218765, -0.000000, -0.181237, -0.000000, 1.260903, -0.000000, 0.287959, -0.000000, 1.000000}, + {1.184050, -0.000000, -0.172065, -0.000000, 1.220422, -0.000000, 0.267983, -0.000000, 1.000000}, + {1.153910, -0.000000, -0.162713, -0.000000, 1.183954, -0.000000, 0.248840, -0.000000, 1.000000}, + {1.121970, -0.000000, -0.152483, -0.000000, 1.149423, -0.000000, 0.229599, -0.000000, 1.000000}, + {1.093292, -0.000000, -0.141802, -0.000000, 1.118023, -0.000000, 0.210850, -0.000000, 1.000000}, + {1.066901, -0.000000, -0.132184, -0.000000, 1.089554, -0.000000, 0.193371, -0.000000, 1.000000}, + {1.044133, -0.000000, -0.122252, -0.000000, 1.063750, -0.000000, 0.176534, -0.000000, 1.000000}, + {1.020997, -0.000000, -0.111558, -0.000000, 1.040082, -0.000000, 0.160080, -0.000000, 1.000000}, + {1.000942, -0.000000, -0.101469, -0.000000, 1.018656, -0.000000, 0.144094, -0.000000, 1.000000}, + {0.982803, -0.000000, -0.091778, -0.000000, 0.999520, -0.000000, 0.128977, -0.000000, 1.000000}, + {0.966798, -0.000000, -0.081454, -0.000000, 0.981585, -0.000000, 0.114236, -0.000000, 1.000000}, + {0.951777, -0.000000, -0.071569, -0.000000, 0.965495, -0.000000, 0.099797, -0.000000, 1.000000}, + {0.938715, -0.000000, -0.062319, -0.000000, 0.951172, -0.000000, 0.086088, -0.000000, 1.000000}, + {0.927341, -0.000000, -0.052435, -0.000000, 0.938074, -0.000000, 0.072465, -0.000000, 1.000000}, + {0.917571, -0.000000, -0.042911, -0.000000, 0.926259, -0.000000, 0.059213, -0.000000, 1.000000}, + {0.909057, -0.000000, -0.034213, -0.000000, 0.915905, -0.000000, 0.046631, -0.000000, 1.000000}, + {0.901856, -0.000000, -0.024780, -0.000000, 0.906398, -0.000000, 0.034085, -0.000000, 1.000000}, + {0.895258, -0.000000, -0.016189, -0.000000, 0.897839, -0.000000, 0.022177, -0.000000, 1.000000}, + {0.889168, -0.000000, -0.008146, -0.000000, 0.890250, -0.000000, 0.010948, -0.000000, 1.000000}, + {0.883230, -0.000000, 0.000466, -0.000000, 0.883192, -0.000000, -0.000240, -0.000000, 1.000000}, + {499.963531, -0.000000, -0.335981, -0.000000, 556.524414, -0.000000, 167.978119, -0.000000, 1.000000}, + {499.963531, -0.000000, -0.335981, -0.000000, 556.524414, -0.000000, 167.978119, -0.000000, 1.000000}, + {495.969940, -0.000000, -0.335980, -0.000000, 552.236511, -0.000000, 166.636154, -0.000000, 1.000000}, + {220.496994, -0.000000, -0.335980, -0.000000, 245.397583, -0.000000, 74.082863, -0.000000, 1.000000}, + {124.029747, -0.000000, -0.335978, -0.000000, 138.030594, -0.000000, 41.671597, -0.000000, 1.000000}, + {79.380211, -0.000000, -0.335974, -0.000000, 88.337929, -0.000000, 26.670174, -0.000000, 1.000000}, + {55.124668, -0.000000, -0.335967, -0.000000, 61.346493, -0.000000, 18.520765, -0.000000, 1.000000}, + {40.500416, -0.000000, -0.335957, -0.000000, 45.064106, -0.000000, 13.607367, -0.000000, 1.000000}, + {31.006538, -0.000000, -0.335939, -0.000000, 34.504578, -0.000000, 10.417412, -0.000000, 1.000000}, + {24.497702, -0.000000, -0.335915, -0.000000, 27.260410, -0.000000, 8.230656, -0.000000, 1.000000}, + {19.842403, -0.000000, -0.335880, -0.000000, 22.079950, -0.000000, 6.666481, -0.000000, 1.000000}, + {16.396784, -0.000000, -0.335834, -0.000000, 18.246504, -0.000000, 5.508804, -0.000000, 1.000000}, + {13.776938, -0.000000, -0.335773, -0.000000, 15.328876, -0.000000, 4.628520, -0.000000, 1.000000}, + {11.737518, -0.000000, -0.335695, -0.000000, 13.059061, -0.000000, 3.943273, -0.000000, 1.000000}, + {10.118959, -0.000000, -0.335595, -0.000000, 11.257472, -0.000000, 3.399409, -0.000000, 1.000000}, + {8.813545, -0.000000, -0.335469, -0.000000, 9.803328, -0.000000, 2.960751, -0.000000, 1.000000}, + {7.744760, -0.000000, -0.335306, -0.000000, 8.613284, -0.000000, 2.601569, -0.000000, 1.000000}, + {6.858911, -0.000000, -0.335081, -0.000000, 7.626686, -0.000000, 2.303839, -0.000000, 1.000000}, + {6.116867, -0.000000, -0.334722, -0.000000, 6.799984, -0.000000, 2.054390, -0.000000, 1.000000}, + {5.489538, -0.000000, -0.333899, -0.000000, 6.100828, -0.000000, 1.843467, -0.000000, 1.000000}, + {4.958295, -0.000000, -0.330330, -0.000000, 5.508531, -0.000000, 1.664420, -0.000000, 1.000000}, + {4.504887, -0.000000, -0.324234, -0.000000, 5.002817, -0.000000, 1.511109, -0.000000, 1.000000}, + {4.109335, -0.000000, -0.321090, -0.000000, 4.561582, -0.000000, 1.377486, -0.000000, 1.000000}, + {3.764962, -0.000000, -0.318983, -0.000000, 4.176945, -0.000000, 1.261108, -0.000000, 1.000000}, + {3.464554, -0.000000, -0.317661, -0.000000, 3.841364, -0.000000, 1.159541, -0.000000, 1.000000}, + {3.202218, -0.000000, -0.317137, -0.000000, 3.548244, -0.000000, 1.070838, -0.000000, 1.000000}, + {2.974161, -0.000000, -0.317094, -0.000000, 3.293050, -0.000000, 0.993661, -0.000000, 1.000000}, + {2.776942, -0.000000, -0.316438, -0.000000, 3.071263, -0.000000, 0.926642, -0.000000, 1.000000}, + {2.598937, -0.000000, -0.317193, -0.000000, 2.870964, -0.000000, 0.866299, -0.000000, 1.000000}, + {2.427425, -0.000000, -0.312590, -0.000000, 2.678270, -0.000000, 0.806866, -0.000000, 1.000000}, + {2.274718, -0.000000, -0.306936, -0.000000, 2.505201, -0.000000, 0.753265, -0.000000, 1.000000}, + {2.139724, -0.000000, -0.299649, -0.000000, 2.350118, -0.000000, 0.704787, -0.000000, 1.000000}, + {2.017244, -0.000000, -0.293404, -0.000000, 2.210779, -0.000000, 0.660614, -0.000000, 1.000000}, + {1.907668, -0.000000, -0.287240, -0.000000, 2.086214, -0.000000, 0.620401, -0.000000, 1.000000}, + {1.811692, -0.000000, -0.280550, -0.000000, 1.974219, -0.000000, 0.584016, -0.000000, 1.000000}, + {1.724951, -0.000000, -0.274917, -0.000000, 1.872771, -0.000000, 0.550807, -0.000000, 1.000000}, + {1.646035, -0.000000, -0.269329, -0.000000, 1.780547, -0.000000, 0.519510, -0.000000, 1.000000}, + {1.576869, -0.000000, -0.262878, -0.000000, 1.695965, -0.000000, 0.490367, -0.000000, 1.000000}, + {1.510845, -0.000000, -0.253765, -0.000000, 1.617368, -0.000000, 0.461647, -0.000000, 1.000000}, + {1.450702, -0.000000, -0.244095, -0.000000, 1.544855, -0.000000, 0.433864, -0.000000, 1.000000}, + {1.395025, -0.000000, -0.235015, -0.000000, 1.479174, -0.000000, 0.407386, -0.000000, 1.000000}, + {1.346266, -0.000000, -0.225913, -0.000000, 1.419951, -0.000000, 0.382305, -0.000000, 1.000000}, + {1.302227, -0.000000, -0.217139, -0.000000, 1.366424, -0.000000, 0.358755, -0.000000, 1.000000}, + {1.261261, -0.000000, -0.207478, -0.000000, 1.316138, -0.000000, 0.335440, -0.000000, 1.000000}, + {1.222082, -0.000000, -0.196285, -0.000000, 1.269962, -0.000000, 0.312482, -0.000000, 1.000000}, + {1.185929, -0.000000, -0.185691, -0.000000, 1.228030, -0.000000, 0.290027, -0.000000, 1.000000}, + {1.153747, -0.000000, -0.175477, -0.000000, 1.190625, -0.000000, 0.269032, -0.000000, 1.000000}, + {1.125762, -0.000000, -0.165237, -0.000000, 1.155834, -0.000000, 0.248998, -0.000000, 1.000000}, + {1.096721, -0.000000, -0.153589, -0.000000, 1.123515, -0.000000, 0.228308, -0.000000, 1.000000}, + {1.069360, -0.000000, -0.142489, -0.000000, 1.094246, -0.000000, 0.209027, -0.000000, 1.000000}, + {1.045367, -0.000000, -0.131878, -0.000000, 1.067532, -0.000000, 0.190257, -0.000000, 1.000000}, + {1.023498, -0.000000, -0.120932, -0.000000, 1.043118, -0.000000, 0.172562, -0.000000, 1.000000}, + {1.001724, -0.000000, -0.109595, -0.000000, 1.020579, -0.000000, 0.155437, -0.000000, 1.000000}, + {0.983142, -0.000000, -0.098630, -0.000000, 1.001269, -0.000000, 0.138937, -0.000000, 1.000000}, + {0.966655, -0.000000, -0.088558, -0.000000, 0.983110, -0.000000, 0.123324, -0.000000, 1.000000}, + {0.951723, -0.000000, -0.077180, -0.000000, 0.966699, -0.000000, 0.107542, -0.000000, 1.000000}, + {0.938071, -0.000000, -0.066745, -0.000000, 0.951660, -0.000000, 0.092593, -0.000000, 1.000000}, + {0.926456, -0.000000, -0.057052, -0.000000, 0.938666, -0.000000, 0.078171, -0.000000, 1.000000}, + {0.916660, -0.000000, -0.046150, -0.000000, 0.926532, -0.000000, 0.063782, -0.000000, 1.000000}, + {0.908106, -0.000000, -0.036718, -0.000000, 0.915869, -0.000000, 0.050231, -0.000000, 1.000000}, + {0.901014, -0.000000, -0.027080, -0.000000, 0.906376, -0.000000, 0.036927, -0.000000, 1.000000}, + {0.894417, -0.000000, -0.017603, -0.000000, 0.897523, -0.000000, 0.024040, -0.000000, 1.000000}, + {0.888523, -0.000000, -0.008631, -0.000000, 0.889810, -0.000000, 0.011757, -0.000000, 1.000000}, + {0.882652, -0.000000, 0.000441, -0.000000, 0.882652, -0.000000, -0.000229, -0.000000, 1.000000}, + {499.968231, -0.000000, -0.363969, -0.000000, 566.297241, -0.000000, 181.972702, -0.000000, 1.000000}, + {499.968231, -0.000000, -0.363969, -0.000000, 566.297241, -0.000000, 181.972702, -0.000000, 1.000000}, + {496.146088, -0.000000, -0.363969, -0.000000, 561.857544, -0.000000, 180.581558, -0.000000, 1.000000}, + {220.504272, -0.000000, -0.363968, -0.000000, 249.704727, -0.000000, 80.256622, -0.000000, 1.000000}, + {124.030128, -0.000000, -0.363966, -0.000000, 140.464020, -0.000000, 45.143036, -0.000000, 1.000000}, + {79.378242, -0.000000, -0.363961, -0.000000, 89.894493, -0.000000, 28.891125, -0.000000, 1.000000}, + {55.123013, -0.000000, -0.363952, -0.000000, 62.429966, -0.000000, 20.062996, -0.000000, 1.000000}, + {40.498146, -0.000000, -0.363938, -0.000000, 45.862816, -0.000000, 14.739956, -0.000000, 1.000000}, + {31.005125, -0.000000, -0.363917, -0.000000, 35.114017, -0.000000, 11.284781, -0.000000, 1.000000}, + {24.498278, -0.000000, -0.363885, -0.000000, 27.739168, -0.000000, 8.916480, -0.000000, 1.000000}, + {19.842779, -0.000000, -0.363842, -0.000000, 22.467678, -0.000000, 7.221962, -0.000000, 1.000000}, + {16.396282, -0.000000, -0.363782, -0.000000, 18.565359, -0.000000, 5.967456, -0.000000, 1.000000}, + {13.777002, -0.000000, -0.363706, -0.000000, 15.598725, -0.000000, 5.014091, -0.000000, 1.000000}, + {11.737373, -0.000000, -0.363606, -0.000000, 13.288247, -0.000000, 4.271647, -0.000000, 1.000000}, + {10.119102, -0.000000, -0.363481, -0.000000, 11.454740, -0.000000, 3.682573, -0.000000, 1.000000}, + {8.813531, -0.000000, -0.363323, -0.000000, 9.975114, -0.000000, 3.207305, -0.000000, 1.000000}, + {7.744850, -0.000000, -0.363118, -0.000000, 8.763934, -0.000000, 2.818219, -0.000000, 1.000000}, + {6.859071, -0.000000, -0.362839, -0.000000, 7.760055, -0.000000, 2.495710, -0.000000, 1.000000}, + {6.117049, -0.000000, -0.362386, -0.000000, 6.918628, -0.000000, 2.225478, -0.000000, 1.000000}, + {5.490108, -0.000000, -0.361265, -0.000000, 6.207444, -0.000000, 1.997018, -0.000000, 1.000000}, + {4.960614, -0.000000, -0.355924, -0.000000, 5.606764, -0.000000, 1.803529, -0.000000, 1.000000}, + {4.504549, -0.000000, -0.351189, -0.000000, 5.088837, -0.000000, 1.636706, -0.000000, 1.000000}, + {4.108239, -0.000000, -0.348333, -0.000000, 4.638559, -0.000000, 1.491735, -0.000000, 1.000000}, + {3.763214, -0.000000, -0.346106, -0.000000, 4.246560, -0.000000, 1.365421, -0.000000, 1.000000}, + {3.462314, -0.000000, -0.344456, -0.000000, 3.904105, -0.000000, 1.255177, -0.000000, 1.000000}, + {3.199532, -0.000000, -0.343225, -0.000000, 3.605123, -0.000000, 1.158787, -0.000000, 1.000000}, + {2.971133, -0.000000, -0.341804, -0.000000, 3.344415, -0.000000, 1.074774, -0.000000, 1.000000}, + {2.772751, -0.000000, -0.340274, -0.000000, 3.116952, -0.000000, 1.001515, -0.000000, 1.000000}, + {2.596363, -0.000000, -0.341637, -0.000000, 2.914270, -0.000000, 0.936749, -0.000000, 1.000000}, + {2.429267, -0.000000, -0.338366, -0.000000, 2.721623, -0.000000, 0.874241, -0.000000, 1.000000}, + {2.276716, -0.000000, -0.331707, -0.000000, 2.545249, -0.000000, 0.816045, -0.000000, 1.000000}, + {2.139614, -0.000000, -0.324164, -0.000000, 2.386361, -0.000000, 0.762833, -0.000000, 1.000000}, + {2.017068, -0.000000, -0.317407, -0.000000, 2.243773, -0.000000, 0.714914, -0.000000, 1.000000}, + {1.909117, -0.000000, -0.310076, -0.000000, 2.115968, -0.000000, 0.671554, -0.000000, 1.000000}, + {1.811493, -0.000000, -0.302688, -0.000000, 2.000518, -0.000000, 0.631529, -0.000000, 1.000000}, + {1.724347, -0.000000, -0.296097, -0.000000, 1.896322, -0.000000, 0.594904, -0.000000, 1.000000}, + {1.648275, -0.000000, -0.289193, -0.000000, 1.801607, -0.000000, 0.561194, -0.000000, 1.000000}, + {1.578603, -0.000000, -0.282627, -0.000000, 1.715451, -0.000000, 0.529671, -0.000000, 1.000000}, + {1.515418, -0.000000, -0.274036, -0.000000, 1.636306, -0.000000, 0.499329, -0.000000, 1.000000}, + {1.454588, -0.000000, -0.263284, -0.000000, 1.561852, -0.000000, 0.468878, -0.000000, 1.000000}, + {1.398949, -0.000000, -0.253081, -0.000000, 1.494254, -0.000000, 0.440075, -0.000000, 1.000000}, + {1.349936, -0.000000, -0.242881, -0.000000, 1.433237, -0.000000, 0.413068, -0.000000, 1.000000}, + {1.304861, -0.000000, -0.233360, -0.000000, 1.378308, -0.000000, 0.387099, -0.000000, 1.000000}, + {1.265099, -0.000000, -0.223168, -0.000000, 1.328517, -0.000000, 0.362542, -0.000000, 1.000000}, + {1.224683, -0.000000, -0.211487, -0.000000, 1.280142, -0.000000, 0.337065, -0.000000, 1.000000}, + {1.188010, -0.000000, -0.199550, -0.000000, 1.236707, -0.000000, 0.312683, -0.000000, 1.000000}, + {1.156214, -0.000000, -0.188218, -0.000000, 1.198166, -0.000000, 0.289877, -0.000000, 1.000000}, + {1.127514, -0.000000, -0.177076, -0.000000, 1.162704, -0.000000, 0.267919, -0.000000, 1.000000}, + {1.097764, -0.000000, -0.165343, -0.000000, 1.129468, -0.000000, 0.245598, -0.000000, 1.000000}, + {1.072534, -0.000000, -0.152843, -0.000000, 1.099195, -0.000000, 0.224450, -0.000000, 1.000000}, + {1.047298, -0.000000, -0.141324, -0.000000, 1.071817, -0.000000, 0.204210, -0.000000, 1.000000}, + {1.025331, -0.000000, -0.129715, -0.000000, 1.046660, -0.000000, 0.184897, -0.000000, 1.000000}, + {1.003407, -0.000000, -0.117908, -0.000000, 1.023641, -0.000000, 0.166445, -0.000000, 1.000000}, + {0.984019, -0.000000, -0.105527, -0.000000, 1.003265, -0.000000, 0.148492, -0.000000, 1.000000}, + {0.966239, -0.000000, -0.094785, -0.000000, 0.984484, -0.000000, 0.131894, -0.000000, 1.000000}, + {0.951617, -0.000000, -0.082853, -0.000000, 0.968104, -0.000000, 0.115195, -0.000000, 1.000000}, + {0.937585, -0.000000, -0.071767, -0.000000, 0.952411, -0.000000, 0.099140, -0.000000, 1.000000}, + {0.925780, -0.000000, -0.060710, -0.000000, 0.939094, -0.000000, 0.083724, -0.000000, 1.000000}, + {0.915454, -0.000000, -0.050148, -0.000000, 0.926720, -0.000000, 0.068595, -0.000000, 1.000000}, + {0.907022, -0.000000, -0.039372, -0.000000, 0.915744, -0.000000, 0.053866, -0.000000, 1.000000}, + {0.900234, -0.000000, -0.028820, -0.000000, 0.906250, -0.000000, 0.039533, -0.000000, 1.000000}, + {0.893538, -0.000000, -0.019208, -0.000000, 0.897160, -0.000000, 0.025980, -0.000000, 1.000000}, + {0.887857, -0.000000, -0.008673, -0.000000, 0.889286, -0.000000, 0.012327, -0.000000, 1.000000}, + {0.882119, -0.000000, 0.000182, -0.000000, 0.882073, -0.000000, -0.000104, -0.000000, 1.000000}, + {499.895782, -0.000000, -0.392469, -0.000000, 577.124207, -0.000000, 196.193802, -0.000000, 1.000000}, + {499.895782, -0.000000, -0.392469, -0.000000, 577.124207, -0.000000, 196.193802, -0.000000, 1.000000}, + {496.178070, -0.000000, -0.392469, -0.000000, 572.483826, -0.000000, 194.734726, -0.000000, 1.000000}, + {220.505005, -0.000000, -0.392468, -0.000000, 254.459412, -0.000000, 86.541306, -0.000000, 1.000000}, + {124.066757, -0.000000, -0.392465, -0.000000, 143.123749, -0.000000, 48.692413, -0.000000, 1.000000}, + {79.377106, -0.000000, -0.392460, -0.000000, 91.606567, -0.000000, 31.153023, -0.000000, 1.000000}, + {55.125988, -0.000000, -0.392448, -0.000000, 63.613686, -0.000000, 21.635195, -0.000000, 1.000000}, + {40.497841, -0.000000, -0.392431, -0.000000, 46.736820, -0.000000, 15.894069, -0.000000, 1.000000}, + {31.004784, -0.000000, -0.392404, -0.000000, 35.781277, -0.000000, 12.168279, -0.000000, 1.000000}, + {24.498316, -0.000000, -0.392365, -0.000000, 28.267958, -0.000000, 9.614630, -0.000000, 1.000000}, + {19.842012, -0.000000, -0.392310, -0.000000, 22.895582, -0.000000, 7.787116, -0.000000, 1.000000}, + {16.393692, -0.000000, -0.392236, -0.000000, 18.921135, -0.000000, 6.433811, -0.000000, 1.000000}, + {13.776231, -0.000000, -0.392140, -0.000000, 15.895071, -0.000000, 5.406358, -0.000000, 1.000000}, + {11.737317, -0.000000, -0.392017, -0.000000, 13.540437, -0.000000, 4.606046, -0.000000, 1.000000}, + {10.119299, -0.000000, -0.391860, -0.000000, 11.671990, -0.000000, 3.970945, -0.000000, 1.000000}, + {8.813539, -0.000000, -0.391663, -0.000000, 10.164061, -0.000000, 3.458361, -0.000000, 1.000000}, + {7.744664, -0.000000, -0.391410, -0.000000, 8.929850, -0.000000, 3.038735, -0.000000, 1.000000}, + {6.859041, -0.000000, -0.391064, -0.000000, 7.906443, -0.000000, 2.690988, -0.000000, 1.000000}, + {6.117191, -0.000000, -0.390493, -0.000000, 7.049109, -0.000000, 2.399647, -0.000000, 1.000000}, + {5.490591, -0.000000, -0.388913, -0.000000, 6.324887, -0.000000, 2.153405, -0.000000, 1.000000}, + {4.961344, -0.000000, -0.382807, -0.000000, 5.712574, -0.000000, 1.944774, -0.000000, 1.000000}, + {4.503645, -0.000000, -0.378847, -0.000000, 5.182839, -0.000000, 1.764357, -0.000000, 1.000000}, + {4.106829, -0.000000, -0.375953, -0.000000, 4.723369, -0.000000, 1.607849, -0.000000, 1.000000}, + {3.761420, -0.000000, -0.373613, -0.000000, 4.322923, -0.000000, 1.471496, -0.000000, 1.000000}, + {3.459984, -0.000000, -0.371609, -0.000000, 3.973384, -0.000000, 1.352316, -0.000000, 1.000000}, + {3.197148, -0.000000, -0.369602, -0.000000, 3.667831, -0.000000, 1.248221, -0.000000, 1.000000}, + {2.968586, -0.000000, -0.366670, -0.000000, 3.401501, -0.000000, 1.157259, -0.000000, 1.000000}, + {2.769268, -0.000000, -0.365084, -0.000000, 3.167947, -0.000000, 1.077879, -0.000000, 1.000000}, + {2.593266, -0.000000, -0.365885, -0.000000, 2.960350, -0.000000, 1.007893, -0.000000, 1.000000}, + {2.429741, -0.000000, -0.364240, -0.000000, 2.769236, -0.000000, 0.942258, -0.000000, 1.000000}, + {2.278213, -0.000000, -0.356507, -0.000000, 2.588331, -0.000000, 0.879522, -0.000000, 1.000000}, + {2.140011, -0.000000, -0.349117, -0.000000, 2.425995, -0.000000, 0.822054, -0.000000, 1.000000}, + {2.017176, -0.000000, -0.341723, -0.000000, 2.279764, -0.000000, 0.770096, -0.000000, 1.000000}, + {1.910110, -0.000000, -0.333101, -0.000000, 2.148236, -0.000000, 0.723308, -0.000000, 1.000000}, + {1.812697, -0.000000, -0.325185, -0.000000, 2.029458, -0.000000, 0.679938, -0.000000, 1.000000}, + {1.726252, -0.000000, -0.317534, -0.000000, 1.921885, -0.000000, 0.640257, -0.000000, 1.000000}, + {1.650866, -0.000000, -0.309423, -0.000000, 1.824884, -0.000000, 0.603797, -0.000000, 1.000000}, + {1.581178, -0.000000, -0.302480, -0.000000, 1.737038, -0.000000, 0.569681, -0.000000, 1.000000}, + {1.519795, -0.000000, -0.293708, -0.000000, 1.656026, -0.000000, 0.537762, -0.000000, 1.000000}, + {1.458826, -0.000000, -0.282751, -0.000000, 1.580788, -0.000000, 0.505354, -0.000000, 1.000000}, + {1.403581, -0.000000, -0.271053, -0.000000, 1.511274, -0.000000, 0.473801, -0.000000, 1.000000}, + {1.353397, -0.000000, -0.259951, -0.000000, 1.448919, -0.000000, 0.444228, -0.000000, 1.000000}, + {1.308285, -0.000000, -0.248922, -0.000000, 1.391315, -0.000000, 0.416226, -0.000000, 1.000000}, + {1.268348, -0.000000, -0.238120, -0.000000, 1.340640, -0.000000, 0.389633, -0.000000, 1.000000}, + {1.229288, -0.000000, -0.226738, -0.000000, 1.292624, -0.000000, 0.363043, -0.000000, 1.000000}, + {1.191782, -0.000000, -0.213640, -0.000000, 1.247216, -0.000000, 0.336137, -0.000000, 1.000000}, + {1.158123, -0.000000, -0.200732, -0.000000, 1.206612, -0.000000, 0.310605, -0.000000, 1.000000}, + {1.127971, -0.000000, -0.188975, -0.000000, 1.170084, -0.000000, 0.286786, -0.000000, 1.000000}, + {1.101525, -0.000000, -0.176419, -0.000000, 1.136978, -0.000000, 0.263543, -0.000000, 1.000000}, + {1.073173, -0.000000, -0.163796, -0.000000, 1.104285, -0.000000, 0.240321, -0.000000, 1.000000}, + {1.049204, -0.000000, -0.150419, -0.000000, 1.076553, -0.000000, 0.218232, -0.000000, 1.000000}, + {1.026314, -0.000000, -0.138238, -0.000000, 1.050268, -0.000000, 0.197342, -0.000000, 1.000000}, + {1.006098, -0.000000, -0.126123, -0.000000, 1.026766, -0.000000, 0.177471, -0.000000, 1.000000}, + {0.984793, -0.000000, -0.112915, -0.000000, 1.005000, -0.000000, 0.158189, -0.000000, 1.000000}, + {0.966549, -0.000000, -0.100712, -0.000000, 0.986082, -0.000000, 0.140060, -0.000000, 1.000000}, + {0.951129, -0.000000, -0.088804, -0.000000, 0.969373, -0.000000, 0.122769, -0.000000, 1.000000}, + {0.937059, -0.000000, -0.076745, -0.000000, 0.953264, -0.000000, 0.105741, -0.000000, 1.000000}, + {0.925190, -0.000000, -0.064338, -0.000000, 0.939572, -0.000000, 0.088949, -0.000000, 1.000000}, + {0.914462, -0.000000, -0.053706, -0.000000, 0.926965, -0.000000, 0.073288, -0.000000, 1.000000}, + {0.906082, -0.000000, -0.041747, -0.000000, 0.915858, -0.000000, 0.057396, -0.000000, 1.000000}, + {0.898882, -0.000000, -0.030772, -0.000000, 0.905788, -0.000000, 0.042190, -0.000000, 1.000000}, + {0.892759, -0.000000, -0.020500, -0.000000, 0.896808, -0.000000, 0.027660, -0.000000, 1.000000}, + {0.887003, -0.000000, -0.009507, -0.000000, 0.888728, -0.000000, 0.013275, -0.000000, 1.000000}, + {0.881333, -0.000000, 0.000384, -0.000000, 0.881380, -0.000000, -0.000207, -0.000000, 1.000000}, + {500.059601, -0.000000, -0.421533, -0.000000, 588.824036, -0.000000, 210.791840, -0.000000, 1.000000}, + {500.059601, -0.000000, -0.421533, -0.000000, 588.824036, -0.000000, 210.791840, -0.000000, 1.000000}, + {496.084259, -0.000000, -0.421533, -0.000000, 584.296509, -0.000000, 209.116089, -0.000000, 1.000000}, + {220.478745, -0.000000, -0.421532, -0.000000, 259.678864, -0.000000, 92.938858, -0.000000, 1.000000}, + {124.071396, -0.000000, -0.421528, -0.000000, 146.019547, -0.000000, 52.299969, -0.000000, 1.000000}, + {79.379288, -0.000000, -0.421521, -0.000000, 93.482513, -0.000000, 33.460957, -0.000000, 1.000000}, + {55.121456, -0.000000, -0.421507, -0.000000, 64.919861, -0.000000, 23.235432, -0.000000, 1.000000}, + {40.498322, -0.000000, -0.421486, -0.000000, 47.693100, -0.000000, 17.071272, -0.000000, 1.000000}, + {31.004887, -0.000000, -0.421452, -0.000000, 36.514622, -0.000000, 13.069407, -0.000000, 1.000000}, + {24.497126, -0.000000, -0.421403, -0.000000, 28.848557, -0.000000, 10.326144, -0.000000, 1.000000}, + {19.840986, -0.000000, -0.421336, -0.000000, 23.364748, -0.000000, 8.363354, -0.000000, 1.000000}, + {16.396778, -0.000000, -0.421245, -0.000000, 19.307020, -0.000000, 6.911393, -0.000000, 1.000000}, + {13.776492, -0.000000, -0.421126, -0.000000, 16.220074, -0.000000, 5.806774, -0.000000, 1.000000}, + {11.737366, -0.000000, -0.420973, -0.000000, 13.817286, -0.000000, 4.947097, -0.000000, 1.000000}, + {10.118930, -0.000000, -0.420781, -0.000000, 11.910255, -0.000000, 4.264768, -0.000000, 1.000000}, + {8.813279, -0.000000, -0.420539, -0.000000, 10.371409, -0.000000, 3.714247, -0.000000, 1.000000}, + {7.744568, -0.000000, -0.420229, -0.000000, 9.111755, -0.000000, 3.263614, -0.000000, 1.000000}, + {6.859016, -0.000000, -0.419803, -0.000000, 8.067348, -0.000000, 2.890126, -0.000000, 1.000000}, + {6.117234, -0.000000, -0.419075, -0.000000, 7.192148, -0.000000, 2.577196, -0.000000, 1.000000}, + {5.491295, -0.000000, -0.416748, -0.000000, 6.453664, -0.000000, 2.312911, -0.000000, 1.000000}, + {4.961310, -0.000000, -0.410452, -0.000000, 5.827813, -0.000000, 2.088539, -0.000000, 1.000000}, + {4.502675, -0.000000, -0.406869, -0.000000, 5.286016, -0.000000, 1.894400, -0.000000, 1.000000}, + {4.105444, -0.000000, -0.403979, -0.000000, 4.816198, -0.000000, 1.726133, -0.000000, 1.000000}, + {3.759574, -0.000000, -0.401532, -0.000000, 4.406865, -0.000000, 1.579451, -0.000000, 1.000000}, + {3.457894, -0.000000, -0.399128, -0.000000, 4.049322, -0.000000, 1.451311, -0.000000, 1.000000}, + {3.194794, -0.000000, -0.396226, -0.000000, 3.737089, -0.000000, 1.339215, -0.000000, 1.000000}, + {2.966285, -0.000000, -0.391930, -0.000000, 3.464280, -0.000000, 1.241265, -0.000000, 1.000000}, + {2.765135, -0.000000, -0.390198, -0.000000, 3.222786, -0.000000, 1.155112, -0.000000, 1.000000}, + {2.587516, -0.000000, -0.390249, -0.000000, 3.010828, -0.000000, 1.079116, -0.000000, 1.000000}, + {2.430748, -0.000000, -0.389467, -0.000000, 2.818973, -0.000000, 1.011274, -0.000000, 1.000000}, + {2.279364, -0.000000, -0.381881, -0.000000, 2.635402, -0.000000, 0.944029, -0.000000, 1.000000}, + {2.141573, -0.000000, -0.374249, -0.000000, 2.469073, -0.000000, 0.882394, -0.000000, 1.000000}, + {2.019445, -0.000000, -0.366010, -0.000000, 2.318337, -0.000000, 0.826555, -0.000000, 1.000000}, + {1.912733, -0.000000, -0.356592, -0.000000, 2.182500, -0.000000, 0.775859, -0.000000, 1.000000}, + {1.814888, -0.000000, -0.347909, -0.000000, 2.060533, -0.000000, 0.729075, -0.000000, 1.000000}, + {1.728283, -0.000000, -0.339014, -0.000000, 1.949563, -0.000000, 0.686079, -0.000000, 1.000000}, + {1.651824, -0.000000, -0.330054, -0.000000, 1.850127, -0.000000, 0.646755, -0.000000, 1.000000}, + {1.582111, -0.000000, -0.321679, -0.000000, 1.759212, -0.000000, 0.609780, -0.000000, 1.000000}, + {1.520755, -0.000000, -0.312708, -0.000000, 1.677031, -0.000000, 0.575687, -0.000000, 1.000000}, + {1.462069, -0.000000, -0.302372, -0.000000, 1.600912, -0.000000, 0.542151, -0.000000, 1.000000}, + {1.406505, -0.000000, -0.289490, -0.000000, 1.529467, -0.000000, 0.507994, -0.000000, 1.000000}, + {1.355670, -0.000000, -0.277096, -0.000000, 1.464466, -0.000000, 0.475681, -0.000000, 1.000000}, + {1.310462, -0.000000, -0.264909, -0.000000, 1.405518, -0.000000, 0.445162, -0.000000, 1.000000}, + {1.269723, -0.000000, -0.253147, -0.000000, 1.352767, -0.000000, 0.416433, -0.000000, 1.000000}, + {1.232644, -0.000000, -0.241229, -0.000000, 1.304071, -0.000000, 0.388466, -0.000000, 1.000000}, + {1.195341, -0.000000, -0.227774, -0.000000, 1.258229, -0.000000, 0.359962, -0.000000, 1.000000}, + {1.161219, -0.000000, -0.213755, -0.000000, 1.215797, -0.000000, 0.332265, -0.000000, 1.000000}, + {1.129898, -0.000000, -0.200684, -0.000000, 1.177878, -0.000000, 0.306082, -0.000000, 1.000000}, + {1.102760, -0.000000, -0.187138, -0.000000, 1.143550, -0.000000, 0.280904, -0.000000, 1.000000}, + {1.076280, -0.000000, -0.174702, -0.000000, 1.111130, -0.000000, 0.256666, -0.000000, 1.000000}, + {1.050704, -0.000000, -0.159825, -0.000000, 1.081843, -0.000000, 0.232502, -0.000000, 1.000000}, + {1.027316, -0.000000, -0.146853, -0.000000, 1.054068, -0.000000, 0.209984, -0.000000, 1.000000}, + {1.006763, -0.000000, -0.133423, -0.000000, 1.030436, -0.000000, 0.188332, -0.000000, 1.000000}, + {0.986885, -0.000000, -0.120554, -0.000000, 1.008011, -0.000000, 0.168001, -0.000000, 1.000000}, + {0.967502, -0.000000, -0.106695, -0.000000, 0.987827, -0.000000, 0.148440, -0.000000, 1.000000}, + {0.950414, -0.000000, -0.093989, -0.000000, 0.970286, -0.000000, 0.129859, -0.000000, 1.000000}, + {0.936580, -0.000000, -0.081503, -0.000000, 0.954511, -0.000000, 0.112117, -0.000000, 1.000000}, + {0.924112, -0.000000, -0.068650, -0.000000, 0.939973, -0.000000, 0.094527, -0.000000, 1.000000}, + {0.913757, -0.000000, -0.056414, -0.000000, 0.927188, -0.000000, 0.077515, -0.000000, 1.000000}, + {0.904744, -0.000000, -0.044583, -0.000000, 0.915818, -0.000000, 0.061041, -0.000000, 1.000000}, + {0.897668, -0.000000, -0.033002, -0.000000, 0.905418, -0.000000, 0.044985, -0.000000, 1.000000}, + {0.891905, -0.000000, -0.021049, -0.000000, 0.896403, -0.000000, 0.029089, -0.000000, 1.000000}, + {0.886193, -0.000000, -0.010424, -0.000000, 0.888067, -0.000000, 0.014262, -0.000000, 1.000000}, + {0.880556, -0.000000, 0.000243, -0.000000, 0.880561, -0.000000, -0.000090, -0.000000, 1.000000}, + {500.116302, -0.000000, -0.451214, -0.000000, 601.644836, -0.000000, 225.660080, -0.000000, 1.000000}, + {500.116302, -0.000000, -0.451214, -0.000000, 601.644836, -0.000000, 225.660080, -0.000000, 1.000000}, + {496.419373, -0.000000, -0.451215, -0.000000, 596.902283, -0.000000, 223.992233, -0.000000, 1.000000}, + {220.515854, -0.000000, -0.451213, -0.000000, 265.362183, -0.000000, 99.499649, -0.000000, 1.000000}, + {124.011566, -0.000000, -0.451209, -0.000000, 149.283890, -0.000000, 55.956001, -0.000000, 1.000000}, + {79.376762, -0.000000, -0.451200, -0.000000, 95.543793, -0.000000, 35.815880, -0.000000, 1.000000}, + {55.119709, -0.000000, -0.451184, -0.000000, 66.349274, -0.000000, 24.870659, -0.000000, 1.000000}, + {40.497002, -0.000000, -0.451157, -0.000000, 48.741329, -0.000000, 18.272650, -0.000000, 1.000000}, + {31.004295, -0.000000, -0.451116, -0.000000, 37.316608, -0.000000, 13.989375, -0.000000, 1.000000}, + {24.494001, -0.000000, -0.451056, -0.000000, 29.478388, -0.000000, 11.051729, -0.000000, 1.000000}, + {19.841381, -0.000000, -0.450973, -0.000000, 23.878242, -0.000000, 8.952353, -0.000000, 1.000000}, + {16.395880, -0.000000, -0.450861, -0.000000, 19.731627, -0.000000, 7.397599, -0.000000, 1.000000}, + {13.776148, -0.000000, -0.450716, -0.000000, 16.576433, -0.000000, 6.215408, -0.000000, 1.000000}, + {11.736938, -0.000000, -0.450530, -0.000000, 14.120349, -0.000000, 5.295169, -0.000000, 1.000000}, + {10.119166, -0.000000, -0.450294, -0.000000, 12.171436, -0.000000, 4.565055, -0.000000, 1.000000}, + {8.813128, -0.000000, -0.449999, -0.000000, 10.598472, -0.000000, 3.975619, -0.000000, 1.000000}, + {7.744275, -0.000000, -0.449622, -0.000000, 9.310493, -0.000000, 3.493130, -0.000000, 1.000000}, + {6.858771, -0.000000, -0.449100, -0.000000, 8.242989, -0.000000, 3.093338, -0.000000, 1.000000}, + {6.117043, -0.000000, -0.448158, -0.000000, 7.348832, -0.000000, 2.758377, -0.000000, 1.000000}, + {5.492260, -0.000000, -0.444563, -0.000000, 6.594917, -0.000000, 2.475857, -0.000000, 1.000000}, + {4.960506, -0.000000, -0.438925, -0.000000, 5.953280, -0.000000, 2.234970, -0.000000, 1.000000}, + {4.501591, -0.000000, -0.435264, -0.000000, 5.398923, -0.000000, 2.027037, -0.000000, 1.000000}, + {4.103823, -0.000000, -0.432443, -0.000000, 4.917849, -0.000000, 1.846695, -0.000000, 1.000000}, + {3.757566, -0.000000, -0.429890, -0.000000, 4.498732, -0.000000, 1.689497, -0.000000, 1.000000}, + {3.455610, -0.000000, -0.427014, -0.000000, 4.132447, -0.000000, 1.552106, -0.000000, 1.000000}, + {3.192770, -0.000000, -0.423034, -0.000000, 3.812856, -0.000000, 1.432030, -0.000000, 1.000000}, + {2.963300, -0.000000, -0.418234, -0.000000, 3.531601, -0.000000, 1.326616, -0.000000, 1.000000}, + {2.759787, -0.000000, -0.415778, -0.000000, 3.283630, -0.000000, 1.233227, -0.000000, 1.000000}, + {2.582890, -0.000000, -0.414688, -0.000000, 3.065355, -0.000000, 1.151779, -0.000000, 1.000000}, + {2.427227, -0.000000, -0.413388, -0.000000, 2.870349, -0.000000, 1.079376, -0.000000, 1.000000}, + {2.281916, -0.000000, -0.407680, -0.000000, 2.686105, -0.000000, 1.010475, -0.000000, 1.000000}, + {2.144573, -0.000000, -0.399463, -0.000000, 2.515150, -0.000000, 0.944232, -0.000000, 1.000000}, + {2.023315, -0.000000, -0.390213, -0.000000, 2.360065, -0.000000, 0.884447, -0.000000, 1.000000}, + {1.914623, -0.000000, -0.380385, -0.000000, 2.220392, -0.000000, 0.829614, -0.000000, 1.000000}, + {1.816992, -0.000000, -0.370609, -0.000000, 2.094660, -0.000000, 0.779126, -0.000000, 1.000000}, + {1.731204, -0.000000, -0.360706, -0.000000, 1.979890, -0.000000, 0.733292, -0.000000, 1.000000}, + {1.653296, -0.000000, -0.351016, -0.000000, 1.877266, -0.000000, 0.690765, -0.000000, 1.000000}, + {1.584838, -0.000000, -0.341118, -0.000000, 1.783811, -0.000000, 0.651464, -0.000000, 1.000000}, + {1.522878, -0.000000, -0.331569, -0.000000, 1.699450, -0.000000, 0.614818, -0.000000, 1.000000}, + {1.465904, -0.000000, -0.320999, -0.000000, 1.621733, -0.000000, 0.579242, -0.000000, 1.000000}, + {1.410381, -0.000000, -0.307961, -0.000000, 1.549033, -0.000000, 0.543202, -0.000000, 1.000000}, + {1.359675, -0.000000, -0.294216, -0.000000, 1.481353, -0.000000, 0.508173, -0.000000, 1.000000}, + {1.313381, -0.000000, -0.281083, -0.000000, 1.420702, -0.000000, 0.475130, -0.000000, 1.000000}, + {1.272297, -0.000000, -0.267575, -0.000000, 1.365447, -0.000000, 0.443751, -0.000000, 1.000000}, + {1.234194, -0.000000, -0.255146, -0.000000, 1.315637, -0.000000, 0.413804, -0.000000, 1.000000}, + {1.198219, -0.000000, -0.241424, -0.000000, 1.269803, -0.000000, 0.383810, -0.000000, 1.000000}, + {1.164671, -0.000000, -0.226983, -0.000000, 1.226230, -0.000000, 0.354420, -0.000000, 1.000000}, + {1.132555, -0.000000, -0.212096, -0.000000, 1.186634, -0.000000, 0.325748, -0.000000, 1.000000}, + {1.103982, -0.000000, -0.198021, -0.000000, 1.151011, -0.000000, 0.298620, -0.000000, 1.000000}, + {1.077696, -0.000000, -0.184425, -0.000000, 1.117435, -0.000000, 0.272656, -0.000000, 1.000000}, + {1.052748, -0.000000, -0.169861, -0.000000, 1.087163, -0.000000, 0.246974, -0.000000, 1.000000}, + {1.028253, -0.000000, -0.155031, -0.000000, 1.058456, -0.000000, 0.222256, -0.000000, 1.000000}, + {1.008012, -0.000000, -0.140822, -0.000000, 1.034137, -0.000000, 0.199352, -0.000000, 1.000000}, + {0.988116, -0.000000, -0.127468, -0.000000, 1.010818, -0.000000, 0.177468, -0.000000, 1.000000}, + {0.968735, -0.000000, -0.113119, -0.000000, 0.990031, -0.000000, 0.156765, -0.000000, 1.000000}, + {0.951031, -0.000000, -0.099299, -0.000000, 0.971698, -0.000000, 0.137179, -0.000000, 1.000000}, + {0.936031, -0.000000, -0.085956, -0.000000, 0.955635, -0.000000, 0.118275, -0.000000, 1.000000}, + {0.923193, -0.000000, -0.073156, -0.000000, 0.940697, -0.000000, 0.100178, -0.000000, 1.000000}, + {0.912895, -0.000000, -0.059621, -0.000000, 0.927538, -0.000000, 0.081887, -0.000000, 1.000000}, + {0.903714, -0.000000, -0.047079, -0.000000, 0.915609, -0.000000, 0.064473, -0.000000, 1.000000}, + {0.896694, -0.000000, -0.034858, -0.000000, 0.905266, -0.000000, 0.047523, -0.000000, 1.000000}, + {0.890835, -0.000000, -0.022628, -0.000000, 0.895919, -0.000000, 0.030910, -0.000000, 1.000000}, + {0.885225, -0.000000, -0.010897, -0.000000, 0.887333, -0.000000, 0.015067, -0.000000, 1.000000}, + {0.879812, -0.000000, 0.000622, -0.000000, 0.879796, -0.000000, -0.000225, -0.000000, 1.000000}, + {500.142303, -0.000000, -0.481572, -0.000000, 615.636475, -0.000000, 240.854446, -0.000000, 1.000000}, + {500.142303, -0.000000, -0.481572, -0.000000, 615.636475, -0.000000, 240.854446, -0.000000, 1.000000}, + {496.084595, -0.000000, -0.481572, -0.000000, 611.148499, -0.000000, 238.900360, -0.000000, 1.000000}, + {220.510513, -0.000000, -0.481570, -0.000000, 271.639252, -0.000000, 106.191238, -0.000000, 1.000000}, + {124.057518, -0.000000, -0.481565, -0.000000, 152.745911, -0.000000, 59.742542, -0.000000, 1.000000}, + {79.381859, -0.000000, -0.481553, -0.000000, 97.788277, -0.000000, 38.228016, -0.000000, 1.000000}, + {55.124126, -0.000000, -0.481534, -0.000000, 67.906372, -0.000000, 26.546095, -0.000000, 1.000000}, + {40.496948, -0.000000, -0.481502, -0.000000, 49.884426, -0.000000, 19.502005, -0.000000, 1.000000}, + {31.002106, -0.000000, -0.481452, -0.000000, 38.196342, -0.000000, 14.929495, -0.000000, 1.000000}, + {24.498438, -0.000000, -0.481379, -0.000000, 30.178972, -0.000000, 11.797418, -0.000000, 1.000000}, + {19.840780, -0.000000, -0.481278, -0.000000, 24.439901, -0.000000, 9.554322, -0.000000, 1.000000}, + {16.395788, -0.000000, -0.481142, -0.000000, 20.194504, -0.000000, 7.895192, -0.000000, 1.000000}, + {13.775730, -0.000000, -0.480966, -0.000000, 16.965696, -0.000000, 6.633308, -0.000000, 1.000000}, + {11.736637, -0.000000, -0.480740, -0.000000, 14.451633, -0.000000, 5.651190, -0.000000, 1.000000}, + {10.118291, -0.000000, -0.480456, -0.000000, 12.456468, -0.000000, 4.871670, -0.000000, 1.000000}, + {8.812709, -0.000000, -0.480098, -0.000000, 10.846252, -0.000000, 4.242721, -0.000000, 1.000000}, + {7.743920, -0.000000, -0.479641, -0.000000, 9.527981, -0.000000, 3.727806, -0.000000, 1.000000}, + {6.858428, -0.000000, -0.479003, -0.000000, 8.435132, -0.000000, 3.301105, -0.000000, 1.000000}, + {6.116847, -0.000000, -0.477754, -0.000000, 7.519803, -0.000000, 2.943619, -0.000000, 1.000000}, + {5.493080, -0.000000, -0.472378, -0.000000, 6.749546, -0.000000, 2.642394, -0.000000, 1.000000}, + {4.959749, -0.000000, -0.467682, -0.000000, 6.090446, -0.000000, 2.384650, -0.000000, 1.000000}, + {4.500247, -0.000000, -0.464200, -0.000000, 5.521990, -0.000000, 2.162462, -0.000000, 1.000000}, + {4.102044, -0.000000, -0.461375, -0.000000, 5.028761, -0.000000, 1.969752, -0.000000, 1.000000}, + {3.755406, -0.000000, -0.458712, -0.000000, 4.598831, -0.000000, 1.801749, -0.000000, 1.000000}, + {3.453321, -0.000000, -0.455255, -0.000000, 4.223391, -0.000000, 1.654983, -0.000000, 1.000000}, + {3.190980, -0.000000, -0.449937, -0.000000, 3.895595, -0.000000, 1.526821, -0.000000, 1.000000}, + {2.958884, -0.000000, -0.445284, -0.000000, 3.605617, -0.000000, 1.413050, -0.000000, 1.000000}, + {2.755563, -0.000000, -0.442242, -0.000000, 3.350090, -0.000000, 1.313269, -0.000000, 1.000000}, + {2.577801, -0.000000, -0.439782, -0.000000, 3.125904, -0.000000, 1.225549, -0.000000, 1.000000}, + {2.424818, -0.000000, -0.437158, -0.000000, 2.924916, -0.000000, 1.149112, -0.000000, 1.000000}, + {2.283442, -0.000000, -0.434142, -0.000000, 2.742248, -0.000000, 1.078217, -0.000000, 1.000000}, + {2.145899, -0.000000, -0.425074, -0.000000, 2.565708, -0.000000, 1.007205, -0.000000, 1.000000}, + {2.025461, -0.000000, -0.414567, -0.000000, 2.405426, -0.000000, 0.943441, -0.000000, 1.000000}, + {1.916772, -0.000000, -0.404674, -0.000000, 2.261385, -0.000000, 0.884947, -0.000000, 1.000000}, + {1.820042, -0.000000, -0.393643, -0.000000, 2.130748, -0.000000, 0.830977, -0.000000, 1.000000}, + {1.733991, -0.000000, -0.382752, -0.000000, 2.013048, -0.000000, 0.781948, -0.000000, 1.000000}, + {1.655815, -0.000000, -0.371868, -0.000000, 1.906421, -0.000000, 0.735973, -0.000000, 1.000000}, + {1.586961, -0.000000, -0.361063, -0.000000, 1.809920, -0.000000, 0.693817, -0.000000, 1.000000}, + {1.524529, -0.000000, -0.350222, -0.000000, 1.722922, -0.000000, 0.654277, -0.000000, 1.000000}, + {1.468299, -0.000000, -0.339151, -0.000000, 1.642883, -0.000000, 0.616865, -0.000000, 1.000000}, + {1.414571, -0.000000, -0.326556, -0.000000, 1.569844, -0.000000, 0.579456, -0.000000, 1.000000}, + {1.363360, -0.000000, -0.311730, -0.000000, 1.499179, -0.000000, 0.541726, -0.000000, 1.000000}, + {1.316947, -0.000000, -0.297192, -0.000000, 1.437031, -0.000000, 0.506222, -0.000000, 1.000000}, + {1.274491, -0.000000, -0.282565, -0.000000, 1.379374, -0.000000, 0.471675, -0.000000, 1.000000}, + {1.237046, -0.000000, -0.269189, -0.000000, 1.327798, -0.000000, 0.439577, -0.000000, 1.000000}, + {1.201312, -0.000000, -0.254431, -0.000000, 1.281244, -0.000000, 0.407588, -0.000000, 1.000000}, + {1.166449, -0.000000, -0.240163, -0.000000, 1.236316, -0.000000, 0.375985, -0.000000, 1.000000}, + {1.134363, -0.000000, -0.223883, -0.000000, 1.195412, -0.000000, 0.345184, -0.000000, 1.000000}, + {1.105575, -0.000000, -0.208647, -0.000000, 1.158576, -0.000000, 0.316303, -0.000000, 1.000000}, + {1.079856, -0.000000, -0.193740, -0.000000, 1.124746, -0.000000, 0.288531, -0.000000, 1.000000}, + {1.053782, -0.000000, -0.179356, -0.000000, 1.093294, -0.000000, 0.261333, -0.000000, 1.000000}, + {1.030322, -0.000000, -0.163585, -0.000000, 1.063753, -0.000000, 0.235141, -0.000000, 1.000000}, + {1.008895, -0.000000, -0.148491, -0.000000, 1.037665, -0.000000, 0.210275, -0.000000, 1.000000}, + {0.988353, -0.000000, -0.133701, -0.000000, 1.013934, -0.000000, 0.187020, -0.000000, 1.000000}, + {0.969570, -0.000000, -0.119553, -0.000000, 0.992656, -0.000000, 0.165160, -0.000000, 1.000000}, + {0.951590, -0.000000, -0.104649, -0.000000, 0.973196, -0.000000, 0.144189, -0.000000, 1.000000}, + {0.935427, -0.000000, -0.090354, -0.000000, 0.956373, -0.000000, 0.124339, -0.000000, 1.000000}, + {0.922397, -0.000000, -0.076839, -0.000000, 0.941249, -0.000000, 0.105099, -0.000000, 1.000000}, + {0.911450, -0.000000, -0.063076, -0.000000, 0.927700, -0.000000, 0.086331, -0.000000, 1.000000}, + {0.902659, -0.000000, -0.049555, -0.000000, 0.915691, -0.000000, 0.067933, -0.000000, 1.000000}, + {0.895581, -0.000000, -0.036382, -0.000000, 0.904873, -0.000000, 0.049954, -0.000000, 1.000000}, + {0.889648, -0.000000, -0.024224, -0.000000, 0.895366, -0.000000, 0.032801, -0.000000, 1.000000}, + {0.884380, -0.000000, -0.011396, -0.000000, 0.886784, -0.000000, 0.015819, -0.000000, 1.000000}, + {0.878901, -0.000000, 0.000752, -0.000000, 0.878886, -0.000000, -0.000350, -0.000000, 1.000000}, + {499.833038, -0.000000, -0.512667, -0.000000, 631.441956, -0.000000, 256.248108, -0.000000, 1.000000}, + {499.833038, -0.000000, -0.512667, -0.000000, 631.441956, -0.000000, 256.248108, -0.000000, 1.000000}, + {496.158051, -0.000000, -0.512667, -0.000000, 626.537048, -0.000000, 254.363953, -0.000000, 1.000000}, + {220.518692, -0.000000, -0.512665, -0.000000, 278.424103, -0.000000, 113.052116, -0.000000, 1.000000}, + {124.058762, -0.000000, -0.512658, -0.000000, 156.580750, -0.000000, 63.600826, -0.000000, 1.000000}, + {79.377831, -0.000000, -0.512645, -0.000000, 100.243629, -0.000000, 40.694302, -0.000000, 1.000000}, + {55.124279, -0.000000, -0.512621, -0.000000, 69.611153, -0.000000, 28.260294, -0.000000, 1.000000}, + {40.494614, -0.000000, -0.512583, -0.000000, 51.140453, -0.000000, 20.760023, -0.000000, 1.000000}, + {31.003603, -0.000000, -0.512522, -0.000000, 39.156490, -0.000000, 15.894115, -0.000000, 1.000000}, + {24.494518, -0.000000, -0.512434, -0.000000, 30.930185, -0.000000, 12.557170, -0.000000, 1.000000}, + {19.839989, -0.000000, -0.512313, -0.000000, 25.052380, -0.000000, 10.170775, -0.000000, 1.000000}, + {16.395456, -0.000000, -0.512150, -0.000000, 20.700644, -0.000000, 8.404720, -0.000000, 1.000000}, + {13.775427, -0.000000, -0.511937, -0.000000, 17.390364, -0.000000, 7.061382, -0.000000, 1.000000}, + {11.735991, -0.000000, -0.511665, -0.000000, 14.813210, -0.000000, 6.015653, -0.000000, 1.000000}, + {10.117810, -0.000000, -0.511322, -0.000000, 12.767522, -0.000000, 5.185846, -0.000000, 1.000000}, + {8.812005, -0.000000, -0.510893, -0.000000, 11.116779, -0.000000, 4.516166, -0.000000, 1.000000}, + {7.743429, -0.000000, -0.510343, -0.000000, 9.765045, -0.000000, 3.968071, -0.000000, 1.000000}, + {6.857736, -0.000000, -0.509558, -0.000000, 8.644680, -0.000000, 3.513671, -0.000000, 1.000000}, + {6.116433, -0.000000, -0.507841, -0.000000, 7.706219, -0.000000, 3.133188, -0.000000, 1.000000}, + {5.492404, -0.000000, -0.501837, -0.000000, 6.916293, -0.000000, 2.812324, -0.000000, 1.000000}, + {4.958022, -0.000000, -0.497532, -0.000000, 6.239026, -0.000000, 2.537439, -0.000000, 1.000000}, + {4.497925, -0.000000, -0.494140, -0.000000, 5.655237, -0.000000, 2.300593, -0.000000, 1.000000}, + {4.100157, -0.000000, -0.490804, -0.000000, 5.149754, -0.000000, 2.095579, -0.000000, 1.000000}, + {3.753082, -0.000000, -0.488019, -0.000000, 4.707974, -0.000000, 1.916456, -0.000000, 1.000000}, + {3.451247, -0.000000, -0.483821, -0.000000, 4.322457, -0.000000, 1.760169, -0.000000, 1.000000}, + {3.188345, -0.000000, -0.477359, -0.000000, 3.985661, -0.000000, 1.623221, -0.000000, 1.000000}, + {2.955361, -0.000000, -0.472948, -0.000000, 3.686046, -0.000000, 1.501682, -0.000000, 1.000000}, + {2.750720, -0.000000, -0.469106, -0.000000, 3.423305, -0.000000, 1.394630, -0.000000, 1.000000}, + {2.574424, -0.000000, -0.465402, -0.000000, 3.191475, -0.000000, 1.301486, -0.000000, 1.000000}, + {2.420457, -0.000000, -0.461761, -0.000000, 2.984488, -0.000000, 1.219465, -0.000000, 1.000000}, + {2.280467, -0.000000, -0.459156, -0.000000, 2.799470, -0.000000, 1.144915, -0.000000, 1.000000}, + {2.148587, -0.000000, -0.450660, -0.000000, 2.620453, -0.000000, 1.072513, -0.000000, 1.000000}, + {2.027889, -0.000000, -0.439798, -0.000000, 2.454997, -0.000000, 1.004191, -0.000000, 1.000000}, + {1.919624, -0.000000, -0.428882, -0.000000, 2.305794, -0.000000, 0.941869, -0.000000, 1.000000}, + {1.823223, -0.000000, -0.416811, -0.000000, 2.170411, -0.000000, 0.884438, -0.000000, 1.000000}, + {1.736360, -0.000000, -0.405050, -0.000000, 2.048491, -0.000000, 0.831502, -0.000000, 1.000000}, + {1.659158, -0.000000, -0.392667, -0.000000, 1.937715, -0.000000, 0.782747, -0.000000, 1.000000}, + {1.589230, -0.000000, -0.380929, -0.000000, 1.838086, -0.000000, 0.737227, -0.000000, 1.000000}, + {1.527017, -0.000000, -0.368788, -0.000000, 1.746600, -0.000000, 0.694725, -0.000000, 1.000000}, + {1.470582, -0.000000, -0.357054, -0.000000, 1.664725, -0.000000, 0.654904, -0.000000, 1.000000}, + {1.418556, -0.000000, -0.344040, -0.000000, 1.590104, -0.000000, 0.615562, -0.000000, 1.000000}, + {1.367267, -0.000000, -0.329366, -0.000000, 1.518735, -0.000000, 0.575605, -0.000000, 1.000000}, + {1.320187, -0.000000, -0.313070, -0.000000, 1.453649, -0.000000, 0.536870, -0.000000, 1.000000}, + {1.277404, -0.000000, -0.297768, -0.000000, 1.393976, -0.000000, 0.500023, -0.000000, 1.000000}, + {1.238920, -0.000000, -0.282633, -0.000000, 1.340037, -0.000000, 0.465346, -0.000000, 1.000000}, + {1.203396, -0.000000, -0.267288, -0.000000, 1.292495, -0.000000, 0.431370, -0.000000, 1.000000}, + {1.169605, -0.000000, -0.252603, -0.000000, 1.247279, -0.000000, 0.398253, -0.000000, 1.000000}, + {1.137221, -0.000000, -0.236090, -0.000000, 1.205140, -0.000000, 0.365478, -0.000000, 1.000000}, + {1.106866, -0.000000, -0.219355, -0.000000, 1.166418, -0.000000, 0.333940, -0.000000, 1.000000}, + {1.080629, -0.000000, -0.203533, -0.000000, 1.131532, -0.000000, 0.304547, -0.000000, 1.000000}, + {1.055715, -0.000000, -0.187983, -0.000000, 1.099271, -0.000000, 0.275948, -0.000000, 1.000000}, + {1.031158, -0.000000, -0.172449, -0.000000, 1.068871, -0.000000, 0.247808, -0.000000, 1.000000}, + {1.009003, -0.000000, -0.156074, -0.000000, 1.041632, -0.000000, 0.221478, -0.000000, 1.000000}, + {0.989099, -0.000000, -0.140250, -0.000000, 1.017254, -0.000000, 0.196571, -0.000000, 1.000000}, + {0.969476, -0.000000, -0.125351, -0.000000, 0.995050, -0.000000, 0.173181, -0.000000, 1.000000}, + {0.952149, -0.000000, -0.110199, -0.000000, 0.975125, -0.000000, 0.151162, -0.000000, 1.000000}, + {0.935578, -0.000000, -0.094911, -0.000000, 0.957281, -0.000000, 0.130319, -0.000000, 1.000000}, + {0.921855, -0.000000, -0.080171, -0.000000, 0.941969, -0.000000, 0.110122, -0.000000, 1.000000}, + {0.910342, -0.000000, -0.066290, -0.000000, 0.928011, -0.000000, 0.090644, -0.000000, 1.000000}, + {0.901261, -0.000000, -0.052273, -0.000000, 0.915516, -0.000000, 0.071411, -0.000000, 1.000000}, + {0.894295, -0.000000, -0.038210, -0.000000, 0.904521, -0.000000, 0.052497, -0.000000, 1.000000}, + {0.888607, -0.000000, -0.025149, -0.000000, 0.894789, -0.000000, 0.034253, -0.000000, 1.000000}, + {0.883473, -0.000000, -0.012290, -0.000000, 0.886115, -0.000000, 0.016722, -0.000000, 1.000000}, + {0.877935, -0.000000, 0.000665, -0.000000, 0.877965, -0.000000, -0.000345, -0.000000, 1.000000}, + {499.964600, -0.000000, -0.544568, -0.000000, 648.281921, -0.000000, 272.264343, -0.000000, 1.000000}, + {499.964600, -0.000000, -0.544568, -0.000000, 648.281921, -0.000000, 272.264343, -0.000000, 1.000000}, + {496.047424, -0.000000, -0.544568, -0.000000, 643.325500, -0.000000, 270.131653, -0.000000, 1.000000}, + {220.488297, -0.000000, -0.544565, -0.000000, 285.888458, -0.000000, 120.070152, -0.000000, 1.000000}, + {124.029099, -0.000000, -0.544557, -0.000000, 160.816254, -0.000000, 67.542206, -0.000000, 1.000000}, + {79.379036, -0.000000, -0.544541, -0.000000, 102.917030, -0.000000, 43.227154, -0.000000, 1.000000}, + {55.124950, -0.000000, -0.544513, -0.000000, 71.467789, -0.000000, 30.019081, -0.000000, 1.000000}, + {40.495598, -0.000000, -0.544466, -0.000000, 52.503517, -0.000000, 22.052328, -0.000000, 1.000000}, + {31.007767, -0.000000, -0.544394, -0.000000, 40.197323, -0.000000, 16.885170, -0.000000, 1.000000}, + {24.495283, -0.000000, -0.544289, -0.000000, 31.757868, -0.000000, 13.338841, -0.000000, 1.000000}, + {19.836905, -0.000000, -0.544144, -0.000000, 25.721111, -0.000000, 10.801979, -0.000000, 1.000000}, + {16.394938, -0.000000, -0.543948, -0.000000, 21.252571, -0.000000, 8.927350, -0.000000, 1.000000}, + {13.774549, -0.000000, -0.543693, -0.000000, 17.853453, -0.000000, 7.500184, -0.000000, 1.000000}, + {11.735194, -0.000000, -0.543368, -0.000000, 15.207374, -0.000000, 6.389414, -0.000000, 1.000000}, + {10.116846, -0.000000, -0.542959, -0.000000, 13.106936, -0.000000, 5.507866, -0.000000, 1.000000}, + {8.811126, -0.000000, -0.542446, -0.000000, 11.411842, -0.000000, 4.796541, -0.000000, 1.000000}, + {7.742423, -0.000000, -0.541784, -0.000000, 10.023723, -0.000000, 4.214224, -0.000000, 1.000000}, + {6.856839, -0.000000, -0.540818, -0.000000, 8.872921, -0.000000, 3.731567, -0.000000, 1.000000}, + {6.115932, -0.000000, -0.538320, -0.000000, 7.909827, -0.000000, 3.327516, -0.000000, 1.000000}, + {5.491170, -0.000000, -0.531933, -0.000000, 7.097507, -0.000000, 2.986258, -0.000000, 1.000000}, + {4.955805, -0.000000, -0.528191, -0.000000, 6.400644, -0.000000, 2.693787, -0.000000, 1.000000}, + {4.495482, -0.000000, -0.524701, -0.000000, 5.800350, -0.000000, 2.442038, -0.000000, 1.000000}, + {4.097378, -0.000000, -0.521103, -0.000000, 5.280610, -0.000000, 2.224023, -0.000000, 1.000000}, + {3.750728, -0.000000, -0.517823, -0.000000, 4.826674, -0.000000, 2.033879, -0.000000, 1.000000}, + {3.448358, -0.000000, -0.512657, -0.000000, 4.430115, -0.000000, 1.867394, -0.000000, 1.000000}, + {3.185436, -0.000000, -0.505882, -0.000000, 4.082632, -0.000000, 1.721818, -0.000000, 1.000000}, + {2.951017, -0.000000, -0.500943, -0.000000, 3.774083, -0.000000, 1.591852, -0.000000, 1.000000}, + {2.747175, -0.000000, -0.496302, -0.000000, 3.502885, -0.000000, 1.478221, -0.000000, 1.000000}, + {2.570778, -0.000000, -0.490996, -0.000000, 3.261750, -0.000000, 1.378683, -0.000000, 1.000000}, + {2.414072, -0.000000, -0.486501, -0.000000, 3.048726, -0.000000, 1.290131, -0.000000, 1.000000}, + {2.276909, -0.000000, -0.483158, -0.000000, 2.857607, -0.000000, 1.212195, -0.000000, 1.000000}, + {2.151454, -0.000000, -0.476280, -0.000000, 2.679210, -0.000000, 1.139442, -0.000000, 1.000000}, + {2.029948, -0.000000, -0.465295, -0.000000, 2.508307, -0.000000, 1.066667, -0.000000, 1.000000}, + {1.922984, -0.000000, -0.452975, -0.000000, 2.352989, -0.000000, 1.000628, -0.000000, 1.000000}, + {1.826360, -0.000000, -0.440447, -0.000000, 2.212558, -0.000000, 0.939624, -0.000000, 1.000000}, + {1.739519, -0.000000, -0.427570, -0.000000, 2.085970, -0.000000, 0.883070, -0.000000, 1.000000}, + {1.662084, -0.000000, -0.414159, -0.000000, 1.970891, -0.000000, 0.830612, -0.000000, 1.000000}, + {1.591782, -0.000000, -0.401020, -0.000000, 1.867387, -0.000000, 0.781635, -0.000000, 1.000000}, + {1.527778, -0.000000, -0.387815, -0.000000, 1.773135, -0.000000, 0.735067, -0.000000, 1.000000}, + {1.470978, -0.000000, -0.374850, -0.000000, 1.688238, -0.000000, 0.692502, -0.000000, 1.000000}, + {1.419374, -0.000000, -0.360991, -0.000000, 1.611230, -0.000000, 0.650772, -0.000000, 1.000000}, + {1.370268, -0.000000, -0.347067, -0.000000, 1.538865, -0.000000, 0.610021, -0.000000, 1.000000}, + {1.324325, -0.000000, -0.329195, -0.000000, 1.471813, -0.000000, 0.568878, -0.000000, 1.000000}, + {1.280913, -0.000000, -0.312954, -0.000000, 1.409399, -0.000000, 0.529189, -0.000000, 1.000000}, + {1.241405, -0.000000, -0.296203, -0.000000, 1.354398, -0.000000, 0.491309, -0.000000, 1.000000}, + {1.206234, -0.000000, -0.280184, -0.000000, 1.304585, -0.000000, 0.455905, -0.000000, 1.000000}, + {1.171914, -0.000000, -0.264093, -0.000000, 1.257975, -0.000000, 0.419949, -0.000000, 1.000000}, + {1.139891, -0.000000, -0.248016, -0.000000, 1.215121, -0.000000, 0.385831, -0.000000, 1.000000}, + {1.109539, -0.000000, -0.230063, -0.000000, 1.175352, -0.000000, 0.352087, -0.000000, 1.000000}, + {1.081135, -0.000000, -0.212976, -0.000000, 1.138444, -0.000000, 0.319821, -0.000000, 1.000000}, + {1.056964, -0.000000, -0.196264, -0.000000, 1.105688, -0.000000, 0.290159, -0.000000, 1.000000}, + {1.033070, -0.000000, -0.180463, -0.000000, 1.074996, -0.000000, 0.261001, -0.000000, 1.000000}, + {1.010903, -0.000000, -0.163769, -0.000000, 1.046055, -0.000000, 0.232721, -0.000000, 1.000000}, + {0.988432, -0.000000, -0.146893, -0.000000, 1.019785, -0.000000, 0.205913, -0.000000, 1.000000}, + {0.969959, -0.000000, -0.130679, -0.000000, 0.997071, -0.000000, 0.180926, -0.000000, 1.000000}, + {0.951529, -0.000000, -0.115382, -0.000000, 0.976638, -0.000000, 0.157946, -0.000000, 1.000000}, + {0.935498, -0.000000, -0.099787, -0.000000, 0.958721, -0.000000, 0.136321, -0.000000, 1.000000}, + {0.921286, -0.000000, -0.084040, -0.000000, 0.942499, -0.000000, 0.115253, -0.000000, 1.000000}, + {0.909408, -0.000000, -0.068988, -0.000000, 0.928135, -0.000000, 0.094595, -0.000000, 1.000000}, + {0.900124, -0.000000, -0.054561, -0.000000, 0.915531, -0.000000, 0.074658, -0.000000, 1.000000}, + {0.892791, -0.000000, -0.040426, -0.000000, 0.904311, -0.000000, 0.055110, -0.000000, 1.000000}, + {0.887428, -0.000000, -0.025947, -0.000000, 0.894170, -0.000000, 0.035730, -0.000000, 1.000000}, + {0.882287, -0.000000, -0.012705, -0.000000, 0.885185, -0.000000, 0.017470, -0.000000, 1.000000}, + {0.877015, -0.000000, 0.000072, -0.000000, 0.877030, -0.000000, -0.000040, -0.000000, 1.000000}, + {500.018127, -0.000000, -0.577347, -0.000000, 666.741516, -0.000000, 288.683624, -0.000000, 1.000000}, + {500.018127, -0.000000, -0.577347, -0.000000, 666.741516, -0.000000, 288.683624, -0.000000, 1.000000}, + {496.097687, -0.000000, -0.577346, -0.000000, 661.498901, -0.000000, 286.420258, -0.000000, 1.000000}, + {220.509628, -0.000000, -0.577344, -0.000000, 294.003113, -0.000000, 127.310104, -0.000000, 1.000000}, + {124.006050, -0.000000, -0.577335, -0.000000, 165.390106, -0.000000, 71.594391, -0.000000, 1.000000}, + {79.378586, -0.000000, -0.577316, -0.000000, 105.838509, -0.000000, 45.828773, -0.000000, 1.000000}, + {55.122433, -0.000000, -0.577280, -0.000000, 73.496788, -0.000000, 31.824512, -0.000000, 1.000000}, + {40.497952, -0.000000, -0.577225, -0.000000, 53.993816, -0.000000, 23.381008, -0.000000, 1.000000}, + {31.003929, -0.000000, -0.577139, -0.000000, 41.337330, -0.000000, 17.899559, -0.000000, 1.000000}, + {24.494070, -0.000000, -0.577015, -0.000000, 32.658623, -0.000000, 14.140984, -0.000000, 1.000000}, + {19.840250, -0.000000, -0.576841, -0.000000, 26.453827, -0.000000, 11.454021, -0.000000, 1.000000}, + {16.394211, -0.000000, -0.576608, -0.000000, 21.853865, -0.000000, 9.464190, -0.000000, 1.000000}, + {13.773612, -0.000000, -0.576305, -0.000000, 18.358515, -0.000000, 7.950984, -0.000000, 1.000000}, + {11.734133, -0.000000, -0.575918, -0.000000, 15.637076, -0.000000, 6.773256, -0.000000, 1.000000}, + {10.115806, -0.000000, -0.575432, -0.000000, 13.476646, -0.000000, 5.838628, -0.000000, 1.000000}, + {8.809996, -0.000000, -0.574821, -0.000000, 11.733068, -0.000000, 5.084384, -0.000000, 1.000000}, + {7.741207, -0.000000, -0.574030, -0.000000, 10.305275, -0.000000, 4.466939, -0.000000, 1.000000}, + {6.855765, -0.000000, -0.572821, -0.000000, 9.121772, -0.000000, 3.955261, -0.000000, 1.000000}, + {6.115031, -0.000000, -0.568942, -0.000000, 8.131938, -0.000000, 3.526886, -0.000000, 1.000000}, + {5.488869, -0.000000, -0.563314, -0.000000, 7.294135, -0.000000, 3.164334, -0.000000, 1.000000}, + {4.953284, -0.000000, -0.559480, -0.000000, 6.576398, -0.000000, 2.854054, -0.000000, 1.000000}, + {4.492596, -0.000000, -0.555925, -0.000000, 5.958310, -0.000000, 2.586941, -0.000000, 1.000000}, + {4.094578, -0.000000, -0.552047, -0.000000, 5.422942, -0.000000, 2.355748, -0.000000, 1.000000}, + {3.748152, -0.000000, -0.548119, -0.000000, 4.955694, -0.000000, 2.154149, -0.000000, 1.000000}, + {3.445738, -0.000000, -0.541672, -0.000000, 4.546956, -0.000000, 1.977378, -0.000000, 1.000000}, + {3.181209, -0.000000, -0.535137, -0.000000, 4.188271, -0.000000, 1.822137, -0.000000, 1.000000}, + {2.947188, -0.000000, -0.529686, -0.000000, 3.869549, -0.000000, 1.684381, -0.000000, 1.000000}, + {2.744051, -0.000000, -0.523755, -0.000000, 3.589326, -0.000000, 1.563893, -0.000000, 1.000000}, + {2.565445, -0.000000, -0.517369, -0.000000, 3.338645, -0.000000, 1.457006, -0.000000, 1.000000}, + {2.409017, -0.000000, -0.512125, -0.000000, 3.118602, -0.000000, 1.362977, -0.000000, 1.000000}, + {2.273139, -0.000000, -0.507864, -0.000000, 2.920849, -0.000000, 1.280931, -0.000000, 1.000000}, + {2.151341, -0.000000, -0.501463, -0.000000, 2.739769, -0.000000, 1.206435, -0.000000, 1.000000}, + {2.032765, -0.000000, -0.491007, -0.000000, 2.564208, -0.000000, 1.131025, -0.000000, 1.000000}, + {1.926557, -0.000000, -0.477448, -0.000000, 2.403278, -0.000000, 1.061221, -0.000000, 1.000000}, + {1.827807, -0.000000, -0.464125, -0.000000, 2.258311, -0.000000, 0.994956, -0.000000, 1.000000}, + {1.741566, -0.000000, -0.449924, -0.000000, 2.126067, -0.000000, 0.934917, -0.000000, 1.000000}, + {1.660114, -0.000000, -0.435590, -0.000000, 2.007916, -0.000000, 0.877202, -0.000000, 1.000000}, + {1.589580, -0.000000, -0.420918, -0.000000, 1.899860, -0.000000, 0.824254, -0.000000, 1.000000}, + {1.525931, -0.000000, -0.407009, -0.000000, 1.802565, -0.000000, 0.775067, -0.000000, 1.000000}, + {1.469439, -0.000000, -0.392144, -0.000000, 1.713783, -0.000000, 0.729089, -0.000000, 1.000000}, + {1.418139, -0.000000, -0.377949, -0.000000, 1.632838, -0.000000, 0.685314, -0.000000, 1.000000}, + {1.370206, -0.000000, -0.363367, -0.000000, 1.560151, -0.000000, 0.642775, -0.000000, 1.000000}, + {1.323761, -0.000000, -0.345699, -0.000000, 1.491048, -0.000000, 0.599351, -0.000000, 1.000000}, + {1.282438, -0.000000, -0.328074, -0.000000, 1.425775, -0.000000, 0.557789, -0.000000, 1.000000}, + {1.244317, -0.000000, -0.310119, -0.000000, 1.368643, -0.000000, 0.518010, -0.000000, 1.000000}, + {1.207352, -0.000000, -0.292714, -0.000000, 1.316545, -0.000000, 0.479277, -0.000000, 1.000000}, + {1.174196, -0.000000, -0.275618, -0.000000, 1.268610, -0.000000, 0.442052, -0.000000, 1.000000}, + {1.142261, -0.000000, -0.259139, -0.000000, 1.224709, -0.000000, 0.406320, -0.000000, 1.000000}, + {1.111881, -0.000000, -0.241217, -0.000000, 1.184688, -0.000000, 0.370689, -0.000000, 1.000000}, + {1.082894, -0.000000, -0.222689, -0.000000, 1.146485, -0.000000, 0.336129, -0.000000, 1.000000}, + {1.057850, -0.000000, -0.204917, -0.000000, 1.112059, -0.000000, 0.303957, -0.000000, 1.000000}, + {1.033615, -0.000000, -0.187739, -0.000000, 1.080596, -0.000000, 0.273180, -0.000000, 1.000000}, + {1.011315, -0.000000, -0.171021, -0.000000, 1.051114, -0.000000, 0.243954, -0.000000, 1.000000}, + {0.989738, -0.000000, -0.153753, -0.000000, 1.024040, -0.000000, 0.215570, -0.000000, 1.000000}, + {0.970972, -0.000000, -0.136460, -0.000000, 0.999989, -0.000000, 0.189355, -0.000000, 1.000000}, + {0.951252, -0.000000, -0.120018, -0.000000, 0.978592, -0.000000, 0.164635, -0.000000, 1.000000}, + {0.934632, -0.000000, -0.103986, -0.000000, 0.959674, -0.000000, 0.141955, -0.000000, 1.000000}, + {0.920438, -0.000000, -0.087980, -0.000000, 0.943254, -0.000000, 0.120291, -0.000000, 1.000000}, + {0.908753, -0.000000, -0.071985, -0.000000, 0.928291, -0.000000, 0.098603, -0.000000, 1.000000}, + {0.898769, -0.000000, -0.056729, -0.000000, 0.915308, -0.000000, 0.077731, -0.000000, 1.000000}, + {0.891474, -0.000000, -0.042209, -0.000000, 0.903846, -0.000000, 0.057448, -0.000000, 1.000000}, + {0.886116, -0.000000, -0.027432, -0.000000, 0.893643, -0.000000, 0.037431, -0.000000, 1.000000}, + {0.881084, -0.000000, -0.012906, -0.000000, 0.884266, -0.000000, 0.018066, -0.000000, 1.000000}, + {0.875985, -0.000000, 0.000404, -0.000000, 0.875942, -0.000000, -0.000225, -0.000000, 1.000000}, + {500.059753, -0.000000, -0.611084, -0.000000, 687.020447, -0.000000, 305.577911, -0.000000, 1.000000}, + {500.059753, -0.000000, -0.611084, -0.000000, 687.020447, -0.000000, 305.577911, -0.000000, 1.000000}, + {496.131104, -0.000000, -0.611084, -0.000000, 681.313354, -0.000000, 303.177673, -0.000000, 1.000000}, + {220.503235, -0.000000, -0.611079, -0.000000, 302.831818, -0.000000, 134.745651, -0.000000, 1.000000}, + {124.032204, -0.000000, -0.611068, -0.000000, 170.349152, -0.000000, 75.793968, -0.000000, 1.000000}, + {79.376831, -0.000000, -0.611046, -0.000000, 109.018860, -0.000000, 48.505707, -0.000000, 1.000000}, + {55.118790, -0.000000, -0.611006, -0.000000, 75.706657, -0.000000, 33.681911, -0.000000, 1.000000}, + {40.496830, -0.000000, -0.610939, -0.000000, 55.616562, -0.000000, 24.746468, -0.000000, 1.000000}, + {31.003130, -0.000000, -0.610838, -0.000000, 42.578850, -0.000000, 18.944946, -0.000000, 1.000000}, + {24.494944, -0.000000, -0.610689, -0.000000, 33.638340, -0.000000, 14.967728, -0.000000, 1.000000}, + {19.839455, -0.000000, -0.610484, -0.000000, 27.240908, -0.000000, 12.122551, -0.000000, 1.000000}, + {16.391743, -0.000000, -0.610209, -0.000000, 22.509579, -0.000000, 10.015670, -0.000000, 1.000000}, + {13.772236, -0.000000, -0.609849, -0.000000, 18.908459, -0.000000, 8.414637, -0.000000, 1.000000}, + {11.732980, -0.000000, -0.609391, -0.000000, 16.105103, -0.000000, 7.168170, -0.000000, 1.000000}, + {10.114366, -0.000000, -0.608815, -0.000000, 13.880643, -0.000000, 6.178736, -0.000000, 1.000000}, + {8.808816, -0.000000, -0.608090, -0.000000, 12.082842, -0.000000, 5.380540, -0.000000, 1.000000}, + {7.739786, -0.000000, -0.607146, -0.000000, 10.612023, -0.000000, 4.726828, -0.000000, 1.000000}, + {6.854265, -0.000000, -0.605599, -0.000000, 9.392420, -0.000000, 4.185153, -0.000000, 1.000000}, + {6.113844, -0.000000, -0.599966, -0.000000, 8.373297, -0.000000, 3.731737, -0.000000, 1.000000}, + {5.486492, -0.000000, -0.595251, -0.000000, 7.507792, -0.000000, 3.347297, -0.000000, 1.000000}, + {4.950495, -0.000000, -0.591420, -0.000000, 6.767659, -0.000000, 3.018643, -0.000000, 1.000000}, + {4.489434, -0.000000, -0.587858, -0.000000, 6.129895, -0.000000, 2.735610, -0.000000, 1.000000}, + {4.091563, -0.000000, -0.583652, -0.000000, 5.577612, -0.000000, 2.490912, -0.000000, 1.000000}, + {3.744393, -0.000000, -0.578882, -0.000000, 5.096111, -0.000000, 2.276983, -0.000000, 1.000000}, + {3.442302, -0.000000, -0.571441, -0.000000, 4.673666, -0.000000, 2.089818, -0.000000, 1.000000}, + {3.177282, -0.000000, -0.565192, -0.000000, 4.302368, -0.000000, 1.925208, -0.000000, 1.000000}, + {2.943215, -0.000000, -0.559023, -0.000000, 3.972773, -0.000000, 1.779118, -0.000000, 1.000000}, + {2.740145, -0.000000, -0.551469, -0.000000, 3.682717, -0.000000, 1.651309, -0.000000, 1.000000}, + {2.560740, -0.000000, -0.544530, -0.000000, 3.422651, -0.000000, 1.537548, -0.000000, 1.000000}, + {2.405007, -0.000000, -0.538283, -0.000000, 3.194257, -0.000000, 1.438259, -0.000000, 1.000000}, + {2.269851, -0.000000, -0.532345, -0.000000, 2.987319, -0.000000, 1.351191, -0.000000, 1.000000}, + {2.149445, -0.000000, -0.525563, -0.000000, 2.801316, -0.000000, 1.273241, -0.000000, 1.000000}, + {2.034208, -0.000000, -0.516618, -0.000000, 2.625589, -0.000000, 1.196375, -0.000000, 1.000000}, + {1.923855, -0.000000, -0.502460, -0.000000, 2.459321, -0.000000, 1.119779, -0.000000, 1.000000}, + {1.826712, -0.000000, -0.487891, -0.000000, 2.308541, -0.000000, 1.050307, -0.000000, 1.000000}, + {1.739512, -0.000000, -0.472859, -0.000000, 2.170905, -0.000000, 0.985883, -0.000000, 1.000000}, + {1.661322, -0.000000, -0.457224, -0.000000, 2.047603, -0.000000, 0.925946, -0.000000, 1.000000}, + {1.590618, -0.000000, -0.441340, -0.000000, 1.933808, -0.000000, 0.869810, -0.000000, 1.000000}, + {1.527487, -0.000000, -0.426157, -0.000000, 1.832489, -0.000000, 0.817512, -0.000000, 1.000000}, + {1.470243, -0.000000, -0.409679, -0.000000, 1.740569, -0.000000, 0.767899, -0.000000, 1.000000}, + {1.418768, -0.000000, -0.394768, -0.000000, 1.656640, -0.000000, 0.721272, -0.000000, 1.000000}, + {1.370922, -0.000000, -0.378746, -0.000000, 1.580837, -0.000000, 0.675507, -0.000000, 1.000000}, + {1.325950, -0.000000, -0.361887, -0.000000, 1.510943, -0.000000, 0.631064, -0.000000, 1.000000}, + {1.282281, -0.000000, -0.343009, -0.000000, 1.444533, -0.000000, 0.585837, -0.000000, 1.000000}, + {1.245250, -0.000000, -0.324201, -0.000000, 1.383857, -0.000000, 0.544231, -0.000000, 1.000000}, + {1.209798, -0.000000, -0.305055, -0.000000, 1.328927, -0.000000, 0.503334, -0.000000, 1.000000}, + {1.175961, -0.000000, -0.287306, -0.000000, 1.279956, -0.000000, 0.464460, -0.000000, 1.000000}, + {1.143816, -0.000000, -0.269177, -0.000000, 1.234930, -0.000000, 0.425767, -0.000000, 1.000000}, + {1.113576, -0.000000, -0.251675, -0.000000, 1.193066, -0.000000, 0.388752, -0.000000, 1.000000}, + {1.084812, -0.000000, -0.232448, -0.000000, 1.154327, -0.000000, 0.352472, -0.000000, 1.000000}, + {1.057252, -0.000000, -0.213585, -0.000000, 1.118203, -0.000000, 0.317450, -0.000000, 1.000000}, + {1.034291, -0.000000, -0.195251, -0.000000, 1.085671, -0.000000, 0.285633, -0.000000, 1.000000}, + {1.011855, -0.000000, -0.177823, -0.000000, 1.055842, -0.000000, 0.255055, -0.000000, 1.000000}, + {0.991743, -0.000000, -0.160161, -0.000000, 1.028257, -0.000000, 0.225794, -0.000000, 1.000000}, + {0.971158, -0.000000, -0.142319, -0.000000, 1.002737, -0.000000, 0.197439, -0.000000, 1.000000}, + {0.952054, -0.000000, -0.124608, -0.000000, 0.980425, -0.000000, 0.170992, -0.000000, 1.000000}, + {0.934170, -0.000000, -0.107886, -0.000000, 0.960933, -0.000000, 0.147320, -0.000000, 1.000000}, + {0.919185, -0.000000, -0.091622, -0.000000, 0.944061, -0.000000, 0.124784, -0.000000, 1.000000}, + {0.907437, -0.000000, -0.075300, -0.000000, 0.928761, -0.000000, 0.102708, -0.000000, 1.000000}, + {0.897538, -0.000000, -0.058930, -0.000000, 0.915182, -0.000000, 0.080852, -0.000000, 1.000000}, + {0.890261, -0.000000, -0.043578, -0.000000, 0.903289, -0.000000, 0.059702, -0.000000, 1.000000}, + {0.884575, -0.000000, -0.029008, -0.000000, 0.892858, -0.000000, 0.039127, -0.000000, 1.000000}, + {0.879937, -0.000000, -0.013622, -0.000000, 0.883339, -0.000000, 0.018893, -0.000000, 1.000000}, + {0.874765, -0.000000, 0.000895, -0.000000, 0.874699, -0.000000, -0.000434, -0.000000, 1.000000}, + {499.980133, -0.000000, -0.645864, -0.000000, 708.598999, -0.000000, 322.918793, -0.000000, 1.000000}, + {499.980133, -0.000000, -0.645864, -0.000000, 708.598999, -0.000000, 322.918793, -0.000000, 1.000000}, + {496.017120, -0.000000, -0.645864, -0.000000, 703.275818, -0.000000, 320.360229, -0.000000, 1.000000}, + {220.501709, -0.000000, -0.645860, -0.000000, 312.467621, -0.000000, 142.414230, -0.000000, 1.000000}, + {124.024284, -0.000000, -0.645847, -0.000000, 175.772400, -0.000000, 80.102768, -0.000000, 1.000000}, + {79.373238, -0.000000, -0.645819, -0.000000, 112.490692, -0.000000, 51.264164, -0.000000, 1.000000}, + {55.122040, -0.000000, -0.645772, -0.000000, 78.116310, -0.000000, 35.601017, -0.000000, 1.000000}, + {40.499382, -0.000000, -0.645695, -0.000000, 57.385887, -0.000000, 26.156567, -0.000000, 1.000000}, + {31.001198, -0.000000, -0.645573, -0.000000, 43.931107, -0.000000, 20.021948, -0.000000, 1.000000}, + {24.493385, -0.000000, -0.645399, -0.000000, 34.708286, -0.000000, 15.818537, -0.000000, 1.000000}, + {19.838543, -0.000000, -0.645157, -0.000000, 28.108135, -0.000000, 12.811936, -0.000000, 1.000000}, + {16.393085, -0.000000, -0.644832, -0.000000, 23.223579, -0.000000, 10.586369, -0.000000, 1.000000}, + {13.771312, -0.000000, -0.644408, -0.000000, 19.508339, -0.000000, 8.892781, -0.000000, 1.000000}, + {11.731657, -0.000000, -0.643867, -0.000000, 16.614929, -0.000000, 7.575101, -0.000000, 1.000000}, + {10.112901, -0.000000, -0.643188, -0.000000, 14.318110, -0.000000, 6.529218, -0.000000, 1.000000}, + {8.806743, -0.000000, -0.642332, -0.000000, 12.464256, -0.000000, 5.685175, -0.000000, 1.000000}, + {7.737839, -0.000000, -0.641200, -0.000000, 10.945989, -0.000000, 4.994275, -0.000000, 1.000000}, + {6.852201, -0.000000, -0.639143, -0.000000, 9.687261, -0.000000, 4.421630, -0.000000, 1.000000}, + {6.111566, -0.000000, -0.632858, -0.000000, 8.633825, -0.000000, 3.942178, -0.000000, 1.000000}, + {5.483883, -0.000000, -0.627844, -0.000000, 7.739667, -0.000000, 3.535588, -0.000000, 1.000000}, + {4.947381, -0.000000, -0.624017, -0.000000, 6.975159, -0.000000, 3.187831, -0.000000, 1.000000}, + {4.486110, -0.000000, -0.620546, -0.000000, 6.316311, -0.000000, 2.888543, -0.000000, 1.000000}, + {4.087338, -0.000000, -0.615942, -0.000000, 5.745611, -0.000000, 2.629270, -0.000000, 1.000000}, + {3.740768, -0.000000, -0.610050, -0.000000, 5.247872, -0.000000, 2.403260, -0.000000, 1.000000}, + {3.438387, -0.000000, -0.602321, -0.000000, 4.810745, -0.000000, 2.205128, -0.000000, 1.000000}, + {3.172844, -0.000000, -0.595671, -0.000000, 4.426208, -0.000000, 2.030723, -0.000000, 1.000000}, + {2.938661, -0.000000, -0.588711, -0.000000, 4.085194, -0.000000, 1.876083, -0.000000, 1.000000}, + {2.736077, -0.000000, -0.579877, -0.000000, 3.782948, -0.000000, 1.740864, -0.000000, 1.000000}, + {2.556285, -0.000000, -0.572356, -0.000000, 3.513409, -0.000000, 1.620289, -0.000000, 1.000000}, + {2.401605, -0.000000, -0.564621, -0.000000, 3.275337, -0.000000, 1.515545, -0.000000, 1.000000}, + {2.265606, -0.000000, -0.557336, -0.000000, 3.058467, -0.000000, 1.422700, -0.000000, 1.000000}, + {2.144067, -0.000000, -0.550026, -0.000000, 2.866941, -0.000000, 1.339311, -0.000000, 1.000000}, + {2.031228, -0.000000, -0.541524, -0.000000, 2.689938, -0.000000, 1.260069, -0.000000, 1.000000}, + {1.924598, -0.000000, -0.527483, -0.000000, 2.519325, -0.000000, 1.181578, -0.000000, 1.000000}, + {1.828354, -0.000000, -0.511716, -0.000000, 2.360447, -0.000000, 1.108573, -0.000000, 1.000000}, + {1.741445, -0.000000, -0.495876, -0.000000, 2.217819, -0.000000, 1.039997, -0.000000, 1.000000}, + {1.662840, -0.000000, -0.478652, -0.000000, 2.088299, -0.000000, 0.976298, -0.000000, 1.000000}, + {1.590112, -0.000000, -0.462021, -0.000000, 1.971833, -0.000000, 0.914662, -0.000000, 1.000000}, + {1.526299, -0.000000, -0.445163, -0.000000, 1.864987, -0.000000, 0.858934, -0.000000, 1.000000}, + {1.469457, -0.000000, -0.427458, -0.000000, 1.769146, -0.000000, 0.806228, -0.000000, 1.000000}, + {1.416942, -0.000000, -0.411264, -0.000000, 1.681657, -0.000000, 0.755457, -0.000000, 1.000000}, + {1.372203, -0.000000, -0.394171, -0.000000, 1.602263, -0.000000, 0.709578, -0.000000, 1.000000}, + {1.327448, -0.000000, -0.377053, -0.000000, 1.531574, -0.000000, 0.662382, -0.000000, 1.000000}, + {1.285432, -0.000000, -0.358195, -0.000000, 1.462897, -0.000000, 0.616049, -0.000000, 1.000000}, + {1.244279, -0.000000, -0.338131, -0.000000, 1.399984, -0.000000, 0.569465, -0.000000, 1.000000}, + {1.208152, -0.000000, -0.317795, -0.000000, 1.342731, -0.000000, 0.525988, -0.000000, 1.000000}, + {1.176306, -0.000000, -0.298411, -0.000000, 1.291266, -0.000000, 0.485026, -0.000000, 1.000000}, + {1.145994, -0.000000, -0.279626, -0.000000, 1.244691, -0.000000, 0.445690, -0.000000, 1.000000}, + {1.115618, -0.000000, -0.260951, -0.000000, 1.201813, -0.000000, 0.406663, -0.000000, 1.000000}, + {1.087264, -0.000000, -0.242301, -0.000000, 1.163153, -0.000000, 0.369296, -0.000000, 1.000000}, + {1.059455, -0.000000, -0.222153, -0.000000, 1.125428, -0.000000, 0.332279, -0.000000, 1.000000}, + {1.034064, -0.000000, -0.202894, -0.000000, 1.091386, -0.000000, 0.297528, -0.000000, 1.000000}, + {1.011627, -0.000000, -0.184135, -0.000000, 1.060351, -0.000000, 0.264989, -0.000000, 1.000000}, + {0.990930, -0.000000, -0.166174, -0.000000, 1.031740, -0.000000, 0.234591, -0.000000, 1.000000}, + {0.971057, -0.000000, -0.148343, -0.000000, 1.005721, -0.000000, 0.205668, -0.000000, 1.000000}, + {0.952838, -0.000000, -0.129633, -0.000000, 0.982726, -0.000000, 0.178213, -0.000000, 1.000000}, + {0.933675, -0.000000, -0.112114, -0.000000, 0.961719, -0.000000, 0.152871, -0.000000, 1.000000}, + {0.918455, -0.000000, -0.094587, -0.000000, 0.944371, -0.000000, 0.129046, -0.000000, 1.000000}, + {0.905734, -0.000000, -0.078401, -0.000000, 0.928969, -0.000000, 0.106618, -0.000000, 1.000000}, + {0.896020, -0.000000, -0.061671, -0.000000, 0.915177, -0.000000, 0.084168, -0.000000, 1.000000}, + {0.888601, -0.000000, -0.044967, -0.000000, 0.902650, -0.000000, 0.061854, -0.000000, 1.000000}, + {0.883323, -0.000000, -0.029851, -0.000000, 0.892035, -0.000000, 0.040600, -0.000000, 1.000000}, + {0.878707, -0.000000, -0.014673, -0.000000, 0.882504, -0.000000, 0.019807, -0.000000, 1.000000}, + {0.873546, -0.000000, 0.000659, -0.000000, 0.873541, -0.000000, -0.000367, -0.000000, 1.000000}, + {500.016876, -0.000000, -0.681783, -0.000000, 732.371582, -0.000000, 340.902985, -0.000000, 1.000000}, + {500.016876, -0.000000, -0.681783, -0.000000, 732.371582, -0.000000, 340.902985, -0.000000, 1.000000}, + {496.155914, -0.000000, -0.681784, -0.000000, 726.702454, -0.000000, 338.271820, -0.000000, 1.000000}, + {220.495682, -0.000000, -0.681779, -0.000000, 323.010406, -0.000000, 150.330475, -0.000000, 1.000000}, + {124.033257, -0.000000, -0.681764, -0.000000, 181.677536, -0.000000, 84.563828, -0.000000, 1.000000}, + {79.408386, -0.000000, -0.681732, -0.000000, 116.274788, -0.000000, 54.139229, -0.000000, 1.000000}, + {55.120922, -0.000000, -0.681676, -0.000000, 80.743622, -0.000000, 37.580193, -0.000000, 1.000000}, + {40.497543, -0.000000, -0.681584, -0.000000, 59.318542, -0.000000, 27.609968, -0.000000, 1.000000}, + {31.002672, -0.000000, -0.681442, -0.000000, 45.409443, -0.000000, 21.136337, -0.000000, 1.000000}, + {24.493113, -0.000000, -0.681236, -0.000000, 35.873871, -0.000000, 16.697989, -0.000000, 1.000000}, + {19.836802, -0.000000, -0.680952, -0.000000, 29.052166, -0.000000, 13.523138, -0.000000, 1.000000}, + {16.391424, -0.000000, -0.680570, -0.000000, 24.003088, -0.000000, 11.173841, -0.000000, 1.000000}, + {13.770196, -0.000000, -0.680072, -0.000000, 20.160379, -0.000000, 9.386407, -0.000000, 1.000000}, + {11.730108, -0.000000, -0.679436, -0.000000, 17.170685, -0.000000, 7.995108, -0.000000, 1.000000}, + {10.111138, -0.000000, -0.678637, -0.000000, 14.796307, -0.000000, 6.890862, -0.000000, 1.000000}, + {8.804667, -0.000000, -0.677631, -0.000000, 12.879583, -0.000000, 5.999617, -0.000000, 1.000000}, + {7.735567, -0.000000, -0.676267, -0.000000, 11.309587, -0.000000, 5.270127, -0.000000, 1.000000}, + {6.850010, -0.000000, -0.673349, -0.000000, 10.008334, -0.000000, 4.665566, -0.000000, 1.000000}, + {6.108877, -0.000000, -0.666476, -0.000000, 8.917023, -0.000000, 4.158981, -0.000000, 1.000000}, + {5.480227, -0.000000, -0.662130, -0.000000, 7.991238, -0.000000, 3.729142, -0.000000, 1.000000}, + {4.943895, -0.000000, -0.657692, -0.000000, 7.200201, -0.000000, 3.362040, -0.000000, 1.000000}, + {4.482470, -0.000000, -0.654025, -0.000000, 6.518629, -0.000000, 3.045914, -0.000000, 1.000000}, + {4.083369, -0.000000, -0.648919, -0.000000, 5.927822, -0.000000, 2.771881, -0.000000, 1.000000}, + {3.737030, -0.000000, -0.641517, -0.000000, 5.412598, -0.000000, 2.533196, -0.000000, 1.000000}, + {3.433909, -0.000000, -0.633991, -0.000000, 4.959464, -0.000000, 2.323574, -0.000000, 1.000000}, + {3.167929, -0.000000, -0.626710, -0.000000, 4.560731, -0.000000, 2.138983, -0.000000, 1.000000}, + {2.934361, -0.000000, -0.618678, -0.000000, 4.206789, -0.000000, 1.975868, -0.000000, 1.000000}, + {2.731036, -0.000000, -0.609360, -0.000000, 3.891839, -0.000000, 1.832556, -0.000000, 1.000000}, + {2.552360, -0.000000, -0.600730, -0.000000, 3.611895, -0.000000, 1.705638, -0.000000, 1.000000}, + {2.397617, -0.000000, -0.591453, -0.000000, 3.360650, -0.000000, 1.594607, -0.000000, 1.000000}, + {2.259826, -0.000000, -0.582914, -0.000000, 3.137116, -0.000000, 1.495050, -0.000000, 1.000000}, + {2.136186, -0.000000, -0.574709, -0.000000, 2.939179, -0.000000, 1.405275, -0.000000, 1.000000}, + {2.027894, -0.000000, -0.565916, -0.000000, 2.755896, -0.000000, 1.324382, -0.000000, 1.000000}, + {1.925520, -0.000000, -0.552896, -0.000000, 2.582570, -0.000000, 1.245067, -0.000000, 1.000000}, + {1.827450, -0.000000, -0.535966, -0.000000, 2.418150, -0.000000, 1.166359, -0.000000, 1.000000}, + {1.740295, -0.000000, -0.519019, -0.000000, 2.268801, -0.000000, 1.093660, -0.000000, 1.000000}, + {1.662354, -0.000000, -0.500280, -0.000000, 2.133667, -0.000000, 1.026175, -0.000000, 1.000000}, + {1.591575, -0.000000, -0.482772, -0.000000, 2.010278, -0.000000, 0.962501, -0.000000, 1.000000}, + {1.527386, -0.000000, -0.464290, -0.000000, 1.899148, -0.000000, 0.902033, -0.000000, 1.000000}, + {1.469803, -0.000000, -0.445517, -0.000000, 1.799705, -0.000000, 0.845807, -0.000000, 1.000000}, + {1.417182, -0.000000, -0.427603, -0.000000, 1.707743, -0.000000, 0.791809, -0.000000, 1.000000}, + {1.370499, -0.000000, -0.409700, -0.000000, 1.625589, -0.000000, 0.741554, -0.000000, 1.000000}, + {1.326349, -0.000000, -0.390878, -0.000000, 1.550612, -0.000000, 0.692471, -0.000000, 1.000000}, + {1.284132, -0.000000, -0.372653, -0.000000, 1.482105, -0.000000, 0.643872, -0.000000, 1.000000}, + {1.246743, -0.000000, -0.351932, -0.000000, 1.416913, -0.000000, 0.596930, -0.000000, 1.000000}, + {1.208694, -0.000000, -0.330888, -0.000000, 1.357680, -0.000000, 0.549688, -0.000000, 1.000000}, + {1.175035, -0.000000, -0.309654, -0.000000, 1.303756, -0.000000, 0.505529, -0.000000, 1.000000}, + {1.145971, -0.000000, -0.290014, -0.000000, 1.255198, -0.000000, 0.464900, -0.000000, 1.000000}, + {1.116934, -0.000000, -0.270010, -0.000000, 1.210890, -0.000000, 0.424332, -0.000000, 1.000000}, + {1.088665, -0.000000, -0.251156, -0.000000, 1.171127, -0.000000, 0.385352, -0.000000, 1.000000}, + {1.061705, -0.000000, -0.231114, -0.000000, 1.133231, -0.000000, 0.346937, -0.000000, 1.000000}, + {1.034626, -0.000000, -0.210698, -0.000000, 1.097110, -0.000000, 0.309980, -0.000000, 1.000000}, + {1.011930, -0.000000, -0.190783, -0.000000, 1.065267, -0.000000, 0.275522, -0.000000, 1.000000}, + {0.989540, -0.000000, -0.171851, -0.000000, 1.035638, -0.000000, 0.243229, -0.000000, 1.000000}, + {0.971887, -0.000000, -0.153392, -0.000000, 1.009374, -0.000000, 0.213532, -0.000000, 1.000000}, + {0.953534, -0.000000, -0.135031, -0.000000, 0.985142, -0.000000, 0.185297, -0.000000, 1.000000}, + {0.934509, -0.000000, -0.116182, -0.000000, 0.963268, -0.000000, 0.158043, -0.000000, 1.000000}, + {0.917624, -0.000000, -0.097711, -0.000000, 0.944910, -0.000000, 0.133504, -0.000000, 1.000000}, + {0.904516, -0.000000, -0.081121, -0.000000, 0.928990, -0.000000, 0.110361, -0.000000, 1.000000}, + {0.894524, -0.000000, -0.063957, -0.000000, 0.915037, -0.000000, 0.087158, -0.000000, 1.000000}, + {0.886979, -0.000000, -0.047131, -0.000000, 0.902208, -0.000000, 0.064242, -0.000000, 1.000000}, + {0.881912, -0.000000, -0.030413, -0.000000, 0.891152, -0.000000, 0.041851, -0.000000, 1.000000}, + {0.877410, -0.000000, -0.014838, -0.000000, 0.881437, -0.000000, 0.020394, -0.000000, 1.000000}, + {0.872406, -0.000000, -0.000274, -0.000000, 0.872409, -0.000000, 0.000072, -0.000000, 1.000000}, + {500.032013, -0.000000, -0.718945, -0.000000, 758.369934, -0.000000, 359.495880, -0.000000, 1.000000}, + {500.032013, -0.000000, -0.718945, -0.000000, 758.369934, -0.000000, 359.495880, -0.000000, 1.000000}, + {496.130157, -0.000000, -0.718945, -0.000000, 752.568359, -0.000000, 356.691406, -0.000000, 1.000000}, + {220.512146, -0.000000, -0.718939, -0.000000, 334.448303, -0.000000, 158.537460, -0.000000, 1.000000}, + {124.039993, -0.000000, -0.718922, -0.000000, 188.145279, -0.000000, 89.178047, -0.000000, 1.000000}, + {79.382301, -0.000000, -0.718885, -0.000000, 120.416916, -0.000000, 57.071358, -0.000000, 1.000000}, + {55.120506, -0.000000, -0.718820, -0.000000, 83.611397, -0.000000, 39.628212, -0.000000, 1.000000}, + {40.496445, -0.000000, -0.718711, -0.000000, 61.426361, -0.000000, 29.114059, -0.000000, 1.000000}, + {31.000265, -0.000000, -0.718545, -0.000000, 47.020287, -0.000000, 22.286556, -0.000000, 1.000000}, + {24.492365, -0.000000, -0.718304, -0.000000, 37.146885, -0.000000, 17.607481, -0.000000, 1.000000}, + {19.835760, -0.000000, -0.717970, -0.000000, 30.081579, -0.000000, 14.259347, -0.000000, 1.000000}, + {16.390028, -0.000000, -0.717523, -0.000000, 24.852650, -0.000000, 11.781696, -0.000000, 1.000000}, + {13.768762, -0.000000, -0.716939, -0.000000, 20.874529, -0.000000, 9.896759, -0.000000, 1.000000}, + {11.728228, -0.000000, -0.716195, -0.000000, 17.776852, -0.000000, 8.429270, -0.000000, 1.000000}, + {10.108951, -0.000000, -0.715258, -0.000000, 15.317552, -0.000000, 7.264587, -0.000000, 1.000000}, + {8.802353, -0.000000, -0.714073, -0.000000, 13.332113, -0.000000, 6.324620, -0.000000, 1.000000}, + {7.733030, -0.000000, -0.712416, -0.000000, 11.705751, -0.000000, 5.555141, -0.000000, 1.000000}, + {6.847572, -0.000000, -0.707902, -0.000000, 10.357367, -0.000000, 4.917505, -0.000000, 1.000000}, + {6.105253, -0.000000, -0.701894, -0.000000, 9.224761, -0.000000, 4.382462, -0.000000, 1.000000}, + {5.476176, -0.000000, -0.697378, -0.000000, 8.265043, -0.000000, 3.928820, -0.000000, 1.000000}, + {4.939616, -0.000000, -0.692705, -0.000000, 7.444839, -0.000000, 3.541454, -0.000000, 1.000000}, + {4.477792, -0.000000, -0.688335, -0.000000, 6.738754, -0.000000, 3.207675, -0.000000, 1.000000}, + {4.078594, -0.000000, -0.682563, -0.000000, 6.125970, -0.000000, 2.918445, -0.000000, 1.000000}, + {3.732535, -0.000000, -0.674057, -0.000000, 5.590599, -0.000000, 2.666733, -0.000000, 1.000000}, + {3.428672, -0.000000, -0.666706, -0.000000, 5.120468, -0.000000, 2.445154, -0.000000, 1.000000}, + {3.162721, -0.000000, -0.658748, -0.000000, 4.705711, -0.000000, 2.250343, -0.000000, 1.000000}, + {2.930273, -0.000000, -0.648831, -0.000000, 4.337759, -0.000000, 2.078657, -0.000000, 1.000000}, + {2.726574, -0.000000, -0.639266, -0.000000, 4.009264, -0.000000, 1.927037, -0.000000, 1.000000}, + {2.549029, -0.000000, -0.629298, -0.000000, 3.717577, -0.000000, 1.793829, -0.000000, 1.000000}, + {2.392198, -0.000000, -0.618840, -0.000000, 3.454342, -0.000000, 1.674880, -0.000000, 1.000000}, + {2.250609, -0.000000, -0.609047, -0.000000, 3.223337, -0.000000, 1.566916, -0.000000, 1.000000}, + {2.130680, -0.000000, -0.598721, -0.000000, 3.012872, -0.000000, 1.473901, -0.000000, 1.000000}, + {2.020753, -0.000000, -0.589301, -0.000000, 2.823599, -0.000000, 1.387247, -0.000000, 1.000000}, + {1.923138, -0.000000, -0.577389, -0.000000, 2.649179, -0.000000, 1.307466, -0.000000, 1.000000}, + {1.828392, -0.000000, -0.560529, -0.000000, 2.478947, -0.000000, 1.226768, -0.000000, 1.000000}, + {1.742087, -0.000000, -0.541997, -0.000000, 2.322065, -0.000000, 1.150241, -0.000000, 1.000000}, + {1.663531, -0.000000, -0.522300, -0.000000, 2.181002, -0.000000, 1.078066, -0.000000, 1.000000}, + {1.593258, -0.000000, -0.503514, -0.000000, 2.051865, -0.000000, 1.010960, -0.000000, 1.000000}, + {1.528930, -0.000000, -0.483300, -0.000000, 1.935584, -0.000000, 0.946670, -0.000000, 1.000000}, + {1.470800, -0.000000, -0.463543, -0.000000, 1.831405, -0.000000, 0.886385, -0.000000, 1.000000}, + {1.418596, -0.000000, -0.444045, -0.000000, 1.735271, -0.000000, 0.829469, -0.000000, 1.000000}, + {1.370767, -0.000000, -0.424807, -0.000000, 1.648844, -0.000000, 0.775200, -0.000000, 1.000000}, + {1.326695, -0.000000, -0.405178, -0.000000, 1.571946, -0.000000, 0.723364, -0.000000, 1.000000}, + {1.285100, -0.000000, -0.385776, -0.000000, 1.501127, -0.000000, 0.672123, -0.000000, 1.000000}, + {1.246613, -0.000000, -0.365875, -0.000000, 1.434922, -0.000000, 0.623269, -0.000000, 1.000000}, + {1.211120, -0.000000, -0.343442, -0.000000, 1.373150, -0.000000, 0.574652, -0.000000, 1.000000}, + {1.175555, -0.000000, -0.321426, -0.000000, 1.317194, -0.000000, 0.527285, -0.000000, 1.000000}, + {1.144507, -0.000000, -0.299880, -0.000000, 1.265650, -0.000000, 0.482539, -0.000000, 1.000000}, + {1.118137, -0.000000, -0.279505, -0.000000, 1.220311, -0.000000, 0.441885, -0.000000, 1.000000}, + {1.089746, -0.000000, -0.258845, -0.000000, 1.178671, -0.000000, 0.400607, -0.000000, 1.000000}, + {1.062682, -0.000000, -0.239124, -0.000000, 1.140741, -0.000000, 0.361070, -0.000000, 1.000000}, + {1.036801, -0.000000, -0.218450, -0.000000, 1.103758, -0.000000, 0.322947, -0.000000, 1.000000}, + {1.012466, -0.000000, -0.197355, -0.000000, 1.070472, -0.000000, 0.286262, -0.000000, 1.000000}, + {0.990144, -0.000000, -0.177485, -0.000000, 1.039325, -0.000000, 0.252411, -0.000000, 1.000000}, + {0.970039, -0.000000, -0.158026, -0.000000, 1.012321, -0.000000, 0.220625, -0.000000, 1.000000}, + {0.952546, -0.000000, -0.139411, -0.000000, 0.987297, -0.000000, 0.191264, -0.000000, 1.000000}, + {0.934977, -0.000000, -0.120574, -0.000000, 0.965056, -0.000000, 0.163709, -0.000000, 1.000000}, + {0.917043, -0.000000, -0.101592, -0.000000, 0.945727, -0.000000, 0.138122, -0.000000, 1.000000}, + {0.903555, -0.000000, -0.083195, -0.000000, 0.928961, -0.000000, 0.113702, -0.000000, 1.000000}, + {0.893154, -0.000000, -0.065870, -0.000000, 0.914673, -0.000000, 0.089974, -0.000000, 1.000000}, + {0.885244, -0.000000, -0.049363, -0.000000, 0.901701, -0.000000, 0.066657, -0.000000, 1.000000}, + {0.880259, -0.000000, -0.031656, -0.000000, 0.890309, -0.000000, 0.043354, -0.000000, 1.000000}, + {0.875875, -0.000000, -0.014862, -0.000000, 0.880188, -0.000000, 0.020891, -0.000000, 1.000000}, + {0.871043, -0.000000, 0.000256, -0.000000, 0.870945, -0.000000, -0.000137, -0.000000, 1.000000}, + {500.016571, -0.000000, -0.757465, -0.000000, 786.858398, -0.000000, 378.745361, -0.000000, 1.000000}, + {500.016571, -0.000000, -0.757465, -0.000000, 786.858398, -0.000000, 378.745361, -0.000000, 1.000000}, + {496.087402, -0.000000, -0.757465, -0.000000, 780.799805, -0.000000, 375.770020, -0.000000, 1.000000}, + {220.496460, -0.000000, -0.757456, -0.000000, 347.001892, -0.000000, 167.018478, -0.000000, 1.000000}, + {124.021706, -0.000000, -0.757437, -0.000000, 195.195587, -0.000000, 93.942039, -0.000000, 1.000000}, + {79.354782, -0.000000, -0.757394, -0.000000, 124.907188, -0.000000, 60.108276, -0.000000, 1.000000}, + {55.123611, -0.000000, -0.757317, -0.000000, 86.745041, -0.000000, 41.753639, -0.000000, 1.000000}, + {40.493320, -0.000000, -0.757190, -0.000000, 63.723457, -0.000000, 30.671453, -0.000000, 1.000000}, + {31.001829, -0.000000, -0.756997, -0.000000, 48.782738, -0.000000, 23.481710, -0.000000, 1.000000}, + {24.491461, -0.000000, -0.756715, -0.000000, 38.537193, -0.000000, 18.550026, -0.000000, 1.000000}, + {19.834652, -0.000000, -0.756324, -0.000000, 31.206244, -0.000000, 15.022271, -0.000000, 1.000000}, + {16.388771, -0.000000, -0.755801, -0.000000, 25.780468, -0.000000, 12.411734, -0.000000, 1.000000}, + {13.766821, -0.000000, -0.755119, -0.000000, 21.652681, -0.000000, 10.425264, -0.000000, 1.000000}, + {11.726192, -0.000000, -0.754249, -0.000000, 18.438374, -0.000000, 8.879026, -0.000000, 1.000000}, + {10.106738, -0.000000, -0.753154, -0.000000, 15.885935, -0.000000, 7.651758, -0.000000, 1.000000}, + {8.799608, -0.000000, -0.751759, -0.000000, 13.825396, -0.000000, 6.660956, -0.000000, 1.000000}, + {7.730100, -0.000000, -0.749701, -0.000000, 12.137217, -0.000000, 5.850013, -0.000000, 1.000000}, + {6.844899, -0.000000, -0.743462, -0.000000, 10.735440, -0.000000, 5.178157, -0.000000, 1.000000}, + {6.101553, -0.000000, -0.738226, -0.000000, 9.559602, -0.000000, 4.613752, -0.000000, 1.000000}, + {5.471830, -0.000000, -0.733636, -0.000000, 8.562824, -0.000000, 4.135220, -0.000000, 1.000000}, + {4.934471, -0.000000, -0.728749, -0.000000, 7.711218, -0.000000, 3.726457, -0.000000, 1.000000}, + {4.473125, -0.000000, -0.723497, -0.000000, 6.977385, -0.000000, 3.374942, -0.000000, 1.000000}, + {4.073567, -0.000000, -0.716803, -0.000000, 6.340463, -0.000000, 3.069777, -0.000000, 1.000000}, + {3.727019, -0.000000, -0.707811, -0.000000, 5.784211, -0.000000, 2.804099, -0.000000, 1.000000}, + {3.422580, -0.000000, -0.700011, -0.000000, 5.294843, -0.000000, 2.570042, -0.000000, 1.000000}, + {3.157044, -0.000000, -0.691252, -0.000000, 4.863124, -0.000000, 2.364830, -0.000000, 1.000000}, + {2.925684, -0.000000, -0.679736, -0.000000, 4.478961, -0.000000, 2.184515, -0.000000, 1.000000}, + {2.722253, -0.000000, -0.670128, -0.000000, 4.136032, -0.000000, 2.024818, -0.000000, 1.000000}, + {2.544445, -0.000000, -0.658046, -0.000000, 3.831401, -0.000000, 1.883826, -0.000000, 1.000000}, + {2.382300, -0.000000, -0.647027, -0.000000, 3.558311, -0.000000, 1.754153, -0.000000, 1.000000}, + {2.245936, -0.000000, -0.635682, -0.000000, 3.314620, -0.000000, 1.643791, -0.000000, 1.000000}, + {2.121977, -0.000000, -0.623786, -0.000000, 3.093869, -0.000000, 1.542036, -0.000000, 1.000000}, + {2.016015, -0.000000, -0.613245, -0.000000, 2.896573, -0.000000, 1.453048, -0.000000, 1.000000}, + {1.920516, -0.000000, -0.600915, -0.000000, 2.715904, -0.000000, 1.370420, -0.000000, 1.000000}, + {1.829693, -0.000000, -0.585172, -0.000000, 2.543165, -0.000000, 1.288862, -0.000000, 1.000000}, + {1.743612, -0.000000, -0.565172, -0.000000, 2.379242, -0.000000, 1.207866, -0.000000, 1.000000}, + {1.665633, -0.000000, -0.544631, -0.000000, 2.230448, -0.000000, 1.131523, -0.000000, 1.000000}, + {1.594965, -0.000000, -0.524193, -0.000000, 2.096458, -0.000000, 1.059918, -0.000000, 1.000000}, + {1.530862, -0.000000, -0.502763, -0.000000, 1.973897, -0.000000, 0.992010, -0.000000, 1.000000}, + {1.472046, -0.000000, -0.481219, -0.000000, 1.864800, -0.000000, 0.927470, -0.000000, 1.000000}, + {1.419386, -0.000000, -0.460845, -0.000000, 1.764531, -0.000000, 0.866984, -0.000000, 1.000000}, + {1.371530, -0.000000, -0.439620, -0.000000, 1.673750, -0.000000, 0.809381, -0.000000, 1.000000}, + {1.327209, -0.000000, -0.419270, -0.000000, 1.593743, -0.000000, 0.754078, -0.000000, 1.000000}, + {1.286139, -0.000000, -0.398293, -0.000000, 1.520195, -0.000000, 0.700851, -0.000000, 1.000000}, + {1.247699, -0.000000, -0.378401, -0.000000, 1.452214, -0.000000, 0.649469, -0.000000, 1.000000}, + {1.210732, -0.000000, -0.356349, -0.000000, 1.389294, -0.000000, 0.598509, -0.000000, 1.000000}, + {1.177412, -0.000000, -0.333050, -0.000000, 1.331034, -0.000000, 0.549290, -0.000000, 1.000000}, + {1.144334, -0.000000, -0.310286, -0.000000, 1.277276, -0.000000, 0.501625, -0.000000, 1.000000}, + {1.117230, -0.000000, -0.288298, -0.000000, 1.229205, -0.000000, 0.458115, -0.000000, 1.000000}, + {1.090315, -0.000000, -0.267211, -0.000000, 1.186310, -0.000000, 0.416001, -0.000000, 1.000000}, + {1.063710, -0.000000, -0.246106, -0.000000, 1.147072, -0.000000, 0.374799, -0.000000, 1.000000}, + {1.037720, -0.000000, -0.225958, -0.000000, 1.110195, -0.000000, 0.335533, -0.000000, 1.000000}, + {1.012769, -0.000000, -0.204172, -0.000000, 1.075655, -0.000000, 0.297130, -0.000000, 1.000000}, + {0.990244, -0.000000, -0.183358, -0.000000, 1.043497, -0.000000, 0.261470, -0.000000, 1.000000}, + {0.968461, -0.000000, -0.162830, -0.000000, 1.014392, -0.000000, 0.227643, -0.000000, 1.000000}, + {0.950116, -0.000000, -0.143248, -0.000000, 0.988938, -0.000000, 0.197337, -0.000000, 1.000000}, + {0.933208, -0.000000, -0.124340, -0.000000, 0.966441, -0.000000, 0.168937, -0.000000, 1.000000}, + {0.916615, -0.000000, -0.105101, -0.000000, 0.946501, -0.000000, 0.142467, -0.000000, 1.000000}, + {0.902946, -0.000000, -0.086103, -0.000000, 0.929131, -0.000000, 0.117331, -0.000000, 1.000000}, + {0.891502, -0.000000, -0.067630, -0.000000, 0.914060, -0.000000, 0.092642, -0.000000, 1.000000}, + {0.883863, -0.000000, -0.050308, -0.000000, 0.901030, -0.000000, 0.068653, -0.000000, 1.000000}, + {0.878615, -0.000000, -0.033412, -0.000000, 0.889532, -0.000000, 0.045106, -0.000000, 1.000000}, + {0.874271, -0.000000, -0.015795, -0.000000, 0.878952, -0.000000, 0.021789, -0.000000, 1.000000}, + {0.869484, -0.000000, 0.001046, -0.000000, 0.869574, -0.000000, -0.000553, -0.000000, 1.000000}, + {500.017303, -0.000000, -0.797466, -0.000000, 817.871033, -0.000000, 398.747833, -0.000000, 1.000000}, + {500.017303, -0.000000, -0.797466, -0.000000, 817.871033, -0.000000, 398.747833, -0.000000, 1.000000}, + {496.127563, -0.000000, -0.797467, -0.000000, 811.633179, -0.000000, 395.647186, -0.000000, 1.000000}, + {220.492523, -0.000000, -0.797459, -0.000000, 360.665405, -0.000000, 175.835709, -0.000000, 1.000000}, + {124.072601, -0.000000, -0.797435, -0.000000, 202.856842, -0.000000, 98.943756, -0.000000, 1.000000}, + {79.373917, -0.000000, -0.797385, -0.000000, 129.864807, -0.000000, 63.297756, -0.000000, 1.000000}, + {55.121258, -0.000000, -0.797295, -0.000000, 90.172737, -0.000000, 43.956730, -0.000000, 1.000000}, + {40.495140, -0.000000, -0.797146, -0.000000, 66.241463, -0.000000, 32.292618, -0.000000, 1.000000}, + {31.000458, -0.000000, -0.796920, -0.000000, 50.708515, -0.000000, 24.720581, -0.000000, 1.000000}, + {24.491554, -0.000000, -0.796592, -0.000000, 40.057415, -0.000000, 19.529551, -0.000000, 1.000000}, + {19.833290, -0.000000, -0.796136, -0.000000, 32.436165, -0.000000, 15.814341, -0.000000, 1.000000}, + {16.386721, -0.000000, -0.795526, -0.000000, 26.795473, -0.000000, 13.065339, -0.000000, 1.000000}, + {13.764978, -0.000000, -0.794731, -0.000000, 22.503210, -0.000000, 10.974028, -0.000000, 1.000000}, + {11.723998, -0.000000, -0.793717, -0.000000, 19.161100, -0.000000, 9.345816, -0.000000, 1.000000}, + {10.104026, -0.000000, -0.792437, -0.000000, 16.507286, -0.000000, 8.053266, -0.000000, 1.000000}, + {8.796682, -0.000000, -0.790791, -0.000000, 14.364434, -0.000000, 7.009870, -0.000000, 1.000000}, + {7.726801, -0.000000, -0.788135, -0.000000, 12.608691, -0.000000, 6.155709, -0.000000, 1.000000}, + {6.840981, -0.000000, -0.781123, -0.000000, 11.149081, -0.000000, 5.447814, -0.000000, 1.000000}, + {6.097093, -0.000000, -0.775400, -0.000000, 9.924636, -0.000000, 4.853001, -0.000000, 1.000000}, + {5.467016, -0.000000, -0.770942, -0.000000, 8.887487, -0.000000, 4.348842, -0.000000, 1.000000}, + {4.929003, -0.000000, -0.765887, -0.000000, 8.000960, -0.000000, 3.917835, -0.000000, 1.000000}, + {4.467512, -0.000000, -0.759514, -0.000000, 7.237631, -0.000000, 3.547466, -0.000000, 1.000000}, + {4.067760, -0.000000, -0.751551, -0.000000, 6.573490, -0.000000, 3.225742, -0.000000, 1.000000}, + {3.720563, -0.000000, -0.742531, -0.000000, 5.994136, -0.000000, 2.945441, -0.000000, 1.000000}, + {3.416248, -0.000000, -0.733854, -0.000000, 5.484142, -0.000000, 2.698927, -0.000000, 1.000000}, + {3.151365, -0.000000, -0.724136, -0.000000, 5.033256, -0.000000, 2.483075, -0.000000, 1.000000}, + {2.920730, -0.000000, -0.712086, -0.000000, 4.631833, -0.000000, 2.293504, -0.000000, 1.000000}, + {2.715982, -0.000000, -0.701324, -0.000000, 4.273705, -0.000000, 2.124066, -0.000000, 1.000000}, + {2.535126, -0.000000, -0.687603, -0.000000, 3.955679, -0.000000, 1.972982, -0.000000, 1.000000}, + {2.377020, -0.000000, -0.675481, -0.000000, 3.667966, -0.000000, 1.839237, -0.000000, 1.000000}, + {2.237835, -0.000000, -0.662376, -0.000000, 3.410899, -0.000000, 1.720161, -0.000000, 1.000000}, + {2.116522, -0.000000, -0.649335, -0.000000, 3.179844, -0.000000, 1.614362, -0.000000, 1.000000}, + {2.010905, -0.000000, -0.636700, -0.000000, 2.972357, -0.000000, 1.520011, -0.000000, 1.000000}, + {1.916303, -0.000000, -0.623563, -0.000000, 2.782754, -0.000000, 1.433122, -0.000000, 1.000000}, + {1.830436, -0.000000, -0.608887, -0.000000, 2.608755, -0.000000, 1.351484, -0.000000, 1.000000}, + {1.743522, -0.000000, -0.588093, -0.000000, 2.439840, -0.000000, 1.265660, -0.000000, 1.000000}, + {1.665256, -0.000000, -0.567021, -0.000000, 2.284506, -0.000000, 1.184838, -0.000000, 1.000000}, + {1.595436, -0.000000, -0.544727, -0.000000, 2.142789, -0.000000, 1.109166, -0.000000, 1.000000}, + {1.529808, -0.000000, -0.522298, -0.000000, 2.015306, -0.000000, 1.036543, -0.000000, 1.000000}, + {1.471729, -0.000000, -0.499149, -0.000000, 1.899347, -0.000000, 0.968507, -0.000000, 1.000000}, + {1.418189, -0.000000, -0.477280, -0.000000, 1.795287, -0.000000, 0.903782, -0.000000, 1.000000}, + {1.371309, -0.000000, -0.455059, -0.000000, 1.700773, -0.000000, 0.843494, -0.000000, 1.000000}, + {1.327345, -0.000000, -0.432719, -0.000000, 1.615324, -0.000000, 0.784955, -0.000000, 1.000000}, + {1.286379, -0.000000, -0.411237, -0.000000, 1.539990, -0.000000, 0.729372, -0.000000, 1.000000}, + {1.247780, -0.000000, -0.389590, -0.000000, 1.468775, -0.000000, 0.674986, -0.000000, 1.000000}, + {1.211524, -0.000000, -0.367984, -0.000000, 1.405173, -0.000000, 0.622546, -0.000000, 1.000000}, + {1.177005, -0.000000, -0.344678, -0.000000, 1.345087, -0.000000, 0.570945, -0.000000, 1.000000}, + {1.145418, -0.000000, -0.320562, -0.000000, 1.289806, -0.000000, 0.521267, -0.000000, 1.000000}, + {1.114639, -0.000000, -0.297473, -0.000000, 1.239357, -0.000000, 0.473857, -0.000000, 1.000000}, + {1.090549, -0.000000, -0.275152, -0.000000, 1.194652, -0.000000, 0.430556, -0.000000, 1.000000}, + {1.064188, -0.000000, -0.253187, -0.000000, 1.153395, -0.000000, 0.388250, -0.000000, 1.000000}, + {1.038570, -0.000000, -0.232337, -0.000000, 1.116358, -0.000000, 0.347149, -0.000000, 1.000000}, + {1.013901, -0.000000, -0.210886, -0.000000, 1.081003, -0.000000, 0.307919, -0.000000, 1.000000}, + {0.990528, -0.000000, -0.189382, -0.000000, 1.048208, -0.000000, 0.270504, -0.000000, 1.000000}, + {0.968848, -0.000000, -0.167786, -0.000000, 1.017692, -0.000000, 0.235323, -0.000000, 1.000000}, + {0.949038, -0.000000, -0.147367, -0.000000, 0.990954, -0.000000, 0.203049, -0.000000, 1.000000}, + {0.931911, -0.000000, -0.127610, -0.000000, 0.967629, -0.000000, 0.173836, -0.000000, 1.000000}, + {0.915025, -0.000000, -0.108382, -0.000000, 0.947114, -0.000000, 0.146519, -0.000000, 1.000000}, + {0.900909, -0.000000, -0.089164, -0.000000, 0.929632, -0.000000, 0.120909, -0.000000, 1.000000}, + {0.890059, -0.000000, -0.069694, -0.000000, 0.913788, -0.000000, 0.095417, -0.000000, 1.000000}, + {0.882400, -0.000000, -0.051166, -0.000000, 0.900090, -0.000000, 0.070433, -0.000000, 1.000000}, + {0.876997, -0.000000, -0.034103, -0.000000, 0.888359, -0.000000, 0.046330, -0.000000, 1.000000}, + {0.872843, -0.000000, -0.017226, -0.000000, 0.877864, -0.000000, 0.022875, -0.000000, 1.000000}, + {0.868087, -0.000000, 0.000993, -0.000000, 0.868095, -0.000000, -0.000517, -0.000000, 1.000000}, + {500.061951, -0.000000, -0.839092, -0.000000, 852.310974, -0.000000, 419.597229, -0.000000, 1.000000}, + {500.061951, -0.000000, -0.839092, -0.000000, 852.310974, -0.000000, 419.597229, -0.000000, 1.000000}, + {496.196442, -0.000000, -0.839093, -0.000000, 845.390015, -0.000000, 416.356049, -0.000000, 1.000000}, + {220.471832, -0.000000, -0.839081, -0.000000, 375.759491, -0.000000, 184.996674, -0.000000, 1.000000}, + {124.015244, -0.000000, -0.839055, -0.000000, 211.417328, -0.000000, 104.060410, -0.000000, 1.000000}, + {79.380630, -0.000000, -0.838997, -0.000000, 135.254730, -0.000000, 66.607300, -0.000000, 1.000000}, + {55.120049, -0.000000, -0.838891, -0.000000, 93.925743, -0.000000, 46.250122, -0.000000, 1.000000}, + {40.490086, -0.000000, -0.838720, -0.000000, 69.000076, -0.000000, 33.973907, -0.000000, 1.000000}, + {30.997051, -0.000000, -0.838455, -0.000000, 52.817276, -0.000000, 26.007944, -0.000000, 1.000000}, + {24.481707, -0.000000, -0.838073, -0.000000, 41.730366, -0.000000, 20.540449, -0.000000, 1.000000}, + {19.833473, -0.000000, -0.837542, -0.000000, 33.779564, -0.000000, 16.639612, -0.000000, 1.000000}, + {16.385019, -0.000000, -0.836833, -0.000000, 27.906063, -0.000000, 13.745603, -0.000000, 1.000000}, + {13.762700, -0.000000, -0.835907, -0.000000, 23.434160, -0.000000, 11.544593, -0.000000, 1.000000}, + {11.721079, -0.000000, -0.834725, -0.000000, 19.951761, -0.000000, 9.830773, -0.000000, 1.000000}, + {10.100230, -0.000000, -0.833233, -0.000000, 17.187639, -0.000000, 8.469976, -0.000000, 1.000000}, + {8.793116, -0.000000, -0.831283, -0.000000, 14.953251, -0.000000, 7.372204, -0.000000, 1.000000}, + {7.723076, -0.000000, -0.827602, -0.000000, 13.123185, -0.000000, 6.473154, -0.000000, 1.000000}, + {6.836372, -0.000000, -0.819847, -0.000000, 11.599359, -0.000000, 5.727441, -0.000000, 1.000000}, + {6.091511, -0.000000, -0.814450, -0.000000, 10.322539, -0.000000, 5.100740, -0.000000, 1.000000}, + {5.461082, -0.000000, -0.809315, -0.000000, 9.241489, -0.000000, 4.569826, -0.000000, 1.000000}, + {4.922778, -0.000000, -0.804183, -0.000000, 8.316956, -0.000000, 4.115965, -0.000000, 1.000000}, + {4.460990, -0.000000, -0.796565, -0.000000, 7.520323, -0.000000, 3.725735, -0.000000, 1.000000}, + {4.061113, -0.000000, -0.787762, -0.000000, 6.826444, -0.000000, 3.386944, -0.000000, 1.000000}, + {3.713335, -0.000000, -0.778575, -0.000000, 6.222120, -0.000000, 3.091404, -0.000000, 1.000000}, + {3.409401, -0.000000, -0.769000, -0.000000, 5.689177, -0.000000, 2.832045, -0.000000, 1.000000}, + {3.145958, -0.000000, -0.757468, -0.000000, 5.216529, -0.000000, 2.605641, -0.000000, 1.000000}, + {2.913903, -0.000000, -0.745044, -0.000000, 4.797429, -0.000000, 2.405021, -0.000000, 1.000000}, + {2.706408, -0.000000, -0.732698, -0.000000, 4.423292, -0.000000, 2.224132, -0.000000, 1.000000}, + {2.528517, -0.000000, -0.718415, -0.000000, 4.087810, -0.000000, 2.067148, -0.000000, 1.000000}, + {2.368678, -0.000000, -0.704462, -0.000000, 3.787008, -0.000000, 1.924415, -0.000000, 1.000000}, + {2.231644, -0.000000, -0.689712, -0.000000, 3.514945, -0.000000, 1.800064, -0.000000, 1.000000}, + {2.111736, -0.000000, -0.675275, -0.000000, 3.272635, -0.000000, 1.689158, -0.000000, 1.000000}, + {2.005742, -0.000000, -0.660258, -0.000000, 3.051764, -0.000000, 1.588759, -0.000000, 1.000000}, + {1.909973, -0.000000, -0.646635, -0.000000, 2.855904, -0.000000, 1.496072, -0.000000, 1.000000}, + {1.819564, -0.000000, -0.631361, -0.000000, 2.678693, -0.000000, 1.406525, -0.000000, 1.000000}, + {1.738574, -0.000000, -0.611670, -0.000000, 2.506556, -0.000000, 1.321244, -0.000000, 1.000000}, + {1.660726, -0.000000, -0.589152, -0.000000, 2.342970, -0.000000, 1.236298, -0.000000, 1.000000}, + {1.590554, -0.000000, -0.565663, -0.000000, 2.194014, -0.000000, 1.156271, -0.000000, 1.000000}, + {1.526449, -0.000000, -0.541301, -0.000000, 2.059833, -0.000000, 1.080103, -0.000000, 1.000000}, + {1.467188, -0.000000, -0.517240, -0.000000, 1.938357, -0.000000, 1.007356, -0.000000, 1.000000}, + {1.414559, -0.000000, -0.493476, -0.000000, 1.828179, -0.000000, 0.939381, -0.000000, 1.000000}, + {1.370525, -0.000000, -0.470171, -0.000000, 1.729083, -0.000000, 0.877393, -0.000000, 1.000000}, + {1.325549, -0.000000, -0.446532, -0.000000, 1.639331, -0.000000, 0.815431, -0.000000, 1.000000}, + {1.286233, -0.000000, -0.423341, -0.000000, 1.559244, -0.000000, 0.757016, -0.000000, 1.000000}, + {1.247492, -0.000000, -0.401134, -0.000000, 1.486929, -0.000000, 0.700020, -0.000000, 1.000000}, + {1.212348, -0.000000, -0.378347, -0.000000, 1.420771, -0.000000, 0.645661, -0.000000, 1.000000}, + {1.177561, -0.000000, -0.355993, -0.000000, 1.359709, -0.000000, 0.592399, -0.000000, 1.000000}, + {1.145355, -0.000000, -0.330840, -0.000000, 1.302774, -0.000000, 0.540237, -0.000000, 1.000000}, + {1.114929, -0.000000, -0.306848, -0.000000, 1.250311, -0.000000, 0.490992, -0.000000, 1.000000}, + {1.089528, -0.000000, -0.282816, -0.000000, 1.203116, -0.000000, 0.444872, -0.000000, 1.000000}, + {1.063232, -0.000000, -0.260588, -0.000000, 1.160838, -0.000000, 0.400718, -0.000000, 1.000000}, + {1.039013, -0.000000, -0.237949, -0.000000, 1.121873, -0.000000, 0.358791, -0.000000, 1.000000}, + {1.014354, -0.000000, -0.216970, -0.000000, 1.086610, -0.000000, 0.318310, -0.000000, 1.000000}, + {0.991115, -0.000000, -0.195158, -0.000000, 1.052459, -0.000000, 0.279775, -0.000000, 1.000000}, + {0.968756, -0.000000, -0.173124, -0.000000, 1.021447, -0.000000, 0.243295, -0.000000, 1.000000}, + {0.949337, -0.000000, -0.151596, -0.000000, 0.993445, -0.000000, 0.209255, -0.000000, 1.000000}, + {0.931425, -0.000000, -0.130794, -0.000000, 0.968499, -0.000000, 0.178360, -0.000000, 1.000000}, + {0.913483, -0.000000, -0.111179, -0.000000, 0.947533, -0.000000, 0.150638, -0.000000, 1.000000}, + {0.898757, -0.000000, -0.091677, -0.000000, 0.929436, -0.000000, 0.124443, -0.000000, 1.000000}, + {0.888046, -0.000000, -0.072420, -0.000000, 0.913495, -0.000000, 0.098317, -0.000000, 1.000000}, + {0.880235, -0.000000, -0.052744, -0.000000, 0.899423, -0.000000, 0.072399, -0.000000, 1.000000}, + {0.875197, -0.000000, -0.034421, -0.000000, 0.887249, -0.000000, 0.047351, -0.000000, 1.000000}, + {0.871148, -0.000000, -0.017173, -0.000000, 0.876458, -0.000000, 0.023356, -0.000000, 1.000000}, + {0.866682, -0.000000, -0.000118, -0.000000, 0.866652, -0.000000, 0.000045, -0.000000, 1.000000}, + {500.131042, -0.000000, -0.882497, -0.000000, 889.079346, -0.000000, 441.363556, -0.000000, 1.000000}, + {500.131042, -0.000000, -0.882497, -0.000000, 889.079346, -0.000000, 441.363556, -0.000000, 1.000000}, + {495.881348, -0.000000, -0.882497, -0.000000, 882.177551, -0.000000, 437.613770, -0.000000, 1.000000}, + {220.509079, -0.000000, -0.882485, -0.000000, 392.221130, -0.000000, 194.599243, -0.000000, 1.000000}, + {124.028885, -0.000000, -0.882453, -0.000000, 220.623901, -0.000000, 109.455116, -0.000000, 1.000000}, + {79.377640, -0.000000, -0.882386, -0.000000, 141.192078, -0.000000, 70.050079, -0.000000, 1.000000}, + {55.118439, -0.000000, -0.882263, -0.000000, 98.043686, -0.000000, 48.640995, -0.000000, 1.000000}, + {40.493782, -0.000000, -0.882064, -0.000000, 72.019936, -0.000000, 35.734364, -0.000000, 1.000000}, + {30.999401, -0.000000, -0.881756, -0.000000, 55.125107, -0.000000, 27.355206, -0.000000, 1.000000}, + {24.487234, -0.000000, -0.881312, -0.000000, 43.546761, -0.000000, 21.607693, -0.000000, 1.000000}, + {19.829800, -0.000000, -0.880694, -0.000000, 35.258209, -0.000000, 17.496971, -0.000000, 1.000000}, + {16.382486, -0.000000, -0.879869, -0.000000, 29.123596, -0.000000, 14.454084, -0.000000, 1.000000}, + {13.760002, -0.000000, -0.878792, -0.000000, 24.454414, -0.000000, 12.139007, -0.000000, 1.000000}, + {11.717984, -0.000000, -0.877418, -0.000000, 20.818827, -0.000000, 10.336102, -0.000000, 1.000000}, + {10.097014, -0.000000, -0.875677, -0.000000, 17.930525, -0.000000, 8.904661, -0.000000, 1.000000}, + {8.789146, -0.000000, -0.873344, -0.000000, 15.597968, -0.000000, 7.749365, -0.000000, 1.000000}, + {7.718943, -0.000000, -0.867686, -0.000000, 13.683362, -0.000000, 6.803425, -0.000000, 1.000000}, + {6.830849, -0.000000, -0.860952, -0.000000, 12.092108, -0.000000, 6.017935, -0.000000, 1.000000}, + {6.085179, -0.000000, -0.855248, -0.000000, 10.758094, -0.000000, 5.357964, -0.000000, 1.000000}, + {5.454656, -0.000000, -0.849018, -0.000000, 9.627773, -0.000000, 4.799277, -0.000000, 1.000000}, + {4.915613, -0.000000, -0.843686, -0.000000, 8.661961, -0.000000, 4.321169, -0.000000, 1.000000}, + {4.453752, -0.000000, -0.834738, -0.000000, 7.827643, -0.000000, 3.910462, -0.000000, 1.000000}, + {4.053242, -0.000000, -0.825356, -0.000000, 7.102279, -0.000000, 3.553410, -0.000000, 1.000000}, + {3.705397, -0.000000, -0.815419, -0.000000, 6.469771, -0.000000, 3.242329, -0.000000, 1.000000}, + {3.402260, -0.000000, -0.804816, -0.000000, 5.911213, -0.000000, 2.969801, -0.000000, 1.000000}, + {3.140205, -0.000000, -0.792056, -0.000000, 5.414690, -0.000000, 2.732658, -0.000000, 1.000000}, + {2.903370, -0.000000, -0.778928, -0.000000, 4.978415, -0.000000, 2.517220, -0.000000, 1.000000}, + {2.700214, -0.000000, -0.764462, -0.000000, 4.582938, -0.000000, 2.330147, -0.000000, 1.000000}, + {2.519197, -0.000000, -0.749486, -0.000000, 4.231819, -0.000000, 2.162038, -0.000000, 1.000000}, + {2.363564, -0.000000, -0.733487, -0.000000, 3.913390, -0.000000, 2.015040, -0.000000, 1.000000}, + {2.226328, -0.000000, -0.717834, -0.000000, 3.626251, -0.000000, 1.883066, -0.000000, 1.000000}, + {2.107657, -0.000000, -0.701267, -0.000000, 3.369889, -0.000000, 1.766898, -0.000000, 1.000000}, + {1.998437, -0.000000, -0.684466, -0.000000, 3.138471, -0.000000, 1.657171, -0.000000, 1.000000}, + {1.899259, -0.000000, -0.669577, -0.000000, 2.934640, -0.000000, 1.556509, -0.000000, 1.000000}, + {1.814318, -0.000000, -0.652042, -0.000000, 2.745214, -0.000000, 1.465691, -0.000000, 1.000000}, + {1.736606, -0.000000, -0.633872, -0.000000, 2.572179, -0.000000, 1.379555, -0.000000, 1.000000}, + {1.661191, -0.000000, -0.611125, -0.000000, 2.402454, -0.000000, 1.291961, -0.000000, 1.000000}, + {1.590615, -0.000000, -0.586628, -0.000000, 2.247036, -0.000000, 1.207066, -0.000000, 1.000000}, + {1.526334, -0.000000, -0.560843, -0.000000, 2.106422, -0.000000, 1.126522, -0.000000, 1.000000}, + {1.467914, -0.000000, -0.535057, -0.000000, 1.978291, -0.000000, 1.049531, -0.000000, 1.000000}, + {1.414042, -0.000000, -0.510065, -0.000000, 1.862797, -0.000000, 0.977122, -0.000000, 1.000000}, + {1.365696, -0.000000, -0.485082, -0.000000, 1.758440, -0.000000, 0.908894, -0.000000, 1.000000}, + {1.321159, -0.000000, -0.460233, -0.000000, 1.665493, -0.000000, 0.843520, -0.000000, 1.000000}, + {1.284118, -0.000000, -0.435750, -0.000000, 1.580328, -0.000000, 0.783909, -0.000000, 1.000000}, + {1.248044, -0.000000, -0.412070, -0.000000, 1.504833, -0.000000, 0.725637, -0.000000, 1.000000}, + {1.211028, -0.000000, -0.388556, -0.000000, 1.436081, -0.000000, 0.667618, -0.000000, 1.000000}, + {1.178240, -0.000000, -0.365558, -0.000000, 1.373633, -0.000000, 0.613518, -0.000000, 1.000000}, + {1.145880, -0.000000, -0.341586, -0.000000, 1.316458, -0.000000, 0.559875, -0.000000, 1.000000}, + {1.116671, -0.000000, -0.315906, -0.000000, 1.261373, -0.000000, 0.508747, -0.000000, 1.000000}, + {1.086212, -0.000000, -0.291249, -0.000000, 1.211337, -0.000000, 0.458242, -0.000000, 1.000000}, + {1.062977, -0.000000, -0.267059, -0.000000, 1.167779, -0.000000, 0.413072, -0.000000, 1.000000}, + {1.036993, -0.000000, -0.244402, -0.000000, 1.128034, -0.000000, 0.369039, -0.000000, 1.000000}, + {1.014246, -0.000000, -0.221603, -0.000000, 1.091346, -0.000000, 0.327930, -0.000000, 1.000000}, + {0.991596, -0.000000, -0.200200, -0.000000, 1.057211, -0.000000, 0.288680, -0.000000, 1.000000}, + {0.969782, -0.000000, -0.178648, -0.000000, 1.024976, -0.000000, 0.251601, -0.000000, 1.000000}, + {0.948710, -0.000000, -0.155682, -0.000000, 0.996039, -0.000000, 0.215546, -0.000000, 1.000000}, + {0.930451, -0.000000, -0.134603, -0.000000, 0.969911, -0.000000, 0.183457, -0.000000, 1.000000}, + {0.912840, -0.000000, -0.113499, -0.000000, 0.947872, -0.000000, 0.154009, -0.000000, 1.000000}, + {0.897718, -0.000000, -0.093768, -0.000000, 0.929566, -0.000000, 0.127358, -0.000000, 1.000000}, + {0.886099, -0.000000, -0.074419, -0.000000, 0.913216, -0.000000, 0.100924, -0.000000, 1.000000}, + {0.878136, -0.000000, -0.055149, -0.000000, 0.898608, -0.000000, 0.074780, -0.000000, 1.000000}, + {0.873177, -0.000000, -0.035307, -0.000000, 0.886040, -0.000000, 0.048633, -0.000000, 1.000000}, + {0.869362, -0.000000, -0.016836, -0.000000, 0.874910, -0.000000, 0.023622, -0.000000, 1.000000}, + {0.864932, -0.000000, 0.000313, -0.000000, 0.864848, -0.000000, -0.000105, -0.000000, 1.000000}, + {499.908478, -0.000000, -0.927855, -0.000000, 930.500305, -0.000000, 463.842773, -0.000000, 1.000000}, + {499.908478, -0.000000, -0.927855, -0.000000, 930.500305, -0.000000, 463.842773, -0.000000, 1.000000}, + {496.019867, -0.000000, -0.927855, -0.000000, 923.053040, -0.000000, 460.236145, -0.000000, 1.000000}, + {220.502594, -0.000000, -0.927841, -0.000000, 410.345581, -0.000000, 204.594955, -0.000000, 1.000000}, + {124.029205, -0.000000, -0.927803, -0.000000, 230.803741, -0.000000, 115.081070, -0.000000, 1.000000}, + {79.378181, -0.000000, -0.927727, -0.000000, 147.705490, -0.000000, 73.650932, -0.000000, 1.000000}, + {55.116497, -0.000000, -0.927583, -0.000000, 102.567078, -0.000000, 51.139164, -0.000000, 1.000000}, + {40.490452, -0.000000, -0.927351, -0.000000, 75.345779, -0.000000, 37.567810, -0.000000, 1.000000}, + {30.996964, -0.000000, -0.926994, -0.000000, 57.670261, -0.000000, 28.758696, -0.000000, 1.000000}, + {24.488325, -0.000000, -0.926478, -0.000000, 45.551537, -0.000000, 22.719057, -0.000000, 1.000000}, + {19.827961, -0.000000, -0.925760, -0.000000, 36.881195, -0.000000, 18.394314, -0.000000, 1.000000}, + {16.379869, -0.000000, -0.924802, -0.000000, 30.461296, -0.000000, 15.194170, -0.000000, 1.000000}, + {13.756917, -0.000000, -0.923550, -0.000000, 25.574484, -0.000000, 12.759556, -0.000000, 1.000000}, + {11.714156, -0.000000, -0.921954, -0.000000, 21.769402, -0.000000, 10.863268, -0.000000, 1.000000}, + {10.093195, -0.000000, -0.919921, -0.000000, 18.746195, -0.000000, 9.358130, -0.000000, 1.000000}, + {8.784454, -0.000000, -0.917080, -0.000000, 16.304501, -0.000000, 8.142523, -0.000000, 1.000000}, + {7.713624, -0.000000, -0.909769, -0.000000, 14.297624, -0.000000, 7.147200, -0.000000, 1.000000}, + {6.823885, -0.000000, -0.903473, -0.000000, 12.631841, -0.000000, 6.319734, -0.000000, 1.000000}, + {6.077799, -0.000000, -0.897557, -0.000000, 11.234589, -0.000000, 5.625329, -0.000000, 1.000000}, + {5.446403, -0.000000, -0.890848, -0.000000, 10.050310, -0.000000, 5.036999, -0.000000, 1.000000}, + {4.907801, -0.000000, -0.884419, -0.000000, 9.038234, -0.000000, 4.534451, -0.000000, 1.000000}, + {4.445316, -0.000000, -0.873740, -0.000000, 8.162788, -0.000000, 4.101727, -0.000000, 1.000000}, + {4.044328, -0.000000, -0.864251, -0.000000, 7.402873, -0.000000, 3.725650, -0.000000, 1.000000}, + {3.696771, -0.000000, -0.852993, -0.000000, 6.738603, -0.000000, 3.398484, -0.000000, 1.000000}, + {3.395342, -0.000000, -0.841136, -0.000000, 6.151515, -0.000000, 3.113235, -0.000000, 1.000000}, + {3.127434, -0.000000, -0.827421, -0.000000, 5.632942, -0.000000, 2.858315, -0.000000, 1.000000}, + {2.895621, -0.000000, -0.813156, -0.000000, 5.172462, -0.000000, 2.635826, -0.000000, 1.000000}, + {2.690136, -0.000000, -0.797548, -0.000000, 4.757117, -0.000000, 2.436781, -0.000000, 1.000000}, + {2.512220, -0.000000, -0.781254, -0.000000, 4.385640, -0.000000, 2.261955, -0.000000, 1.000000}, + {2.358229, -0.000000, -0.763409, -0.000000, 4.048933, -0.000000, 2.108631, -0.000000, 1.000000}, + {2.218923, -0.000000, -0.746178, -0.000000, 3.746610, -0.000000, 1.967116, -0.000000, 1.000000}, + {2.092763, -0.000000, -0.727519, -0.000000, 3.478552, -0.000000, 1.837282, -0.000000, 1.000000}, + {1.986424, -0.000000, -0.709407, -0.000000, 3.234240, -0.000000, 1.724144, -0.000000, 1.000000}, + {1.892072, -0.000000, -0.692215, -0.000000, 3.014810, -0.000000, 1.620646, -0.000000, 1.000000}, + {1.809130, -0.000000, -0.673452, -0.000000, 2.817690, -0.000000, 1.526411, -0.000000, 1.000000}, + {1.733035, -0.000000, -0.654370, -0.000000, 2.637035, -0.000000, 1.436569, -0.000000, 1.000000}, + {1.658695, -0.000000, -0.633478, -0.000000, 2.467819, -0.000000, 1.346815, -0.000000, 1.000000}, + {1.588832, -0.000000, -0.607105, -0.000000, 2.302829, -0.000000, 1.257592, -0.000000, 1.000000}, + {1.527209, -0.000000, -0.580322, -0.000000, 2.154327, -0.000000, 1.174574, -0.000000, 1.000000}, + {1.468240, -0.000000, -0.552996, -0.000000, 2.019936, -0.000000, 1.092972, -0.000000, 1.000000}, + {1.414084, -0.000000, -0.526105, -0.000000, 1.899011, -0.000000, 1.015422, -0.000000, 1.000000}, + {1.365278, -0.000000, -0.500260, -0.000000, 1.789665, -0.000000, 0.943152, -0.000000, 1.000000}, + {1.320623, -0.000000, -0.473509, -0.000000, 1.691689, -0.000000, 0.874706, -0.000000, 1.000000}, + {1.279080, -0.000000, -0.448183, -0.000000, 1.602969, -0.000000, 0.808758, -0.000000, 1.000000}, + {1.245666, -0.000000, -0.422511, -0.000000, 1.523303, -0.000000, 0.749607, -0.000000, 1.000000}, + {1.211175, -0.000000, -0.398514, -0.000000, 1.451762, -0.000000, 0.690656, -0.000000, 1.000000}, + {1.177195, -0.000000, -0.374133, -0.000000, 1.386911, -0.000000, 0.632779, -0.000000, 1.000000}, + {1.146160, -0.000000, -0.350095, -0.000000, 1.329179, -0.000000, 0.578229, -0.000000, 1.000000}, + {1.115566, -0.000000, -0.325518, -0.000000, 1.273694, -0.000000, 0.525008, -0.000000, 1.000000}, + {1.086968, -0.000000, -0.299404, -0.000000, 1.221791, -0.000000, 0.473555, -0.000000, 1.000000}, + {1.061792, -0.000000, -0.274184, -0.000000, 1.175437, -0.000000, 0.425841, -0.000000, 1.000000}, + {1.036679, -0.000000, -0.250434, -0.000000, 1.134076, -0.000000, 0.379570, -0.000000, 1.000000}, + {1.012360, -0.000000, -0.226726, -0.000000, 1.096226, -0.000000, 0.336435, -0.000000, 1.000000}, + {0.989209, -0.000000, -0.204502, -0.000000, 1.061142, -0.000000, 0.296004, -0.000000, 1.000000}, + {0.970135, -0.000000, -0.182453, -0.000000, 1.028751, -0.000000, 0.258358, -0.000000, 1.000000}, + {0.948646, -0.000000, -0.160789, -0.000000, 0.998611, -0.000000, 0.222258, -0.000000, 1.000000}, + {0.929732, -0.000000, -0.138072, -0.000000, 0.971441, -0.000000, 0.188430, -0.000000, 1.000000}, + {0.912429, -0.000000, -0.116434, -0.000000, 0.948350, -0.000000, 0.157687, -0.000000, 1.000000}, + {0.895975, -0.000000, -0.095600, -0.000000, 0.928999, -0.000000, 0.130181, -0.000000, 1.000000}, + {0.884479, -0.000000, -0.075905, -0.000000, 0.912408, -0.000000, 0.103223, -0.000000, 1.000000}, + {0.876235, -0.000000, -0.056627, -0.000000, 0.897797, -0.000000, 0.076690, -0.000000, 1.000000}, + {0.871366, -0.000000, -0.037032, -0.000000, 0.884918, -0.000000, 0.050406, -0.000000, 1.000000}, + {0.867513, -0.000000, -0.017359, -0.000000, 0.873494, -0.000000, 0.024282, -0.000000, 1.000000}, + {0.862955, -0.000000, 0.001008, -0.000000, 0.862967, -0.000000, -0.000406, -0.000000, 1.000000}, + {498.993134, -0.000000, -0.975364, -0.000000, 976.678406, -0.000000, 486.700562, -0.000000, 1.000000}, + {498.993134, -0.000000, -0.975364, -0.000000, 976.678406, -0.000000, 486.700562, -0.000000, 1.000000}, + {496.104645, -0.000000, -0.975363, -0.000000, 968.191040, -0.000000, 483.884094, -0.000000, 1.000000}, + {220.493851, -0.000000, -0.975346, -0.000000, 430.348663, -0.000000, 215.060410, -0.000000, 1.000000}, + {124.026276, -0.000000, -0.975303, -0.000000, 242.001144, -0.000000, 120.970490, -0.000000, 1.000000}, + {79.373550, -0.000000, -0.975213, -0.000000, 154.865677, -0.000000, 77.417633, -0.000000, 1.000000}, + {55.121506, -0.000000, -0.975046, -0.000000, 107.539261, -0.000000, 53.762280, -0.000000, 1.000000}, + {40.495274, -0.000000, -0.974777, -0.000000, 79.001297, -0.000000, 39.495827, -0.000000, 1.000000}, + {30.994772, -0.000000, -0.974362, -0.000000, 60.471733, -0.000000, 30.228813, -0.000000, 1.000000}, + {24.483818, -0.000000, -0.973762, -0.000000, 47.757706, -0.000000, 23.877586, -0.000000, 1.000000}, + {19.826784, -0.000000, -0.972930, -0.000000, 38.664623, -0.000000, 19.334599, -0.000000, 1.000000}, + {16.377377, -0.000000, -0.971816, -0.000000, 31.930515, -0.000000, 15.969238, -0.000000, 1.000000}, + {13.753089, -0.000000, -0.970365, -0.000000, 26.807053, -0.000000, 13.408640, -0.000000, 1.000000}, + {11.710072, -0.000000, -0.968508, -0.000000, 22.814585, -0.000000, 11.414821, -0.000000, 1.000000}, + {10.088183, -0.000000, -0.966128, -0.000000, 19.643433, -0.000000, 9.831615, -0.000000, 1.000000}, + {8.779231, -0.000000, -0.962527, -0.000000, 17.080414, -0.000000, 8.553432, -0.000000, 1.000000}, + {7.706794, -0.000000, -0.954200, -0.000000, 14.971908, -0.000000, 7.505392, -0.000000, 1.000000}, + {6.816430, -0.000000, -0.947334, -0.000000, 13.222908, -0.000000, 6.634820, -0.000000, 1.000000}, + {6.069510, -0.000000, -0.941459, -0.000000, 11.756576, -0.000000, 5.903896, -0.000000, 1.000000}, + {5.437681, -0.000000, -0.934260, -0.000000, 10.513264, -0.000000, 5.284787, -0.000000, 1.000000}, + {4.898997, -0.000000, -0.926350, -0.000000, 9.449535, -0.000000, 4.756173, -0.000000, 1.000000}, + {4.435613, -0.000000, -0.914688, -0.000000, 8.529024, -0.000000, 4.300109, -0.000000, 1.000000}, + {4.034491, -0.000000, -0.904784, -0.000000, 7.731143, -0.000000, 3.904481, -0.000000, 1.000000}, + {3.687969, -0.000000, -0.891974, -0.000000, 7.031538, -0.000000, 3.561143, -0.000000, 1.000000}, + {3.385607, -0.000000, -0.878620, -0.000000, 6.413283, -0.000000, 3.260022, -0.000000, 1.000000}, + {3.117722, -0.000000, -0.864378, -0.000000, 5.868060, -0.000000, 2.991642, -0.000000, 1.000000}, + {2.885299, -0.000000, -0.847743, -0.000000, 5.381703, -0.000000, 2.756853, -0.000000, 1.000000}, + {2.681940, -0.000000, -0.831104, -0.000000, 4.944142, -0.000000, 2.548940, -0.000000, 1.000000}, + {2.506321, -0.000000, -0.813058, -0.000000, 4.549020, -0.000000, 2.366774, -0.000000, 1.000000}, + {2.350028, -0.000000, -0.794126, -0.000000, 4.195113, -0.000000, 2.202568, -0.000000, 1.000000}, + {2.206787, -0.000000, -0.774717, -0.000000, 3.878904, -0.000000, 2.049569, -0.000000, 1.000000}, + {2.086035, -0.000000, -0.753674, -0.000000, 3.590309, -0.000000, 1.916902, -0.000000, 1.000000}, + {1.980427, -0.000000, -0.734701, -0.000000, 3.333446, -0.000000, 1.797973, -0.000000, 1.000000}, + {1.886191, -0.000000, -0.714553, -0.000000, 3.099187, -0.000000, 1.687468, -0.000000, 1.000000}, + {1.800217, -0.000000, -0.695010, -0.000000, 2.894012, -0.000000, 1.585271, -0.000000, 1.000000}, + {1.724818, -0.000000, -0.673644, -0.000000, 2.702550, -0.000000, 1.490888, -0.000000, 1.000000}, + {1.656403, -0.000000, -0.653161, -0.000000, 2.529073, -0.000000, 1.401430, -0.000000, 1.000000}, + {1.589200, -0.000000, -0.627952, -0.000000, 2.361250, -0.000000, 1.310598, -0.000000, 1.000000}, + {1.525179, -0.000000, -0.599427, -0.000000, 2.204435, -0.000000, 1.220875, -0.000000, 1.000000}, + {1.465978, -0.000000, -0.570864, -0.000000, 2.064462, -0.000000, 1.134797, -0.000000, 1.000000}, + {1.411806, -0.000000, -0.542452, -0.000000, 1.936784, -0.000000, 1.053385, -0.000000, 1.000000}, + {1.364771, -0.000000, -0.514894, -0.000000, 1.821312, -0.000000, 0.977994, -0.000000, 1.000000}, + {1.319653, -0.000000, -0.487250, -0.000000, 1.719127, -0.000000, 0.905201, -0.000000, 1.000000}, + {1.278415, -0.000000, -0.460174, -0.000000, 1.626256, -0.000000, 0.836438, -0.000000, 1.000000}, + {1.239993, -0.000000, -0.433354, -0.000000, 1.542820, -0.000000, 0.770893, -0.000000, 1.000000}, + {1.208869, -0.000000, -0.407817, -0.000000, 1.467569, -0.000000, 0.711487, -0.000000, 1.000000}, + {1.176574, -0.000000, -0.382780, -0.000000, 1.400645, -0.000000, 0.652386, -0.000000, 1.000000}, + {1.144650, -0.000000, -0.357695, -0.000000, 1.339664, -0.000000, 0.595230, -0.000000, 1.000000}, + {1.115058, -0.000000, -0.333450, -0.000000, 1.284167, -0.000000, 0.541150, -0.000000, 1.000000}, + {1.088207, -0.000000, -0.307685, -0.000000, 1.232362, -0.000000, 0.488884, -0.000000, 1.000000}, + {1.059847, -0.000000, -0.281549, -0.000000, 1.183181, -0.000000, 0.437421, -0.000000, 1.000000}, + {1.036572, -0.000000, -0.256226, -0.000000, 1.139530, -0.000000, 0.390744, -0.000000, 1.000000}, + {1.010978, -0.000000, -0.232329, -0.000000, 1.100796, -0.000000, 0.345220, -0.000000, 1.000000}, + {0.987828, -0.000000, -0.208445, -0.000000, 1.064368, -0.000000, 0.303018, -0.000000, 1.000000}, + {0.967001, -0.000000, -0.186070, -0.000000, 1.031720, -0.000000, 0.264075, -0.000000, 1.000000}, + {0.946787, -0.000000, -0.164335, -0.000000, 1.000664, -0.000000, 0.227604, -0.000000, 1.000000}, + {0.929630, -0.000000, -0.141922, -0.000000, 0.973669, -0.000000, 0.193628, -0.000000, 1.000000}, + {0.911838, -0.000000, -0.119756, -0.000000, 0.949531, -0.000000, 0.162297, -0.000000, 1.000000}, + {0.895213, -0.000000, -0.098019, -0.000000, 0.929034, -0.000000, 0.133357, -0.000000, 1.000000}, + {0.883037, -0.000000, -0.076844, -0.000000, 0.911660, -0.000000, 0.105312, -0.000000, 1.000000}, + {0.874419, -0.000000, -0.057609, -0.000000, 0.896608, -0.000000, 0.078392, -0.000000, 1.000000}, + {0.869289, -0.000000, -0.037963, -0.000000, 0.883639, -0.000000, 0.051558, -0.000000, 1.000000}, + {0.865568, -0.000000, -0.018772, -0.000000, 0.871991, -0.000000, 0.025276, -0.000000, 1.000000}, + {0.861164, -0.000000, 0.000968, -0.000000, 0.861110, -0.000000, -0.000445, -0.000000, 1.000000}, + {500.037872, -0.000000, -1.025238, -0.000000, 1025.517090, -0.000000, 512.657776, -0.000000, 1.000000}, + {500.037872, -0.000000, -1.025238, -0.000000, 1025.517090, -0.000000, 512.657776, -0.000000, 1.000000}, + {496.149597, -0.000000, -1.025239, -0.000000, 1017.573975, -0.000000, 508.672821, -0.000000, 1.000000}, + {220.490112, -0.000000, -1.025220, -0.000000, 452.287750, -0.000000, 226.055649, -0.000000, 1.000000}, + {123.898338, -0.000000, -1.025170, -0.000000, 254.619720, -0.000000, 127.025589, -0.000000, 1.000000}, + {79.391258, -0.000000, -1.025063, -0.000000, 162.793762, -0.000000, 81.394318, -0.000000, 1.000000}, + {55.119484, -0.000000, -1.024873, -0.000000, 113.037849, -0.000000, 56.509220, -0.000000, 1.000000}, + {40.488483, -0.000000, -1.024557, -0.000000, 83.037262, -0.000000, 41.508354, -0.000000, 1.000000}, + {30.993290, -0.000000, -1.024077, -0.000000, 63.554382, -0.000000, 31.772776, -0.000000, 1.000000}, + {24.480589, -0.000000, -1.023379, -0.000000, 50.200405, -0.000000, 25.094837, -0.000000, 1.000000}, + {19.822830, -0.000000, -1.022414, -0.000000, 40.632015, -0.000000, 20.318817, -0.000000, 1.000000}, + {16.373678, -0.000000, -1.021120, -0.000000, 33.553726, -0.000000, 16.781538, -0.000000, 1.000000}, + {13.748674, -0.000000, -1.019434, -0.000000, 28.165298, -0.000000, 14.089147, -0.000000, 1.000000}, + {11.705168, -0.000000, -1.017277, -0.000000, 23.967451, -0.000000, 11.992762, -0.000000, 1.000000}, + {10.083005, -0.000000, -1.014477, -0.000000, 20.631399, -0.000000, 10.328159, -0.000000, 1.000000}, + {8.772611, -0.000000, -1.009526, -0.000000, 17.933300, -0.000000, 8.982896, -0.000000, 1.000000}, + {7.699113, -0.000000, -1.000448, -0.000000, 15.712477, -0.000000, 7.880071, -0.000000, 1.000000}, + {6.807818, -0.000000, -0.993442, -0.000000, 13.872507, -0.000000, 6.963836, -0.000000, 1.000000}, + {6.060381, -0.000000, -0.987011, -0.000000, 12.329924, -0.000000, 6.194833, -0.000000, 1.000000}, + {5.427757, -0.000000, -0.979336, -0.000000, 11.021285, -0.000000, 5.543046, -0.000000, 1.000000}, + {4.888412, -0.000000, -0.969358, -0.000000, 9.900178, -0.000000, 4.986307, -0.000000, 1.000000}, + {4.424665, -0.000000, -0.957246, -0.000000, 8.929996, -0.000000, 4.506370, -0.000000, 1.000000}, + {4.023794, -0.000000, -0.946408, -0.000000, 8.089095, -0.000000, 4.090411, -0.000000, 1.000000}, + {3.677202, -0.000000, -0.931942, -0.000000, 7.350788, -0.000000, 3.729072, -0.000000, 1.000000}, + {3.372041, -0.000000, -0.917404, -0.000000, 6.700420, -0.000000, 3.409127, -0.000000, 1.000000}, + {3.105673, -0.000000, -0.902082, -0.000000, 6.123778, -0.000000, 3.128247, -0.000000, 1.000000}, + {2.875522, -0.000000, -0.883758, -0.000000, 5.608041, -0.000000, 2.883012, -0.000000, 1.000000}, + {2.674237, -0.000000, -0.865197, -0.000000, 5.144587, -0.000000, 2.666038, -0.000000, 1.000000}, + {2.497020, -0.000000, -0.845380, -0.000000, 4.726780, -0.000000, 2.472375, -0.000000, 1.000000}, + {2.336472, -0.000000, -0.825321, -0.000000, 4.355277, -0.000000, 2.294547, -0.000000, 1.000000}, + {2.199103, -0.000000, -0.803629, -0.000000, 4.016941, -0.000000, 2.138724, -0.000000, 1.000000}, + {2.078905, -0.000000, -0.780611, -0.000000, 3.711555, -0.000000, 1.998574, -0.000000, 1.000000}, + {1.970641, -0.000000, -0.759876, -0.000000, 3.438906, -0.000000, 1.869376, -0.000000, 1.000000}, + {1.877239, -0.000000, -0.737689, -0.000000, 3.191887, -0.000000, 1.753589, -0.000000, 1.000000}, + {1.794387, -0.000000, -0.715423, -0.000000, 2.969989, -0.000000, 1.647656, -0.000000, 1.000000}, + {1.717408, -0.000000, -0.693435, -0.000000, 2.773737, -0.000000, 1.546270, -0.000000, 1.000000}, + {1.649466, -0.000000, -0.671235, -0.000000, 2.589671, -0.000000, 1.452259, -0.000000, 1.000000}, + {1.586323, -0.000000, -0.647398, -0.000000, 2.420877, -0.000000, 1.361515, -0.000000, 1.000000}, + {1.523070, -0.000000, -0.618852, -0.000000, 2.259597, -0.000000, 1.267477, -0.000000, 1.000000}, + {1.466873, -0.000000, -0.588191, -0.000000, 2.109860, -0.000000, 1.179627, -0.000000, 1.000000}, + {1.412098, -0.000000, -0.558778, -0.000000, 1.976553, -0.000000, 1.093307, -0.000000, 1.000000}, + {1.362247, -0.000000, -0.529468, -0.000000, 1.855979, -0.000000, 1.011874, -0.000000, 1.000000}, + {1.318768, -0.000000, -0.500596, -0.000000, 1.747553, -0.000000, 0.936205, -0.000000, 1.000000}, + {1.277224, -0.000000, -0.472318, -0.000000, 1.650914, -0.000000, 0.864115, -0.000000, 1.000000}, + {1.238423, -0.000000, -0.443965, -0.000000, 1.563302, -0.000000, 0.794573, -0.000000, 1.000000}, + {1.203593, -0.000000, -0.417095, -0.000000, 1.484466, -0.000000, 0.730561, -0.000000, 1.000000}, + {1.175799, -0.000000, -0.391155, -0.000000, 1.414344, -0.000000, 0.671763, -0.000000, 1.000000}, + {1.143384, -0.000000, -0.365221, -0.000000, 1.351420, -0.000000, 0.612008, -0.000000, 1.000000}, + {1.114282, -0.000000, -0.340166, -0.000000, 1.294105, -0.000000, 0.556355, -0.000000, 1.000000}, + {1.086062, -0.000000, -0.315273, -0.000000, 1.241617, -0.000000, 0.502284, -0.000000, 1.000000}, + {1.060104, -0.000000, -0.288886, -0.000000, 1.192894, -0.000000, 0.451043, -0.000000, 1.000000}, + {1.035165, -0.000000, -0.262812, -0.000000, 1.146646, -0.000000, 0.401512, -0.000000, 1.000000}, + {1.010927, -0.000000, -0.237303, -0.000000, 1.105342, -0.000000, 0.354568, -0.000000, 1.000000}, + {0.986868, -0.000000, -0.213225, -0.000000, 1.068711, -0.000000, 0.310890, -0.000000, 1.000000}, + {0.963888, -0.000000, -0.189524, -0.000000, 1.033689, -0.000000, 0.269485, -0.000000, 1.000000}, + {0.944575, -0.000000, -0.166984, -0.000000, 1.002348, -0.000000, 0.232086, -0.000000, 1.000000}, + {0.925989, -0.000000, -0.144904, -0.000000, 0.974783, -0.000000, 0.197529, -0.000000, 1.000000}, + {0.909718, -0.000000, -0.123194, -0.000000, 0.950088, -0.000000, 0.165804, -0.000000, 1.000000}, + {0.893602, -0.000000, -0.100585, -0.000000, 0.929001, -0.000000, 0.135989, -0.000000, 1.000000}, + {0.880930, -0.000000, -0.078820, -0.000000, 0.911111, -0.000000, 0.107735, -0.000000, 1.000000}, + {0.872501, -0.000000, -0.058035, -0.000000, 0.895415, -0.000000, 0.079710, -0.000000, 1.000000}, + {0.867507, -0.000000, -0.038358, -0.000000, 0.882132, -0.000000, 0.052461, -0.000000, 1.000000}, + {0.863453, -0.000000, -0.019345, -0.000000, 0.870294, -0.000000, 0.025992, -0.000000, 1.000000}, + {0.859288, -0.000000, 0.000110, -0.000000, 0.859383, -0.000000, -0.000014, -0.000000, 1.000000}, + {499.996735, -0.000000, -1.077731, -0.000000, 1080.664673, -0.000000, 538.861328, -0.000000, 1.000000}, + {499.996735, -0.000000, -1.077731, -0.000000, 1080.664673, -0.000000, 538.861328, -0.000000, 1.000000}, + {496.170593, -0.000000, -1.077731, -0.000000, 1072.279297, -0.000000, 534.739807, -0.000000, 1.000000}, + {220.517517, -0.000000, -1.077709, -0.000000, 476.652893, -0.000000, 237.659348, -0.000000, 1.000000}, + {124.117775, -0.000000, -1.077652, -0.000000, 268.725189, -0.000000, 133.765640, -0.000000, 1.000000}, + {79.410866, -0.000000, -1.077531, -0.000000, 171.527359, -0.000000, 85.583138, -0.000000, 1.000000}, + {55.113548, -0.000000, -1.077307, -0.000000, 119.128113, -0.000000, 59.396004, -0.000000, 1.000000}, + {40.485504, -0.000000, -1.076940, -0.000000, 87.496834, -0.000000, 43.630085, -0.000000, 1.000000}, + {30.995348, -0.000000, -1.076383, -0.000000, 66.968063, -0.000000, 33.401592, -0.000000, 1.000000}, + {24.478037, -0.000000, -1.075572, -0.000000, 52.888393, -0.000000, 26.376728, -0.000000, 1.000000}, + {19.818436, -0.000000, -1.074451, -0.000000, 42.809273, -0.000000, 21.353882, -0.000000, 1.000000}, + {16.369066, -0.000000, -1.072950, -0.000000, 35.347332, -0.000000, 17.635206, -0.000000, 1.000000}, + {13.744530, -0.000000, -1.070992, -0.000000, 29.665915, -0.000000, 14.805332, -0.000000, 1.000000}, + {11.699392, -0.000000, -1.068479, -0.000000, 25.240294, -0.000000, 12.599726, -0.000000, 1.000000}, + {10.076106, -0.000000, -1.065157, -0.000000, 21.721914, -0.000000, 10.848528, -0.000000, 1.000000}, + {8.765397, -0.000000, -1.057776, -0.000000, 18.870815, -0.000000, 9.433759, -0.000000, 1.000000}, + {7.689671, -0.000000, -1.049772, -0.000000, 16.531149, -0.000000, 8.271976, -0.000000, 1.000000}, + {6.797180, -0.000000, -1.042245, -0.000000, 14.589982, -0.000000, 7.307357, -0.000000, 1.000000}, + {6.049593, -0.000000, -1.034233, -0.000000, 12.960362, -0.000000, 6.498483, -0.000000, 1.000000}, + {5.416529, -0.000000, -1.026134, -0.000000, 11.579355, -0.000000, 5.812615, -0.000000, 1.000000}, + {4.876689, -0.000000, -1.013528, -0.000000, 10.392941, -0.000000, 5.226410, -0.000000, 1.000000}, + {4.411905, -0.000000, -1.001664, -0.000000, 9.369521, -0.000000, 4.720509, -0.000000, 1.000000}, + {4.012266, -0.000000, -0.989026, -0.000000, 8.480060, -0.000000, 4.284074, -0.000000, 1.000000}, + {3.662950, -0.000000, -0.972831, -0.000000, 7.699392, -0.000000, 3.900908, -0.000000, 1.000000}, + {3.360163, -0.000000, -0.956997, -0.000000, 7.010824, -0.000000, 3.566742, -0.000000, 1.000000}, + {3.094684, -0.000000, -0.940183, -0.000000, 6.400454, -0.000000, 3.271647, -0.000000, 1.000000}, + {2.865789, -0.000000, -0.920848, -0.000000, 5.853747, -0.000000, 3.014791, -0.000000, 1.000000}, + {2.663946, -0.000000, -0.899793, -0.000000, 5.361293, -0.000000, 2.785320, -0.000000, 1.000000}, + {2.481951, -0.000000, -0.878705, -0.000000, 4.922871, -0.000000, 2.575858, -0.000000, 1.000000}, + {2.327681, -0.000000, -0.856813, -0.000000, 4.523750, -0.000000, 2.394462, -0.000000, 1.000000}, + {2.192445, -0.000000, -0.832278, -0.000000, 4.164162, -0.000000, 2.231818, -0.000000, 1.000000}, + {2.069360, -0.000000, -0.808212, -0.000000, 3.840145, -0.000000, 2.080414, -0.000000, 1.000000}, + {1.964869, -0.000000, -0.784627, -0.000000, 3.548100, -0.000000, 1.946890, -0.000000, 1.000000}, + {1.867790, -0.000000, -0.761011, -0.000000, 3.290413, -0.000000, 1.821110, -0.000000, 1.000000}, + {1.784666, -0.000000, -0.736268, -0.000000, 3.054466, -0.000000, 1.707456, -0.000000, 1.000000}, + {1.705916, -0.000000, -0.712094, -0.000000, 2.846312, -0.000000, 1.598577, -0.000000, 1.000000}, + {1.638266, -0.000000, -0.688936, -0.000000, 2.655171, -0.000000, 1.499242, -0.000000, 1.000000}, + {1.578253, -0.000000, -0.664921, -0.000000, 2.481119, -0.000000, 1.407212, -0.000000, 1.000000}, + {1.518494, -0.000000, -0.637776, -0.000000, 2.316894, -0.000000, 1.313202, -0.000000, 1.000000}, + {1.463787, -0.000000, -0.605856, -0.000000, 2.159441, -0.000000, 1.221768, -0.000000, 1.000000}, + {1.409612, -0.000000, -0.574727, -0.000000, 2.017316, -0.000000, 1.131762, -0.000000, 1.000000}, + {1.362154, -0.000000, -0.544026, -0.000000, 1.890369, -0.000000, 1.046947, -0.000000, 1.000000}, + {1.315537, -0.000000, -0.513893, -0.000000, 1.776250, -0.000000, 0.966523, -0.000000, 1.000000}, + {1.276021, -0.000000, -0.484153, -0.000000, 1.675288, -0.000000, 0.891506, -0.000000, 1.000000}, + {1.236644, -0.000000, -0.454743, -0.000000, 1.585168, -0.000000, 0.819109, -0.000000, 1.000000}, + {1.200984, -0.000000, -0.426294, -0.000000, 1.502623, -0.000000, 0.750754, -0.000000, 1.000000}, + {1.172336, -0.000000, -0.399072, -0.000000, 1.428918, -0.000000, 0.688631, -0.000000, 1.000000}, + {1.142360, -0.000000, -0.372529, -0.000000, 1.362915, -0.000000, 0.628822, -0.000000, 1.000000}, + {1.112101, -0.000000, -0.346395, -0.000000, 1.303952, -0.000000, 0.569939, -0.000000, 1.000000}, + {1.084985, -0.000000, -0.321156, -0.000000, 1.250121, -0.000000, 0.514811, -0.000000, 1.000000}, + {1.059741, -0.000000, -0.295675, -0.000000, 1.200694, -0.000000, 0.463237, -0.000000, 1.000000}, + {1.036129, -0.000000, -0.269211, -0.000000, 1.154357, -0.000000, 0.413015, -0.000000, 1.000000}, + {1.011153, -0.000000, -0.242809, -0.000000, 1.111147, -0.000000, 0.364226, -0.000000, 1.000000}, + {0.985804, -0.000000, -0.217788, -0.000000, 1.072691, -0.000000, 0.318474, -0.000000, 1.000000}, + {0.963591, -0.000000, -0.193127, -0.000000, 1.036701, -0.000000, 0.276046, -0.000000, 1.000000}, + {0.942618, -0.000000, -0.169928, -0.000000, 1.003960, -0.000000, 0.236989, -0.000000, 1.000000}, + {0.923782, -0.000000, -0.147286, -0.000000, 0.975479, -0.000000, 0.201457, -0.000000, 1.000000}, + {0.907602, -0.000000, -0.125247, -0.000000, 0.950244, -0.000000, 0.168914, -0.000000, 1.000000}, + {0.890855, -0.000000, -0.103546, -0.000000, 0.928926, -0.000000, 0.139068, -0.000000, 1.000000}, + {0.878108, -0.000000, -0.081136, -0.000000, 0.910830, -0.000000, 0.110215, -0.000000, 1.000000}, + {0.869703, -0.000000, -0.059410, -0.000000, 0.894226, -0.000000, 0.081583, -0.000000, 1.000000}, + {0.864859, -0.000000, -0.038515, -0.000000, 0.880408, -0.000000, 0.053267, -0.000000, 1.000000}, + {0.861328, -0.000000, -0.019155, -0.000000, 0.868300, -0.000000, 0.026207, -0.000000, 1.000000}, + {0.857123, -0.000000, 0.000198, -0.000000, 0.857174, -0.000000, 0.000008, -0.000000, 1.000000}, + {499.198547, -0.000000, -1.133124, -0.000000, 1142.750610, -0.000000, 565.655518, -0.000000, 1.000000}, + {499.198547, -0.000000, -1.133124, -0.000000, 1142.750610, -0.000000, 565.655518, -0.000000, 1.000000}, + {495.193665, -0.000000, -1.133123, -0.000000, 1133.890625, -0.000000, 561.118347, -0.000000, 1.000000}, + {220.530960, -0.000000, -1.133098, -0.000000, 503.506500, -0.000000, 249.890884, -0.000000, 1.000000}, + {124.351082, -0.000000, -1.133031, -0.000000, 282.611023, -0.000000, 140.903992, -0.000000, 1.000000}, + {79.373192, -0.000000, -1.132888, -0.000000, 181.277954, -0.000000, 89.938644, -0.000000, 1.000000}, + {55.114239, -0.000000, -1.132630, -0.000000, 125.871094, -0.000000, 62.449364, -0.000000, 1.000000}, + {40.487885, -0.000000, -1.132206, -0.000000, 92.458313, -0.000000, 45.875217, -0.000000, 1.000000}, + {30.987593, -0.000000, -1.131555, -0.000000, 70.753319, -0.000000, 35.109222, -0.000000, 1.000000}, + {24.475843, -0.000000, -1.130616, -0.000000, 55.873253, -0.000000, 27.729467, -0.000000, 1.000000}, + {19.812593, -0.000000, -1.129313, -0.000000, 45.222126, -0.000000, 22.444181, -0.000000, 1.000000}, + {16.364174, -0.000000, -1.127567, -0.000000, 37.335171, -0.000000, 18.535343, -0.000000, 1.000000}, + {13.738152, -0.000000, -1.125292, -0.000000, 31.329901, -0.000000, 15.558189, -0.000000, 1.000000}, + {11.692895, -0.000000, -1.122363, -0.000000, 26.650005, -0.000000, 13.238934, -0.000000, 1.000000}, + {10.068810, -0.000000, -1.118341, -0.000000, 22.928526, -0.000000, 11.396638, -0.000000, 1.000000}, + {8.755841, -0.000000, -1.109305, -0.000000, 19.909277, -0.000000, 9.906425, -0.000000, 1.000000}, + {7.678919, -0.000000, -1.101251, -0.000000, 17.434750, -0.000000, 8.683300, -0.000000, 1.000000}, + {6.785978, -0.000000, -1.093312, -0.000000, 15.380631, -0.000000, 7.668364, -0.000000, 1.000000}, + {6.037260, -0.000000, -1.083973, -0.000000, 13.655503, -0.000000, 6.816360, -0.000000, 1.000000}, + {5.403927, -0.000000, -1.074632, -0.000000, 12.193567, -0.000000, 6.094520, -0.000000, 1.000000}, + {4.863304, -0.000000, -1.060226, -0.000000, 10.935308, -0.000000, 5.476997, -0.000000, 1.000000}, + {4.398553, -0.000000, -1.048059, -0.000000, 9.852291, -0.000000, 4.944738, -0.000000, 1.000000}, + {3.998689, -0.000000, -1.033376, -0.000000, 8.908811, -0.000000, 4.485063, -0.000000, 1.000000}, + {3.649364, -0.000000, -1.015714, -0.000000, 8.081111, -0.000000, 4.081708, -0.000000, 1.000000}, + {3.344975, -0.000000, -0.998487, -0.000000, 7.351129, -0.000000, 3.728147, -0.000000, 1.000000}, + {3.083215, -0.000000, -0.979162, -0.000000, 6.700023, -0.000000, 3.421241, -0.000000, 1.000000}, + {2.853763, -0.000000, -0.958452, -0.000000, 6.119757, -0.000000, 3.149657, -0.000000, 1.000000}, + {2.648021, -0.000000, -0.935120, -0.000000, 5.599844, -0.000000, 2.903464, -0.000000, 1.000000}, + {2.472942, -0.000000, -0.912632, -0.000000, 5.128753, -0.000000, 2.689534, -0.000000, 1.000000}, + {2.316902, -0.000000, -0.888726, -0.000000, 4.706252, -0.000000, 2.495873, -0.000000, 1.000000}, + {2.182334, -0.000000, -0.861453, -0.000000, 4.322686, -0.000000, 2.324605, -0.000000, 1.000000}, + {2.059919, -0.000000, -0.835774, -0.000000, 3.978354, -0.000000, 2.164635, -0.000000, 1.000000}, + {1.954855, -0.000000, -0.810190, -0.000000, 3.667906, -0.000000, 2.022531, -0.000000, 1.000000}, + {1.855981, -0.000000, -0.783856, -0.000000, 3.393180, -0.000000, 1.886838, -0.000000, 1.000000}, + {1.771806, -0.000000, -0.757426, -0.000000, 3.144650, -0.000000, 1.766004, -0.000000, 1.000000}, + {1.697741, -0.000000, -0.730885, -0.000000, 2.920450, -0.000000, 1.654005, -0.000000, 1.000000}, + {1.632465, -0.000000, -0.705990, -0.000000, 2.718796, -0.000000, 1.551813, -0.000000, 1.000000}, + {1.571256, -0.000000, -0.680496, -0.000000, 2.537086, -0.000000, 1.452953, -0.000000, 1.000000}, + {1.515108, -0.000000, -0.653885, -0.000000, 2.369325, -0.000000, 1.358737, -0.000000, 1.000000}, + {1.459504, -0.000000, -0.623360, -0.000000, 2.210400, -0.000000, 1.263101, -0.000000, 1.000000}, + {1.405635, -0.000000, -0.590504, -0.000000, 2.062133, -0.000000, 1.168306, -0.000000, 1.000000}, + {1.359547, -0.000000, -0.558369, -0.000000, 1.928148, -0.000000, 1.081079, -0.000000, 1.000000}, + {1.315915, -0.000000, -0.526888, -0.000000, 1.808092, -0.000000, 0.998234, -0.000000, 1.000000}, + {1.272416, -0.000000, -0.495979, -0.000000, 1.702437, -0.000000, 0.916954, -0.000000, 1.000000}, + {1.235574, -0.000000, -0.465317, -0.000000, 1.607036, -0.000000, 0.842566, -0.000000, 1.000000}, + {1.199073, -0.000000, -0.435563, -0.000000, 1.520862, -0.000000, 0.771151, -0.000000, 1.000000}, + {1.166111, -0.000000, -0.406927, -0.000000, 1.443245, -0.000000, 0.704289, -0.000000, 1.000000}, + {1.140453, -0.000000, -0.379219, -0.000000, 1.374699, -0.000000, 0.644617, -0.000000, 1.000000}, + {1.110763, -0.000000, -0.352530, -0.000000, 1.314012, -0.000000, 0.584363, -0.000000, 1.000000}, + {1.083389, -0.000000, -0.326091, -0.000000, 1.257777, -0.000000, 0.527193, -0.000000, 1.000000}, + {1.058973, -0.000000, -0.301090, -0.000000, 1.208417, -0.000000, 0.474518, -0.000000, 1.000000}, + {1.034218, -0.000000, -0.274873, -0.000000, 1.161656, -0.000000, 0.422728, -0.000000, 1.000000}, + {1.010618, -0.000000, -0.248928, -0.000000, 1.117511, -0.000000, 0.373949, -0.000000, 1.000000}, + {0.986232, -0.000000, -0.222285, -0.000000, 1.077184, -0.000000, 0.326582, -0.000000, 1.000000}, + {0.962839, -0.000000, -0.196978, -0.000000, 1.040122, -0.000000, 0.282526, -0.000000, 1.000000}, + {0.941962, -0.000000, -0.173164, -0.000000, 1.006604, -0.000000, 0.242452, -0.000000, 1.000000}, + {0.922943, -0.000000, -0.149257, -0.000000, 0.976292, -0.000000, 0.205411, -0.000000, 1.000000}, + {0.905540, -0.000000, -0.126989, -0.000000, 0.950461, -0.000000, 0.171749, -0.000000, 1.000000}, + {0.888568, -0.000000, -0.105202, -0.000000, 0.928553, -0.000000, 0.141550, -0.000000, 1.000000}, + {0.875908, -0.000000, -0.083692, -0.000000, 0.909612, -0.000000, 0.112693, -0.000000, 1.000000}, + {0.867307, -0.000000, -0.061342, -0.000000, 0.893228, -0.000000, 0.083286, -0.000000, 1.000000}, + {0.862479, -0.000000, -0.039478, -0.000000, 0.878841, -0.000000, 0.054419, -0.000000, 1.000000}, + {0.858952, -0.000000, -0.018690, -0.000000, 0.866345, -0.000000, 0.026407, -0.000000, 1.000000}, + {0.854783, -0.000000, 0.000687, -0.000000, 0.854842, -0.000000, -0.000233, -0.000000, 1.000000}, + {497.740356, -0.000000, -1.191737, -0.000000, 1212.297485, -0.000000, 593.176758, -0.000000, 1.000000}, + {497.740356, -0.000000, -1.191737, -0.000000, 1212.297485, -0.000000, 593.176758, -0.000000, 1.000000}, + {495.967773, -0.000000, -1.191737, -0.000000, 1201.587646, -0.000000, 591.064636, -0.000000, 1.000000}, + {220.402115, -0.000000, -1.191710, -0.000000, 533.582153, -0.000000, 262.667023, -0.000000, 1.000000}, + {124.037041, -0.000000, -1.191629, -0.000000, 300.258667, -0.000000, 147.819244, -0.000000, 1.000000}, + {79.367973, -0.000000, -1.191465, -0.000000, 192.087326, -0.000000, 94.584778, -0.000000, 1.000000}, + {55.114235, -0.000000, -1.191163, -0.000000, 133.370956, -0.000000, 65.679634, -0.000000, 1.000000}, + {40.482887, -0.000000, -1.190670, -0.000000, 97.960243, -0.000000, 48.241943, -0.000000, 1.000000}, + {30.985254, -0.000000, -1.189914, -0.000000, 74.966965, -0.000000, 36.922112, -0.000000, 1.000000}, + {24.470310, -0.000000, -1.188821, -0.000000, 59.198898, -0.000000, 29.156729, -0.000000, 1.000000}, + {19.810440, -0.000000, -1.187304, -0.000000, 47.906578, -0.000000, 23.602030, -0.000000, 1.000000}, + {16.358372, -0.000000, -1.185274, -0.000000, 39.545647, -0.000000, 19.486433, -0.000000, 1.000000}, + {13.731361, -0.000000, -1.182628, -0.000000, 33.179028, -0.000000, 16.353985, -0.000000, 1.000000}, + {11.685279, -0.000000, -1.179202, -0.000000, 28.214518, -0.000000, 13.913551, -0.000000, 1.000000}, + {10.060629, -0.000000, -1.174106, -0.000000, 24.266153, -0.000000, 11.974962, -0.000000, 1.000000}, + {8.745026, -0.000000, -1.163552, -0.000000, 21.059242, -0.000000, 10.404303, -0.000000, 1.000000}, + {7.666819, -0.000000, -1.154777, -0.000000, 18.433811, -0.000000, 9.116149, -0.000000, 1.000000}, + {6.772953, -0.000000, -1.146793, -0.000000, 16.256334, -0.000000, 8.047375, -0.000000, 1.000000}, + {6.023073, -0.000000, -1.136482, -0.000000, 14.424652, -0.000000, 7.149531, -0.000000, 1.000000}, + {5.389208, -0.000000, -1.124666, -0.000000, 12.869657, -0.000000, 6.389346, -0.000000, 1.000000}, + {4.847566, -0.000000, -1.109110, -0.000000, 11.532449, -0.000000, 5.738188, -0.000000, 1.000000}, + {4.384129, -0.000000, -1.095927, -0.000000, 10.382030, -0.000000, 5.179485, -0.000000, 1.000000}, + {3.981435, -0.000000, -1.079033, -0.000000, 9.378829, -0.000000, 4.692119, -0.000000, 1.000000}, + {3.632331, -0.000000, -1.059646, -0.000000, 8.499527, -0.000000, 4.267574, -0.000000, 1.000000}, + {3.330570, -0.000000, -1.040766, -0.000000, 7.720337, -0.000000, 3.898030, -0.000000, 1.000000}, + {3.072052, -0.000000, -1.020092, -0.000000, 7.025834, -0.000000, 3.578377, -0.000000, 1.000000}, + {2.836320, -0.000000, -0.996664, -0.000000, 6.410950, -0.000000, 3.284364, -0.000000, 1.000000}, + {2.636429, -0.000000, -0.970977, -0.000000, 5.852798, -0.000000, 3.031443, -0.000000, 1.000000}, + {2.461024, -0.000000, -0.946995, -0.000000, 5.351264, -0.000000, 2.804762, -0.000000, 1.000000}, + {2.309566, -0.000000, -0.920260, -0.000000, 4.895450, -0.000000, 2.605106, -0.000000, 1.000000}, + {2.171193, -0.000000, -0.891770, -0.000000, 4.492403, -0.000000, 2.419443, -0.000000, 1.000000}, + {2.046365, -0.000000, -0.862975, -0.000000, 4.126715, -0.000000, 2.247149, -0.000000, 1.000000}, + {1.940203, -0.000000, -0.835377, -0.000000, 3.796427, -0.000000, 2.095363, -0.000000, 1.000000}, + {1.847487, -0.000000, -0.807038, -0.000000, 3.501757, -0.000000, 1.957793, -0.000000, 1.000000}, + {1.764791, -0.000000, -0.777984, -0.000000, 3.236122, -0.000000, 1.830755, -0.000000, 1.000000}, + {1.689787, -0.000000, -0.749577, -0.000000, 2.998445, -0.000000, 1.711617, -0.000000, 1.000000}, + {1.623467, -0.000000, -0.722160, -0.000000, 2.787138, -0.000000, 1.601701, -0.000000, 1.000000}, + {1.564476, -0.000000, -0.695601, -0.000000, 2.593500, -0.000000, 1.499691, -0.000000, 1.000000}, + {1.508963, -0.000000, -0.667965, -0.000000, 2.419844, -0.000000, 1.400717, -0.000000, 1.000000}, + {1.456745, -0.000000, -0.639187, -0.000000, 2.260225, -0.000000, 1.304981, -0.000000, 1.000000}, + {1.404346, -0.000000, -0.606291, -0.000000, 2.107956, -0.000000, 1.207875, -0.000000, 1.000000}, + {1.354443, -0.000000, -0.572479, -0.000000, 1.967472, -0.000000, 1.113634, -0.000000, 1.000000}, + {1.312539, -0.000000, -0.539868, -0.000000, 1.840691, -0.000000, 1.028078, -0.000000, 1.000000}, + {1.271663, -0.000000, -0.507526, -0.000000, 1.728781, -0.000000, 0.944375, -0.000000, 1.000000}, + {1.231956, -0.000000, -0.475865, -0.000000, 1.629488, -0.000000, 0.865228, -0.000000, 1.000000}, + {1.197937, -0.000000, -0.444798, -0.000000, 1.540237, -0.000000, 0.791888, -0.000000, 1.000000}, + {1.163655, -0.000000, -0.415022, -0.000000, 1.458943, -0.000000, 0.721975, -0.000000, 1.000000}, + {1.135947, -0.000000, -0.385953, -0.000000, 1.388032, -0.000000, 0.658261, -0.000000, 1.000000}, + {1.108306, -0.000000, -0.358322, -0.000000, 1.324020, -0.000000, 0.597250, -0.000000, 1.000000}, + {1.080856, -0.000000, -0.331377, -0.000000, 1.266384, -0.000000, 0.538634, -0.000000, 1.000000}, + {1.055387, -0.000000, -0.304981, -0.000000, 1.213831, -0.000000, 0.483240, -0.000000, 1.000000}, + {1.031967, -0.000000, -0.279702, -0.000000, 1.168211, -0.000000, 0.432009, -0.000000, 1.000000}, + {1.011454, -0.000000, -0.253981, -0.000000, 1.123698, -0.000000, 0.383715, -0.000000, 1.000000}, + {0.986373, -0.000000, -0.227557, -0.000000, 1.082180, -0.000000, 0.335005, -0.000000, 1.000000}, + {0.962047, -0.000000, -0.201322, -0.000000, 1.044015, -0.000000, 0.289192, -0.000000, 1.000000}, + {0.941474, -0.000000, -0.175898, -0.000000, 1.008716, -0.000000, 0.247600, -0.000000, 1.000000}, + {0.920469, -0.000000, -0.152058, -0.000000, 0.977028, -0.000000, 0.209385, -0.000000, 1.000000}, + {0.903940, -0.000000, -0.128562, -0.000000, 0.950335, -0.000000, 0.174772, -0.000000, 1.000000}, + {0.886939, -0.000000, -0.106209, -0.000000, 0.927499, -0.000000, 0.143497, -0.000000, 1.000000}, + {0.873628, -0.000000, -0.084672, -0.000000, 0.908543, -0.000000, 0.114456, -0.000000, 1.000000}, + {0.864831, -0.000000, -0.063288, -0.000000, 0.891755, -0.000000, 0.085164, -0.000000, 1.000000}, + {0.859767, -0.000000, -0.041204, -0.000000, 0.877256, -0.000000, 0.055889, -0.000000, 1.000000}, + {0.856654, -0.000000, -0.019310, -0.000000, 0.864405, -0.000000, 0.026910, -0.000000, 1.000000}, + {0.852336, -0.000000, 0.001322, -0.000000, 0.852461, -0.000000, -0.000438, -0.000000, 1.000000}, + {499.753876, -0.000000, -1.253942, -0.000000, 1287.089722, -0.000000, 626.664734, -0.000000, 1.000000}, + {499.753876, -0.000000, -1.253942, -0.000000, 1287.089722, -0.000000, 626.664734, -0.000000, 1.000000}, + {496.028778, -0.000000, -1.253944, -0.000000, 1277.157959, -0.000000, 621.993774, -0.000000, 1.000000}, + {220.533188, -0.000000, -1.253909, -0.000000, 567.170044, -0.000000, 276.540680, -0.000000, 1.000000}, + {123.984047, -0.000000, -1.253817, -0.000000, 319.092773, -0.000000, 155.469025, -0.000000, 1.000000}, + {79.369270, -0.000000, -1.253624, -0.000000, 204.112549, -0.000000, 99.522591, -0.000000, 1.000000}, + {55.111843, -0.000000, -1.253274, -0.000000, 141.740967, -0.000000, 69.104866, -0.000000, 1.000000}, + {40.476086, -0.000000, -1.252697, -0.000000, 104.107445, -0.000000, 50.751129, -0.000000, 1.000000}, + {30.984922, -0.000000, -1.251819, -0.000000, 79.662781, -0.000000, 38.848240, -0.000000, 1.000000}, + {24.465958, -0.000000, -1.250546, -0.000000, 62.903252, -0.000000, 30.672558, -0.000000, 1.000000}, + {19.804312, -0.000000, -1.248780, -0.000000, 50.899647, -0.000000, 24.825474, -0.000000, 1.000000}, + {16.352213, -0.000000, -1.246419, -0.000000, 42.008663, -0.000000, 20.494875, -0.000000, 1.000000}, + {13.723763, -0.000000, -1.243331, -0.000000, 35.237221, -0.000000, 17.196903, -0.000000, 1.000000}, + {11.676961, -0.000000, -1.239298, -0.000000, 29.958258, -0.000000, 14.627940, -0.000000, 1.000000}, + {10.049492, -0.000000, -1.232132, -0.000000, 25.752495, -0.000000, 12.584373, -0.000000, 1.000000}, + {8.731993, -0.000000, -1.221280, -0.000000, 22.339643, -0.000000, 10.929126, -0.000000, 1.000000}, + {7.652759, -0.000000, -1.211831, -0.000000, 19.544865, -0.000000, 9.572192, -0.000000, 1.000000}, + {6.758174, -0.000000, -1.202806, -0.000000, 17.227139, -0.000000, 8.446236, -0.000000, 1.000000}, + {6.007354, -0.000000, -1.191387, -0.000000, 15.277209, -0.000000, 7.500062, -0.000000, 1.000000}, + {5.372413, -0.000000, -1.176719, -0.000000, 13.616632, -0.000000, 6.698209, -0.000000, 1.000000}, + {4.830769, -0.000000, -1.161033, -0.000000, 12.195012, -0.000000, 6.012751, -0.000000, 1.000000}, + {4.365128, -0.000000, -1.145102, -0.000000, 10.967047, -0.000000, 5.421536, -0.000000, 1.000000}, + {3.964192, -0.000000, -1.126775, -0.000000, 9.896423, -0.000000, 4.910280, -0.000000, 1.000000}, + {3.614795, -0.000000, -1.105273, -0.000000, 8.956612, -0.000000, 4.462464, -0.000000, 1.000000}, + {3.316762, -0.000000, -1.083889, -0.000000, 8.121175, -0.000000, 4.077182, -0.000000, 1.000000}, + {3.049908, -0.000000, -1.061586, -0.000000, 7.388329, -0.000000, 3.730012, -0.000000, 1.000000}, + {2.822119, -0.000000, -1.035518, -0.000000, 6.724327, -0.000000, 3.429412, -0.000000, 1.000000}, + {2.622464, -0.000000, -1.008090, -0.000000, 6.127764, -0.000000, 3.161820, -0.000000, 1.000000}, + {2.451163, -0.000000, -0.981888, -0.000000, 5.589432, -0.000000, 2.927490, -0.000000, 1.000000}, + {2.296729, -0.000000, -0.952336, -0.000000, 5.104727, -0.000000, 2.712390, -0.000000, 1.000000}, + {2.155762, -0.000000, -0.921598, -0.000000, 4.675928, -0.000000, 2.512262, -0.000000, 1.000000}, + {2.036743, -0.000000, -0.890929, -0.000000, 4.283887, -0.000000, 2.336522, -0.000000, 1.000000}, + {1.932510, -0.000000, -0.860475, -0.000000, 3.929064, -0.000000, 2.177492, -0.000000, 1.000000}, + {1.839267, -0.000000, -0.829707, -0.000000, 3.613852, -0.000000, 2.030046, -0.000000, 1.000000}, + {1.757306, -0.000000, -0.799019, -0.000000, 3.332942, -0.000000, 1.896472, -0.000000, 1.000000}, + {1.682471, -0.000000, -0.767880, -0.000000, 3.080793, -0.000000, 1.769688, -0.000000, 1.000000}, + {1.616012, -0.000000, -0.738321, -0.000000, 2.854067, -0.000000, 1.652668, -0.000000, 1.000000}, + {1.556975, -0.000000, -0.710194, -0.000000, 2.652766, -0.000000, 1.545087, -0.000000, 1.000000}, + {1.502156, -0.000000, -0.680905, -0.000000, 2.469531, -0.000000, 1.441944, -0.000000, 1.000000}, + {1.451757, -0.000000, -0.652191, -0.000000, 2.305683, -0.000000, 1.343244, -0.000000, 1.000000}, + {1.403035, -0.000000, -0.621362, -0.000000, 2.153359, -0.000000, 1.247102, -0.000000, 1.000000}, + {1.353299, -0.000000, -0.586336, -0.000000, 2.007066, -0.000000, 1.148998, -0.000000, 1.000000}, + {1.307415, -0.000000, -0.552367, -0.000000, 1.875375, -0.000000, 1.055520, -0.000000, 1.000000}, + {1.268839, -0.000000, -0.519201, -0.000000, 1.757577, -0.000000, 0.971338, -0.000000, 1.000000}, + {1.231022, -0.000000, -0.485960, -0.000000, 1.652990, -0.000000, 0.889203, -0.000000, 1.000000}, + {1.195541, -0.000000, -0.454077, -0.000000, 1.560240, -0.000000, 0.812061, -0.000000, 1.000000}, + {1.161529, -0.000000, -0.422868, -0.000000, 1.476693, -0.000000, 0.739344, -0.000000, 1.000000}, + {1.129743, -0.000000, -0.392830, -0.000000, 1.401400, -0.000000, 0.670055, -0.000000, 1.000000}, + {1.105266, -0.000000, -0.363897, -0.000000, 1.334618, -0.000000, 0.608914, -0.000000, 1.000000}, + {1.077838, -0.000000, -0.336141, -0.000000, 1.274864, -0.000000, 0.548889, -0.000000, 1.000000}, + {1.052315, -0.000000, -0.309317, -0.000000, 1.220056, -0.000000, 0.492636, -0.000000, 1.000000}, + {1.029826, -0.000000, -0.282778, -0.000000, 1.171442, -0.000000, 0.440025, -0.000000, 1.000000}, + {1.009347, -0.000000, -0.257536, -0.000000, 1.128472, -0.000000, 0.391160, -0.000000, 1.000000}, + {0.986019, -0.000000, -0.232366, -0.000000, 1.087234, -0.000000, 0.342713, -0.000000, 1.000000}, + {0.963012, -0.000000, -0.205715, -0.000000, 1.047779, -0.000000, 0.296459, -0.000000, 1.000000}, + {0.940682, -0.000000, -0.179674, -0.000000, 1.011584, -0.000000, 0.253051, -0.000000, 1.000000}, + {0.919427, -0.000000, -0.154758, -0.000000, 0.978625, -0.000000, 0.213263, -0.000000, 1.000000}, + {0.902586, -0.000000, -0.130710, -0.000000, 0.950182, -0.000000, 0.177850, -0.000000, 1.000000}, + {0.885406, -0.000000, -0.107393, -0.000000, 0.926769, -0.000000, 0.145696, -0.000000, 1.000000}, + {0.871587, -0.000000, -0.085046, -0.000000, 0.907180, -0.000000, 0.115747, -0.000000, 1.000000}, + {0.862558, -0.000000, -0.063744, -0.000000, 0.890073, -0.000000, 0.086239, -0.000000, 1.000000}, + {0.857297, -0.000000, -0.042531, -0.000000, 0.875385, -0.000000, 0.057043, -0.000000, 1.000000}, + {0.854008, -0.000000, -0.020869, -0.000000, 0.862320, -0.000000, 0.028007, -0.000000, 1.000000}, + {0.849945, -0.000000, 0.000879, -0.000000, 0.850067, -0.000000, -0.000316, -0.000000, 1.000000}, + {498.764313, -0.000000, -1.320163, -0.000000, 1373.378540, -0.000000, 658.451599, -0.000000, 1.000000}, + {498.764313, -0.000000, -1.320163, -0.000000, 1373.378540, -0.000000, 658.451599, -0.000000, 1.000000}, + {496.446625, -0.000000, -1.320164, -0.000000, 1360.179932, -0.000000, 655.392273, -0.000000, 1.000000}, + {220.485596, -0.000000, -1.320125, -0.000000, 604.791382, -0.000000, 291.081512, -0.000000, 1.000000}, + {124.026947, -0.000000, -1.320016, -0.000000, 340.108673, -0.000000, 163.735397, -0.000000, 1.000000}, + {79.428589, -0.000000, -1.319792, -0.000000, 217.682114, -0.000000, 104.858566, -0.000000, 1.000000}, + {55.094601, -0.000000, -1.319384, -0.000000, 151.154099, -0.000000, 72.731087, -0.000000, 1.000000}, + {40.476280, -0.000000, -1.318711, -0.000000, 110.993645, -0.000000, 53.431137, -0.000000, 1.000000}, + {30.973503, -0.000000, -1.317686, -0.000000, 84.935791, -0.000000, 40.884266, -0.000000, 1.000000}, + {24.461092, -0.000000, -1.316200, -0.000000, 67.053787, -0.000000, 32.285267, -0.000000, 1.000000}, + {19.798025, -0.000000, -1.314142, -0.000000, 54.248508, -0.000000, 26.127316, -0.000000, 1.000000}, + {16.344543, -0.000000, -1.311384, -0.000000, 44.766365, -0.000000, 21.565979, -0.000000, 1.000000}, + {13.715401, -0.000000, -1.307778, -0.000000, 37.540558, -0.000000, 18.092642, -0.000000, 1.000000}, + {11.667095, -0.000000, -1.302977, -0.000000, 31.907068, -0.000000, 15.385793, -0.000000, 1.000000}, + {10.036300, -0.000000, -1.292651, -0.000000, 27.406919, -0.000000, 13.229581, -0.000000, 1.000000}, + {8.717825, -0.000000, -1.282903, -0.000000, 23.768972, -0.000000, 11.485295, -0.000000, 1.000000}, + {7.636909, -0.000000, -1.272602, -0.000000, 20.785141, -0.000000, 10.054101, -0.000000, 1.000000}, + {6.741018, -0.000000, -1.261386, -0.000000, 18.307858, -0.000000, 8.866672, -0.000000, 1.000000}, + {5.989860, -0.000000, -1.248665, -0.000000, 16.223476, -0.000000, 7.869553, -0.000000, 1.000000}, + {5.353560, -0.000000, -1.232226, -0.000000, 14.447929, -0.000000, 7.023051, -0.000000, 1.000000}, + {4.812235, -0.000000, -1.215270, -0.000000, 12.926739, -0.000000, 6.301147, -0.000000, 1.000000}, + {4.345270, -0.000000, -1.196644, -0.000000, 11.613120, -0.000000, 5.676373, -0.000000, 1.000000}, + {3.943053, -0.000000, -1.176316, -0.000000, 10.467074, -0.000000, 5.135668, -0.000000, 1.000000}, + {3.597323, -0.000000, -1.152379, -0.000000, 9.457210, -0.000000, 4.668163, -0.000000, 1.000000}, + {3.298333, -0.000000, -1.129210, -0.000000, 8.564156, -0.000000, 4.260488, -0.000000, 1.000000}, + {3.033204, -0.000000, -1.104019, -0.000000, 7.774998, -0.000000, 3.895550, -0.000000, 1.000000}, + {2.804857, -0.000000, -1.074878, -0.000000, 7.064775, -0.000000, 3.577148, -0.000000, 1.000000}, + {2.610853, -0.000000, -1.045896, -0.000000, 6.421424, -0.000000, 3.301699, -0.000000, 1.000000}, + {2.430077, -0.000000, -1.016253, -0.000000, 5.852787, -0.000000, 3.041409, -0.000000, 1.000000}, + {2.278789, -0.000000, -0.985085, -0.000000, 5.334065, -0.000000, 2.816983, -0.000000, 1.000000}, + {2.145781, -0.000000, -0.951537, -0.000000, 4.865364, -0.000000, 2.614515, -0.000000, 1.000000}, + {2.028583, -0.000000, -0.918188, -0.000000, 4.447055, -0.000000, 2.430435, -0.000000, 1.000000}, + {1.920310, -0.000000, -0.885812, -0.000000, 4.072713, -0.000000, 2.256396, -0.000000, 1.000000}, + {1.827242, -0.000000, -0.852252, -0.000000, 3.734781, -0.000000, 2.100304, -0.000000, 1.000000}, + {1.741410, -0.000000, -0.819354, -0.000000, 3.436574, -0.000000, 1.953809, -0.000000, 1.000000}, + {1.667199, -0.000000, -0.785912, -0.000000, 3.169833, -0.000000, 1.820603, -0.000000, 1.000000}, + {1.600661, -0.000000, -0.754258, -0.000000, 2.929060, -0.000000, 1.697106, -0.000000, 1.000000}, + {1.541972, -0.000000, -0.723590, -0.000000, 2.714557, -0.000000, 1.582406, -0.000000, 1.000000}, + {1.490970, -0.000000, -0.693555, -0.000000, 2.522617, -0.000000, 1.478268, -0.000000, 1.000000}, + {1.442741, -0.000000, -0.663230, -0.000000, 2.348330, -0.000000, 1.377193, -0.000000, 1.000000}, + {1.398380, -0.000000, -0.632923, -0.000000, 2.193665, -0.000000, 1.281289, -0.000000, 1.000000}, + {1.352417, -0.000000, -0.600306, -0.000000, 2.049114, -0.000000, 1.184361, -0.000000, 1.000000}, + {1.306098, -0.000000, -0.564746, -0.000000, 1.911273, -0.000000, 1.086684, -0.000000, 1.000000}, + {1.263667, -0.000000, -0.530384, -0.000000, 1.787241, -0.000000, 0.995224, -0.000000, 1.000000}, + {1.227507, -0.000000, -0.496238, -0.000000, 1.677880, -0.000000, 0.911170, -0.000000, 1.000000}, + {1.192177, -0.000000, -0.463117, -0.000000, 1.580272, -0.000000, 0.831094, -0.000000, 1.000000}, + {1.159786, -0.000000, -0.430992, -0.000000, 1.493237, -0.000000, 0.756722, -0.000000, 1.000000}, + {1.127615, -0.000000, -0.399809, -0.000000, 1.415863, -0.000000, 0.685682, -0.000000, 1.000000}, + {1.101597, -0.000000, -0.369629, -0.000000, 1.345474, -0.000000, 0.620668, -0.000000, 1.000000}, + {1.074312, -0.000000, -0.340787, -0.000000, 1.283440, -0.000000, 0.558964, -0.000000, 1.000000}, + {1.048375, -0.000000, -0.313370, -0.000000, 1.227282, -0.000000, 0.500063, -0.000000, 1.000000}, + {1.025321, -0.000000, -0.286188, -0.000000, 1.176411, -0.000000, 0.446249, -0.000000, 1.000000}, + {1.004459, -0.000000, -0.259980, -0.000000, 1.131536, -0.000000, 0.396020, -0.000000, 1.000000}, + {0.984215, -0.000000, -0.235098, -0.000000, 1.090374, -0.000000, 0.348723, -0.000000, 1.000000}, + {0.962293, -0.000000, -0.209660, -0.000000, 1.050996, -0.000000, 0.302458, -0.000000, 1.000000}, + {0.939934, -0.000000, -0.183963, -0.000000, 1.014945, -0.000000, 0.258686, -0.000000, 1.000000}, + {0.919490, -0.000000, -0.157603, -0.000000, 0.980187, -0.000000, 0.217735, -0.000000, 1.000000}, + {0.900178, -0.000000, -0.133030, -0.000000, 0.950534, -0.000000, 0.181288, -0.000000, 1.000000}, + {0.884062, -0.000000, -0.109124, -0.000000, 0.926558, -0.000000, 0.147997, -0.000000, 1.000000}, + {0.869425, -0.000000, -0.085933, -0.000000, 0.905910, -0.000000, 0.117436, -0.000000, 1.000000}, + {0.860200, -0.000000, -0.063534, -0.000000, 0.888262, -0.000000, 0.087208, -0.000000, 1.000000}, + {0.854847, -0.000000, -0.042793, -0.000000, 0.873182, -0.000000, 0.057860, -0.000000, 1.000000}, + {0.851453, -0.000000, -0.021623, -0.000000, 0.859881, -0.000000, 0.028712, -0.000000, 1.000000}, + {0.847523, -0.000000, -0.000142, -0.000000, 0.847737, -0.000000, 0.000144, -0.000000, 1.000000}, + {499.946350, -0.000000, -1.390894, -0.000000, 1467.598511, -0.000000, 695.371582, -0.000000, 1.000000}, + {499.946350, -0.000000, -1.390894, -0.000000, 1467.598511, -0.000000, 695.371582, -0.000000, 1.000000}, + {496.076233, -0.000000, -1.390894, -0.000000, 1456.169800, -0.000000, 689.988953, -0.000000, 1.000000}, + {220.496719, -0.000000, -1.390848, -0.000000, 647.093567, -0.000000, 306.691040, -0.000000, 1.000000}, + {124.013779, -0.000000, -1.390722, -0.000000, 363.965607, -0.000000, 172.489548, -0.000000, 1.000000}, + {79.373199, -0.000000, -1.390458, -0.000000, 233.001343, -0.000000, 110.400490, -0.000000, 1.000000}, + {55.108978, -0.000000, -1.389980, -0.000000, 161.729828, -0.000000, 76.647385, -0.000000, 1.000000}, + {40.467999, -0.000000, -1.389193, -0.000000, 118.741165, -0.000000, 56.281498, -0.000000, 1.000000}, + {30.975763, -0.000000, -1.387995, -0.000000, 90.852692, -0.000000, 43.077286, -0.000000, 1.000000}, + {24.455482, -0.000000, -1.386258, -0.000000, 71.715958, -0.000000, 34.006439, -0.000000, 1.000000}, + {19.791021, -0.000000, -1.383852, -0.000000, 58.016361, -0.000000, 27.516304, -0.000000, 1.000000}, + {16.335751, -0.000000, -1.380629, -0.000000, 47.863483, -0.000000, 22.707855, -0.000000, 1.000000}, + {13.705017, -0.000000, -1.376399, -0.000000, 40.126877, -0.000000, 19.045937, -0.000000, 1.000000}, + {11.653750, -0.000000, -1.370543, -0.000000, 34.092148, -0.000000, 16.189638, -0.000000, 1.000000}, + {10.021158, -0.000000, -1.358667, -0.000000, 29.265823, -0.000000, 13.915085, -0.000000, 1.000000}, + {8.701030, -0.000000, -1.347819, -0.000000, 25.367838, -0.000000, 12.074658, -0.000000, 1.000000}, + {7.619580, -0.000000, -1.336861, -0.000000, 22.171335, -0.000000, 10.565630, -0.000000, 1.000000}, + {6.722030, -0.000000, -1.323397, -0.000000, 19.511784, -0.000000, 9.311698, -0.000000, 1.000000}, + {5.969267, -0.000000, -1.308124, -0.000000, 17.274567, -0.000000, 8.258295, -0.000000, 1.000000}, + {5.332428, -0.000000, -1.289965, -0.000000, 15.369953, -0.000000, 7.365280, -0.000000, 1.000000}, + {4.788707, -0.000000, -1.271456, -0.000000, 13.738621, -0.000000, 6.600627, -0.000000, 1.000000}, + {4.322216, -0.000000, -1.250397, -0.000000, 12.327078, -0.000000, 5.942193, -0.000000, 1.000000}, + {3.921430, -0.000000, -1.227581, -0.000000, 11.096258, -0.000000, 5.373594, -0.000000, 1.000000}, + {3.576837, -0.000000, -1.200790, -0.000000, 10.007510, -0.000000, 4.881275, -0.000000, 1.000000}, + {3.273181, -0.000000, -1.175546, -0.000000, 9.053289, -0.000000, 4.444415, -0.000000, 1.000000}, + {3.013334, -0.000000, -1.147349, -0.000000, 8.200176, -0.000000, 4.065929, -0.000000, 1.000000}, + {2.791491, -0.000000, -1.115724, -0.000000, 7.428865, -0.000000, 3.737948, -0.000000, 1.000000}, + {2.587043, -0.000000, -1.084444, -0.000000, 6.751217, -0.000000, 3.432292, -0.000000, 1.000000}, + {2.416821, -0.000000, -1.051544, -0.000000, 6.129459, -0.000000, 3.169965, -0.000000, 1.000000}, + {2.267782, -0.000000, -1.017314, -0.000000, 5.569518, -0.000000, 2.934841, -0.000000, 1.000000}, + {2.134773, -0.000000, -0.982051, -0.000000, 5.070411, -0.000000, 2.719155, -0.000000, 1.000000}, + {2.011730, -0.000000, -0.946156, -0.000000, 4.625893, -0.000000, 2.516692, -0.000000, 1.000000}, + {1.907606, -0.000000, -0.910265, -0.000000, 4.223953, -0.000000, 2.336645, -0.000000, 1.000000}, + {1.814633, -0.000000, -0.874876, -0.000000, 3.862807, -0.000000, 2.170789, -0.000000, 1.000000}, + {1.726175, -0.000000, -0.839464, -0.000000, 3.546830, -0.000000, 2.011889, -0.000000, 1.000000}, + {1.651998, -0.000000, -0.803765, -0.000000, 3.261043, -0.000000, 1.871454, -0.000000, 1.000000}, + {1.586171, -0.000000, -0.769456, -0.000000, 3.007546, -0.000000, 1.741142, -0.000000, 1.000000}, + {1.531422, -0.000000, -0.736866, -0.000000, 2.776947, -0.000000, 1.624824, -0.000000, 1.000000}, + {1.478677, -0.000000, -0.704933, -0.000000, 2.576596, -0.000000, 1.512335, -0.000000, 1.000000}, + {1.430226, -0.000000, -0.673526, -0.000000, 2.394740, -0.000000, 1.406849, -0.000000, 1.000000}, + {1.386441, -0.000000, -0.642238, -0.000000, 2.231730, -0.000000, 1.306790, -0.000000, 1.000000}, + {1.347700, -0.000000, -0.610335, -0.000000, 2.083120, -0.000000, 1.213711, -0.000000, 1.000000}, + {1.304647, -0.000000, -0.576954, -0.000000, 1.947658, -0.000000, 1.117770, -0.000000, 1.000000}, + {1.262713, -0.000000, -0.541312, -0.000000, 1.817316, -0.000000, 1.022935, -0.000000, 1.000000}, + {1.226210, -0.000000, -0.506275, -0.000000, 1.703293, -0.000000, 0.935409, -0.000000, 1.000000}, + {1.190476, -0.000000, -0.472115, -0.000000, 1.601141, -0.000000, 0.851909, -0.000000, 1.000000}, + {1.157802, -0.000000, -0.438939, -0.000000, 1.510821, -0.000000, 0.774189, -0.000000, 1.000000}, + {1.126094, -0.000000, -0.406711, -0.000000, 1.429830, -0.000000, 0.700163, -0.000000, 1.000000}, + {1.099165, -0.000000, -0.375645, -0.000000, 1.357510, -0.000000, 0.633428, -0.000000, 1.000000}, + {1.072272, -0.000000, -0.345376, -0.000000, 1.292333, -0.000000, 0.568595, -0.000000, 1.000000}, + {1.045140, -0.000000, -0.317129, -0.000000, 1.234337, -0.000000, 0.508251, -0.000000, 1.000000}, + {1.022077, -0.000000, -0.289678, -0.000000, 1.182703, -0.000000, 0.453208, -0.000000, 1.000000}, + {0.999451, -0.000000, -0.262616, -0.000000, 1.134882, -0.000000, 0.400832, -0.000000, 1.000000}, + {0.978826, -0.000000, -0.236418, -0.000000, 1.092171, -0.000000, 0.351856, -0.000000, 1.000000}, + {0.956364, -0.000000, -0.212182, -0.000000, 1.052354, -0.000000, 0.305863, -0.000000, 1.000000}, + {0.936124, -0.000000, -0.186767, -0.000000, 1.015153, -0.000000, 0.261983, -0.000000, 1.000000}, + {0.915224, -0.000000, -0.161611, -0.000000, 0.981272, -0.000000, 0.221219, -0.000000, 1.000000}, + {0.896723, -0.000000, -0.135741, -0.000000, 0.951082, -0.000000, 0.183870, -0.000000, 1.000000}, + {0.880615, -0.000000, -0.110802, -0.000000, 0.925929, -0.000000, 0.150061, -0.000000, 1.000000}, + {0.866110, -0.000000, -0.087549, -0.000000, 0.904866, -0.000000, 0.119470, -0.000000, 1.000000}, + {0.856847, -0.000000, -0.064229, -0.000000, 0.886618, -0.000000, 0.088534, -0.000000, 1.000000}, + {0.851917, -0.000000, -0.041981, -0.000000, 0.871051, -0.000000, 0.058068, -0.000000, 1.000000}, + {0.848660, -0.000000, -0.021244, -0.000000, 0.857396, -0.000000, 0.028805, -0.000000, 1.000000}, + {0.844679, -0.000000, -0.000023, -0.000000, 0.844858, -0.000000, 0.000067, -0.000000, 1.000000}, + {498.779419, -0.000000, -1.466705, -0.000000, 1575.844360, -0.000000, 731.558167, -0.000000, 1.000000}, + {498.779419, -0.000000, -1.466705, -0.000000, 1575.844360, -0.000000, 731.558167, -0.000000, 1.000000}, + {495.686005, -0.000000, -1.466705, -0.000000, 1563.839966, -0.000000, 727.024902, -0.000000, 1.000000}, + {220.507874, -0.000000, -1.466650, -0.000000, 694.803223, -0.000000, 323.422455, -0.000000, 1.000000}, + {123.952385, -0.000000, -1.466503, -0.000000, 390.826355, -0.000000, 181.792984, -0.000000, 1.000000}, + {79.377266, -0.000000, -1.466195, -0.000000, 249.967194, -0.000000, 116.420586, -0.000000, 1.000000}, + {55.099525, -0.000000, -1.465636, -0.000000, 173.619049, -0.000000, 80.810890, -0.000000, 1.000000}, + {40.470554, -0.000000, -1.464715, -0.000000, 127.491707, -0.000000, 59.352566, -0.000000, 1.000000}, + {30.965216, -0.000000, -1.463306, -0.000000, 97.532944, -0.000000, 45.409164, -0.000000, 1.000000}, + {24.454735, -0.000000, -1.461271, -0.000000, 76.994362, -0.000000, 35.857788, -0.000000, 1.000000}, + {19.782701, -0.000000, -1.458454, -0.000000, 62.267132, -0.000000, 29.002623, -0.000000, 1.000000}, + {16.324949, -0.000000, -1.454673, -0.000000, 51.357708, -0.000000, 23.928177, -0.000000, 1.000000}, + {13.692519, -0.000000, -1.449687, -0.000000, 43.045250, -0.000000, 20.063829, -0.000000, 1.000000}, + {11.640100, -0.000000, -1.442068, -0.000000, 36.549221, -0.000000, 17.049719, -0.000000, 1.000000}, + {10.004292, -0.000000, -1.428058, -0.000000, 31.351686, -0.000000, 14.646075, -0.000000, 1.000000}, + {8.681810, -0.000000, -1.416120, -0.000000, 27.161263, -0.000000, 12.701498, -0.000000, 1.000000}, + {7.598638, -0.000000, -1.404866, -0.000000, 23.729090, -0.000000, 11.107257, -0.000000, 1.000000}, + {6.699979, -0.000000, -1.389501, -0.000000, 20.864613, -0.000000, 9.782582, -0.000000, 1.000000}, + {5.945863, -0.000000, -1.371374, -0.000000, 18.451183, -0.000000, 8.669281, -0.000000, 1.000000}, + {5.308502, -0.000000, -1.351385, -0.000000, 16.401524, -0.000000, 7.725982, -0.000000, 1.000000}, + {4.763751, -0.000000, -1.329682, -0.000000, 14.640650, -0.000000, 6.917427, -0.000000, 1.000000}, + {4.298007, -0.000000, -1.307001, -0.000000, 13.120390, -0.000000, 6.223120, -0.000000, 1.000000}, + {3.899934, -0.000000, -1.280435, -0.000000, 11.787424, -0.000000, 5.626344, -0.000000, 1.000000}, + {3.549153, -0.000000, -1.251572, -0.000000, 10.620056, -0.000000, 5.097425, -0.000000, 1.000000}, + {3.253283, -0.000000, -1.223200, -0.000000, 9.583576, -0.000000, 4.646020, -0.000000, 1.000000}, + {2.996228, -0.000000, -1.191155, -0.000000, 8.656814, -0.000000, 4.249408, -0.000000, 1.000000}, + {2.765244, -0.000000, -1.158044, -0.000000, 7.837562, -0.000000, 3.888601, -0.000000, 1.000000}, + {2.571919, -0.000000, -1.122705, -0.000000, 7.094434, -0.000000, 3.579864, -0.000000, 1.000000}, + {2.403607, -0.000000, -1.087049, -0.000000, 6.424055, -0.000000, 3.304322, -0.000000, 1.000000}, + {2.252028, -0.000000, -1.049959, -0.000000, 5.824631, -0.000000, 3.050817, -0.000000, 1.000000}, + {2.116779, -0.000000, -1.011578, -0.000000, 5.289791, -0.000000, 2.819011, -0.000000, 1.000000}, + {1.993860, -0.000000, -0.973772, -0.000000, 4.816268, -0.000000, 2.603753, -0.000000, 1.000000}, + {1.890524, -0.000000, -0.934433, -0.000000, 4.387243, -0.000000, 2.412890, -0.000000, 1.000000}, + {1.798378, -0.000000, -0.897044, -0.000000, 4.001345, -0.000000, 2.238384, -0.000000, 1.000000}, + {1.715745, -0.000000, -0.858754, -0.000000, 3.656700, -0.000000, 2.076623, -0.000000, 1.000000}, + {1.642515, -0.000000, -0.821173, -0.000000, 3.353235, -0.000000, 1.928177, -0.000000, 1.000000}, + {1.575996, -0.000000, -0.784906, -0.000000, 3.086783, -0.000000, 1.790380, -0.000000, 1.000000}, + {1.517029, -0.000000, -0.749382, -0.000000, 2.844139, -0.000000, 1.662103, -0.000000, 1.000000}, + {1.463617, -0.000000, -0.715590, -0.000000, 2.629526, -0.000000, 1.543108, -0.000000, 1.000000}, + {1.419676, -0.000000, -0.682990, -0.000000, 2.440467, -0.000000, 1.436785, -0.000000, 1.000000}, + {1.375393, -0.000000, -0.650474, -0.000000, 2.270741, -0.000000, 1.332324, -0.000000, 1.000000}, + {1.335512, -0.000000, -0.618036, -0.000000, 2.118298, -0.000000, 1.234705, -0.000000, 1.000000}, + {1.299672, -0.000000, -0.585888, -0.000000, 1.978625, -0.000000, 1.143387, -0.000000, 1.000000}, + {1.260211, -0.000000, -0.552059, -0.000000, 1.850432, -0.000000, 1.048487, -0.000000, 1.000000}, + {1.220603, -0.000000, -0.516035, -0.000000, 1.730217, -0.000000, 0.955238, -0.000000, 1.000000}, + {1.187332, -0.000000, -0.481062, -0.000000, 1.622624, -0.000000, 0.870517, -0.000000, 1.000000}, + {1.154017, -0.000000, -0.446628, -0.000000, 1.528417, -0.000000, 0.790108, -0.000000, 1.000000}, + {1.123595, -0.000000, -0.413848, -0.000000, 1.444416, -0.000000, 0.715249, -0.000000, 1.000000}, + {1.093868, -0.000000, -0.381648, -0.000000, 1.369804, -0.000000, 0.643891, -0.000000, 1.000000}, + {1.069937, -0.000000, -0.350455, -0.000000, 1.302023, -0.000000, 0.579375, -0.000000, 1.000000}, + {1.042615, -0.000000, -0.321163, -0.000000, 1.241905, -0.000000, 0.517313, -0.000000, 1.000000}, + {1.020031, -0.000000, -0.292592, -0.000000, 1.187551, -0.000000, 0.460405, -0.000000, 1.000000}, + {0.996479, -0.000000, -0.265382, -0.000000, 1.139110, -0.000000, 0.406380, -0.000000, 1.000000}, + {0.975165, -0.000000, -0.238717, -0.000000, 1.094910, -0.000000, 0.356264, -0.000000, 1.000000}, + {0.953236, -0.000000, -0.212812, -0.000000, 1.053961, -0.000000, 0.308913, -0.000000, 1.000000}, + {0.931561, -0.000000, -0.188332, -0.000000, 1.015921, -0.000000, 0.264932, -0.000000, 1.000000}, + {0.911343, -0.000000, -0.163891, -0.000000, 0.980784, -0.000000, 0.223958, -0.000000, 1.000000}, + {0.893546, -0.000000, -0.139290, -0.000000, 0.950847, -0.000000, 0.186838, -0.000000, 1.000000}, + {0.876796, -0.000000, -0.113372, -0.000000, 0.924905, -0.000000, 0.152215, -0.000000, 1.000000}, + {0.862211, -0.000000, -0.089137, -0.000000, 0.903229, -0.000000, 0.120962, -0.000000, 1.000000}, + {0.853316, -0.000000, -0.065492, -0.000000, 0.884618, -0.000000, 0.089734, -0.000000, 1.000000}, + {0.848789, -0.000000, -0.042287, -0.000000, 0.868789, -0.000000, 0.058723, -0.000000, 1.000000}, + {0.845668, -0.000000, -0.020147, -0.000000, 0.854603, -0.000000, 0.028542, -0.000000, 1.000000}, + {0.841710, -0.000000, 0.000684, -0.000000, 0.841725, -0.000000, -0.000226, -0.000000, 1.000000}, + {500.563446, -0.000000, -1.548274, -0.000000, 1697.137573, -0.000000, 775.003479, -0.000000, 1.000000}, + {500.563446, -0.000000, -1.548274, -0.000000, 1697.137573, -0.000000, 775.003479, -0.000000, 1.000000}, + {495.507477, -0.000000, -1.548273, -0.000000, 1685.115112, -0.000000, 767.177795, -0.000000, 1.000000}, + {220.529938, -0.000000, -1.548211, -0.000000, 749.035522, -0.000000, 341.439911, -0.000000, 1.000000}, + {124.007294, -0.000000, -1.548038, -0.000000, 421.342133, -0.000000, 191.996704, -0.000000, 1.000000}, + {79.365158, -0.000000, -1.547674, -0.000000, 269.654449, -0.000000, 122.875969, -0.000000, 1.000000}, + {55.104710, -0.000000, -1.547015, -0.000000, 187.125687, -0.000000, 85.312332, -0.000000, 1.000000}, + {40.460781, -0.000000, -1.545932, -0.000000, 137.423080, -0.000000, 62.637676, -0.000000, 1.000000}, + {30.959267, -0.000000, -1.544278, -0.000000, 105.125816, -0.000000, 47.924221, -0.000000, 1.000000}, + {24.441511, -0.000000, -1.541885, -0.000000, 82.958992, -0.000000, 37.830250, -0.000000, 1.000000}, + {19.772507, -0.000000, -1.538568, -0.000000, 67.084435, -0.000000, 30.598278, -0.000000, 1.000000}, + {16.314167, -0.000000, -1.534121, -0.000000, 55.317017, -0.000000, 25.240301, -0.000000, 1.000000}, + {13.679079, -0.000000, -1.528198, -0.000000, 46.343460, -0.000000, 21.156521, -0.000000, 1.000000}, + {11.623078, -0.000000, -1.517027, -0.000000, 39.318115, -0.000000, 17.968763, -0.000000, 1.000000}, + {9.984684, -0.000000, -1.503865, -0.000000, 33.717480, -0.000000, 15.426950, -0.000000, 1.000000}, + {8.660229, -0.000000, -1.490569, -0.000000, 29.189663, -0.000000, 13.370610, -0.000000, 1.000000}, + {7.575959, -0.000000, -1.476789, -0.000000, 25.479780, -0.000000, 11.685358, -0.000000, 1.000000}, + {6.674681, -0.000000, -1.458910, -0.000000, 22.382269, -0.000000, 10.282349, -0.000000, 1.000000}, + {5.920040, -0.000000, -1.438482, -0.000000, 19.770836, -0.000000, 9.105390, -0.000000, 1.000000}, + {5.279105, -0.000000, -1.415795, -0.000000, 17.555033, -0.000000, 8.103386, -0.000000, 1.000000}, + {4.735237, -0.000000, -1.391090, -0.000000, 15.648655, -0.000000, 7.250249, -0.000000, 1.000000}, + {4.271001, -0.000000, -1.365578, -0.000000, 14.001099, -0.000000, 6.518698, -0.000000, 1.000000}, + {3.868648, -0.000000, -1.335251, -0.000000, 12.557265, -0.000000, 5.880911, -0.000000, 1.000000}, + {3.525434, -0.000000, -1.303971, -0.000000, 11.290165, -0.000000, 5.332313, -0.000000, 1.000000}, + {3.229289, -0.000000, -1.272056, -0.000000, 10.166988, -0.000000, 4.853722, -0.000000, 1.000000}, + {2.973827, -0.000000, -1.235813, -0.000000, 9.161206, -0.000000, 4.435764, -0.000000, 1.000000}, + {2.746283, -0.000000, -1.200691, -0.000000, 8.273100, -0.000000, 4.057812, -0.000000, 1.000000}, + {2.556337, -0.000000, -1.162222, -0.000000, 7.466950, -0.000000, 3.734700, -0.000000, 1.000000}, + {2.382043, -0.000000, -1.122336, -0.000000, 6.747432, -0.000000, 3.432638, -0.000000, 1.000000}, + {2.226896, -0.000000, -1.082357, -0.000000, 6.107476, -0.000000, 3.158011, -0.000000, 1.000000}, + {2.096946, -0.000000, -1.041597, -0.000000, 5.528396, -0.000000, 2.918667, -0.000000, 1.000000}, + {1.982116, -0.000000, -1.000798, -0.000000, 5.012418, -0.000000, 2.700050, -0.000000, 1.000000}, + {1.879899, -0.000000, -0.959059, -0.000000, 4.550194, -0.000000, 2.499915, -0.000000, 1.000000}, + {1.787986, -0.000000, -0.918254, -0.000000, 4.138990, -0.000000, 2.314356, -0.000000, 1.000000}, + {1.705297, -0.000000, -0.877931, -0.000000, 3.774493, -0.000000, 2.142460, -0.000000, 1.000000}, + {1.631421, -0.000000, -0.838081, -0.000000, 3.449144, -0.000000, 1.983954, -0.000000, 1.000000}, + {1.565757, -0.000000, -0.799313, -0.000000, 3.164006, -0.000000, 1.838494, -0.000000, 1.000000}, + {1.506439, -0.000000, -0.761872, -0.000000, 2.912416, -0.000000, 1.703796, -0.000000, 1.000000}, + {1.452227, -0.000000, -0.725833, -0.000000, 2.686754, -0.000000, 1.577052, -0.000000, 1.000000}, + {1.404321, -0.000000, -0.691368, -0.000000, 2.485752, -0.000000, 1.460704, -0.000000, 1.000000}, + {1.365700, -0.000000, -0.658189, -0.000000, 2.307966, -0.000000, 1.357509, -0.000000, 1.000000}, + {1.324478, -0.000000, -0.624469, -0.000000, 2.148238, -0.000000, 1.254797, -0.000000, 1.000000}, + {1.291061, -0.000000, -0.591961, -0.000000, 2.005686, -0.000000, 1.161994, -0.000000, 1.000000}, + {1.255292, -0.000000, -0.559582, -0.000000, 1.878051, -0.000000, 1.069687, -0.000000, 1.000000}, + {1.219139, -0.000000, -0.525663, -0.000000, 1.758132, -0.000000, 0.978317, -0.000000, 1.000000}, + {1.185876, -0.000000, -0.489692, -0.000000, 1.644717, -0.000000, 0.890671, -0.000000, 1.000000}, + {1.152226, -0.000000, -0.454516, -0.000000, 1.547585, -0.000000, 0.806953, -0.000000, 1.000000}, + {1.122477, -0.000000, -0.420693, -0.000000, 1.458925, -0.000000, 0.729850, -0.000000, 1.000000}, + {1.092114, -0.000000, -0.387833, -0.000000, 1.381962, -0.000000, 0.656223, -0.000000, 1.000000}, + {1.066724, -0.000000, -0.355955, -0.000000, 1.312587, -0.000000, 0.589727, -0.000000, 1.000000}, + {1.040686, -0.000000, -0.325059, -0.000000, 1.249859, -0.000000, 0.526006, -0.000000, 1.000000}, + {1.015343, -0.000000, -0.295967, -0.000000, 1.193424, -0.000000, 0.466438, -0.000000, 1.000000}, + {0.992501, -0.000000, -0.267983, -0.000000, 1.142624, -0.000000, 0.411551, -0.000000, 1.000000}, + {0.973475, -0.000000, -0.240555, -0.000000, 1.097839, -0.000000, 0.361304, -0.000000, 1.000000}, + {0.950296, -0.000000, -0.214383, -0.000000, 1.055521, -0.000000, 0.312720, -0.000000, 1.000000}, + {0.927910, -0.000000, -0.188892, -0.000000, 1.016122, -0.000000, 0.267196, -0.000000, 1.000000}, + {0.908641, -0.000000, -0.164437, -0.000000, 0.980853, -0.000000, 0.226398, -0.000000, 1.000000}, + {0.890903, -0.000000, -0.140640, -0.000000, 0.950224, -0.000000, 0.188913, -0.000000, 1.000000}, + {0.874486, -0.000000, -0.116753, -0.000000, 0.923639, -0.000000, 0.154579, -0.000000, 1.000000}, + {0.859532, -0.000000, -0.091214, -0.000000, 0.901489, -0.000000, 0.122706, -0.000000, 1.000000}, + {0.850227, -0.000000, -0.066830, -0.000000, 0.882625, -0.000000, 0.090953, -0.000000, 1.000000}, + {0.845351, -0.000000, -0.043435, -0.000000, 0.866192, -0.000000, 0.059751, -0.000000, 1.000000}, + {0.842480, -0.000000, -0.020437, -0.000000, 0.851819, -0.000000, 0.028900, -0.000000, 1.000000}, + {0.838473, -0.000000, 0.001596, -0.000000, 0.838548, -0.000000, -0.000636, -0.000000, 1.000000}, + {500.220978, -0.000000, -1.636395, -0.000000, 1838.045654, -0.000000, 818.563416, -0.000000, 1.000000}, + {500.220978, -0.000000, -1.636395, -0.000000, 1838.045654, -0.000000, 818.563416, -0.000000, 1.000000}, + {494.459290, -0.000000, -1.636392, -0.000000, 1827.407349, -0.000000, 809.127563, -0.000000, 1.000000}, + {220.431442, -0.000000, -1.636316, -0.000000, 811.041321, -0.000000, 360.718323, -0.000000, 1.000000}, + {124.029785, -0.000000, -1.636115, -0.000000, 456.058624, -0.000000, 202.961029, -0.000000, 1.000000}, + {79.353287, -0.000000, -1.635684, -0.000000, 291.885101, -0.000000, 129.850006, -0.000000, 1.000000}, + {55.093857, -0.000000, -1.634909, -0.000000, 202.601929, -0.000000, 90.150055, -0.000000, 1.000000}, + {40.459938, -0.000000, -1.633629, -0.000000, 148.759323, -0.000000, 66.200394, -0.000000, 1.000000}, + {30.951864, -0.000000, -1.631676, -0.000000, 113.779617, -0.000000, 50.638546, -0.000000, 1.000000}, + {24.434439, -0.000000, -1.628853, -0.000000, 89.769363, -0.000000, 39.970615, -0.000000, 1.000000}, + {19.761797, -0.000000, -1.624943, -0.000000, 72.577400, -0.000000, 32.320358, -0.000000, 1.000000}, + {16.300028, -0.000000, -1.619683, -0.000000, 59.824959, -0.000000, 26.651455, -0.000000, 1.000000}, + {13.663046, -0.000000, -1.612532, -0.000000, 50.098763, -0.000000, 22.331676, -0.000000, 1.000000}, + {11.601674, -0.000000, -1.598479, -0.000000, 42.469627, -0.000000, 18.953203, -0.000000, 1.000000}, + {9.961296, -0.000000, -1.584765, -0.000000, 36.401024, -0.000000, 16.262905, -0.000000, 1.000000}, + {8.635368, -0.000000, -1.570133, -0.000000, 31.493324, -0.000000, 14.086539, -0.000000, 1.000000}, + {7.548340, -0.000000, -1.552589, -0.000000, 27.456062, -0.000000, 12.300020, -0.000000, 1.000000}, + {6.645660, -0.000000, -1.531794, -0.000000, 24.090181, -0.000000, 10.814085, -0.000000, 1.000000}, + {5.889278, -0.000000, -1.509731, -0.000000, 21.263355, -0.000000, 9.566248, -0.000000, 1.000000}, + {5.248652, -0.000000, -1.483242, -0.000000, 18.846333, -0.000000, 8.506964, -0.000000, 1.000000}, + {4.703550, -0.000000, -1.456504, -0.000000, 16.778336, -0.000000, 7.601736, -0.000000, 1.000000}, + {4.240797, -0.000000, -1.426601, -0.000000, 14.982071, -0.000000, 6.829503, -0.000000, 1.000000}, + {3.838354, -0.000000, -1.392894, -0.000000, 13.413866, -0.000000, 6.153612, -0.000000, 1.000000}, + {3.496695, -0.000000, -1.358097, -0.000000, 12.031889, -0.000000, 5.574701, -0.000000, 1.000000}, + {3.203286, -0.000000, -1.321386, -0.000000, 10.806087, -0.000000, 5.071508, -0.000000, 1.000000}, + {2.943733, -0.000000, -1.282900, -0.000000, 9.718705, -0.000000, 4.620893, -0.000000, 1.000000}, + {2.728793, -0.000000, -1.243091, -0.000000, 8.739369, -0.000000, 4.238695, -0.000000, 1.000000}, + {2.531582, -0.000000, -1.201321, -0.000000, 7.872953, -0.000000, 3.882470, -0.000000, 1.000000}, + {2.357663, -0.000000, -1.158122, -0.000000, 7.100025, -0.000000, 3.561968, -0.000000, 1.000000}, + {2.211334, -0.000000, -1.114579, -0.000000, 6.399665, -0.000000, 3.283040, -0.000000, 1.000000}, + {2.084279, -0.000000, -1.070823, -0.000000, 5.772037, -0.000000, 3.031426, -0.000000, 1.000000}, + {1.970372, -0.000000, -1.026931, -0.000000, 5.214870, -0.000000, 2.800042, -0.000000, 1.000000}, + {1.868144, -0.000000, -0.983288, -0.000000, 4.723322, -0.000000, 2.586294, -0.000000, 1.000000}, + {1.776766, -0.000000, -0.939148, -0.000000, 4.283816, -0.000000, 2.388965, -0.000000, 1.000000}, + {1.695045, -0.000000, -0.895986, -0.000000, 3.892908, -0.000000, 2.208352, -0.000000, 1.000000}, + {1.621699, -0.000000, -0.854226, -0.000000, 3.550321, -0.000000, 2.040828, -0.000000, 1.000000}, + {1.554762, -0.000000, -0.813286, -0.000000, 3.247862, -0.000000, 1.884675, -0.000000, 1.000000}, + {1.495525, -0.000000, -0.773600, -0.000000, 2.980183, -0.000000, 1.743413, -0.000000, 1.000000}, + {1.442190, -0.000000, -0.735267, -0.000000, 2.743122, -0.000000, 1.611380, -0.000000, 1.000000}, + {1.392841, -0.000000, -0.699411, -0.000000, 2.533287, -0.000000, 1.487552, -0.000000, 1.000000}, + {1.350601, -0.000000, -0.664157, -0.000000, 2.345310, -0.000000, 1.376028, -0.000000, 1.000000}, + {1.315291, -0.000000, -0.630413, -0.000000, 2.180694, -0.000000, 1.275931, -0.000000, 1.000000}, + {1.279763, -0.000000, -0.596575, -0.000000, 2.031982, -0.000000, 1.177584, -0.000000, 1.000000}, + {1.247809, -0.000000, -0.564268, -0.000000, 1.899718, -0.000000, 1.085585, -0.000000, 1.000000}, + {1.214143, -0.000000, -0.531699, -0.000000, 1.780414, -0.000000, 0.995573, -0.000000, 1.000000}, + {1.180461, -0.000000, -0.498392, -0.000000, 1.669314, -0.000000, 0.907584, -0.000000, 1.000000}, + {1.151001, -0.000000, -0.462184, -0.000000, 1.566040, -0.000000, 0.824480, -0.000000, 1.000000}, + {1.118292, -0.000000, -0.427696, -0.000000, 1.474647, -0.000000, 0.743411, -0.000000, 1.000000}, + {1.090124, -0.000000, -0.394140, -0.000000, 1.394335, -0.000000, 0.668413, -0.000000, 1.000000}, + {1.065651, -0.000000, -0.361431, -0.000000, 1.321703, -0.000000, 0.600774, -0.000000, 1.000000}, + {1.039177, -0.000000, -0.329697, -0.000000, 1.258581, -0.000000, 0.535377, -0.000000, 1.000000}, + {1.012649, -0.000000, -0.299669, -0.000000, 1.199650, -0.000000, 0.473554, -0.000000, 1.000000}, + {0.990886, -0.000000, -0.270667, -0.000000, 1.147215, -0.000000, 0.417800, -0.000000, 1.000000}, + {0.970691, -0.000000, -0.242635, -0.000000, 1.100400, -0.000000, 0.366189, -0.000000, 1.000000}, + {0.947988, -0.000000, -0.216053, -0.000000, 1.057616, -0.000000, 0.316603, -0.000000, 1.000000}, + {0.926084, -0.000000, -0.189932, -0.000000, 1.017089, -0.000000, 0.270279, -0.000000, 1.000000}, + {0.905794, -0.000000, -0.164557, -0.000000, 0.980429, -0.000000, 0.228410, -0.000000, 1.000000}, + {0.887501, -0.000000, -0.140614, -0.000000, 0.948911, -0.000000, 0.190542, -0.000000, 1.000000}, + {0.872318, -0.000000, -0.117285, -0.000000, 0.921909, -0.000000, 0.156126, -0.000000, 1.000000}, + {0.857240, -0.000000, -0.093339, -0.000000, 0.899640, -0.000000, 0.124241, -0.000000, 1.000000}, + {0.847199, -0.000000, -0.069224, -0.000000, 0.880288, -0.000000, 0.092689, -0.000000, 1.000000}, + {0.841875, -0.000000, -0.044932, -0.000000, 0.863369, -0.000000, 0.060817, -0.000000, 1.000000}, + {0.839018, -0.000000, -0.021404, -0.000000, 0.848751, -0.000000, 0.029542, -0.000000, 1.000000}, + {0.835378, -0.000000, 0.001013, -0.000000, 0.835340, -0.000000, -0.000412, -0.000000, 1.000000}, + {499.822083, -0.000000, -1.732011, -0.000000, 1999.965576, -0.000000, 865.707397, -0.000000, 1.000000}, + {499.822083, -0.000000, -1.732011, -0.000000, 1999.965576, -0.000000, 865.707397, -0.000000, 1.000000}, + {494.718567, -0.000000, -1.732012, -0.000000, 1987.118896, -0.000000, 856.860107, -0.000000, 1.000000}, + {220.339890, -0.000000, -1.731923, -0.000000, 882.750122, -0.000000, 381.634308, -0.000000, 1.000000}, + {123.876175, -0.000000, -1.731682, -0.000000, 496.490784, -0.000000, 214.553635, -0.000000, 1.000000}, + {79.531601, -0.000000, -1.731174, -0.000000, 316.509644, -0.000000, 137.752762, -0.000000, 1.000000}, + {55.086246, -0.000000, -1.730250, -0.000000, 220.322235, -0.000000, 95.403229, -0.000000, 1.000000}, + {40.451122, -0.000000, -1.728735, -0.000000, 161.740768, -0.000000, 70.052254, -0.000000, 1.000000}, + {30.947416, -0.000000, -1.726420, -0.000000, 123.696022, -0.000000, 53.588512, -0.000000, 1.000000}, + {24.419283, -0.000000, -1.723074, -0.000000, 97.583702, -0.000000, 42.277691, -0.000000, 1.000000}, + {19.747540, -0.000000, -1.718435, -0.000000, 78.865501, -0.000000, 34.181908, -0.000000, 1.000000}, + {16.284979, -0.000000, -1.712185, -0.000000, 64.986404, -0.000000, 28.179916, -0.000000, 1.000000}, + {13.643820, -0.000000, -1.703190, -0.000000, 54.390690, -0.000000, 23.599930, -0.000000, 1.000000}, + {11.577027, -0.000000, -1.686008, -0.000000, 46.065083, -0.000000, 20.014091, -0.000000, 1.000000}, + {9.931022, -0.000000, -1.670659, -0.000000, 39.458389, -0.000000, 17.156662, -0.000000, 1.000000}, + {8.607615, -0.000000, -1.655305, -0.000000, 34.111290, -0.000000, 14.856005, -0.000000, 1.000000}, + {7.516711, -0.000000, -1.634473, -0.000000, 29.707855, -0.000000, 12.957469, -0.000000, 1.000000}, + {6.613613, -0.000000, -1.610853, -0.000000, 26.035231, -0.000000, 11.383127, -0.000000, 1.000000}, + {5.855110, -0.000000, -1.585347, -0.000000, 22.945198, -0.000000, 10.057853, -0.000000, 1.000000}, + {5.212951, -0.000000, -1.554470, -0.000000, 20.302366, -0.000000, 8.932099, -0.000000, 1.000000}, + {4.671384, -0.000000, -1.524457, -0.000000, 18.042673, -0.000000, 7.978805, -0.000000, 1.000000}, + {4.203025, -0.000000, -1.489348, -0.000000, 16.079727, -0.000000, 7.150288, -0.000000, 1.000000}, + {3.805731, -0.000000, -1.452825, -0.000000, 14.365060, -0.000000, 6.442015, -0.000000, 1.000000}, + {3.465826, -0.000000, -1.413837, -0.000000, 12.852410, -0.000000, 5.829659, -0.000000, 1.000000}, + {3.169922, -0.000000, -1.371894, -0.000000, 11.512827, -0.000000, 5.290401, -0.000000, 1.000000}, + {2.922021, -0.000000, -1.330249, -0.000000, 10.316552, -0.000000, 4.829650, -0.000000, 1.000000}, + {2.699599, -0.000000, -1.286943, -0.000000, 9.258978, -0.000000, 4.410607, -0.000000, 1.000000}, + {2.504565, -0.000000, -1.240927, -0.000000, 8.313870, -0.000000, 4.034696, -0.000000, 1.000000}, + {2.340009, -0.000000, -1.192939, -0.000000, 7.463354, -0.000000, 3.707998, -0.000000, 1.000000}, + {2.196713, -0.000000, -1.146727, -0.000000, 6.703224, -0.000000, 3.413730, -0.000000, 1.000000}, + {2.065565, -0.000000, -1.099441, -0.000000, 6.033018, -0.000000, 3.139545, -0.000000, 1.000000}, + {1.949049, -0.000000, -1.052915, -0.000000, 5.440057, -0.000000, 2.888410, -0.000000, 1.000000}, + {1.848797, -0.000000, -1.006308, -0.000000, 4.906864, -0.000000, 2.663498, -0.000000, 1.000000}, + {1.758728, -0.000000, -0.959468, -0.000000, 4.438121, -0.000000, 2.457416, -0.000000, 1.000000}, + {1.676180, -0.000000, -0.913670, -0.000000, 4.023922, -0.000000, 2.264095, -0.000000, 1.000000}, + {1.602849, -0.000000, -0.869632, -0.000000, 3.657779, -0.000000, 2.086621, -0.000000, 1.000000}, + {1.537729, -0.000000, -0.826614, -0.000000, 3.335497, -0.000000, 1.924494, -0.000000, 1.000000}, + {1.484162, -0.000000, -0.784605, -0.000000, 3.046730, -0.000000, 1.781336, -0.000000, 1.000000}, + {1.430466, -0.000000, -0.744719, -0.000000, 2.801592, -0.000000, 1.642652, -0.000000, 1.000000}, + {1.382483, -0.000000, -0.706575, -0.000000, 2.578429, -0.000000, 1.514299, -0.000000, 1.000000}, + {1.338408, -0.000000, -0.669998, -0.000000, 2.382433, -0.000000, 1.396605, -0.000000, 1.000000}, + {1.299440, -0.000000, -0.634587, -0.000000, 2.210920, -0.000000, 1.287506, -0.000000, 1.000000}, + {1.266996, -0.000000, -0.600882, -0.000000, 2.057856, -0.000000, 1.190397, -0.000000, 1.000000}, + {1.237216, -0.000000, -0.566931, -0.000000, 1.920190, -0.000000, 1.097397, -0.000000, 1.000000}, + {1.205769, -0.000000, -0.534977, -0.000000, 1.798528, -0.000000, 1.007207, -0.000000, 1.000000}, + {1.175662, -0.000000, -0.502904, -0.000000, 1.687806, -0.000000, 0.921862, -0.000000, 1.000000}, + {1.147457, -0.000000, -0.470049, -0.000000, 1.587060, -0.000000, 0.839772, -0.000000, 1.000000}, + {1.116879, -0.000000, -0.434482, -0.000000, 1.491868, -0.000000, 0.757348, -0.000000, 1.000000}, + {1.088526, -0.000000, -0.400322, -0.000000, 1.408114, -0.000000, 0.681186, -0.000000, 1.000000}, + {1.061203, -0.000000, -0.367178, -0.000000, 1.333113, -0.000000, 0.609758, -0.000000, 1.000000}, + {1.037013, -0.000000, -0.334895, -0.000000, 1.266879, -0.000000, 0.544047, -0.000000, 1.000000}, + {1.011472, -0.000000, -0.303347, -0.000000, 1.207033, -0.000000, 0.481285, -0.000000, 1.000000}, + {0.988643, -0.000000, -0.273864, -0.000000, 1.152427, -0.000000, 0.424263, -0.000000, 1.000000}, + {0.967803, -0.000000, -0.245225, -0.000000, 1.103691, -0.000000, 0.370598, -0.000000, 1.000000}, + {0.945870, -0.000000, -0.217473, -0.000000, 1.059179, -0.000000, 0.320605, -0.000000, 1.000000}, + {0.923801, -0.000000, -0.191009, -0.000000, 1.017882, -0.000000, 0.273655, -0.000000, 1.000000}, + {0.903188, -0.000000, -0.165590, -0.000000, 0.980649, -0.000000, 0.230554, -0.000000, 1.000000}, + {0.885471, -0.000000, -0.140123, -0.000000, 0.947714, -0.000000, 0.191843, -0.000000, 1.000000}, + {0.869008, -0.000000, -0.116362, -0.000000, 0.920480, -0.000000, 0.156877, -0.000000, 1.000000}, + {0.854365, -0.000000, -0.093528, -0.000000, 0.897682, -0.000000, 0.125335, -0.000000, 1.000000}, + {0.844338, -0.000000, -0.070139, -0.000000, 0.877891, -0.000000, 0.093643, -0.000000, 1.000000}, + {0.838651, -0.000000, -0.047558, -0.000000, 0.860803, -0.000000, 0.062392, -0.000000, 1.000000}, + {0.835562, -0.000000, -0.023241, -0.000000, 0.845685, -0.000000, 0.030756, -0.000000, 1.000000}, + {0.831863, -0.000000, 0.000339, -0.000000, 0.831714, -0.000000, -0.000151, -0.000000, 1.000000}, + {511.085144, -0.000000, -1.836263, -0.000000, 2090.899902, -0.000000, 938.498901, -0.000000, 1.000000}, + {511.085144, -0.000000, -1.836263, -0.000000, 2090.899902, -0.000000, 938.498901, -0.000000, 1.000000}, + {505.213501, -0.000000, -1.836264, -0.000000, 2090.900635, -0.000000, 927.717529, -0.000000, 1.000000}, + {220.510849, -0.000000, -1.836157, -0.000000, 964.057007, -0.000000, 404.914307, -0.000000, 1.000000}, + {124.024460, -0.000000, -1.835866, -0.000000, 542.131042, -0.000000, 227.740662, -0.000000, 1.000000}, + {79.303780, -0.000000, -1.835263, -0.000000, 344.256348, -0.000000, 145.624252, -0.000000, 1.000000}, + {55.082211, -0.000000, -1.834161, -0.000000, 240.742813, -0.000000, 101.137978, -0.000000, 1.000000}, + {40.452766, -0.000000, -1.832355, -0.000000, 176.723450, -0.000000, 74.270340, -0.000000, 1.000000}, + {30.935280, -0.000000, -1.829601, -0.000000, 135.147217, -0.000000, 56.789921, -0.000000, 1.000000}, + {24.410963, -0.000000, -1.825615, -0.000000, 106.570564, -0.000000, 44.805172, -0.000000, 1.000000}, + {19.732744, -0.000000, -1.820089, -0.000000, 86.123405, -0.000000, 36.209381, -0.000000, 1.000000}, + {16.265142, -0.000000, -1.812601, -0.000000, 70.936684, -0.000000, 29.836283, -0.000000, 1.000000}, + {13.619320, -0.000000, -1.799675, -0.000000, 59.311081, -0.000000, 24.971399, -0.000000, 1.000000}, + {11.549600, -0.000000, -1.782202, -0.000000, 50.207493, -0.000000, 21.163506, -0.000000, 1.000000}, + {9.904495, -0.000000, -1.764755, -0.000000, 42.965004, -0.000000, 18.134314, -0.000000, 1.000000}, + {8.574452, -0.000000, -1.746466, -0.000000, 37.106419, -0.000000, 15.682496, -0.000000, 1.000000}, + {7.481882, -0.000000, -1.721176, -0.000000, 32.270939, -0.000000, 13.666021, -0.000000, 1.000000}, + {6.576000, -0.000000, -1.694706, -0.000000, 28.244230, -0.000000, 11.990445, -0.000000, 1.000000}, + {5.815666, -0.000000, -1.664285, -0.000000, 24.849703, -0.000000, 10.580462, -0.000000, 1.000000}, + {5.174417, -0.000000, -1.631012, -0.000000, 21.953531, -0.000000, 9.387169, -0.000000, 1.000000}, + {4.628685, -0.000000, -1.595830, -0.000000, 19.470154, -0.000000, 8.367079, -0.000000, 1.000000}, + {4.165895, -0.000000, -1.556186, -0.000000, 17.310062, -0.000000, 7.496466, -0.000000, 1.000000}, + {3.773972, -0.000000, -1.514913, -0.000000, 15.418040, -0.000000, 6.752415, -0.000000, 1.000000}, + {3.428263, -0.000000, -1.469899, -0.000000, 13.758570, -0.000000, 6.090883, -0.000000, 1.000000}, + {3.141413, -0.000000, -1.424751, -0.000000, 12.284732, -0.000000, 5.531658, -0.000000, 1.000000}, + {2.889461, -0.000000, -1.378250, -0.000000, 10.977796, -0.000000, 5.033019, -0.000000, 1.000000}, + {2.668540, -0.000000, -1.329931, -0.000000, 9.820642, -0.000000, 4.588055, -0.000000, 1.000000}, + {2.484793, -0.000000, -1.280416, -0.000000, 8.778234, -0.000000, 4.205466, -0.000000, 1.000000}, + {2.322710, -0.000000, -1.228281, -0.000000, 7.851379, -0.000000, 3.859567, -0.000000, 1.000000}, + {2.172423, -0.000000, -1.178310, -0.000000, 7.039433, -0.000000, 3.533728, -0.000000, 1.000000}, + {2.038147, -0.000000, -1.127417, -0.000000, 6.319024, -0.000000, 3.236640, -0.000000, 1.000000}, + {1.926231, -0.000000, -1.077733, -0.000000, 5.672859, -0.000000, 2.976160, -0.000000, 1.000000}, + {1.825794, -0.000000, -1.028585, -0.000000, 5.107165, -0.000000, 2.737221, -0.000000, 1.000000}, + {1.736350, -0.000000, -0.979110, -0.000000, 4.604621, -0.000000, 2.517713, -0.000000, 1.000000}, + {1.655195, -0.000000, -0.930475, -0.000000, 4.163131, -0.000000, 2.315423, -0.000000, 1.000000}, + {1.583655, -0.000000, -0.883679, -0.000000, 3.769291, -0.000000, 2.130528, -0.000000, 1.000000}, + {1.519473, -0.000000, -0.839042, -0.000000, 3.424717, -0.000000, 1.961308, -0.000000, 1.000000}, + {1.466147, -0.000000, -0.795197, -0.000000, 3.124171, -0.000000, 1.810564, -0.000000, 1.000000}, + {1.418495, -0.000000, -0.753046, -0.000000, 2.856174, -0.000000, 1.672148, -0.000000, 1.000000}, + {1.370672, -0.000000, -0.713403, -0.000000, 2.627248, -0.000000, 1.539354, -0.000000, 1.000000}, + {1.326257, -0.000000, -0.675196, -0.000000, 2.422592, -0.000000, 1.414866, -0.000000, 1.000000}, + {1.287364, -0.000000, -0.638322, -0.000000, 2.241496, -0.000000, 1.301947, -0.000000, 1.000000}, + {1.255925, -0.000000, -0.603308, -0.000000, 2.080925, -0.000000, 1.201617, -0.000000, 1.000000}, + {1.224782, -0.000000, -0.569434, -0.000000, 1.941677, -0.000000, 1.106450, -0.000000, 1.000000}, + {1.196137, -0.000000, -0.536233, -0.000000, 1.814372, -0.000000, 1.015351, -0.000000, 1.000000}, + {1.166428, -0.000000, -0.504487, -0.000000, 1.702504, -0.000000, 0.929057, -0.000000, 1.000000}, + {1.142563, -0.000000, -0.473197, -0.000000, 1.601333, -0.000000, 0.850931, -0.000000, 1.000000}, + {1.115591, -0.000000, -0.441374, -0.000000, 1.508293, -0.000000, 0.772202, -0.000000, 1.000000}, + {1.087450, -0.000000, -0.406578, -0.000000, 1.421924, -0.000000, 0.693273, -0.000000, 1.000000}, + {1.058441, -0.000000, -0.373003, -0.000000, 1.343416, -0.000000, 0.619633, -0.000000, 1.000000}, + {1.036405, -0.000000, -0.339918, -0.000000, 1.274265, -0.000000, 0.553749, -0.000000, 1.000000}, + {1.009811, -0.000000, -0.308106, -0.000000, 1.213769, -0.000000, 0.488978, -0.000000, 1.000000}, + {0.987187, -0.000000, -0.277417, -0.000000, 1.158055, -0.000000, 0.430549, -0.000000, 1.000000}, + {0.966496, -0.000000, -0.247941, -0.000000, 1.107122, -0.000000, 0.376330, -0.000000, 1.000000}, + {0.943611, -0.000000, -0.219767, -0.000000, 1.061514, -0.000000, 0.324694, -0.000000, 1.000000}, + {0.921372, -0.000000, -0.192425, -0.000000, 1.018703, -0.000000, 0.276404, -0.000000, 1.000000}, + {0.901605, -0.000000, -0.166112, -0.000000, 0.980966, -0.000000, 0.233120, -0.000000, 1.000000}, + {0.883031, -0.000000, -0.140630, -0.000000, 0.947478, -0.000000, 0.193672, -0.000000, 1.000000}, + {0.866008, -0.000000, -0.116135, -0.000000, 0.918590, -0.000000, 0.157817, -0.000000, 1.000000}, + {0.851028, -0.000000, -0.092333, -0.000000, 0.894998, -0.000000, 0.125516, -0.000000, 1.000000}, + {0.841057, -0.000000, -0.069434, -0.000000, 0.875056, -0.000000, 0.093820, -0.000000, 1.000000}, + {0.835355, -0.000000, -0.047327, -0.000000, 0.857536, -0.000000, 0.062534, -0.000000, 1.000000}, + {0.832269, -0.000000, -0.024353, -0.000000, 0.842383, -0.000000, 0.031288, -0.000000, 1.000000}, + {0.828228, -0.000000, -0.001268, -0.000000, 0.828206, -0.000000, 0.000576, -0.000000, 1.000000}, + {522.856628, -0.000000, -1.950519, -0.000000, 2191.923096, -0.000000, 1019.856506, -0.000000, 1.000000}, + {522.856628, -0.000000, -1.950519, -0.000000, 2191.923096, -0.000000, 1019.856506, -0.000000, 1.000000}, + {516.628113, -0.000000, -1.950522, -0.000000, 2191.925293, -0.000000, 1007.708191, -0.000000, 1.000000}, + {220.411392, -0.000000, -1.950389, -0.000000, 1059.556763, -0.000000, 429.909698, -0.000000, 1.000000}, + {124.020309, -0.000000, -1.950044, -0.000000, 595.630554, -0.000000, 241.902267, -0.000000, 1.000000}, + {80.171425, -0.000000, -1.949318, -0.000000, 369.970856, -0.000000, 156.368896, -0.000000, 1.000000}, + {55.070259, -0.000000, -1.948004, -0.000000, 264.543182, -0.000000, 107.406013, -0.000000, 1.000000}, + {40.438072, -0.000000, -1.945839, -0.000000, 194.107300, -0.000000, 78.858276, -0.000000, 1.000000}, + {30.926123, -0.000000, -1.942536, -0.000000, 148.464951, -0.000000, 60.303143, -0.000000, 1.000000}, + {24.393267, -0.000000, -1.937764, -0.000000, 117.051712, -0.000000, 47.555790, -0.000000, 1.000000}, + {19.713079, -0.000000, -1.931139, -0.000000, 94.537262, -0.000000, 38.420696, -0.000000, 1.000000}, + {16.244186, -0.000000, -1.922046, -0.000000, 77.826172, -0.000000, 31.647764, -0.000000, 1.000000}, + {13.590987, -0.000000, -1.904654, -0.000000, 65.003174, -0.000000, 26.464888, -0.000000, 1.000000}, + {11.518149, -0.000000, -1.886799, -0.000000, 54.991226, -0.000000, 22.412935, -0.000000, 1.000000}, + {9.869328, -0.000000, -1.867105, -0.000000, 47.021591, -0.000000, 19.187117, -0.000000, 1.000000}, + {8.536189, -0.000000, -1.843594, -0.000000, 40.553040, -0.000000, 16.575714, -0.000000, 1.000000}, + {7.440576, -0.000000, -1.815064, -0.000000, 35.213913, -0.000000, 14.425980, -0.000000, 1.000000}, + {6.533275, -0.000000, -1.785355, -0.000000, 30.780426, -0.000000, 12.641932, -0.000000, 1.000000}, + {5.769576, -0.000000, -1.747463, -0.000000, 27.016623, -0.000000, 11.136325, -0.000000, 1.000000}, + {5.130471, -0.000000, -1.711248, -0.000000, 23.826628, -0.000000, 9.870622, -0.000000, 1.000000}, + {4.584968, -0.000000, -1.669486, -0.000000, 21.077785, -0.000000, 8.785582, -0.000000, 1.000000}, + {4.125204, -0.000000, -1.626074, -0.000000, 18.692146, -0.000000, 7.863742, -0.000000, 1.000000}, + {3.726583, -0.000000, -1.579110, -0.000000, 16.608892, -0.000000, 7.058338, -0.000000, 1.000000}, + {3.394824, -0.000000, -1.528215, -0.000000, 14.758327, -0.000000, 6.377739, -0.000000, 1.000000}, + {3.104619, -0.000000, -1.477659, -0.000000, 13.134014, -0.000000, 5.774045, -0.000000, 1.000000}, + {2.853900, -0.000000, -1.426794, -0.000000, 11.702996, -0.000000, 5.243056, -0.000000, 1.000000}, + {2.645911, -0.000000, -1.373962, -0.000000, 10.414655, -0.000000, 4.789696, -0.000000, 1.000000}, + {2.455043, -0.000000, -1.319252, -0.000000, 9.289620, -0.000000, 4.366351, -0.000000, 1.000000}, + {2.286029, -0.000000, -1.263785, -0.000000, 8.290472, -0.000000, 3.984693, -0.000000, 1.000000}, + {2.144610, -0.000000, -1.208328, -0.000000, 7.395809, -0.000000, 3.651616, -0.000000, 1.000000}, + {2.018924, -0.000000, -1.154220, -0.000000, 6.609995, -0.000000, 3.347934, -0.000000, 1.000000}, + {1.908630, -0.000000, -1.101906, -0.000000, 5.915262, -0.000000, 3.071701, -0.000000, 1.000000}, + {1.810057, -0.000000, -1.049653, -0.000000, 5.302467, -0.000000, 2.820414, -0.000000, 1.000000}, + {1.722040, -0.000000, -0.997850, -0.000000, 4.767898, -0.000000, 2.588821, -0.000000, 1.000000}, + {1.642225, -0.000000, -0.946446, -0.000000, 4.292281, -0.000000, 2.376664, -0.000000, 1.000000}, + {1.569530, -0.000000, -0.897342, -0.000000, 3.881018, -0.000000, 2.179606, -0.000000, 1.000000}, + {1.505592, -0.000000, -0.850558, -0.000000, 3.518266, -0.000000, 2.001445, -0.000000, 1.000000}, + {1.446825, -0.000000, -0.804661, -0.000000, 3.199698, -0.000000, 1.836233, -0.000000, 1.000000}, + {1.400495, -0.000000, -0.760898, -0.000000, 2.915498, -0.000000, 1.693745, -0.000000, 1.000000}, + {1.358733, -0.000000, -0.719661, -0.000000, 2.672253, -0.000000, 1.560866, -0.000000, 1.000000}, + {1.315017, -0.000000, -0.679627, -0.000000, 2.460043, -0.000000, 1.433125, -0.000000, 1.000000}, + {1.275442, -0.000000, -0.641727, -0.000000, 2.273172, -0.000000, 1.314863, -0.000000, 1.000000}, + {1.238994, -0.000000, -0.605290, -0.000000, 2.106010, -0.000000, 1.205777, -0.000000, 1.000000}, + {1.210726, -0.000000, -0.570206, -0.000000, 1.959141, -0.000000, 1.110287, -0.000000, 1.000000}, + {1.185854, -0.000000, -0.537214, -0.000000, 1.830824, -0.000000, 1.022619, -0.000000, 1.000000}, + {1.156902, -0.000000, -0.504490, -0.000000, 1.713990, -0.000000, 0.934736, -0.000000, 1.000000}, + {1.130251, -0.000000, -0.472907, -0.000000, 1.611545, -0.000000, 0.853043, -0.000000, 1.000000}, + {1.108888, -0.000000, -0.443138, -0.000000, 1.520653, -0.000000, 0.778845, -0.000000, 1.000000}, + {1.084594, -0.000000, -0.411551, -0.000000, 1.433868, -0.000000, 0.704439, -0.000000, 1.000000}, + {1.057224, -0.000000, -0.378677, -0.000000, 1.354767, -0.000000, 0.630756, -0.000000, 1.000000}, + {1.033701, -0.000000, -0.345537, -0.000000, 1.284055, -0.000000, 0.562606, -0.000000, 1.000000}, + {1.008690, -0.000000, -0.313160, -0.000000, 1.219998, -0.000000, 0.497265, -0.000000, 1.000000}, + {0.985571, -0.000000, -0.281641, -0.000000, 1.162985, -0.000000, 0.437173, -0.000000, 1.000000}, + {0.961933, -0.000000, -0.251454, -0.000000, 1.110853, -0.000000, 0.380646, -0.000000, 1.000000}, + {0.941440, -0.000000, -0.222416, -0.000000, 1.064740, -0.000000, 0.329020, -0.000000, 1.000000}, + {0.919224, -0.000000, -0.194301, -0.000000, 1.020837, -0.000000, 0.279925, -0.000000, 1.000000}, + {0.898780, -0.000000, -0.167465, -0.000000, 0.980660, -0.000000, 0.235833, -0.000000, 1.000000}, + {0.879596, -0.000000, -0.141417, -0.000000, 0.945691, -0.000000, 0.195061, -0.000000, 1.000000}, + {0.862773, -0.000000, -0.116180, -0.000000, 0.917014, -0.000000, 0.159180, -0.000000, 1.000000}, + {0.847710, -0.000000, -0.092103, -0.000000, 0.892612, -0.000000, 0.126118, -0.000000, 1.000000}, + {0.837527, -0.000000, -0.068360, -0.000000, 0.871935, -0.000000, 0.094026, -0.000000, 1.000000}, + {0.831846, -0.000000, -0.045148, -0.000000, 0.854085, -0.000000, 0.061922, -0.000000, 1.000000}, + {0.828295, -0.000000, -0.023199, -0.000000, 0.838678, -0.000000, 0.030957, -0.000000, 1.000000}, + {0.824359, -0.000000, -0.001179, -0.000000, 0.824310, -0.000000, 0.000537, -0.000000, 1.000000}, + {534.931519, -0.000000, -2.076462, -0.000000, 2304.711182, -0.000000, 1110.782715, -0.000000, 1.000000}, + {534.931519, -0.000000, -2.076462, -0.000000, 2304.711182, -0.000000, 1110.782715, -0.000000, 1.000000}, + {528.627502, -0.000000, -2.076462, -0.000000, 2304.711182, -0.000000, 1097.679199, -0.000000, 1.000000}, + {220.649765, -0.000000, -2.076304, -0.000000, 1170.831055, -0.000000, 458.160980, -0.000000, 1.000000}, + {123.931099, -0.000000, -2.075889, -0.000000, 658.919556, -0.000000, 257.328156, -0.000000, 1.000000}, + {79.682602, -0.000000, -2.075014, -0.000000, 421.132446, -0.000000, 165.441055, -0.000000, 1.000000}, + {55.126919, -0.000000, -2.073427, -0.000000, 292.498444, -0.000000, 114.461647, -0.000000, 1.000000}, + {40.417175, -0.000000, -2.070816, -0.000000, 214.591156, -0.000000, 83.909187, -0.000000, 1.000000}, + {30.905352, -0.000000, -2.066834, -0.000000, 164.035019, -0.000000, 64.151772, -0.000000, 1.000000}, + {24.375099, -0.000000, -2.061075, -0.000000, 129.300705, -0.000000, 50.585114, -0.000000, 1.000000}, + {19.691891, -0.000000, -2.053074, -0.000000, 104.380424, -0.000000, 40.853252, -0.000000, 1.000000}, + {16.217587, -0.000000, -2.041667, -0.000000, 85.868156, -0.000000, 33.630775, -0.000000, 1.000000}, + {13.557062, -0.000000, -2.020104, -0.000000, 71.643127, -0.000000, 28.096966, -0.000000, 1.000000}, + {11.480399, -0.000000, -1.999466, -0.000000, 60.549194, -0.000000, 23.774267, -0.000000, 1.000000}, + {9.829308, -0.000000, -1.978149, -0.000000, 51.726891, -0.000000, 20.334194, -0.000000, 1.000000}, + {8.491221, -0.000000, -1.948618, -0.000000, 44.533123, -0.000000, 17.542261, -0.000000, 1.000000}, + {7.394433, -0.000000, -1.916266, -0.000000, 38.615311, -0.000000, 15.249652, -0.000000, 1.000000}, + {6.483265, -0.000000, -1.881097, -0.000000, 33.689857, -0.000000, 13.340503, -0.000000, 1.000000}, + {5.721082, -0.000000, -1.838861, -0.000000, 29.508221, -0.000000, 11.738617, -0.000000, 1.000000}, + {5.077987, -0.000000, -1.796048, -0.000000, 25.962015, -0.000000, 10.381338, -0.000000, 1.000000}, + {4.536246, -0.000000, -1.748015, -0.000000, 22.900066, -0.000000, 9.230186, -0.000000, 1.000000}, + {4.072760, -0.000000, -1.698875, -0.000000, 20.257427, -0.000000, 8.238698, -0.000000, 1.000000}, + {3.686262, -0.000000, -1.643739, -0.000000, 17.921173, -0.000000, 7.401805, -0.000000, 1.000000}, + {3.351644, -0.000000, -1.588342, -0.000000, 15.875896, -0.000000, 6.667620, -0.000000, 1.000000}, + {3.062906, -0.000000, -1.532489, -0.000000, 14.084973, -0.000000, 6.023572, -0.000000, 1.000000}, + {2.826135, -0.000000, -1.475262, -0.000000, 12.475431, -0.000000, 5.480184, -0.000000, 1.000000}, + {2.612152, -0.000000, -1.417196, -0.000000, 11.072163, -0.000000, 4.982215, -0.000000, 1.000000}, + {2.421078, -0.000000, -1.357244, -0.000000, 9.839993, -0.000000, 4.528382, -0.000000, 1.000000}, + {2.262880, -0.000000, -1.297832, -0.000000, 8.733887, -0.000000, 4.137828, -0.000000, 1.000000}, + {2.123210, -0.000000, -1.237986, -0.000000, 7.764506, -0.000000, 3.783846, -0.000000, 1.000000}, + {2.001339, -0.000000, -1.180301, -0.000000, 6.908175, -0.000000, 3.464269, -0.000000, 1.000000}, + {1.888099, -0.000000, -1.124648, -0.000000, 6.165969, -0.000000, 3.165197, -0.000000, 1.000000}, + {1.790447, -0.000000, -1.069121, -0.000000, 5.508952, -0.000000, 2.898229, -0.000000, 1.000000}, + {1.702892, -0.000000, -1.014932, -0.000000, 4.935512, -0.000000, 2.653268, -0.000000, 1.000000}, + {1.627237, -0.000000, -0.961619, -0.000000, 4.432228, -0.000000, 2.433160, -0.000000, 1.000000}, + {1.555372, -0.000000, -0.910303, -0.000000, 3.994545, -0.000000, 2.228181, -0.000000, 1.000000}, + {1.491259, -0.000000, -0.860476, -0.000000, 3.608410, -0.000000, 2.039882, -0.000000, 1.000000}, + {1.433191, -0.000000, -0.813574, -0.000000, 3.274186, -0.000000, 1.867967, -0.000000, 1.000000}, + {1.380491, -0.000000, -0.767979, -0.000000, 2.982822, -0.000000, 1.709671, -0.000000, 1.000000}, + {1.340750, -0.000000, -0.724919, -0.000000, 2.723112, -0.000000, 1.574627, -0.000000, 1.000000}, + {1.302532, -0.000000, -0.683928, -0.000000, 2.499173, -0.000000, 1.447712, -0.000000, 1.000000}, + {1.262818, -0.000000, -0.644420, -0.000000, 2.303014, -0.000000, 1.326102, -0.000000, 1.000000}, + {1.227367, -0.000000, -0.606889, -0.000000, 2.131922, -0.000000, 1.214240, -0.000000, 1.000000}, + {1.198555, -0.000000, -0.570762, -0.000000, 1.978062, -0.000000, 1.115009, -0.000000, 1.000000}, + {1.173720, -0.000000, -0.536307, -0.000000, 1.843448, -0.000000, 1.024792, -0.000000, 1.000000}, + {1.146015, -0.000000, -0.503941, -0.000000, 1.726514, -0.000000, 0.937544, -0.000000, 1.000000}, + {1.120140, -0.000000, -0.472156, -0.000000, 1.621923, -0.000000, 0.854947, -0.000000, 1.000000}, + {1.099030, -0.000000, -0.440997, -0.000000, 1.525176, -0.000000, 0.779421, -0.000000, 1.000000}, + {1.075762, -0.000000, -0.411637, -0.000000, 1.441787, -0.000000, 0.707502, -0.000000, 1.000000}, + {1.053021, -0.000000, -0.381952, -0.000000, 1.364861, -0.000000, 0.638216, -0.000000, 1.000000}, + {1.032377, -0.000000, -0.350971, -0.000000, 1.292393, -0.000000, 0.571711, -0.000000, 1.000000}, + {1.006951, -0.000000, -0.318342, -0.000000, 1.226765, -0.000000, 0.505275, -0.000000, 1.000000}, + {0.982186, -0.000000, -0.286424, -0.000000, 1.166769, -0.000000, 0.443069, -0.000000, 1.000000}, + {0.960956, -0.000000, -0.255637, -0.000000, 1.113608, -0.000000, 0.386492, -0.000000, 1.000000}, + {0.939755, -0.000000, -0.225726, -0.000000, 1.066223, -0.000000, 0.333393, -0.000000, 1.000000}, + {0.916477, -0.000000, -0.196993, -0.000000, 1.020408, -0.000000, 0.283127, -0.000000, 1.000000}, + {0.894526, -0.000000, -0.169568, -0.000000, 0.979850, -0.000000, 0.237879, -0.000000, 1.000000}, + {0.872932, -0.000000, -0.142857, -0.000000, 0.943548, -0.000000, 0.196280, -0.000000, 1.000000}, + {0.856007, -0.000000, -0.116993, -0.000000, 0.914232, -0.000000, 0.159830, -0.000000, 1.000000}, + {0.840900, -0.000000, -0.091758, -0.000000, 0.889403, -0.000000, 0.126496, -0.000000, 1.000000}, + {0.831786, -0.000000, -0.067669, -0.000000, 0.868511, -0.000000, 0.094115, -0.000000, 1.000000}, + {0.826912, -0.000000, -0.044142, -0.000000, 0.850352, -0.000000, 0.061655, -0.000000, 1.000000}, + {0.823764, -0.000000, -0.021328, -0.000000, 0.834539, -0.000000, 0.030128, -0.000000, 1.000000}, + {0.819888, -0.000000, 0.000570, -0.000000, 0.819848, -0.000000, -0.000282, -0.000000, 1.000000}, + {547.698608, -0.000000, -2.216152, -0.000000, 2431.322510, -0.000000, 1213.786133, -0.000000, 1.000000}, + {547.698608, -0.000000, -2.216152, -0.000000, 2431.322510, -0.000000, 1213.786133, -0.000000, 1.000000}, + {541.724854, -0.000000, -2.216151, -0.000000, 2431.322021, -0.000000, 1200.541992, -0.000000, 1.000000}, + {220.495575, -0.000000, -2.215967, -0.000000, 1304.105347, -0.000000, 488.638763, -0.000000, 1.000000}, + {123.997833, -0.000000, -2.215462, -0.000000, 732.982117, -0.000000, 274.797150, -0.000000, 1.000000}, + {79.321518, -0.000000, -2.214395, -0.000000, 467.576630, -0.000000, 175.797195, -0.000000, 1.000000}, + {55.066784, -0.000000, -2.212466, -0.000000, 325.344360, -0.000000, 122.022865, -0.000000, 1.000000}, + {40.409760, -0.000000, -2.209294, -0.000000, 238.733765, -0.000000, 89.534386, -0.000000, 1.000000}, + {30.892561, -0.000000, -2.204457, -0.000000, 182.439606, -0.000000, 68.435677, -0.000000, 1.000000}, + {24.353909, -0.000000, -2.197461, -0.000000, 143.744278, -0.000000, 53.937122, -0.000000, 1.000000}, + {19.665783, -0.000000, -2.187703, -0.000000, 115.982147, -0.000000, 43.538372, -0.000000, 1.000000}, + {16.184109, -0.000000, -2.171568, -0.000000, 95.313591, -0.000000, 35.812431, -0.000000, 1.000000}, + {13.516235, -0.000000, -2.148222, -0.000000, 79.457481, -0.000000, 29.888878, -0.000000, 1.000000}, + {11.437142, -0.000000, -2.124542, -0.000000, 67.084206, -0.000000, 25.268660, -0.000000, 1.000000}, + {9.782360, -0.000000, -2.098555, -0.000000, 57.227875, -0.000000, 21.587015, -0.000000, 1.000000}, + {8.438704, -0.000000, -2.062629, -0.000000, 49.177879, -0.000000, 18.593519, -0.000000, 1.000000}, + {7.338447, -0.000000, -2.026723, -0.000000, 42.578079, -0.000000, 16.136845, -0.000000, 1.000000}, + {6.425764, -0.000000, -1.981691, -0.000000, 37.038700, -0.000000, 14.093365, -0.000000, 1.000000}, + {5.665631, -0.000000, -1.935570, -0.000000, 32.374416, -0.000000, 12.385567, -0.000000, 1.000000}, + {5.022426, -0.000000, -1.884460, -0.000000, 28.398439, -0.000000, 10.933270, -0.000000, 1.000000}, + {4.483363, -0.000000, -1.830806, -0.000000, 24.969889, -0.000000, 9.706996, -0.000000, 1.000000}, + {4.024064, -0.000000, -1.773879, -0.000000, 22.003885, -0.000000, 8.653734, -0.000000, 1.000000}, + {3.634933, -0.000000, -1.711488, -0.000000, 19.395679, -0.000000, 7.750332, -0.000000, 1.000000}, + {3.303313, -0.000000, -1.648617, -0.000000, 17.111935, -0.000000, 6.968053, -0.000000, 1.000000}, + {3.031241, -0.000000, -1.586631, -0.000000, 15.091459, -0.000000, 6.310078, -0.000000, 1.000000}, + {2.788628, -0.000000, -1.523853, -0.000000, 13.331050, -0.000000, 5.712807, -0.000000, 1.000000}, + {2.572773, -0.000000, -1.459336, -0.000000, 11.785311, -0.000000, 5.172314, -0.000000, 1.000000}, + {2.395988, -0.000000, -1.395346, -0.000000, 10.409495, -0.000000, 4.711967, -0.000000, 1.000000}, + {2.234667, -0.000000, -1.330967, -0.000000, 9.212646, -0.000000, 4.285920, -0.000000, 1.000000}, + {2.097995, -0.000000, -1.266162, -0.000000, 8.152663, -0.000000, 3.910729, -0.000000, 1.000000}, + {1.963727, -0.000000, -1.204941, -0.000000, 7.248562, -0.000000, 3.548317, -0.000000, 1.000000}, + {1.857431, -0.000000, -1.145330, -0.000000, 6.437681, -0.000000, 3.240990, -0.000000, 1.000000}, + {1.761508, -0.000000, -1.087543, -0.000000, 5.733542, -0.000000, 2.958986, -0.000000, 1.000000}, + {1.674523, -0.000000, -1.030845, -0.000000, 5.118929, -0.000000, 2.702026, -0.000000, 1.000000}, + {1.603867, -0.000000, -0.975398, -0.000000, 4.579770, -0.000000, 2.478565, -0.000000, 1.000000}, + {1.537894, -0.000000, -0.921826, -0.000000, 4.110187, -0.000000, 2.268970, -0.000000, 1.000000}, + {1.476253, -0.000000, -0.870369, -0.000000, 3.704278, -0.000000, 2.075746, -0.000000, 1.000000}, + {1.418603, -0.000000, -0.820998, -0.000000, 3.345320, -0.000000, 1.897944, -0.000000, 1.000000}, + {1.367561, -0.000000, -0.774169, -0.000000, 3.042042, -0.000000, 1.733577, -0.000000, 1.000000}, + {1.321592, -0.000000, -0.729646, -0.000000, 2.774602, -0.000000, 1.585879, -0.000000, 1.000000}, + {1.287551, -0.000000, -0.687213, -0.000000, 2.537718, -0.000000, 1.457768, -0.000000, 1.000000}, + {1.251045, -0.000000, -0.646876, -0.000000, 2.333415, -0.000000, 1.336647, -0.000000, 1.000000}, + {1.215090, -0.000000, -0.608104, -0.000000, 2.157884, -0.000000, 1.221782, -0.000000, 1.000000}, + {1.187507, -0.000000, -0.570883, -0.000000, 1.997079, -0.000000, 1.120181, -0.000000, 1.000000}, + {1.159110, -0.000000, -0.535681, -0.000000, 1.859120, -0.000000, 1.024047, -0.000000, 1.000000}, + {1.133947, -0.000000, -0.502004, -0.000000, 1.737630, -0.000000, 0.936132, -0.000000, 1.000000}, + {1.108356, -0.000000, -0.470115, -0.000000, 1.629611, -0.000000, 0.853133, -0.000000, 1.000000}, + {1.087486, -0.000000, -0.439269, -0.000000, 1.533357, -0.000000, 0.778441, -0.000000, 1.000000}, + {1.064389, -0.000000, -0.408767, -0.000000, 1.447046, -0.000000, 0.704872, -0.000000, 1.000000}, + {1.044128, -0.000000, -0.379859, -0.000000, 1.370139, -0.000000, 0.637842, -0.000000, 1.000000}, + {1.026752, -0.000000, -0.351967, -0.000000, 1.298760, -0.000000, 0.575662, -0.000000, 1.000000}, + {1.004744, -0.000000, -0.323155, -0.000000, 1.233683, -0.000000, 0.512586, -0.000000, 1.000000}, + {0.979369, -0.000000, -0.291482, -0.000000, 1.172323, -0.000000, 0.448875, -0.000000, 1.000000}, + {0.955765, -0.000000, -0.260312, -0.000000, 1.116926, -0.000000, 0.390081, -0.000000, 1.000000}, + {0.935192, -0.000000, -0.230093, -0.000000, 1.067516, -0.000000, 0.336411, -0.000000, 1.000000}, + {0.909028, -0.000000, -0.200744, -0.000000, 1.019669, -0.000000, 0.284630, -0.000000, 1.000000}, + {0.886791, -0.000000, -0.172159, -0.000000, 0.977862, -0.000000, 0.238740, -0.000000, 1.000000}, + {0.866524, -0.000000, -0.144931, -0.000000, 0.939862, -0.000000, 0.196845, -0.000000, 1.000000}, + {0.851267, -0.000000, -0.118396, -0.000000, 0.910501, -0.000000, 0.160555, -0.000000, 1.000000}, + {0.836332, -0.000000, -0.092470, -0.000000, 0.885691, -0.000000, 0.127088, -0.000000, 1.000000}, + {0.826518, -0.000000, -0.067673, -0.000000, 0.864291, -0.000000, 0.094333, -0.000000, 1.000000}, + {0.822121, -0.000000, -0.043668, -0.000000, 0.846269, -0.000000, 0.061727, -0.000000, 1.000000}, + {0.819036, -0.000000, -0.020758, -0.000000, 0.830123, -0.000000, 0.030026, -0.000000, 1.000000}, + {0.815276, -0.000000, 0.002054, -0.000000, 0.815260, -0.000000, -0.001032, -0.000000, 1.000000}, + {561.883667, -0.000000, -2.372193, -0.000000, 2574.354492, -0.000000, 1332.924683, -0.000000, 1.000000}, + {561.883667, -0.000000, -2.372193, -0.000000, 2574.354492, -0.000000, 1332.924683, -0.000000, 1.000000}, + {555.820129, -0.000000, -2.372194, -0.000000, 2574.354736, -0.000000, 1318.537109, -0.000000, 1.000000}, + {220.281784, -0.000000, -2.371958, -0.000000, 1462.253174, -0.000000, 522.530762, -0.000000, 1.000000}, + {124.201653, -0.000000, -2.371346, -0.000000, 819.630859, -0.000000, 294.612000, -0.000000, 1.000000}, + {79.289734, -0.000000, -2.370037, -0.000000, 525.143250, -0.000000, 188.088806, -0.000000, 1.000000}, + {55.047886, -0.000000, -2.367670, -0.000000, 364.698517, -0.000000, 130.568375, -0.000000, 1.000000}, + {40.397610, -0.000000, -2.363784, -0.000000, 267.540436, -0.000000, 95.807053, -0.000000, 1.000000}, + {30.873516, -0.000000, -2.357851, -0.000000, 204.378632, -0.000000, 73.204865, -0.000000, 1.000000}, + {24.330233, -0.000000, -2.349277, -0.000000, 160.947327, -0.000000, 57.672913, -0.000000, 1.000000}, + {19.635122, -0.000000, -2.337193, -0.000000, 129.779053, -0.000000, 46.524712, -0.000000, 1.000000}, + {16.140512, -0.000000, -2.314546, -0.000000, 106.507278, -0.000000, 38.222347, -0.000000, 1.000000}, + {13.471733, -0.000000, -2.290206, -0.000000, 88.717796, -0.000000, 31.877861, -0.000000, 1.000000}, + {11.385731, -0.000000, -2.262814, -0.000000, 74.812531, -0.000000, 26.913906, -0.000000, 1.000000}, + {9.723210, -0.000000, -2.227956, -0.000000, 63.686466, -0.000000, 22.952801, -0.000000, 1.000000}, + {8.377718, -0.000000, -2.188186, -0.000000, 54.641895, -0.000000, 19.741394, -0.000000, 1.000000}, + {7.275503, -0.000000, -2.145044, -0.000000, 47.198776, -0.000000, 17.104599, -0.000000, 1.000000}, + {6.361020, -0.000000, -2.091993, -0.000000, 40.946705, -0.000000, 14.910710, -0.000000, 1.000000}, + {5.595813, -0.000000, -2.038194, -0.000000, 35.699799, -0.000000, 13.066761, -0.000000, 1.000000}, + {4.959548, -0.000000, -1.978449, -0.000000, 31.195763, -0.000000, 11.523515, -0.000000, 1.000000}, + {4.418256, -0.000000, -1.917762, -0.000000, 27.345129, -0.000000, 10.202260, -0.000000, 1.000000}, + {3.971417, -0.000000, -1.850544, -0.000000, 23.970930, -0.000000, 9.097040, -0.000000, 1.000000}, + {3.578974, -0.000000, -1.780140, -0.000000, 21.051313, -0.000000, 8.117160, -0.000000, 1.000000}, + {3.264671, -0.000000, -1.710932, -0.000000, 18.465061, -0.000000, 7.311978, -0.000000, 1.000000}, + {2.974657, -0.000000, -1.641593, -0.000000, 16.245468, -0.000000, 6.562681, -0.000000, 1.000000}, + {2.742392, -0.000000, -1.571622, -0.000000, 14.267390, -0.000000, 5.941258, -0.000000, 1.000000}, + {2.543485, -0.000000, -1.501255, -0.000000, 12.535033, -0.000000, 5.392533, -0.000000, 1.000000}, + {2.359228, -0.000000, -1.431597, -0.000000, 11.032725, -0.000000, 4.880836, -0.000000, 1.000000}, + {2.195821, -0.000000, -1.362259, -0.000000, 9.735834, -0.000000, 4.416909, -0.000000, 1.000000}, + {2.059949, -0.000000, -1.293351, -0.000000, 8.579062, -0.000000, 4.018088, -0.000000, 1.000000}, + {1.941084, -0.000000, -1.227354, -0.000000, 7.574182, -0.000000, 3.658072, -0.000000, 1.000000}, + {1.835384, -0.000000, -1.164937, -0.000000, 6.709195, -0.000000, 3.329049, -0.000000, 1.000000}, + {1.741773, -0.000000, -1.104218, -0.000000, 5.952015, -0.000000, 3.035784, -0.000000, 1.000000}, + {1.655820, -0.000000, -1.044862, -0.000000, 5.298123, -0.000000, 2.762919, -0.000000, 1.000000}, + {1.580213, -0.000000, -0.987338, -0.000000, 4.727161, -0.000000, 2.517756, -0.000000, 1.000000}, + {1.511588, -0.000000, -0.932578, -0.000000, 4.234377, -0.000000, 2.295705, -0.000000, 1.000000}, + {1.458300, -0.000000, -0.879306, -0.000000, 3.799523, -0.000000, 2.104888, -0.000000, 1.000000}, + {1.404009, -0.000000, -0.827517, -0.000000, 3.426577, -0.000000, 1.921788, -0.000000, 1.000000}, + {1.352626, -0.000000, -0.779565, -0.000000, 3.106237, -0.000000, 1.752501, -0.000000, 1.000000}, + {1.306817, -0.000000, -0.733467, -0.000000, 2.825721, -0.000000, 1.599079, -0.000000, 1.000000}, + {1.271053, -0.000000, -0.689857, -0.000000, 2.577658, -0.000000, 1.466005, -0.000000, 1.000000}, + {1.237855, -0.000000, -0.648652, -0.000000, 2.363580, -0.000000, 1.344115, -0.000000, 1.000000}, + {1.202994, -0.000000, -0.608877, -0.000000, 2.179758, -0.000000, 1.226534, -0.000000, 1.000000}, + {1.171368, -0.000000, -0.570961, -0.000000, 2.018505, -0.000000, 1.119002, -0.000000, 1.000000}, + {1.147960, -0.000000, -0.534654, -0.000000, 1.872719, -0.000000, 1.025949, -0.000000, 1.000000}, + {1.122561, -0.000000, -0.499815, -0.000000, 1.747553, -0.000000, 0.935527, -0.000000, 1.000000}, + {1.096977, -0.000000, -0.467389, -0.000000, 1.636278, -0.000000, 0.850964, -0.000000, 1.000000}, + {1.076256, -0.000000, -0.436104, -0.000000, 1.537529, -0.000000, 0.775857, -0.000000, 1.000000}, + {1.054496, -0.000000, -0.406137, -0.000000, 1.450749, -0.000000, 0.703234, -0.000000, 1.000000}, + {1.033806, -0.000000, -0.376303, -0.000000, 1.371762, -0.000000, 0.634744, -0.000000, 1.000000}, + {1.016144, -0.000000, -0.348055, -0.000000, 1.301348, -0.000000, 0.571584, -0.000000, 1.000000}, + {0.996595, -0.000000, -0.321551, -0.000000, 1.237378, -0.000000, 0.511230, -0.000000, 1.000000}, + {0.973683, -0.000000, -0.293872, -0.000000, 1.177277, -0.000000, 0.451901, -0.000000, 1.000000}, + {0.952858, -0.000000, -0.265573, -0.000000, 1.121921, -0.000000, 0.395157, -0.000000, 1.000000}, + {0.932103, -0.000000, -0.234927, -0.000000, 1.070360, -0.000000, 0.340860, -0.000000, 1.000000}, + {0.906343, -0.000000, -0.205238, -0.000000, 1.020510, -0.000000, 0.288028, -0.000000, 1.000000}, + {0.883492, -0.000000, -0.175993, -0.000000, 0.976709, -0.000000, 0.241092, -0.000000, 1.000000}, + {0.863536, -0.000000, -0.147622, -0.000000, 0.938731, -0.000000, 0.199073, -0.000000, 1.000000}, + {0.847930, -0.000000, -0.120674, -0.000000, 0.907943, -0.000000, 0.161710, -0.000000, 1.000000}, + {0.831768, -0.000000, -0.094574, -0.000000, 0.881993, -0.000000, 0.127969, -0.000000, 1.000000}, + {0.821893, -0.000000, -0.069053, -0.000000, 0.860528, -0.000000, 0.095084, -0.000000, 1.000000}, + {0.817158, -0.000000, -0.044333, -0.000000, 0.841729, -0.000000, 0.062147, -0.000000, 1.000000}, + {0.814238, -0.000000, -0.020307, -0.000000, 0.825477, -0.000000, 0.029873, -0.000000, 1.000000}, + {0.810121, -0.000000, 0.002974, -0.000000, 0.810311, -0.000000, -0.001535, -0.000000, 1.000000}, + {576.155396, -0.000000, -2.547854, -0.000000, 2737.071289, -0.000000, 1467.987549, -0.000000, 1.000000}, + {576.155396, -0.000000, -2.547854, -0.000000, 2737.071289, -0.000000, 1467.987549, -0.000000, 1.000000}, + {570.679626, -0.000000, -2.547851, -0.000000, 2737.068115, -0.000000, 1454.044189, -0.000000, 1.000000}, + {219.949402, -0.000000, -2.547569, -0.000000, 1652.645996, -0.000000, 560.372742, -0.000000, 1.000000}, + {124.049660, -0.000000, -2.546798, -0.000000, 928.846924, -0.000000, 316.036011, -0.000000, 1.000000}, + {79.356262, -0.000000, -2.545179, -0.000000, 592.101196, -0.000000, 202.193970, -0.000000, 1.000000}, + {55.019466, -0.000000, -2.542244, -0.000000, 412.138947, -0.000000, 140.161835, -0.000000, 1.000000}, + {40.381809, -0.000000, -2.537436, -0.000000, 302.276550, -0.000000, 102.856575, -0.000000, 1.000000}, + {30.849314, -0.000000, -2.530093, -0.000000, 230.778442, -0.000000, 78.558495, -0.000000, 1.000000}, + {24.298800, -0.000000, -2.519463, -0.000000, 181.682220, -0.000000, 61.856510, -0.000000, 1.000000}, + {19.596741, -0.000000, -2.503993, -0.000000, 146.369858, -0.000000, 49.862972, -0.000000, 1.000000}, + {16.090612, -0.000000, -2.474526, -0.000000, 119.922760, -0.000000, 40.914909, -0.000000, 1.000000}, + {13.414685, -0.000000, -2.445985, -0.000000, 99.772415, -0.000000, 34.080334, -0.000000, 1.000000}, + {11.326571, -0.000000, -2.415291, -0.000000, 84.030655, -0.000000, 28.740780, -0.000000, 1.000000}, + {9.656653, -0.000000, -2.370714, -0.000000, 71.358482, -0.000000, 24.465014, -0.000000, 1.000000}, + {8.307189, -0.000000, -2.326006, -0.000000, 61.118118, -0.000000, 21.002472, -0.000000, 1.000000}, + {7.199588, -0.000000, -2.270571, -0.000000, 52.623745, -0.000000, 18.153734, -0.000000, 1.000000}, + {6.282018, -0.000000, -2.211361, -0.000000, 45.534695, -0.000000, 15.785805, -0.000000, 1.000000}, + {5.522021, -0.000000, -2.146492, -0.000000, 39.536274, -0.000000, 13.813814, -0.000000, 1.000000}, + {4.882924, -0.000000, -2.078670, -0.000000, 34.440823, -0.000000, 12.144946, -0.000000, 1.000000}, + {4.356023, -0.000000, -2.006198, -0.000000, 30.023258, -0.000000, 10.753566, -0.000000, 1.000000}, + {3.898880, -0.000000, -1.930101, -0.000000, 26.226927, -0.000000, 9.534962, -0.000000, 1.000000}, + {3.531555, -0.000000, -1.850331, -0.000000, 22.867672, -0.000000, 8.535707, -0.000000, 1.000000}, + {3.198603, -0.000000, -1.772878, -0.000000, 20.004835, -0.000000, 7.619294, -0.000000, 1.000000}, + {2.933550, -0.000000, -1.695997, -0.000000, 17.472128, -0.000000, 6.864677, -0.000000, 1.000000}, + {2.701499, -0.000000, -1.618183, -0.000000, 15.259388, -0.000000, 6.191448, -0.000000, 1.000000}, + {2.490056, -0.000000, -1.541568, -0.000000, 13.372395, -0.000000, 5.570883, -0.000000, 1.000000}, + {2.317339, -0.000000, -1.466060, -0.000000, 11.708906, -0.000000, 5.042511, -0.000000, 1.000000}, + {2.167865, -0.000000, -1.391161, -0.000000, 10.251340, -0.000000, 4.573291, -0.000000, 1.000000}, + {2.034562, -0.000000, -1.318470, -0.000000, 8.998850, -0.000000, 4.146386, -0.000000, 1.000000}, + {1.915546, -0.000000, -1.248121, -0.000000, 7.919498, -0.000000, 3.760329, -0.000000, 1.000000}, + {1.811551, -0.000000, -1.182497, -0.000000, 6.981235, -0.000000, 3.414596, -0.000000, 1.000000}, + {1.718818, -0.000000, -1.118587, -0.000000, 6.178648, -0.000000, 3.102079, -0.000000, 1.000000}, + {1.635832, -0.000000, -1.057053, -0.000000, 5.475736, -0.000000, 2.820240, -0.000000, 1.000000}, + {1.560237, -0.000000, -0.997972, -0.000000, 4.873555, -0.000000, 2.561483, -0.000000, 1.000000}, + {1.492896, -0.000000, -0.941521, -0.000000, 4.354918, -0.000000, 2.328868, -0.000000, 1.000000}, + {1.432661, -0.000000, -0.886628, -0.000000, 3.903405, -0.000000, 2.119366, -0.000000, 1.000000}, + {1.386325, -0.000000, -0.834151, -0.000000, 3.505340, -0.000000, 1.940481, -0.000000, 1.000000}, + {1.339124, -0.000000, -0.783834, -0.000000, 3.168668, -0.000000, 1.770534, -0.000000, 1.000000}, + {1.292755, -0.000000, -0.736675, -0.000000, 2.876822, -0.000000, 1.611066, -0.000000, 1.000000}, + {1.253299, -0.000000, -0.691708, -0.000000, 2.619975, -0.000000, 1.469811, -0.000000, 1.000000}, + {1.225671, -0.000000, -0.649674, -0.000000, 2.395588, -0.000000, 1.350131, -0.000000, 1.000000}, + {1.190501, -0.000000, -0.609351, -0.000000, 2.204555, -0.000000, 1.229164, -0.000000, 1.000000}, + {1.158919, -0.000000, -0.570638, -0.000000, 2.035227, -0.000000, 1.120084, -0.000000, 1.000000}, + {1.134398, -0.000000, -0.533575, -0.000000, 1.890159, -0.000000, 1.024165, -0.000000, 1.000000}, + {1.111440, -0.000000, -0.498114, -0.000000, 1.758849, -0.000000, 0.935233, -0.000000, 1.000000}, + {1.086176, -0.000000, -0.464332, -0.000000, 1.644120, -0.000000, 0.849060, -0.000000, 1.000000}, + {1.065165, -0.000000, -0.432413, -0.000000, 1.541869, -0.000000, 0.772161, -0.000000, 1.000000}, + {1.043913, -0.000000, -0.401934, -0.000000, 1.452574, -0.000000, 0.698629, -0.000000, 1.000000}, + {1.023994, -0.000000, -0.372557, -0.000000, 1.373027, -0.000000, 0.631276, -0.000000, 1.000000}, + {1.007105, -0.000000, -0.343961, -0.000000, 1.301265, -0.000000, 0.568990, -0.000000, 1.000000}, + {0.985595, -0.000000, -0.316279, -0.000000, 1.237189, -0.000000, 0.506592, -0.000000, 1.000000}, + {0.965932, -0.000000, -0.290229, -0.000000, 1.176849, -0.000000, 0.449525, -0.000000, 1.000000}, + {0.947778, -0.000000, -0.265034, -0.000000, 1.123219, -0.000000, 0.396264, -0.000000, 1.000000}, + {0.928999, -0.000000, -0.237887, -0.000000, 1.072133, -0.000000, 0.344178, -0.000000, 1.000000}, + {0.906132, -0.000000, -0.210059, -0.000000, 1.022744, -0.000000, 0.293002, -0.000000, 1.000000}, + {0.881884, -0.000000, -0.180829, -0.000000, 0.976437, -0.000000, 0.244573, -0.000000, 1.000000}, + {0.861608, -0.000000, -0.152207, -0.000000, 0.937424, -0.000000, 0.201887, -0.000000, 1.000000}, + {0.844634, -0.000000, -0.124227, -0.000000, 0.905560, -0.000000, 0.163576, -0.000000, 1.000000}, + {0.828255, -0.000000, -0.097599, -0.000000, 0.878795, -0.000000, 0.129343, -0.000000, 1.000000}, + {0.817685, -0.000000, -0.071521, -0.000000, 0.856518, -0.000000, 0.096351, -0.000000, 1.000000}, + {0.812417, -0.000000, -0.046059, -0.000000, 0.837175, -0.000000, 0.062946, -0.000000, 1.000000}, + {0.809044, -0.000000, -0.021396, -0.000000, 0.820474, -0.000000, 0.030318, -0.000000, 1.000000}, + {0.804879, -0.000000, 0.002828, -0.000000, 0.805044, -0.000000, -0.001440, -0.000000, 1.000000}, + {591.979065, -0.000000, -2.747348, -0.000000, 2923.682129, -0.000000, 1626.421753, -0.000000, 1.000000}, + {591.979065, -0.000000, -2.747348, -0.000000, 2923.682129, -0.000000, 1626.421753, -0.000000, 1.000000}, + {585.857239, -0.000000, -2.747350, -0.000000, 2923.684814, -0.000000, 1609.603516, -0.000000, 1.000000}, + {220.596573, -0.000000, -2.746992, -0.000000, 1883.560547, -0.000000, 606.021301, -0.000000, 1.000000}, + {124.091286, -0.000000, -2.746026, -0.000000, 1060.800293, -0.000000, 340.915314, -0.000000, 1.000000}, + {79.291206, -0.000000, -2.744001, -0.000000, 677.687866, -0.000000, 217.823547, -0.000000, 1.000000}, + {55.000206, -0.000000, -2.740324, -0.000000, 470.018585, -0.000000, 151.078918, -0.000000, 1.000000}, + {40.352585, -0.000000, -2.734293, -0.000000, 344.664581, -0.000000, 110.824989, -0.000000, 1.000000}, + {30.819353, -0.000000, -2.725093, -0.000000, 263.048004, -0.000000, 84.619637, -0.000000, 1.000000}, + {24.259277, -0.000000, -2.711737, -0.000000, 206.912613, -0.000000, 66.582367, -0.000000, 1.000000}, + {19.544426, -0.000000, -2.688740, -0.000000, 166.451782, -0.000000, 53.611942, -0.000000, 1.000000}, + {16.031746, -0.000000, -2.657396, -0.000000, 136.256454, -0.000000, 43.942513, -0.000000, 1.000000}, + {13.348059, -0.000000, -2.623393, -0.000000, 113.201004, -0.000000, 36.548397, -0.000000, 1.000000}, + {11.250923, -0.000000, -2.582639, -0.000000, 95.119232, -0.000000, 30.763483, -0.000000, 1.000000}, + {9.576438, -0.000000, -2.530882, -0.000000, 80.600281, -0.000000, 26.136324, -0.000000, 1.000000}, + {8.221527, -0.000000, -2.475935, -0.000000, 68.837944, -0.000000, 22.384205, -0.000000, 1.000000}, + {7.113983, -0.000000, -2.409505, -0.000000, 59.067413, -0.000000, 19.308332, -0.000000, 1.000000}, + {6.197548, -0.000000, -2.338610, -0.000000, 50.926388, -0.000000, 16.751787, -0.000000, 1.000000}, + {5.440971, -0.000000, -2.262158, -0.000000, 44.025623, -0.000000, 14.628505, -0.000000, 1.000000}, + {4.810040, -0.000000, -2.183774, -0.000000, 38.160038, -0.000000, 12.843379, -0.000000, 1.000000}, + {4.271906, -0.000000, -2.099138, -0.000000, 33.135784, -0.000000, 11.306775, -0.000000, 1.000000}, + {3.841789, -0.000000, -2.011097, -0.000000, 28.717783, -0.000000, 10.054306, -0.000000, 1.000000}, + {3.454507, -0.000000, -1.921342, -0.000000, 24.955898, -0.000000, 8.917191, -0.000000, 1.000000}, + {3.152499, -0.000000, -1.835073, -0.000000, 21.643391, -0.000000, 7.997777, -0.000000, 1.000000}, + {2.881393, -0.000000, -1.748274, -0.000000, 18.804960, -0.000000, 7.161386, -0.000000, 1.000000}, + {2.646318, -0.000000, -1.662911, -0.000000, 16.357586, -0.000000, 6.421481, -0.000000, 1.000000}, + {2.453516, -0.000000, -1.579613, -0.000000, 14.224945, -0.000000, 5.790412, -0.000000, 1.000000}, + {2.279099, -0.000000, -1.497639, -0.000000, 12.393144, -0.000000, 5.215179, -0.000000, 1.000000}, + {2.132395, -0.000000, -1.418428, -0.000000, 10.806620, -0.000000, 4.713103, -0.000000, 1.000000}, + {2.000552, -0.000000, -1.341211, -0.000000, 9.451211, -0.000000, 4.258870, -0.000000, 1.000000}, + {1.883975, -0.000000, -1.267610, -0.000000, 8.279186, -0.000000, 3.849678, -0.000000, 1.000000}, + {1.781922, -0.000000, -1.197456, -0.000000, 7.275274, -0.000000, 3.485601, -0.000000, 1.000000}, + {1.690599, -0.000000, -1.131133, -0.000000, 6.411116, -0.000000, 3.156461, -0.000000, 1.000000}, + {1.609352, -0.000000, -1.067260, -0.000000, 5.665935, -0.000000, 2.861347, -0.000000, 1.000000}, + {1.536435, -0.000000, -1.006782, -0.000000, 5.026215, -0.000000, 2.595317, -0.000000, 1.000000}, + {1.473972, -0.000000, -0.948499, -0.000000, 4.474440, -0.000000, 2.359128, -0.000000, 1.000000}, + {1.415006, -0.000000, -0.892800, -0.000000, 3.999731, -0.000000, 2.142897, -0.000000, 1.000000}, + {1.362257, -0.000000, -0.839350, -0.000000, 3.587323, -0.000000, 1.948521, -0.000000, 1.000000}, + {1.321058, -0.000000, -0.788246, -0.000000, 3.232098, -0.000000, 1.781589, -0.000000, 1.000000}, + {1.278192, -0.000000, -0.739176, -0.000000, 2.923230, -0.000000, 1.622009, -0.000000, 1.000000}, + {1.237881, -0.000000, -0.693319, -0.000000, 2.663199, -0.000000, 1.474434, -0.000000, 1.000000}, + {1.207696, -0.000000, -0.650035, -0.000000, 2.429032, -0.000000, 1.348468, -0.000000, 1.000000}, + {1.178601, -0.000000, -0.608997, -0.000000, 2.228594, -0.000000, 1.232671, -0.000000, 1.000000}, + {1.147043, -0.000000, -0.569985, -0.000000, 2.055526, -0.000000, 1.120635, -0.000000, 1.000000}, + {1.121972, -0.000000, -0.532453, -0.000000, 1.901420, -0.000000, 1.022556, -0.000000, 1.000000}, + {1.100569, -0.000000, -0.496317, -0.000000, 1.768029, -0.000000, 0.933909, -0.000000, 1.000000}, + {1.075219, -0.000000, -0.461706, -0.000000, 1.651654, -0.000000, 0.846179, -0.000000, 1.000000}, + {1.054461, -0.000000, -0.428867, -0.000000, 1.546500, -0.000000, 0.768466, -0.000000, 1.000000}, + {1.032911, -0.000000, -0.397718, -0.000000, 1.454769, -0.000000, 0.694165, -0.000000, 1.000000}, + {1.013181, -0.000000, -0.367858, -0.000000, 1.372598, -0.000000, 0.626156, -0.000000, 1.000000}, + {0.996504, -0.000000, -0.339273, -0.000000, 1.300198, -0.000000, 0.563517, -0.000000, 1.000000}, + {0.977925, -0.000000, -0.311489, -0.000000, 1.235241, -0.000000, 0.504684, -0.000000, 1.000000}, + {0.957146, -0.000000, -0.284534, -0.000000, 1.174922, -0.000000, 0.445710, -0.000000, 1.000000}, + {0.939880, -0.000000, -0.258582, -0.000000, 1.119166, -0.000000, 0.392739, -0.000000, 1.000000}, + {0.922315, -0.000000, -0.234026, -0.000000, 1.068956, -0.000000, 0.343095, -0.000000, 1.000000}, + {0.901600, -0.000000, -0.209740, -0.000000, 1.021756, -0.000000, 0.294328, -0.000000, 1.000000}, + {0.879210, -0.000000, -0.184296, -0.000000, 0.976296, -0.000000, 0.247898, -0.000000, 1.000000}, + {0.859167, -0.000000, -0.157756, -0.000000, 0.936724, -0.000000, 0.205469, -0.000000, 1.000000}, + {0.841163, -0.000000, -0.129551, -0.000000, 0.903177, -0.000000, 0.166426, -0.000000, 1.000000}, + {0.825317, -0.000000, -0.101891, -0.000000, 0.875356, -0.000000, 0.131082, -0.000000, 1.000000}, + {0.813604, -0.000000, -0.074977, -0.000000, 0.852356, -0.000000, 0.097887, -0.000000, 1.000000}, + {0.807587, -0.000000, -0.049031, -0.000000, 0.832818, -0.000000, 0.064502, -0.000000, 1.000000}, + {0.804014, -0.000000, -0.023671, -0.000000, 0.815511, -0.000000, 0.031406, -0.000000, 1.000000}, + {0.799529, -0.000000, 0.000896, -0.000000, 0.799522, -0.000000, -0.000557, -0.000000, 1.000000}, + {609.309082, -0.000000, -2.976188, -0.000000, 3139.696533, -0.000000, 1813.482910, -0.000000, 1.000000}, + {609.309082, -0.000000, -2.976188, -0.000000, 3139.696533, -0.000000, 1813.482910, -0.000000, 1.000000}, + {599.533997, -0.000000, -2.976186, -0.000000, 3139.695068, -0.000000, 1784.326904, -0.000000, 1.000000}, + {220.005768, -0.000000, -2.975734, -0.000000, 2176.998535, -0.000000, 654.730896, -0.000000, 1.000000}, + {123.973022, -0.000000, -2.974506, -0.000000, 1222.066284, -0.000000, 368.964386, -0.000000, 1.000000}, + {79.281036, -0.000000, -2.971936, -0.000000, 781.406067, -0.000000, 235.946762, -0.000000, 1.000000}, + {55.192818, -0.000000, -2.967260, -0.000000, 540.474792, -0.000000, 164.247833, -0.000000, 1.000000}, + {40.323109, -0.000000, -2.959602, -0.000000, 397.124451, -0.000000, 119.960411, -0.000000, 1.000000}, + {30.776093, -0.000000, -2.947913, -0.000000, 303.002441, -0.000000, 91.530830, -0.000000, 1.000000}, + {24.212482, -0.000000, -2.930790, -0.000000, 238.076202, -0.000000, 71.976578, -0.000000, 1.000000}, + {19.479084, -0.000000, -2.898876, -0.000000, 191.196457, -0.000000, 57.867847, -0.000000, 1.000000}, + {15.959665, -0.000000, -2.862951, -0.000000, 156.304749, -0.000000, 47.369671, -0.000000, 1.000000}, + {13.270151, -0.000000, -2.822713, -0.000000, 129.607895, -0.000000, 39.338791, -0.000000, 1.000000}, + {11.160513, -0.000000, -2.766519, -0.000000, 108.577446, -0.000000, 33.030273, -0.000000, 1.000000}, + {9.480922, -0.000000, -2.708910, -0.000000, 91.815163, -0.000000, 27.997881, -0.000000, 1.000000}, + {8.122663, -0.000000, -2.637697, -0.000000, 78.090034, -0.000000, 23.917656, -0.000000, 1.000000}, + {7.008977, -0.000000, -2.559766, -0.000000, 66.786209, -0.000000, 20.561243, -0.000000, 1.000000}, + {6.096513, -0.000000, -2.473841, -0.000000, 57.295067, -0.000000, 17.796728, -0.000000, 1.000000}, + {5.343040, -0.000000, -2.386606, -0.000000, 49.325001, -0.000000, 15.497151, -0.000000, 1.000000}, + {4.708989, -0.000000, -2.291916, -0.000000, 42.511387, -0.000000, 13.544899, -0.000000, 1.000000}, + {4.201791, -0.000000, -2.193527, -0.000000, 36.615200, -0.000000, 11.955845, -0.000000, 1.000000}, + {3.752419, -0.000000, -2.092327, -0.000000, 31.602551, -0.000000, 10.535487, -0.000000, 1.000000}, + {3.400778, -0.000000, -1.992388, -0.000000, 27.209482, -0.000000, 9.388092, -0.000000, 1.000000}, + {3.075908, -0.000000, -1.894753, -0.000000, 23.517771, -0.000000, 8.322371, -0.000000, 1.000000}, + {2.822646, -0.000000, -1.798583, -0.000000, 20.275318, -0.000000, 7.457544, -0.000000, 1.000000}, + {2.596779, -0.000000, -1.705360, -0.000000, 17.520607, -0.000000, 6.671628, -0.000000, 1.000000}, + {2.408336, -0.000000, -1.614572, -0.000000, 15.142595, -0.000000, 5.996811, -0.000000, 1.000000}, + {2.228113, -0.000000, -1.527009, -0.000000, 13.147862, -0.000000, 5.359822, -0.000000, 1.000000}, + {2.082584, -0.000000, -1.442503, -0.000000, 11.407831, -0.000000, 4.823703, -0.000000, 1.000000}, + {1.954687, -0.000000, -1.361189, -0.000000, 9.930226, -0.000000, 4.343667, -0.000000, 1.000000}, + {1.843097, -0.000000, -1.284112, -0.000000, 8.663873, -0.000000, 3.915370, -0.000000, 1.000000}, + {1.741703, -0.000000, -1.210228, -0.000000, 7.587466, -0.000000, 3.529680, -0.000000, 1.000000}, + {1.653501, -0.000000, -1.141024, -0.000000, 6.654636, -0.000000, 3.190945, -0.000000, 1.000000}, + {1.574357, -0.000000, -1.075586, -0.000000, 5.863158, -0.000000, 2.883028, -0.000000, 1.000000}, + {1.514068, -0.000000, -1.013358, -0.000000, 5.180198, -0.000000, 2.625021, -0.000000, 1.000000}, + {1.451065, -0.000000, -0.953914, -0.000000, 4.595654, -0.000000, 2.379616, -0.000000, 1.000000}, + {1.397773, -0.000000, -0.897316, -0.000000, 4.092642, -0.000000, 2.165335, -0.000000, 1.000000}, + {1.344997, -0.000000, -0.843040, -0.000000, 3.668342, -0.000000, 1.961642, -0.000000, 1.000000}, + {1.303292, -0.000000, -0.791443, -0.000000, 3.291798, -0.000000, 1.788869, -0.000000, 1.000000}, + {1.265215, -0.000000, -0.741998, -0.000000, 2.976985, -0.000000, 1.630472, -0.000000, 1.000000}, + {1.225075, -0.000000, -0.694471, -0.000000, 2.701860, -0.000000, 1.481267, -0.000000, 1.000000}, + {1.194183, -0.000000, -0.649997, -0.000000, 2.462663, -0.000000, 1.350566, -0.000000, 1.000000}, + {1.165196, -0.000000, -0.608316, -0.000000, 2.254755, -0.000000, 1.231374, -0.000000, 1.000000}, + {1.135252, -0.000000, -0.568783, -0.000000, 2.073478, -0.000000, 1.120476, -0.000000, 1.000000}, + {1.111022, -0.000000, -0.530798, -0.000000, 1.916914, -0.000000, 1.020819, -0.000000, 1.000000}, + {1.089636, -0.000000, -0.494500, -0.000000, 1.778285, -0.000000, 0.930296, -0.000000, 1.000000}, + {1.064094, -0.000000, -0.459504, -0.000000, 1.658414, -0.000000, 0.842595, -0.000000, 1.000000}, + {1.043721, -0.000000, -0.425796, -0.000000, 1.551288, -0.000000, 0.764729, -0.000000, 1.000000}, + {1.022393, -0.000000, -0.393855, -0.000000, 1.458256, -0.000000, 0.690367, -0.000000, 1.000000}, + {1.002968, -0.000000, -0.363419, -0.000000, 1.373205, -0.000000, 0.621274, -0.000000, 1.000000}, + {0.986589, -0.000000, -0.334171, -0.000000, 1.297770, -0.000000, 0.558746, -0.000000, 1.000000}, + {0.967622, -0.000000, -0.305847, -0.000000, 1.230629, -0.000000, 0.498214, -0.000000, 1.000000}, + {0.948060, -0.000000, -0.278763, -0.000000, 1.170430, -0.000000, 0.441200, -0.000000, 1.000000}, + {0.930849, -0.000000, -0.252923, -0.000000, 1.115696, -0.000000, 0.388823, -0.000000, 1.000000}, + {0.913940, -0.000000, -0.227570, -0.000000, 1.065467, -0.000000, 0.339005, -0.000000, 1.000000}, + {0.892977, -0.000000, -0.203280, -0.000000, 1.017061, -0.000000, 0.290406, -0.000000, 1.000000}, + {0.872234, -0.000000, -0.179861, -0.000000, 0.971964, -0.000000, 0.245777, -0.000000, 1.000000}, + {0.854700, -0.000000, -0.157132, -0.000000, 0.933678, -0.000000, 0.205812, -0.000000, 1.000000}, + {0.838287, -0.000000, -0.132687, -0.000000, 0.900439, -0.000000, 0.168176, -0.000000, 1.000000}, + {0.822851, -0.000000, -0.107598, -0.000000, 0.871917, -0.000000, 0.133193, -0.000000, 1.000000}, + {0.809299, -0.000000, -0.080322, -0.000000, 0.848205, -0.000000, 0.100180, -0.000000, 1.000000}, + {0.802156, -0.000000, -0.053745, -0.000000, 0.827838, -0.000000, 0.066531, -0.000000, 1.000000}, + {0.798404, -0.000000, -0.027654, -0.000000, 0.810059, -0.000000, 0.033353, -0.000000, 1.000000}, + {0.794037, -0.000000, -0.002317, -0.000000, 0.793657, -0.000000, 0.001048, -0.000000, 1.000000}, + {627.807556, -0.000000, -3.241722, -0.000000, 3392.456543, -0.000000, 2035.267212, -0.000000, 1.000000}, + {627.807556, -0.000000, -3.241722, -0.000000, 3392.456543, -0.000000, 2035.267212, -0.000000, 1.000000}, + {621.662354, -0.000000, -3.241717, -0.000000, 3392.452148, -0.000000, 2015.334473, -0.000000, 1.000000}, + {219.384842, -0.000000, -3.241129, -0.000000, 2544.900879, -0.000000, 711.118835, -0.000000, 1.000000}, + {123.947891, -0.000000, -3.239542, -0.000000, 1426.574707, -0.000000, 401.798828, -0.000000, 1.000000}, + {79.003059, -0.000000, -3.236218, -0.000000, 917.752502, -0.000000, 256.063232, -0.000000, 1.000000}, + {54.984375, -0.000000, -3.230180, -0.000000, 632.198608, -0.000000, 178.201828, -0.000000, 1.000000}, + {40.294662, -0.000000, -3.220297, -0.000000, 463.117645, -0.000000, 130.561554, -0.000000, 1.000000}, + {30.729254, -0.000000, -3.205191, -0.000000, 353.041718, -0.000000, 99.531891, -0.000000, 1.000000}, + {24.151039, -0.000000, -3.182074, -0.000000, 277.121613, -0.000000, 78.181152, -0.000000, 1.000000}, + {19.399094, -0.000000, -3.140306, -0.000000, 222.113632, -0.000000, 62.750744, -0.000000, 1.000000}, + {15.868593, -0.000000, -3.097450, -0.000000, 181.281265, -0.000000, 51.274391, -0.000000, 1.000000}, + {13.170238, -0.000000, -3.046266, -0.000000, 149.986618, -0.000000, 42.492733, -0.000000, 1.000000}, + {11.050856, -0.000000, -2.978175, -0.000000, 125.258781, -0.000000, 35.585133, -0.000000, 1.000000}, + {9.365080, -0.000000, -2.904929, -0.000000, 105.521988, -0.000000, 30.077997, -0.000000, 1.000000}, + {7.999448, -0.000000, -2.817907, -0.000000, 89.409409, -0.000000, 25.602217, -0.000000, 1.000000}, + {6.891818, -0.000000, -2.722713, -0.000000, 76.069191, -0.000000, 21.957558, -0.000000, 1.000000}, + {5.980109, -0.000000, -2.621234, -0.000000, 64.915245, -0.000000, 18.938150, -0.000000, 1.000000}, + {5.236940, -0.000000, -2.514768, -0.000000, 55.498199, -0.000000, 16.453793, -0.000000, 1.000000}, + {4.622044, -0.000000, -2.403527, -0.000000, 47.479614, -0.000000, 14.373193, -0.000000, 1.000000}, + {4.097895, -0.000000, -2.289582, -0.000000, 40.671871, -0.000000, 12.577087, -0.000000, 1.000000}, + {3.686765, -0.000000, -2.174217, -0.000000, 34.736500, -0.000000, 11.129078, -0.000000, 1.000000}, + {3.311024, -0.000000, -2.061530, -0.000000, 29.781372, -0.000000, 9.799330, -0.000000, 1.000000}, + {3.020529, -0.000000, -1.952210, -0.000000, 25.481171, -0.000000, 8.724760, -0.000000, 1.000000}, + {2.764692, -0.000000, -1.846283, -0.000000, 21.836864, -0.000000, 7.766133, -0.000000, 1.000000}, + {2.532754, -0.000000, -1.744292, -0.000000, 18.781441, -0.000000, 6.894820, -0.000000, 1.000000}, + {2.349347, -0.000000, -1.646240, -0.000000, 16.140751, -0.000000, 6.170644, -0.000000, 1.000000}, + {2.188400, -0.000000, -1.552627, -0.000000, 13.893661, -0.000000, 5.528216, -0.000000, 1.000000}, + {2.046618, -0.000000, -1.462889, -0.000000, 11.998612, -0.000000, 4.956185, -0.000000, 1.000000}, + {1.915704, -0.000000, -1.377927, -0.000000, 10.397959, -0.000000, 4.436332, -0.000000, 1.000000}, + {1.812031, -0.000000, -1.297612, -0.000000, 9.029160, -0.000000, 3.997908, -0.000000, 1.000000}, + {1.713683, -0.000000, -1.221086, -0.000000, 7.877707, -0.000000, 3.593457, -0.000000, 1.000000}, + {1.626020, -0.000000, -1.148731, -0.000000, 6.891469, -0.000000, 3.233786, -0.000000, 1.000000}, + {1.549033, -0.000000, -1.081457, -0.000000, 6.053651, -0.000000, 2.917126, -0.000000, 1.000000}, + {1.481601, -0.000000, -1.017843, -0.000000, 5.337873, -0.000000, 2.636702, -0.000000, 1.000000}, + {1.429952, -0.000000, -0.957599, -0.000000, 4.717435, -0.000000, 2.399858, -0.000000, 1.000000}, + {1.377009, -0.000000, -0.899917, -0.000000, 4.189492, -0.000000, 2.173976, -0.000000, 1.000000}, + {1.327084, -0.000000, -0.845428, -0.000000, 3.747870, -0.000000, 1.971158, -0.000000, 1.000000}, + {1.281468, -0.000000, -0.793353, -0.000000, 3.362427, -0.000000, 1.788266, -0.000000, 1.000000}, + {1.248655, -0.000000, -0.743373, -0.000000, 3.024901, -0.000000, 1.633455, -0.000000, 1.000000}, + {1.211484, -0.000000, -0.696148, -0.000000, 2.742902, -0.000000, 1.484475, -0.000000, 1.000000}, + {1.177250, -0.000000, -0.650527, -0.000000, 2.496114, -0.000000, 1.348093, -0.000000, 1.000000}, + {1.152354, -0.000000, -0.607068, -0.000000, 2.280983, -0.000000, 1.230821, -0.000000, 1.000000}, + {1.123183, -0.000000, -0.567146, -0.000000, 2.094286, -0.000000, 1.118462, -0.000000, 1.000000}, + {1.099171, -0.000000, -0.528939, -0.000000, 1.931954, -0.000000, 1.018845, -0.000000, 1.000000}, + {1.078446, -0.000000, -0.492371, -0.000000, 1.789327, -0.000000, 0.927930, -0.000000, 1.000000}, + {1.053617, -0.000000, -0.457237, -0.000000, 1.666223, -0.000000, 0.839066, -0.000000, 1.000000}, + {1.033628, -0.000000, -0.423433, -0.000000, 1.556569, -0.000000, 0.760340, -0.000000, 1.000000}, + {1.012232, -0.000000, -0.390587, -0.000000, 1.460020, -0.000000, 0.685059, -0.000000, 1.000000}, + {0.993610, -0.000000, -0.359251, -0.000000, 1.373768, -0.000000, 0.616781, -0.000000, 1.000000}, + {0.977490, -0.000000, -0.329358, -0.000000, 1.297351, -0.000000, 0.554401, -0.000000, 1.000000}, + {0.957394, -0.000000, -0.300853, -0.000000, 1.228527, -0.000000, 0.492929, -0.000000, 1.000000}, + {0.938283, -0.000000, -0.273293, -0.000000, 1.166369, -0.000000, 0.436095, -0.000000, 1.000000}, + {0.920914, -0.000000, -0.246713, -0.000000, 1.109896, -0.000000, 0.383355, -0.000000, 1.000000}, + {0.904340, -0.000000, -0.221276, -0.000000, 1.059823, -0.000000, 0.334259, -0.000000, 1.000000}, + {0.883903, -0.000000, -0.196707, -0.000000, 1.011503, -0.000000, 0.286181, -0.000000, 1.000000}, + {0.864120, -0.000000, -0.172631, -0.000000, 0.966135, -0.000000, 0.242077, -0.000000, 1.000000}, + {0.846583, -0.000000, -0.149250, -0.000000, 0.927177, -0.000000, 0.201925, -0.000000, 1.000000}, + {0.831405, -0.000000, -0.126938, -0.000000, 0.894544, -0.000000, 0.165708, -0.000000, 1.000000}, + {0.817396, -0.000000, -0.105439, -0.000000, 0.866856, -0.000000, 0.132669, -0.000000, 1.000000}, + {0.804355, -0.000000, -0.082556, -0.000000, 0.843154, -0.000000, 0.100933, -0.000000, 1.000000}, + {0.796824, -0.000000, -0.059510, -0.000000, 0.822757, -0.000000, 0.069400, -0.000000, 1.000000}, + {0.792355, -0.000000, -0.033496, -0.000000, 0.804279, -0.000000, 0.036095, -0.000000, 1.000000}, + {0.787991, -0.000000, -0.007457, -0.000000, 0.787428, -0.000000, 0.003372, -0.000000, 1.000000}, + {647.389587, -0.000000, -3.553956, -0.000000, 3691.964600, -0.000000, 2300.922119, -0.000000, 1.000000}, + {647.389587, -0.000000, -3.553956, -0.000000, 3691.964600, -0.000000, 2300.922119, -0.000000, 1.000000}, + {641.360107, -0.000000, -3.553950, -0.000000, 3691.958496, -0.000000, 2279.477783, -0.000000, 1.000000}, + {218.265366, -0.000000, -3.553173, -0.000000, 3019.637451, -0.000000, 775.611084, -0.000000, 1.000000}, + {123.939934, -0.000000, -3.551092, -0.000000, 1689.255981, -0.000000, 440.471039, -0.000000, 1.000000}, + {79.242523, -0.000000, -3.546700, -0.000000, 1079.528564, -0.000000, 281.592926, -0.000000, 1.000000}, + {55.156261, -0.000000, -3.538764, -0.000000, 745.203552, -0.000000, 195.782745, -0.000000, 1.000000}, + {40.278416, -0.000000, -3.525745, -0.000000, 547.770447, -0.000000, 143.056854, -0.000000, 1.000000}, + {30.671082, -0.000000, -3.505799, -0.000000, 417.175690, -0.000000, 108.892921, -0.000000, 1.000000}, + {24.060156, -0.000000, -3.467991, -0.000000, 326.705200, -0.000000, 85.365662, -0.000000, 1.000000}, + {19.301073, -0.000000, -3.423038, -0.000000, 261.538574, -0.000000, 68.416756, -0.000000, 1.000000}, + {15.758986, -0.000000, -3.369555, -0.000000, 212.967697, -0.000000, 55.787514, -0.000000, 1.000000}, + {13.041642, -0.000000, -3.296016, -0.000000, 175.468872, -0.000000, 46.086483, -0.000000, 1.000000}, + {10.917159, -0.000000, -3.218122, -0.000000, 146.157425, -0.000000, 38.485374, -0.000000, 1.000000}, + {9.225276, -0.000000, -3.122428, -0.000000, 122.516930, -0.000000, 32.418598, -0.000000, 1.000000}, + {7.856061, -0.000000, -3.014502, -0.000000, 103.264420, -0.000000, 27.490166, -0.000000, 1.000000}, + {6.747007, -0.000000, -2.897921, -0.000000, 87.332703, -0.000000, 23.474401, -0.000000, 1.000000}, + {5.849679, -0.000000, -2.777437, -0.000000, 74.034065, -0.000000, 20.199072, -0.000000, 1.000000}, + {5.114362, -0.000000, -2.649389, -0.000000, 62.826855, -0.000000, 17.483440, -0.000000, 1.000000}, + {4.498669, -0.000000, -2.518499, -0.000000, 53.354347, -0.000000, 15.184261, -0.000000, 1.000000}, + {4.007944, -0.000000, -2.385035, -0.000000, 45.195190, -0.000000, 13.307499, -0.000000, 1.000000}, + {3.581131, -0.000000, -2.254358, -0.000000, 38.371635, -0.000000, 11.654906, -0.000000, 1.000000}, + {3.237079, -0.000000, -2.127479, -0.000000, 32.555920, -0.000000, 10.283057, -0.000000, 1.000000}, + {2.930858, -0.000000, -2.005708, -0.000000, 27.701151, -0.000000, 9.052230, -0.000000, 1.000000}, + {2.689690, -0.000000, -1.889617, -0.000000, 23.555668, -0.000000, 8.037099, -0.000000, 1.000000}, + {2.483467, -0.000000, -1.778557, -0.000000, 20.060087, -0.000000, 7.155442, -0.000000, 1.000000}, + {2.293832, -0.000000, -1.673535, -0.000000, 17.148470, -0.000000, 6.351363, -0.000000, 1.000000}, + {2.135620, -0.000000, -1.573599, -0.000000, 14.684332, -0.000000, 5.659710, -0.000000, 1.000000}, + {1.987061, -0.000000, -1.479354, -0.000000, 12.640908, -0.000000, 5.028449, -0.000000, 1.000000}, + {1.868026, -0.000000, -1.390879, -0.000000, 10.898802, -0.000000, 4.499014, -0.000000, 1.000000}, + {1.771079, -0.000000, -1.307645, -0.000000, 9.410772, -0.000000, 4.049167, -0.000000, 1.000000}, + {1.676226, -0.000000, -1.228918, -0.000000, 8.178362, -0.000000, 3.632594, -0.000000, 1.000000}, + {1.593909, -0.000000, -1.154423, -0.000000, 7.127514, -0.000000, 3.264067, -0.000000, 1.000000}, + {1.524403, -0.000000, -1.084977, -0.000000, 6.236141, -0.000000, 2.946008, -0.000000, 1.000000}, + {1.457701, -0.000000, -1.020340, -0.000000, 5.487920, -0.000000, 2.653812, -0.000000, 1.000000}, + {1.397869, -0.000000, -0.959165, -0.000000, 4.847727, -0.000000, 2.395974, -0.000000, 1.000000}, + {1.353524, -0.000000, -0.901146, -0.000000, 4.294834, -0.000000, 2.178798, -0.000000, 1.000000}, + {1.307459, -0.000000, -0.846153, -0.000000, 3.821842, -0.000000, 1.975281, -0.000000, 1.000000}, + {1.264822, -0.000000, -0.793965, -0.000000, 3.427145, -0.000000, 1.792382, -0.000000, 1.000000}, + {1.232861, -0.000000, -0.744066, -0.000000, 3.078772, -0.000000, 1.634613, -0.000000, 1.000000}, + {1.198096, -0.000000, -0.696585, -0.000000, 2.783012, -0.000000, 1.486259, -0.000000, 1.000000}, + {1.164023, -0.000000, -0.651000, -0.000000, 2.530066, -0.000000, 1.347213, -0.000000, 1.000000}, + {1.139180, -0.000000, -0.607608, -0.000000, 2.308247, -0.000000, 1.229578, -0.000000, 1.000000}, + {1.111229, -0.000000, -0.565667, -0.000000, 2.117224, -0.000000, 1.116433, -0.000000, 1.000000}, + {1.084021, -0.000000, -0.526840, -0.000000, 1.949802, -0.000000, 1.012064, -0.000000, 1.000000}, + {1.066097, -0.000000, -0.490156, -0.000000, 1.801883, -0.000000, 0.922837, -0.000000, 1.000000}, + {1.043552, -0.000000, -0.454714, -0.000000, 1.673110, -0.000000, 0.835639, -0.000000, 1.000000}, + {1.023415, -0.000000, -0.420670, -0.000000, 1.561875, -0.000000, 0.755595, -0.000000, 1.000000}, + {1.002639, -0.000000, -0.387887, -0.000000, 1.462044, -0.000000, 0.680924, -0.000000, 1.000000}, + {0.983821, -0.000000, -0.356239, -0.000000, 1.374733, -0.000000, 0.612270, -0.000000, 1.000000}, + {0.967302, -0.000000, -0.325740, -0.000000, 1.295897, -0.000000, 0.549230, -0.000000, 1.000000}, + {0.947598, -0.000000, -0.296622, -0.000000, 1.226382, -0.000000, 0.488305, -0.000000, 1.000000}, + {0.928112, -0.000000, -0.268374, -0.000000, 1.162806, -0.000000, 0.430749, -0.000000, 1.000000}, + {0.911786, -0.000000, -0.241309, -0.000000, 1.105636, -0.000000, 0.378463, -0.000000, 1.000000}, + {0.894347, -0.000000, -0.214930, -0.000000, 1.053365, -0.000000, 0.328932, -0.000000, 1.000000}, + {0.873960, -0.000000, -0.189724, -0.000000, 1.004209, -0.000000, 0.281304, -0.000000, 1.000000}, + {0.855796, -0.000000, -0.165473, -0.000000, 0.959591, -0.000000, 0.237673, -0.000000, 1.000000}, + {0.837609, -0.000000, -0.141919, -0.000000, 0.920479, -0.000000, 0.198007, -0.000000, 1.000000}, + {0.823842, -0.000000, -0.119185, -0.000000, 0.888295, -0.000000, 0.162131, -0.000000, 1.000000}, + {0.809707, -0.000000, -0.096579, -0.000000, 0.860153, -0.000000, 0.128809, -0.000000, 1.000000}, + {0.797911, -0.000000, -0.074969, -0.000000, 0.836638, -0.000000, 0.097869, -0.000000, 1.000000}, + {0.791218, -0.000000, -0.053931, -0.000000, 0.816275, -0.000000, 0.066670, -0.000000, 1.000000}, + {0.786383, -0.000000, -0.033321, -0.000000, 0.797938, -0.000000, 0.035935, -0.000000, 1.000000}, + {0.781418, -0.000000, -0.010912, -0.000000, 0.780861, -0.000000, 0.004979, -0.000000, 1.000000}, + {669.793640, -0.000000, -3.926907, -0.000000, 4052.233643, -0.000000, 2630.377197, -0.000000, 1.000000}, + {669.793640, -0.000000, -3.926907, -0.000000, 4052.233643, -0.000000, 2630.377197, -0.000000, 1.000000}, + {662.583923, -0.000000, -3.926905, -0.000000, 4052.232178, -0.000000, 2602.060547, -0.000000, 1.000000}, + {220.819077, -0.000000, -3.925857, -0.000000, 3622.162109, -0.000000, 867.089783, -0.000000, 1.000000}, + {123.817673, -0.000000, -3.923046, -0.000000, 2034.233154, -0.000000, 486.212982, -0.000000, 1.000000}, + {79.227966, -0.000000, -3.917133, -0.000000, 1302.296997, -0.000000, 311.076263, -0.000000, 1.000000}, + {55.249779, -0.000000, -3.906432, -0.000000, 900.683044, -0.000000, 216.477371, -0.000000, 1.000000}, + {40.206520, -0.000000, -3.888882, -0.000000, 658.625366, -0.000000, 157.687820, -0.000000, 1.000000}, + {30.587492, -0.000000, -3.861604, -0.000000, 501.091522, -0.000000, 119.964844, -0.000000, 1.000000}, + {23.948280, -0.000000, -3.808159, -0.000000, 391.395477, -0.000000, 93.850357, -0.000000, 1.000000}, + {19.172970, -0.000000, -3.751776, -0.000000, 312.602203, -0.000000, 75.050499, -0.000000, 1.000000}, + {15.616179, -0.000000, -3.682316, -0.000000, 253.770706, -0.000000, 61.030109, -0.000000, 1.000000}, + {12.883894, -0.000000, -3.589303, -0.000000, 208.295837, -0.000000, 50.240662, -0.000000, 1.000000}, + {10.749632, -0.000000, -3.484726, -0.000000, 172.584320, -0.000000, 41.794483, -0.000000, 1.000000}, + {9.049759, -0.000000, -3.365489, -0.000000, 143.919708, -0.000000, 35.044212, -0.000000, 1.000000}, + {7.683127, -0.000000, -3.228995, -0.000000, 120.468864, -0.000000, 29.591896, -0.000000, 1.000000}, + {6.586706, -0.000000, -3.090356, -0.000000, 101.165565, -0.000000, 25.184006, -0.000000, 1.000000}, + {5.702530, -0.000000, -2.941245, -0.000000, 84.986687, -0.000000, 21.591751, -0.000000, 1.000000}, + {4.968021, -0.000000, -2.787760, -0.000000, 71.481094, -0.000000, 18.574377, -0.000000, 1.000000}, + {4.386539, -0.000000, -2.631336, -0.000000, 59.968548, -0.000000, 16.132710, -0.000000, 1.000000}, + {3.894264, -0.000000, -2.479486, -0.000000, 50.395161, -0.000000, 14.031246, -0.000000, 1.000000}, + {3.490103, -0.000000, -2.329895, -0.000000, 42.329239, -0.000000, 12.267620, -0.000000, 1.000000}, + {3.141735, -0.000000, -2.188068, -0.000000, 35.638969, -0.000000, 10.725724, -0.000000, 1.000000}, + {2.859816, -0.000000, -2.054062, -0.000000, 29.993845, -0.000000, 9.442187, -0.000000, 1.000000}, + {2.620349, -0.000000, -1.926790, -0.000000, 25.331533, -0.000000, 8.325993, -0.000000, 1.000000}, + {2.398311, -0.000000, -1.807517, -0.000000, 21.489573, -0.000000, 7.313870, -0.000000, 1.000000}, + {2.223137, -0.000000, -1.695049, -0.000000, 18.238173, -0.000000, 6.476917, -0.000000, 1.000000}, + {2.072692, -0.000000, -1.589814, -0.000000, 15.523134, -0.000000, 5.755404, -0.000000, 1.000000}, + {1.939087, -0.000000, -1.491045, -0.000000, 13.267519, -0.000000, 5.116745, -0.000000, 1.000000}, + {1.822332, -0.000000, -1.399625, -0.000000, 11.394650, -0.000000, 4.555825, -0.000000, 1.000000}, + {1.720811, -0.000000, -1.314037, -0.000000, 9.823386, -0.000000, 4.068915, -0.000000, 1.000000}, + {1.630899, -0.000000, -1.233317, -0.000000, 8.492864, -0.000000, 3.640526, -0.000000, 1.000000}, + {1.553843, -0.000000, -1.157592, -0.000000, 7.376961, -0.000000, 3.268894, -0.000000, 1.000000}, + {1.490734, -0.000000, -1.086639, -0.000000, 6.433651, -0.000000, 2.950307, -0.000000, 1.000000}, + {1.432929, -0.000000, -1.020600, -0.000000, 5.638104, -0.000000, 2.666373, -0.000000, 1.000000}, + {1.374815, -0.000000, -0.958737, -0.000000, 4.965362, -0.000000, 2.400652, -0.000000, 1.000000}, + {1.325165, -0.000000, -0.900599, -0.000000, 4.395979, -0.000000, 2.171790, -0.000000, 1.000000}, + {1.286748, -0.000000, -0.845554, -0.000000, 3.904965, -0.000000, 1.975697, -0.000000, 1.000000}, + {1.248133, -0.000000, -0.793106, -0.000000, 3.492160, -0.000000, 1.791407, -0.000000, 1.000000}, + {1.209880, -0.000000, -0.743433, -0.000000, 3.133361, -0.000000, 1.624267, -0.000000, 1.000000}, + {1.183988, -0.000000, -0.696145, -0.000000, 2.825088, -0.000000, 1.484405, -0.000000, 1.000000}, + {1.150361, -0.000000, -0.650712, -0.000000, 2.563276, -0.000000, 1.345073, -0.000000, 1.000000}, + {1.124895, -0.000000, -0.607631, -0.000000, 2.334976, -0.000000, 1.225758, -0.000000, 1.000000}, + {1.100231, -0.000000, -0.566001, -0.000000, 2.137843, -0.000000, 1.114179, -0.000000, 1.000000}, + {1.072962, -0.000000, -0.526004, -0.000000, 1.964423, -0.000000, 1.008926, -0.000000, 1.000000}, + {1.053139, -0.000000, -0.487676, -0.000000, 1.813509, -0.000000, 0.916973, -0.000000, 1.000000}, + {1.032387, -0.000000, -0.452164, -0.000000, 1.682570, -0.000000, 0.831067, -0.000000, 1.000000}, + {1.013851, -0.000000, -0.418111, -0.000000, 1.567370, -0.000000, 0.752596, -0.000000, 1.000000}, + {0.992847, -0.000000, -0.385449, -0.000000, 1.464371, -0.000000, 0.677399, -0.000000, 1.000000}, + {0.973894, -0.000000, -0.353736, -0.000000, 1.374073, -0.000000, 0.607277, -0.000000, 1.000000}, + {0.957402, -0.000000, -0.323055, -0.000000, 1.294103, -0.000000, 0.544421, -0.000000, 1.000000}, + {0.937947, -0.000000, -0.293166, -0.000000, 1.222537, -0.000000, 0.483155, -0.000000, 1.000000}, + {0.921176, -0.000000, -0.264527, -0.000000, 1.158591, -0.000000, 0.427436, -0.000000, 1.000000}, + {0.902082, -0.000000, -0.236924, -0.000000, 1.099809, -0.000000, 0.373552, -0.000000, 1.000000}, + {0.884630, -0.000000, -0.209995, -0.000000, 1.047710, -0.000000, 0.324298, -0.000000, 1.000000}, + {0.864298, -0.000000, -0.184017, -0.000000, 0.996888, -0.000000, 0.276542, -0.000000, 1.000000}, + {0.846630, -0.000000, -0.158854, -0.000000, 0.951949, -0.000000, 0.233321, -0.000000, 1.000000}, + {0.829734, -0.000000, -0.134642, -0.000000, 0.912870, -0.000000, 0.193677, -0.000000, 1.000000}, + {0.814766, -0.000000, -0.111083, -0.000000, 0.880362, -0.000000, 0.158096, -0.000000, 1.000000}, + {0.800836, -0.000000, -0.088186, -0.000000, 0.852870, -0.000000, 0.125093, -0.000000, 1.000000}, + {0.790942, -0.000000, -0.065957, -0.000000, 0.829340, -0.000000, 0.093490, -0.000000, 1.000000}, + {0.783243, -0.000000, -0.044794, -0.000000, 0.808869, -0.000000, 0.062261, -0.000000, 1.000000}, + {0.778025, -0.000000, -0.023768, -0.000000, 0.789909, -0.000000, 0.031524, -0.000000, 1.000000}, + {0.773400, -0.000000, -0.003255, -0.000000, 0.772808, -0.000000, 0.001599, -0.000000, 1.000000}, + {694.468201, -0.000000, -4.380828, -0.000000, 4493.511719, -0.000000, 3042.534180, -0.000000, 1.000000}, + {694.468201, -0.000000, -4.380828, -0.000000, 4493.511719, -0.000000, 3042.534180, -0.000000, 1.000000}, + {686.339905, -0.000000, -4.380825, -0.000000, 4493.509277, -0.000000, 3006.936523, -0.000000, 1.000000}, + {219.687042, -0.000000, -4.379368, -0.000000, 4450.719238, -0.000000, 962.460938, -0.000000, 1.000000}, + {123.969559, -0.000000, -4.375468, -0.000000, 2499.999512, -0.000000, 543.001099, -0.000000, 1.000000}, + {79.169876, -0.000000, -4.367267, -0.000000, 1598.047729, -0.000000, 346.772888, -0.000000, 1.000000}, + {54.884480, -0.000000, -4.352409, -0.000000, 1108.550537, -0.000000, 239.909027, -0.000000, 1.000000}, + {40.191998, -0.000000, -4.328050, -0.000000, 804.701355, -0.000000, 175.753632, -0.000000, 1.000000}, + {30.433971, -0.000000, -4.284082, -0.000000, 612.600952, -0.000000, 133.125473, -0.000000, 1.000000}, + {23.807697, -0.000000, -4.220432, -0.000000, 478.025024, -0.000000, 104.030556, -0.000000, 1.000000}, + {19.013176, -0.000000, -4.146036, -0.000000, 380.591400, -0.000000, 82.960159, -0.000000, 1.000000}, + {15.426579, -0.000000, -4.043351, -0.000000, 307.380859, -0.000000, 67.175621, -0.000000, 1.000000}, + {12.682364, -0.000000, -3.929627, -0.000000, 251.247421, -0.000000, 55.071854, -0.000000, 1.000000}, + {10.536271, -0.000000, -3.791160, -0.000000, 206.838837, -0.000000, 45.579884, -0.000000, 1.000000}, + {8.839734, -0.000000, -3.634206, -0.000000, 171.094849, -0.000000, 38.043308, -0.000000, 1.000000}, + {7.486965, -0.000000, -3.468320, -0.000000, 142.060669, -0.000000, 31.994062, -0.000000, 1.000000}, + {6.403177, -0.000000, -3.292229, -0.000000, 118.070328, -0.000000, 27.104532, -0.000000, 1.000000}, + {5.523100, -0.000000, -3.109759, -0.000000, 98.170776, -0.000000, 23.082695, -0.000000, 1.000000}, + {4.831917, -0.000000, -2.924479, -0.000000, 81.442329, -0.000000, 19.855810, -0.000000, 1.000000}, + {4.250381, -0.000000, -2.743827, -0.000000, 67.674957, -0.000000, 17.101507, -0.000000, 1.000000}, + {3.757152, -0.000000, -2.567863, -0.000000, 56.290527, -0.000000, 14.737700, -0.000000, 1.000000}, + {3.377566, -0.000000, -2.398841, -0.000000, 46.732021, -0.000000, 12.844433, -0.000000, 1.000000}, + {3.050572, -0.000000, -2.241966, -0.000000, 38.919209, -0.000000, 11.195201, -0.000000, 1.000000}, + {2.758274, -0.000000, -2.094188, -0.000000, 32.562389, -0.000000, 9.731255, -0.000000, 1.000000}, + {2.531044, -0.000000, -1.957008, -0.000000, 27.230253, -0.000000, 8.550031, -0.000000, 1.000000}, + {2.327443, -0.000000, -1.829026, -0.000000, 22.900625, -0.000000, 7.494730, -0.000000, 1.000000}, + {2.159161, -0.000000, -1.710399, -0.000000, 19.302103, -0.000000, 6.611458, -0.000000, 1.000000}, + {2.012750, -0.000000, -1.600246, -0.000000, 16.353825, -0.000000, 5.840732, -0.000000, 1.000000}, + {1.886550, -0.000000, -1.498032, -0.000000, 13.905995, -0.000000, 5.174478, -0.000000, 1.000000}, + {1.774737, -0.000000, -1.403907, -0.000000, 11.876966, -0.000000, 4.595283, -0.000000, 1.000000}, + {1.677102, -0.000000, -1.316360, -0.000000, 10.216613, -0.000000, 4.087289, -0.000000, 1.000000}, + {1.596201, -0.000000, -1.234255, -0.000000, 8.792109, -0.000000, 3.661887, -0.000000, 1.000000}, + {1.519374, -0.000000, -1.157762, -0.000000, 7.616532, -0.000000, 3.275707, -0.000000, 1.000000}, + {1.452196, -0.000000, -1.086439, -0.000000, 6.628254, -0.000000, 2.938795, -0.000000, 1.000000}, + {1.402205, -0.000000, -1.019261, -0.000000, 5.789808, -0.000000, 2.661379, -0.000000, 1.000000}, + {1.351270, -0.000000, -0.956486, -0.000000, 5.087619, -0.000000, 2.401204, -0.000000, 1.000000}, + {1.302528, -0.000000, -0.898279, -0.000000, 4.495908, -0.000000, 2.165735, -0.000000, 1.000000}, + {1.267093, -0.000000, -0.843252, -0.000000, 3.985807, -0.000000, 1.970988, -0.000000, 1.000000}, + {1.231524, -0.000000, -0.791209, -0.000000, 3.555437, -0.000000, 1.790508, -0.000000, 1.000000}, + {1.194025, -0.000000, -0.741673, -0.000000, 3.186777, -0.000000, 1.620665, -0.000000, 1.000000}, + {1.166682, -0.000000, -0.694717, -0.000000, 2.869368, -0.000000, 1.477615, -0.000000, 1.000000}, + {1.136948, -0.000000, -0.649811, -0.000000, 2.600365, -0.000000, 1.341036, -0.000000, 1.000000}, + {1.112716, -0.000000, -0.606719, -0.000000, 2.364336, -0.000000, 1.221506, -0.000000, 1.000000}, + {1.089677, -0.000000, -0.565527, -0.000000, 2.159290, -0.000000, 1.112482, -0.000000, 1.000000}, + {1.062996, -0.000000, -0.526035, -0.000000, 1.983256, -0.000000, 1.005913, -0.000000, 1.000000}, + {1.044072, -0.000000, -0.487913, -0.000000, 1.828424, -0.000000, 0.915047, -0.000000, 1.000000}, + {1.022682, -0.000000, -0.451280, -0.000000, 1.693817, -0.000000, 0.828121, -0.000000, 1.000000}, + {1.003442, -0.000000, -0.416265, -0.000000, 1.574270, -0.000000, 0.748060, -0.000000, 1.000000}, + {0.983337, -0.000000, -0.382965, -0.000000, 1.468847, -0.000000, 0.673708, -0.000000, 1.000000}, + {0.964855, -0.000000, -0.351174, -0.000000, 1.375737, -0.000000, 0.604308, -0.000000, 1.000000}, + {0.948558, -0.000000, -0.320522, -0.000000, 1.294130, -0.000000, 0.540649, -0.000000, 1.000000}, + {0.928151, -0.000000, -0.290747, -0.000000, 1.219719, -0.000000, 0.478833, -0.000000, 1.000000}, + {0.911260, -0.000000, -0.261761, -0.000000, 1.153626, -0.000000, 0.422449, -0.000000, 1.000000}, + {0.892292, -0.000000, -0.233490, -0.000000, 1.092571, -0.000000, 0.369654, -0.000000, 1.000000}, + {0.874949, -0.000000, -0.206385, -0.000000, 1.038161, -0.000000, 0.319799, -0.000000, 1.000000}, + {0.855154, -0.000000, -0.179844, -0.000000, 0.987733, -0.000000, 0.272366, -0.000000, 1.000000}, + {0.837398, -0.000000, -0.153959, -0.000000, 0.942935, -0.000000, 0.229158, -0.000000, 1.000000}, + {0.819890, -0.000000, -0.128660, -0.000000, 0.902518, -0.000000, 0.189735, -0.000000, 1.000000}, + {0.798486, -0.000000, -0.104464, -0.000000, 0.868445, -0.000000, 0.153091, -0.000000, 1.000000}, + {0.784313, -0.000000, -0.081117, -0.000000, 0.841813, -0.000000, 0.121025, -0.000000, 1.000000}, + {0.776996, -0.000000, -0.058378, -0.000000, 0.818920, -0.000000, 0.089016, -0.000000, 1.000000}, + {0.773136, -0.000000, -0.036213, -0.000000, 0.799058, -0.000000, 0.057511, -0.000000, 1.000000}, + {0.769063, -0.000000, -0.014501, -0.000000, 0.780764, -0.000000, 0.026675, -0.000000, 1.000000}, + {0.764074, -0.000000, 0.006566, -0.000000, 0.763874, -0.000000, -0.003352, -0.000000, 1.000000}, + {721.985046, -0.000000, -4.946069, -0.000000, 5046.145996, -0.000000, 3571.211670, -0.000000, 1.000000}, + {721.985046, -0.000000, -4.946069, -0.000000, 5046.145996, -0.000000, 3571.211670, -0.000000, 1.000000}, + {714.985718, -0.000000, -4.946058, -0.000000, 5046.135742, -0.000000, 3536.660400, -0.000000, 1.000000}, + {232.125870, -0.000000, -4.943971, -0.000000, 5044.090820, -0.000000, 1148.170532, -0.000000, 1.000000}, + {123.873604, -0.000000, -4.938361, -0.000000, 3149.807617, -0.000000, 612.507385, -0.000000, 1.000000}, + {79.155502, -0.000000, -4.926561, -0.000000, 2012.432617, -0.000000, 391.393158, -0.000000, 1.000000}, + {54.743370, -0.000000, -4.905214, -0.000000, 1391.310547, -0.000000, 270.613251, -0.000000, 1.000000}, + {39.901684, -0.000000, -4.869965, -0.000000, 1014.800049, -0.000000, 197.096710, -0.000000, 1.000000}, + {30.294024, -0.000000, -4.799531, -0.000000, 767.817200, -0.000000, 149.533600, -0.000000, 1.000000}, + {23.608038, -0.000000, -4.718091, -0.000000, 597.033752, -0.000000, 116.387131, -0.000000, 1.000000}, + {18.787228, -0.000000, -4.611835, -0.000000, 473.238251, -0.000000, 92.445580, -0.000000, 1.000000}, + {15.179027, -0.000000, -4.479045, -0.000000, 380.186798, -0.000000, 74.498795, -0.000000, 1.000000}, + {12.417994, -0.000000, -4.319867, -0.000000, 308.464142, -0.000000, 60.725189, -0.000000, 1.000000}, + {10.276855, -0.000000, -4.134665, -0.000000, 251.735382, -0.000000, 50.000065, -0.000000, 1.000000}, + {8.584215, -0.000000, -3.934479, -0.000000, 206.273911, -0.000000, 41.477249, -0.000000, 1.000000}, + {7.247280, -0.000000, -3.722689, -0.000000, 169.325745, -0.000000, 34.679852, -0.000000, 1.000000}, + {6.180845, -0.000000, -3.501753, -0.000000, 138.977737, -0.000000, 29.194916, -0.000000, 1.000000}, + {5.320841, -0.000000, -3.277736, -0.000000, 113.964752, -0.000000, 24.704174, -0.000000, 1.000000}, + {4.651779, -0.000000, -3.059142, -0.000000, 93.273788, -0.000000, 21.118258, -0.000000, 1.000000}, + {4.087338, -0.000000, -2.848116, -0.000000, 76.500832, -0.000000, 18.057499, -0.000000, 1.000000}, + {3.633870, -0.000000, -2.645974, -0.000000, 62.704197, -0.000000, 15.535373, -0.000000, 1.000000}, + {3.239435, -0.000000, -2.458408, -0.000000, 51.632034, -0.000000, 13.342704, -0.000000, 1.000000}, + {2.935870, -0.000000, -2.284677, -0.000000, 42.461651, -0.000000, 11.585645, -0.000000, 1.000000}, + {2.668840, -0.000000, -2.124792, -0.000000, 35.115269, -0.000000, 10.048407, -0.000000, 1.000000}, + {2.433447, -0.000000, -1.977476, -0.000000, 29.214821, -0.000000, 8.716081, -0.000000, 1.000000}, + {2.237335, -0.000000, -1.842107, -0.000000, 24.375181, -0.000000, 7.597365, -0.000000, 1.000000}, + {2.075590, -0.000000, -1.718119, -0.000000, 20.449934, -0.000000, 6.658926, -0.000000, 1.000000}, + {1.938075, -0.000000, -1.604022, -0.000000, 17.212046, -0.000000, 5.863555, -0.000000, 1.000000}, + {1.817005, -0.000000, -1.499478, -0.000000, 14.572831, -0.000000, 5.173584, -0.000000, 1.000000}, + {1.716687, -0.000000, -1.403249, -0.000000, 12.395076, -0.000000, 4.591091, -0.000000, 1.000000}, + {1.635633, -0.000000, -1.314340, -0.000000, 10.569445, -0.000000, 4.104249, -0.000000, 1.000000}, + {1.553543, -0.000000, -1.231609, -0.000000, 9.085625, -0.000000, 3.655235, -0.000000, 1.000000}, + {1.486551, -0.000000, -1.154891, -0.000000, 7.846591, -0.000000, 3.274149, -0.000000, 1.000000}, + {1.421622, -0.000000, -1.083487, -0.000000, 6.813128, -0.000000, 2.934341, -0.000000, 1.000000}, + {1.367418, -0.000000, -1.016376, -0.000000, 5.944501, -0.000000, 2.640042, -0.000000, 1.000000}, + {1.324482, -0.000000, -0.953508, -0.000000, 5.207488, -0.000000, 2.390431, -0.000000, 1.000000}, + {1.280684, -0.000000, -0.894399, -0.000000, 4.592789, -0.000000, 2.159741, -0.000000, 1.000000}, + {1.246987, -0.000000, -0.839518, -0.000000, 4.062180, -0.000000, 1.964467, -0.000000, 1.000000}, + {1.211155, -0.000000, -0.788068, -0.000000, 3.620679, -0.000000, 1.781203, -0.000000, 1.000000}, + {1.175933, -0.000000, -0.738902, -0.000000, 3.243580, -0.000000, 1.613270, -0.000000, 1.000000}, + {1.152336, -0.000000, -0.692208, -0.000000, 2.917040, -0.000000, 1.473435, -0.000000, 1.000000}, + {1.123500, -0.000000, -0.647835, -0.000000, 2.636541, -0.000000, 1.336179, -0.000000, 1.000000}, + {1.096555, -0.000000, -0.605367, -0.000000, 2.396568, -0.000000, 1.213442, -0.000000, 1.000000}, + {1.077336, -0.000000, -0.564784, -0.000000, 2.185666, -0.000000, 1.106037, -0.000000, 1.000000}, + {1.052653, -0.000000, -0.525758, -0.000000, 2.002713, -0.000000, 1.003530, -0.000000, 1.000000}, + {1.031925, -0.000000, -0.488138, -0.000000, 1.844307, -0.000000, 0.909873, -0.000000, 1.000000}, + {1.013942, -0.000000, -0.451746, -0.000000, 1.704971, -0.000000, 0.825459, -0.000000, 1.000000}, + {0.991452, -0.000000, -0.416619, -0.000000, 1.584007, -0.000000, 0.742975, -0.000000, 1.000000}, + {0.974240, -0.000000, -0.382644, -0.000000, 1.474510, -0.000000, 0.669738, -0.000000, 1.000000}, + {0.955821, -0.000000, -0.350143, -0.000000, 1.378818, -0.000000, 0.600725, -0.000000, 1.000000}, + {0.938912, -0.000000, -0.318425, -0.000000, 1.294800, -0.000000, 0.536778, -0.000000, 1.000000}, + {0.919444, -0.000000, -0.288514, -0.000000, 1.217755, -0.000000, 0.475350, -0.000000, 1.000000}, + {0.903474, -0.000000, -0.259492, -0.000000, 1.149861, -0.000000, 0.419374, -0.000000, 1.000000}, + {0.883635, -0.000000, -0.231227, -0.000000, 1.084635, -0.000000, 0.365386, -0.000000, 1.000000}, + {0.864503, -0.000000, -0.203640, -0.000000, 1.027821, -0.000000, 0.314880, -0.000000, 1.000000}, + {0.842393, -0.000000, -0.176839, -0.000000, 0.973706, -0.000000, 0.266845, -0.000000, 1.000000}, + {0.817137, -0.000000, -0.150930, -0.000000, 0.926544, -0.000000, 0.221697, -0.000000, 1.000000}, + {0.800453, -0.000000, -0.125641, -0.000000, 0.889120, -0.000000, 0.183984, -0.000000, 1.000000}, + {0.785820, -0.000000, -0.100842, -0.000000, 0.857413, -0.000000, 0.149712, -0.000000, 1.000000}, + {0.774620, -0.000000, -0.076499, -0.000000, 0.831367, -0.000000, 0.117321, -0.000000, 1.000000}, + {0.768187, -0.000000, -0.052638, -0.000000, 0.808870, -0.000000, 0.085328, -0.000000, 1.000000}, + {0.763980, -0.000000, -0.029531, -0.000000, 0.789081, -0.000000, 0.053670, -0.000000, 1.000000}, + {0.758869, -0.000000, -0.007321, -0.000000, 0.770790, -0.000000, 0.022941, -0.000000, 1.000000}, + {0.753451, -0.000000, 0.014465, -0.000000, 0.753795, -0.000000, -0.007314, -0.000000, 1.000000}, + {755.370728, -0.000000, -5.670331, -0.000000, 5757.834961, -0.000000, 4283.786621, -0.000000, 1.000000}, + {755.370728, -0.000000, -5.670331, -0.000000, 5757.834961, -0.000000, 4283.786621, -0.000000, 1.000000}, + {748.917786, -0.000000, -5.670322, -0.000000, 5757.825684, -0.000000, 4247.178223, -0.000000, 1.000000}, + {246.101578, -0.000000, -5.667177, -0.000000, 5754.728027, -0.000000, 1395.648438, -0.000000, 1.000000}, + {123.797058, -0.000000, -5.658721, -0.000000, 4106.577148, -0.000000, 701.706238, -0.000000, 1.000000}, + {79.117386, -0.000000, -5.640969, -0.000000, 2618.795898, -0.000000, 448.470886, -0.000000, 1.000000}, + {54.177662, -0.000000, -5.608840, -0.000000, 1834.666748, -0.000000, 306.364075, -0.000000, 1.000000}, + {39.824734, -0.000000, -5.550171, -0.000000, 1313.560669, -0.000000, 225.507919, -0.000000, 1.000000}, + {30.075279, -0.000000, -5.454316, -0.000000, 990.787842, -0.000000, 170.092087, -0.000000, 1.000000}, + {23.337036, -0.000000, -5.339839, -0.000000, 767.091919, -0.000000, 131.755875, -0.000000, 1.000000}, + {18.473637, -0.000000, -5.178624, -0.000000, 603.634888, -0.000000, 104.043175, -0.000000, 1.000000}, + {14.846143, -0.000000, -4.992064, -0.000000, 481.186798, -0.000000, 83.316429, -0.000000, 1.000000}, + {12.081261, -0.000000, -4.772932, -0.000000, 386.654968, -0.000000, 67.461525, -0.000000, 1.000000}, + {9.940939, -0.000000, -4.523968, -0.000000, 311.820526, -0.000000, 55.120632, -0.000000, 1.000000}, + {8.274117, -0.000000, -4.262884, -0.000000, 252.081955, -0.000000, 45.424171, -0.000000, 1.000000}, + {6.964566, -0.000000, -3.988830, -0.000000, 203.697174, -0.000000, 37.720623, -0.000000, 1.000000}, + {5.926566, -0.000000, -3.710901, -0.000000, 164.417938, -0.000000, 31.508204, -0.000000, 1.000000}, + {5.129732, -0.000000, -3.441426, -0.000000, 132.342026, -0.000000, 26.615784, -0.000000, 1.000000}, + {4.463659, -0.000000, -3.182252, -0.000000, 106.775970, -0.000000, 22.479305, -0.000000, 1.000000}, + {3.902591, -0.000000, -2.936867, -0.000000, 86.341125, -0.000000, 18.977882, -0.000000, 1.000000}, + {3.481073, -0.000000, -2.709507, -0.000000, 69.712631, -0.000000, 16.245199, -0.000000, 1.000000}, + {3.118626, -0.000000, -2.502808, -0.000000, 56.590183, -0.000000, 13.889335, -0.000000, 1.000000}, + {2.795513, -0.000000, -2.314271, -0.000000, 46.252998, -0.000000, 11.844767, -0.000000, 1.000000}, + {2.551666, -0.000000, -2.143013, -0.000000, 37.847336, -0.000000, 10.238197, -0.000000, 1.000000}, + {2.332592, -0.000000, -1.987437, -0.000000, 31.214708, -0.000000, 8.834404, -0.000000, 1.000000}, + {2.155564, -0.000000, -1.846117, -0.000000, 25.844906, -0.000000, 7.686929, -0.000000, 1.000000}, + {2.000643, -0.000000, -1.717631, -0.000000, 21.522562, -0.000000, 6.701662, -0.000000, 1.000000}, + {1.870037, -0.000000, -1.601066, -0.000000, 18.046921, -0.000000, 5.874063, -0.000000, 1.000000}, + {1.764007, -0.000000, -1.494996, -0.000000, 15.182642, -0.000000, 5.187465, -0.000000, 1.000000}, + {1.663801, -0.000000, -1.397578, -0.000000, 12.871964, -0.000000, 4.582635, -0.000000, 1.000000}, + {1.577190, -0.000000, -1.307861, -0.000000, 10.965149, -0.000000, 4.061802, -0.000000, 1.000000}, + {1.504099, -0.000000, -1.225326, -0.000000, 9.397988, -0.000000, 3.620734, -0.000000, 1.000000}, + {1.448169, -0.000000, -1.148877, -0.000000, 8.073087, -0.000000, 3.255360, -0.000000, 1.000000}, + {1.392806, -0.000000, -1.077689, -0.000000, 6.986881, -0.000000, 2.925269, -0.000000, 1.000000}, + {1.337830, -0.000000, -1.011239, -0.000000, 6.092653, -0.000000, 2.623551, -0.000000, 1.000000}, + {1.297846, -0.000000, -0.949130, -0.000000, 5.329033, -0.000000, 2.376188, -0.000000, 1.000000}, + {1.257372, -0.000000, -0.890650, -0.000000, 4.688469, -0.000000, 2.146968, -0.000000, 1.000000}, + {1.217505, -0.000000, -0.835359, -0.000000, 4.149733, -0.000000, 1.939995, -0.000000, 1.000000}, + {1.189010, -0.000000, -0.783367, -0.000000, 3.687076, -0.000000, 1.766274, -0.000000, 1.000000}, + {1.158875, -0.000000, -0.735030, -0.000000, 3.302110, -0.000000, 1.603226, -0.000000, 1.000000}, + {1.132490, -0.000000, -0.689066, -0.000000, 2.961678, -0.000000, 1.460328, -0.000000, 1.000000}, + {1.107211, -0.000000, -0.645352, -0.000000, 2.676203, -0.000000, 1.327499, -0.000000, 1.000000}, + {1.082764, -0.000000, -0.603500, -0.000000, 2.428947, -0.000000, 1.207419, -0.000000, 1.000000}, + {1.065845, -0.000000, -0.563333, -0.000000, 2.212621, -0.000000, 1.102937, -0.000000, 1.000000}, + {1.040707, -0.000000, -0.524835, -0.000000, 2.024522, -0.000000, 0.998398, -0.000000, 1.000000}, + {1.020347, -0.000000, -0.487784, -0.000000, 1.860953, -0.000000, 0.904858, -0.000000, 1.000000}, + {1.004311, -0.000000, -0.452053, -0.000000, 1.719984, -0.000000, 0.821416, -0.000000, 1.000000}, + {0.982813, -0.000000, -0.417382, -0.000000, 1.592310, -0.000000, 0.740940, -0.000000, 1.000000}, + {0.965647, -0.000000, -0.383810, -0.000000, 1.479896, -0.000000, 0.668034, -0.000000, 1.000000}, + {0.946957, -0.000000, -0.351144, -0.000000, 1.380211, -0.000000, 0.598401, -0.000000, 1.000000}, + {0.932339, -0.000000, -0.319366, -0.000000, 1.292450, -0.000000, 0.535861, -0.000000, 1.000000}, + {0.911615, -0.000000, -0.288792, -0.000000, 1.213322, -0.000000, 0.473632, -0.000000, 1.000000}, + {0.890619, -0.000000, -0.259176, -0.000000, 1.141411, -0.000000, 0.415295, -0.000000, 1.000000}, + {0.871610, -0.000000, -0.230179, -0.000000, 1.077082, -0.000000, 0.360902, -0.000000, 1.000000}, + {0.846984, -0.000000, -0.202470, -0.000000, 1.018013, -0.000000, 0.307360, -0.000000, 1.000000}, + {0.825227, -0.000000, -0.175689, -0.000000, 0.963117, -0.000000, 0.260213, -0.000000, 1.000000}, + {0.807204, -0.000000, -0.149474, -0.000000, 0.917321, -0.000000, 0.218667, -0.000000, 1.000000}, + {0.791875, -0.000000, -0.123761, -0.000000, 0.879613, -0.000000, 0.181071, -0.000000, 1.000000}, + {0.777142, -0.000000, -0.098633, -0.000000, 0.847924, -0.000000, 0.147021, -0.000000, 1.000000}, + {0.765843, -0.000000, -0.074229, -0.000000, 0.821091, -0.000000, 0.114883, -0.000000, 1.000000}, + {0.759266, -0.000000, -0.050208, -0.000000, 0.798548, -0.000000, 0.082969, -0.000000, 1.000000}, + {0.753952, -0.000000, -0.026592, -0.000000, 0.778596, -0.000000, 0.051373, -0.000000, 1.000000}, + {0.748278, -0.000000, -0.003300, -0.000000, 0.759784, -0.000000, 0.020496, -0.000000, 1.000000}, + {0.741943, -0.000000, 0.019648, -0.000000, 0.742779, -0.000000, -0.010106, -0.000000, 1.000000}, + {796.538452, -0.000000, -6.633092, -0.000000, 6708.047852, -0.000000, 5284.574219, -0.000000, 1.000000}, + {796.538452, -0.000000, -6.633092, -0.000000, 6708.047852, -0.000000, 5284.574219, -0.000000, 1.000000}, + {788.692444, -0.000000, -6.633066, -0.000000, 6708.022949, -0.000000, 5232.681641, -0.000000, 1.000000}, + {254.366989, -0.000000, -6.628033, -0.000000, 6703.046387, -0.000000, 1687.155640, -0.000000, 1.000000}, + {124.024818, -0.000000, -6.614511, -0.000000, 5539.862305, -0.000000, 822.532288, -0.000000, 1.000000}, + {78.874611, -0.000000, -6.586137, -0.000000, 3570.532227, -0.000000, 522.773438, -0.000000, 1.000000}, + {54.351654, -0.000000, -6.534547, -0.000000, 2444.145508, -0.000000, 360.170929, -0.000000, 1.000000}, + {39.671909, -0.000000, -6.425985, -0.000000, 1757.696289, -0.000000, 262.640015, -0.000000, 1.000000}, + {29.720913, -0.000000, -6.296362, -0.000000, 1330.735718, -0.000000, 196.392914, -0.000000, 1.000000}, + {22.937927, -0.000000, -6.109432, -0.000000, 1019.533630, -0.000000, 151.242661, -0.000000, 1.000000}, + {18.037071, -0.000000, -5.883490, -0.000000, 795.384338, -0.000000, 118.512108, -0.000000, 1.000000}, + {14.389929, -0.000000, -5.610622, -0.000000, 626.799988, -0.000000, 94.074753, -0.000000, 1.000000}, + {11.632060, -0.000000, -5.292922, -0.000000, 496.057587, -0.000000, 75.492020, -0.000000, 1.000000}, + {9.524698, -0.000000, -4.959748, -0.000000, 393.665619, -0.000000, 61.165596, -0.000000, 1.000000}, + {7.909891, -0.000000, -4.608510, -0.000000, 311.850403, -0.000000, 50.033722, -0.000000, 1.000000}, + {6.641108, -0.000000, -4.254182, -0.000000, 246.801361, -0.000000, 41.161034, -0.000000, 1.000000}, + {5.640098, -0.000000, -3.911447, -0.000000, 195.188507, -0.000000, 34.034492, -0.000000, 1.000000}, + {4.876927, -0.000000, -3.585286, -0.000000, 154.037003, -0.000000, 28.450592, -0.000000, 1.000000}, + {4.234858, -0.000000, -3.282091, -0.000000, 122.015228, -0.000000, 23.740337, -0.000000, 1.000000}, + {3.706480, -0.000000, -3.003709, -0.000000, 97.047188, -0.000000, 19.848419, -0.000000, 1.000000}, + {3.294509, -0.000000, -2.752968, -0.000000, 77.346321, -0.000000, 16.757662, -0.000000, 1.000000}, + {2.949829, -0.000000, -2.528190, -0.000000, 61.985443, -0.000000, 14.190195, -0.000000, 1.000000}, + {2.673619, -0.000000, -2.326734, -0.000000, 49.983765, -0.000000, 12.108070, -0.000000, 1.000000}, + {2.421091, -0.000000, -2.146376, -0.000000, 40.643520, -0.000000, 10.310018, -0.000000, 1.000000}, + {2.225844, -0.000000, -1.984520, -0.000000, 33.203148, -0.000000, 8.879506, -0.000000, 1.000000}, + {2.050815, -0.000000, -1.839347, -0.000000, 27.348070, -0.000000, 7.653798, -0.000000, 1.000000}, + {1.915180, -0.000000, -1.708621, -0.000000, 22.628241, -0.000000, 6.671260, -0.000000, 1.000000}, + {1.794598, -0.000000, -1.590899, -0.000000, 18.848253, -0.000000, 5.830236, -0.000000, 1.000000}, + {1.699217, -0.000000, -1.484087, -0.000000, 15.794706, -0.000000, 5.150298, -0.000000, 1.000000}, + {1.607506, -0.000000, -1.386482, -0.000000, 13.345618, -0.000000, 4.539809, -0.000000, 1.000000}, + {1.534696, -0.000000, -1.297261, -0.000000, 11.314983, -0.000000, 4.041388, -0.000000, 1.000000}, + {1.463587, -0.000000, -1.215437, -0.000000, 9.669380, -0.000000, 3.594791, -0.000000, 1.000000}, + {1.402722, -0.000000, -1.139554, -0.000000, 8.306990, -0.000000, 3.209846, -0.000000, 1.000000}, + {1.355394, -0.000000, -1.069360, -0.000000, 7.170519, -0.000000, 2.892212, -0.000000, 1.000000}, + {1.308239, -0.000000, -1.003819, -0.000000, 6.241129, -0.000000, 2.599499, -0.000000, 1.000000}, + {1.265107, -0.000000, -0.942460, -0.000000, 5.446612, -0.000000, 2.343331, -0.000000, 1.000000}, + {1.236631, -0.000000, -0.885105, -0.000000, 4.786221, -0.000000, 2.134352, -0.000000, 1.000000}, + {1.197268, -0.000000, -0.830972, -0.000000, 4.235952, -0.000000, 1.925134, -0.000000, 1.000000}, + {1.168772, -0.000000, -0.779904, -0.000000, 3.763372, -0.000000, 1.750235, -0.000000, 1.000000}, + {1.140084, -0.000000, -0.731363, -0.000000, 3.362856, -0.000000, 1.589927, -0.000000, 1.000000}, + {1.112856, -0.000000, -0.685110, -0.000000, 3.016409, -0.000000, 1.443964, -0.000000, 1.000000}, + {1.093076, -0.000000, -0.641937, -0.000000, 2.718378, -0.000000, 1.320131, -0.000000, 1.000000}, + {1.066269, -0.000000, -0.600802, -0.000000, 2.463474, -0.000000, 1.196558, -0.000000, 1.000000}, + {1.052001, -0.000000, -0.561395, -0.000000, 2.240675, -0.000000, 1.096340, -0.000000, 1.000000}, + {1.029387, -0.000000, -0.523471, -0.000000, 2.047421, -0.000000, 0.993331, -0.000000, 1.000000}, + {1.010490, -0.000000, -0.486986, -0.000000, 1.876320, -0.000000, 0.902016, -0.000000, 1.000000}, + {0.994934, -0.000000, -0.451763, -0.000000, 1.730797, -0.000000, 0.819587, -0.000000, 1.000000}, + {0.974489, -0.000000, -0.417763, -0.000000, 1.599287, -0.000000, 0.739916, -0.000000, 1.000000}, + {0.957656, -0.000000, -0.384869, -0.000000, 1.485222, -0.000000, 0.666863, -0.000000, 1.000000}, + {0.939151, -0.000000, -0.352948, -0.000000, 1.383958, -0.000000, 0.597341, -0.000000, 1.000000}, + {0.919569, -0.000000, -0.321905, -0.000000, 1.292059, -0.000000, 0.532299, -0.000000, 1.000000}, + {0.903610, -0.000000, -0.291601, -0.000000, 1.213007, -0.000000, 0.473077, -0.000000, 1.000000}, + {0.878530, -0.000000, -0.261976, -0.000000, 1.137926, -0.000000, 0.410832, -0.000000, 1.000000}, + {0.859335, -0.000000, -0.232993, -0.000000, 1.072206, -0.000000, 0.356913, -0.000000, 1.000000}, + {0.840088, -0.000000, -0.204911, -0.000000, 1.012177, -0.000000, 0.306912, -0.000000, 1.000000}, + {0.817539, -0.000000, -0.177521, -0.000000, 0.955910, -0.000000, 0.259635, -0.000000, 1.000000}, + {0.799748, -0.000000, -0.150580, -0.000000, 0.909657, -0.000000, 0.217919, -0.000000, 1.000000}, + {0.783867, -0.000000, -0.124083, -0.000000, 0.870853, -0.000000, 0.180178, -0.000000, 1.000000}, + {0.768642, -0.000000, -0.098486, -0.000000, 0.838291, -0.000000, 0.145685, -0.000000, 1.000000}, + {0.756833, -0.000000, -0.073751, -0.000000, 0.810957, -0.000000, 0.113385, -0.000000, 1.000000}, + {0.749698, -0.000000, -0.049360, -0.000000, 0.787669, -0.000000, 0.081632, -0.000000, 1.000000}, + {0.743499, -0.000000, -0.025327, -0.000000, 0.767074, -0.000000, 0.050162, -0.000000, 1.000000}, + {0.736850, -0.000000, -0.001874, -0.000000, 0.748055, -0.000000, 0.019200, -0.000000, 1.000000}, + {0.730256, -0.000000, 0.021175, -0.000000, 0.730499, -0.000000, -0.010886, -0.000000, 1.000000}, + {845.146118, -0.000000, -7.977318, -0.000000, 8039.750000, -0.000000, 6744.384766, -0.000000, 1.000000}, + {845.146118, -0.000000, -7.977318, -0.000000, 8039.750000, -0.000000, 6744.384766, -0.000000, 1.000000}, + {835.189026, -0.000000, -7.977277, -0.000000, 8039.710449, -0.000000, 6664.471191, -0.000000, 1.000000}, + {281.098541, -0.000000, -7.968528, -0.000000, 8031.028809, -0.000000, 2242.864746, -0.000000, 1.000000}, + {123.405190, -0.000000, -7.945025, -0.000000, 8007.711426, -0.000000, 984.388428, -0.000000, 1.000000}, + {78.691490, -0.000000, -7.895733, -0.000000, 5077.497559, -0.000000, 627.326538, -0.000000, 1.000000}, + {54.058727, -0.000000, -7.791619, -0.000000, 3485.158447, -0.000000, 430.624695, -0.000000, 1.000000}, + {39.050835, -0.000000, -7.625182, -0.000000, 2508.681885, -0.000000, 310.617584, -0.000000, 1.000000}, + {28.780594, -0.000000, -7.403747, -0.000000, 1883.278564, -0.000000, 228.130203, -0.000000, 1.000000}, + {22.431581, -0.000000, -7.116580, -0.000000, 1415.168823, -0.000000, 177.351303, -0.000000, 1.000000}, + {17.398540, -0.000000, -6.757731, -0.000000, 1089.876953, -0.000000, 136.846085, -0.000000, 1.000000}, + {13.759562, -0.000000, -6.336405, -0.000000, 842.622314, -0.000000, 107.378319, -0.000000, 1.000000}, + {11.054308, -0.000000, -5.889235, -0.000000, 653.017090, -0.000000, 85.240372, -0.000000, 1.000000}, + {9.015944, -0.000000, -5.419374, -0.000000, 504.942902, -0.000000, 68.333931, -0.000000, 1.000000}, + {7.456490, -0.000000, -4.949159, -0.000000, 389.530151, -0.000000, 55.183376, -0.000000, 1.000000}, + {6.251395, -0.000000, -4.500382, -0.000000, 300.270569, -0.000000, 44.822029, -0.000000, 1.000000}, + {5.308335, -0.000000, -4.078912, -0.000000, 231.511444, -0.000000, 36.583969, -0.000000, 1.000000}, + {4.555330, -0.000000, -3.694615, -0.000000, 178.991898, -0.000000, 29.968136, -0.000000, 1.000000}, + {3.972212, -0.000000, -3.347843, -0.000000, 138.743637, -0.000000, 24.783125, -0.000000, 1.000000}, + {3.497174, -0.000000, -3.039443, -0.000000, 108.196671, -0.000000, 20.568523, -0.000000, 1.000000}, + {3.085307, -0.000000, -2.768964, -0.000000, 85.297348, -0.000000, 17.046770, -0.000000, 1.000000}, + {2.774531, -0.000000, -2.530205, -0.000000, 67.433861, -0.000000, 14.344564, -0.000000, 1.000000}, + {2.505141, -0.000000, -2.319404, -0.000000, 53.952549, -0.000000, 12.078911, -0.000000, 1.000000}, + {2.290914, -0.000000, -2.133185, -0.000000, 43.374359, -0.000000, 10.289063, -0.000000, 1.000000}, + {2.109684, -0.000000, -1.968301, -0.000000, 35.174217, -0.000000, 8.813835, -0.000000, 1.000000}, + {1.955441, -0.000000, -1.821365, -0.000000, 28.774702, -0.000000, 7.586822, -0.000000, 1.000000}, + {1.824226, -0.000000, -1.690827, -0.000000, 23.718933, -0.000000, 6.580121, -0.000000, 1.000000}, + {1.722245, -0.000000, -1.573141, -0.000000, 19.618530, -0.000000, 5.767525, -0.000000, 1.000000}, + {1.623407, -0.000000, -1.466886, -0.000000, 16.415415, -0.000000, 5.050951, -0.000000, 1.000000}, + {1.544118, -0.000000, -1.370359, -0.000000, 13.800963, -0.000000, 4.461748, -0.000000, 1.000000}, + {1.480333, -0.000000, -1.282609, -0.000000, 11.673009, -0.000000, 3.974541, -0.000000, 1.000000}, + {1.420210, -0.000000, -1.201725, -0.000000, 9.939965, -0.000000, 3.546500, -0.000000, 1.000000}, + {1.363331, -0.000000, -1.127192, -0.000000, 8.527099, -0.000000, 3.165497, -0.000000, 1.000000}, + {1.319575, -0.000000, -1.058344, -0.000000, 7.354059, -0.000000, 2.850984, -0.000000, 1.000000}, + {1.278847, -0.000000, -0.994206, -0.000000, 6.383086, -0.000000, 2.572156, -0.000000, 1.000000}, + {1.236565, -0.000000, -0.934412, -0.000000, 5.585329, -0.000000, 2.311474, -0.000000, 1.000000}, + {1.207651, -0.000000, -0.878088, -0.000000, 4.897930, -0.000000, 2.104635, -0.000000, 1.000000}, + {1.175019, -0.000000, -0.825141, -0.000000, 4.323633, -0.000000, 1.906726, -0.000000, 1.000000}, + {1.150577, -0.000000, -0.775119, -0.000000, 3.832266, -0.000000, 1.739005, -0.000000, 1.000000}, + {1.122119, -0.000000, -0.727749, -0.000000, 3.422934, -0.000000, 1.578306, -0.000000, 1.000000}, + {1.093680, -0.000000, -0.682578, -0.000000, 3.074646, -0.000000, 1.429569, -0.000000, 1.000000}, + {1.077174, -0.000000, -0.639512, -0.000000, 2.766084, -0.000000, 1.310087, -0.000000, 1.000000}, + {1.052574, -0.000000, -0.598284, -0.000000, 2.504311, -0.000000, 1.187682, -0.000000, 1.000000}, + {1.034594, -0.000000, -0.558858, -0.000000, 2.275589, -0.000000, 1.083231, -0.000000, 1.000000}, + {1.014468, -0.000000, -0.521607, -0.000000, 2.075143, -0.000000, 0.984314, -0.000000, 1.000000}, + {0.995375, -0.000000, -0.486011, -0.000000, 1.901797, -0.000000, 0.894436, -0.000000, 1.000000}, + {0.982971, -0.000000, -0.451649, -0.000000, 1.749210, -0.000000, 0.816267, -0.000000, 1.000000}, + {0.963105, -0.000000, -0.418406, -0.000000, 1.615647, -0.000000, 0.735724, -0.000000, 1.000000}, + {0.948792, -0.000000, -0.386159, -0.000000, 1.495226, -0.000000, 0.666280, -0.000000, 1.000000}, + {0.926610, -0.000000, -0.354891, -0.000000, 1.391581, -0.000000, 0.593153, -0.000000, 1.000000}, + {0.907713, -0.000000, -0.324492, -0.000000, 1.297812, -0.000000, 0.527906, -0.000000, 1.000000}, + {0.892103, -0.000000, -0.294840, -0.000000, 1.215060, -0.000000, 0.469247, -0.000000, 1.000000}, + {0.869415, -0.000000, -0.265860, -0.000000, 1.136338, -0.000000, 0.410502, -0.000000, 1.000000}, + {0.852913, -0.000000, -0.237496, -0.000000, 1.068437, -0.000000, 0.358726, -0.000000, 1.000000}, + {0.834536, -0.000000, -0.209674, -0.000000, 1.007072, -0.000000, 0.308860, -0.000000, 1.000000}, + {0.811033, -0.000000, -0.182364, -0.000000, 0.948978, -0.000000, 0.260958, -0.000000, 1.000000}, + {0.791168, -0.000000, -0.155507, -0.000000, 0.900506, -0.000000, 0.218397, -0.000000, 1.000000}, + {0.775269, -0.000000, -0.129110, -0.000000, 0.861032, -0.000000, 0.180906, -0.000000, 1.000000}, + {0.760805, -0.000000, -0.103290, -0.000000, 0.828452, -0.000000, 0.146492, -0.000000, 1.000000}, + {0.747453, -0.000000, -0.078003, -0.000000, 0.799894, -0.000000, 0.114311, -0.000000, 1.000000}, + {0.739498, -0.000000, -0.053023, -0.000000, 0.776211, -0.000000, 0.082466, -0.000000, 1.000000}, + {0.731962, -0.000000, -0.028297, -0.000000, 0.754456, -0.000000, 0.050896, -0.000000, 1.000000}, + {0.724600, -0.000000, -0.003833, -0.000000, 0.734939, -0.000000, 0.020031, -0.000000, 1.000000}, + {0.717370, -0.000000, 0.020161, -0.000000, 0.717078, -0.000000, -0.010468, -0.000000, 1.000000}, + {906.439392, -0.000000, -9.988728, -0.000000, 10038.660156, -0.000000, 9060.019531, -0.000000, 1.000000}, + {906.439392, -0.000000, -9.988728, -0.000000, 10038.660156, -0.000000, 9060.019531, -0.000000, 1.000000}, + {896.722473, -0.000000, -9.988659, -0.000000, 10038.589844, -0.000000, 8960.477539, -0.000000, 1.000000}, + {304.300293, -0.000000, -9.971466, -0.000000, 10021.482422, -0.000000, 3038.479248, -0.000000, 1.000000}, + {135.957443, -0.000000, -9.925411, -0.000000, 9975.659180, -0.000000, 1357.243042, -0.000000, 1.000000}, + {78.026291, -0.000000, -9.828078, -0.000000, 7876.573730, -0.000000, 778.600769, -0.000000, 1.000000}, + {53.712955, -0.000000, -9.617829, -0.000000, 5350.844238, -0.000000, 535.068176, -0.000000, 1.000000}, + {38.286682, -0.000000, -9.333091, -0.000000, 3821.416992, -0.000000, 380.668152, -0.000000, 1.000000}, + {28.837351, -0.000000, -8.931132, -0.000000, 2776.563721, -0.000000, 285.601776, -0.000000, 1.000000}, + {21.382069, -0.000000, -8.424834, -0.000000, 2087.045654, -0.000000, 210.541641, -0.000000, 1.000000}, + {16.448494, -0.000000, -7.826952, -0.000000, 1564.820190, -0.000000, 160.475967, -0.000000, 1.000000}, + {12.875075, -0.000000, -7.180136, -0.000000, 1174.784180, -0.000000, 123.837555, -0.000000, 1.000000}, + {10.294890, -0.000000, -6.514475, -0.000000, 878.429626, -0.000000, 96.924232, -0.000000, 1.000000}, + {8.364246, -0.000000, -5.860951, -0.000000, 655.093750, -0.000000, 76.379807, -0.000000, 1.000000}, + {6.896718, -0.000000, -5.246315, -0.000000, 487.947388, -0.000000, 60.519421, -0.000000, 1.000000}, + {5.768393, -0.000000, -4.686076, -0.000000, 364.209167, -0.000000, 48.198494, -0.000000, 1.000000}, + {4.898552, -0.000000, -4.185898, -0.000000, 272.602905, -0.000000, 38.672321, -0.000000, 1.000000}, + {4.209528, -0.000000, -3.746351, -0.000000, 205.600281, -0.000000, 31.163448, -0.000000, 1.000000}, + {3.670874, -0.000000, -3.365174, -0.000000, 156.234818, -0.000000, 25.370182, -0.000000, 1.000000}, + {3.232810, -0.000000, -3.036278, -0.000000, 119.865585, -0.000000, 20.767403, -0.000000, 1.000000}, + {2.862235, -0.000000, -2.751556, -0.000000, 93.030350, -0.000000, 17.048080, -0.000000, 1.000000}, + {2.571143, -0.000000, -2.504743, -0.000000, 72.933678, -0.000000, 14.185691, -0.000000, 1.000000}, + {2.338569, -0.000000, -2.290083, -0.000000, 57.715157, -0.000000, 11.917953, -0.000000, 1.000000}, + {2.142554, -0.000000, -2.102626, -0.000000, 46.087078, -0.000000, 10.092039, -0.000000, 1.000000}, + {1.980509, -0.000000, -1.937902, -0.000000, 37.124104, -0.000000, 8.610742, -0.000000, 1.000000}, + {1.848721, -0.000000, -1.792767, -0.000000, 30.175062, -0.000000, 7.427349, -0.000000, 1.000000}, + {1.729413, -0.000000, -1.663505, -0.000000, 24.773699, -0.000000, 6.417544, -0.000000, 1.000000}, + {1.643981, -0.000000, -1.547935, -0.000000, 20.372276, -0.000000, 5.646828, -0.000000, 1.000000}, + {1.557670, -0.000000, -1.443718, -0.000000, 16.987263, -0.000000, 4.954495, -0.000000, 1.000000}, + {1.488696, -0.000000, -1.349465, -0.000000, 14.220825, -0.000000, 4.386989, -0.000000, 1.000000}, + {1.422584, -0.000000, -1.263479, -0.000000, 12.027329, -0.000000, 3.887997, -0.000000, 1.000000}, + {1.372155, -0.000000, -1.184875, -0.000000, 10.213785, -0.000000, 3.477706, -0.000000, 1.000000}, + {1.323880, -0.000000, -1.112276, -0.000000, 8.750161, -0.000000, 3.116966, -0.000000, 1.000000}, + {1.281696, -0.000000, -1.045049, -0.000000, 7.540591, -0.000000, 2.802569, -0.000000, 1.000000}, + {1.243254, -0.000000, -0.982565, -0.000000, 6.547980, -0.000000, 2.525293, -0.000000, 1.000000}, + {1.206903, -0.000000, -0.924224, -0.000000, 5.716578, -0.000000, 2.280795, -0.000000, 1.000000}, + {1.178057, -0.000000, -0.869383, -0.000000, 5.011660, -0.000000, 2.069224, -0.000000, 1.000000}, + {1.151483, -0.000000, -0.817765, -0.000000, 4.425074, -0.000000, 1.881721, -0.000000, 1.000000}, + {1.120193, -0.000000, -0.768990, -0.000000, 3.927121, -0.000000, 1.703048, -0.000000, 1.000000}, + {1.098377, -0.000000, -0.722899, -0.000000, 3.503269, -0.000000, 1.553067, -0.000000, 1.000000}, + {1.075574, -0.000000, -0.679074, -0.000000, 3.139438, -0.000000, 1.413851, -0.000000, 1.000000}, + {1.058857, -0.000000, -0.637342, -0.000000, 2.823851, -0.000000, 1.295056, -0.000000, 1.000000}, + {1.036178, -0.000000, -0.597396, -0.000000, 2.551916, -0.000000, 1.176856, -0.000000, 1.000000}, + {1.022086, -0.000000, -0.559055, -0.000000, 2.316213, -0.000000, 1.078076, -0.000000, 1.000000}, + {1.004328, -0.000000, -0.522252, -0.000000, 2.110385, -0.000000, 0.981383, -0.000000, 1.000000}, + {0.980973, -0.000000, -0.486794, -0.000000, 1.931046, -0.000000, 0.887075, -0.000000, 1.000000}, + {0.969568, -0.000000, -0.452552, -0.000000, 1.772196, -0.000000, 0.810623, -0.000000, 1.000000}, + {0.951322, -0.000000, -0.419358, -0.000000, 1.634960, -0.000000, 0.732065, -0.000000, 1.000000}, + {0.935125, -0.000000, -0.387447, -0.000000, 1.510649, -0.000000, 0.660078, -0.000000, 1.000000}, + {0.914376, -0.000000, -0.356842, -0.000000, 1.400242, -0.000000, 0.590169, -0.000000, 1.000000}, + {0.900328, -0.000000, -0.327078, -0.000000, 1.303935, -0.000000, 0.529932, -0.000000, 1.000000}, + {0.885727, -0.000000, -0.298086, -0.000000, 1.218222, -0.000000, 0.471886, -0.000000, 1.000000}, + {0.862652, -0.000000, -0.269809, -0.000000, 1.135611, -0.000000, 0.413001, -0.000000, 1.000000}, + {0.846136, -0.000000, -0.242122, -0.000000, 1.065906, -0.000000, 0.361114, -0.000000, 1.000000}, + {0.829365, -0.000000, -0.215009, -0.000000, 1.002608, -0.000000, 0.311811, -0.000000, 1.000000}, + {0.804026, -0.000000, -0.188377, -0.000000, 0.941965, -0.000000, 0.263681, -0.000000, 1.000000}, + {0.782924, -0.000000, -0.162206, -0.000000, 0.891738, -0.000000, 0.221028, -0.000000, 1.000000}, + {0.766848, -0.000000, -0.136437, -0.000000, 0.851588, -0.000000, 0.183283, -0.000000, 1.000000}, + {0.751721, -0.000000, -0.111023, -0.000000, 0.817718, -0.000000, 0.148957, -0.000000, 1.000000}, + {0.737474, -0.000000, -0.085955, -0.000000, 0.788427, -0.000000, 0.117159, -0.000000, 1.000000}, + {0.727614, -0.000000, -0.061166, -0.000000, 0.763491, -0.000000, 0.085510, -0.000000, 1.000000}, + {0.719368, -0.000000, -0.036628, -0.000000, 0.740881, -0.000000, 0.054307, -0.000000, 1.000000}, + {0.711084, -0.000000, -0.012337, -0.000000, 0.720461, -0.000000, 0.023948, -0.000000, 1.000000}, + {0.702920, -0.000000, 0.011765, -0.000000, 0.702302, -0.000000, -0.006149, -0.000000, 1.000000}, + {998.483765, -0.000000, -13.333044, -0.000000, 13370.491211, -0.000000, 13333.158203, -0.000000, 1.000000}, + {998.483765, -0.000000, -13.333044, -0.000000, 13370.491211, -0.000000, 13333.158203, -0.000000, 1.000000}, + {998.551636, -0.000000, -13.332921, -0.000000, 13370.369141, -0.000000, 13333.028320, -0.000000, 1.000000}, + {333.518036, -0.000000, -13.292059, -0.000000, 13329.624023, -0.000000, 4440.960449, -0.000000, 1.000000}, + {152.949051, -0.000000, -13.182705, -0.000000, 13220.579102, -0.000000, 2038.156982, -0.000000, 1.000000}, + {81.445961, -0.000000, -12.905185, -0.000000, 12943.871094, -0.000000, 1075.949829, -0.000000, 1.000000}, + {52.685406, -0.000000, -12.495064, -0.000000, 9238.716797, -0.000000, 688.496521, -0.000000, 1.000000}, + {36.778500, -0.000000, -11.867575, -0.000000, 6461.258301, -0.000000, 486.234314, -0.000000, 1.000000}, + {26.697067, -0.000000, -11.059551, -0.000000, 4604.681152, -0.000000, 350.370178, -0.000000, 1.000000}, + {19.892454, -0.000000, -10.101795, -0.000000, 3292.892090, -0.000000, 258.057037, -0.000000, 1.000000}, + {15.110569, -0.000000, -9.079334, -0.000000, 2360.091064, -0.000000, 192.029236, -0.000000, 1.000000}, + {11.722652, -0.000000, -8.046182, -0.000000, 1682.049927, -0.000000, 144.493683, -0.000000, 1.000000}, + {9.317204, -0.000000, -7.075084, -0.000000, 1193.297241, -0.000000, 110.032280, -0.000000, 1.000000}, + {7.530802, -0.000000, -6.194766, -0.000000, 848.054138, -0.000000, 84.183929, -0.000000, 1.000000}, + {6.241379, -0.000000, -5.422619, -0.000000, 603.452820, -0.000000, 65.286018, -0.000000, 1.000000}, + {5.206351, -0.000000, -4.759813, -0.000000, 434.533142, -0.000000, 50.620579, -0.000000, 1.000000}, + {4.434587, -0.000000, -4.196141, -0.000000, 315.658630, -0.000000, 39.794804, -0.000000, 1.000000}, + {3.797335, -0.000000, -3.722212, -0.000000, 233.010849, -0.000000, 31.377222, -0.000000, 1.000000}, + {3.310014, -0.000000, -3.322509, -0.000000, 173.897430, -0.000000, 25.083139, -0.000000, 1.000000}, + {2.936420, -0.000000, -2.984247, -0.000000, 131.499344, -0.000000, 20.375296, -0.000000, 1.000000}, + {2.630209, -0.000000, -2.696600, -0.000000, 100.757813, -0.000000, 16.706327, -0.000000, 1.000000}, + {2.380113, -0.000000, -2.450179, -0.000000, 78.039215, -0.000000, 13.848163, -0.000000, 1.000000}, + {2.157723, -0.000000, -2.238436, -0.000000, 61.371338, -0.000000, 11.512774, -0.000000, 1.000000}, + {2.007470, -0.000000, -2.054964, -0.000000, 48.493896, -0.000000, 9.821982, -0.000000, 1.000000}, + {1.867061, -0.000000, -1.894419, -0.000000, 38.807777, -0.000000, 8.390295, -0.000000, 1.000000}, + {1.746883, -0.000000, -1.752979, -0.000000, 31.355574, -0.000000, 7.218071, -0.000000, 1.000000}, + {1.647169, -0.000000, -1.627822, -0.000000, 25.627239, -0.000000, 6.269635, -0.000000, 1.000000}, + {1.564148, -0.000000, -1.515979, -0.000000, 21.054731, -0.000000, 5.493749, -0.000000, 1.000000}, + {1.494478, -0.000000, -1.415249, -0.000000, 17.477192, -0.000000, 4.845518, -0.000000, 1.000000}, + {1.428326, -0.000000, -1.323985, -0.000000, 14.654338, -0.000000, 4.279845, -0.000000, 1.000000}, + {1.369799, -0.000000, -1.240867, -0.000000, 12.368030, -0.000000, 3.800760, -0.000000, 1.000000}, + {1.317991, -0.000000, -1.164637, -0.000000, 10.531270, -0.000000, 3.383482, -0.000000, 1.000000}, + {1.276579, -0.000000, -1.094296, -0.000000, 9.003316, -0.000000, 3.036331, -0.000000, 1.000000}, + {1.238669, -0.000000, -1.029195, -0.000000, 7.764783, -0.000000, 2.734841, -0.000000, 1.000000}, + {1.204133, -0.000000, -0.968769, -0.000000, 6.746184, -0.000000, 2.467308, -0.000000, 1.000000}, + {1.171257, -0.000000, -0.912329, -0.000000, 5.892015, -0.000000, 2.227766, -0.000000, 1.000000}, + {1.141953, -0.000000, -0.859412, -0.000000, 5.166983, -0.000000, 2.020631, -0.000000, 1.000000}, + {1.119480, -0.000000, -0.809528, -0.000000, 4.559603, -0.000000, 1.838840, -0.000000, 1.000000}, + {1.091946, -0.000000, -0.762381, -0.000000, 4.042816, -0.000000, 1.668872, -0.000000, 1.000000}, + {1.076758, -0.000000, -0.717771, -0.000000, 3.603195, -0.000000, 1.529597, -0.000000, 1.000000}, + {1.053507, -0.000000, -0.675306, -0.000000, 3.222058, -0.000000, 1.392012, -0.000000, 1.000000}, + {1.029980, -0.000000, -0.634791, -0.000000, 2.897578, -0.000000, 1.264203, -0.000000, 1.000000}, + {1.020478, -0.000000, -0.596030, -0.000000, 2.609970, -0.000000, 1.164827, -0.000000, 1.000000}, + {0.998523, -0.000000, -0.558837, -0.000000, 2.366715, -0.000000, 1.059033, -0.000000, 1.000000}, + {0.988348, -0.000000, -0.523123, -0.000000, 2.150631, -0.000000, 0.971995, -0.000000, 1.000000}, + {0.969123, -0.000000, -0.488738, -0.000000, 1.963932, -0.000000, 0.883356, -0.000000, 1.000000}, + {0.954624, -0.000000, -0.455531, -0.000000, 1.800147, -0.000000, 0.804052, -0.000000, 1.000000}, + {0.941420, -0.000000, -0.423373, -0.000000, 1.655541, -0.000000, 0.731793, -0.000000, 1.000000}, + {0.923654, -0.000000, -0.392182, -0.000000, 1.525702, -0.000000, 0.660430, -0.000000, 1.000000}, + {0.907187, -0.000000, -0.361855, -0.000000, 1.412402, -0.000000, 0.593770, -0.000000, 1.000000}, + {0.891124, -0.000000, -0.332323, -0.000000, 1.310456, -0.000000, 0.532708, -0.000000, 1.000000}, + {0.873500, -0.000000, -0.303496, -0.000000, 1.218038, -0.000000, 0.473138, -0.000000, 1.000000}, + {0.857091, -0.000000, -0.275330, -0.000000, 1.138666, -0.000000, 0.418062, -0.000000, 1.000000}, + {0.832424, -0.000000, -0.247736, -0.000000, 1.059338, -0.000000, 0.361886, -0.000000, 1.000000}, + {0.814533, -0.000000, -0.220684, -0.000000, 0.993187, -0.000000, 0.312974, -0.000000, 1.000000}, + {0.797868, -0.000000, -0.194567, -0.000000, 0.935784, -0.000000, 0.267691, -0.000000, 1.000000}, + {0.774203, -0.000000, -0.169058, -0.000000, 0.882685, -0.000000, 0.224154, -0.000000, 1.000000}, + {0.759330, -0.000000, -0.143976, -0.000000, 0.842071, -0.000000, 0.186639, -0.000000, 1.000000}, + {0.744530, -0.000000, -0.119264, -0.000000, 0.807175, -0.000000, 0.152273, -0.000000, 1.000000}, + {0.727192, -0.000000, -0.094892, -0.000000, 0.775597, -0.000000, 0.119979, -0.000000, 1.000000}, + {0.715008, -0.000000, -0.070835, -0.000000, 0.749520, -0.000000, 0.089518, -0.000000, 1.000000}, + {0.705109, -0.000000, -0.047042, -0.000000, 0.725758, -0.000000, 0.059135, -0.000000, 1.000000}, + {0.695260, -0.000000, -0.023482, -0.000000, 0.704104, -0.000000, 0.029348, -0.000000, 1.000000}, + {0.685708, -0.000000, -0.000131, -0.000000, 0.684713, -0.000000, 0.000322, -0.000000, 1.000000}, + {998.305664, -0.000000, -20.000895, -0.000000, 20025.880859, -0.000000, 20000.980469, -0.000000, 1.000000}, + {998.305664, -0.000000, -20.000895, -0.000000, 20025.880859, -0.000000, 20000.980469, -0.000000, 1.000000}, + {998.172546, -0.000000, -20.000353, -0.000000, 20025.337891, -0.000000, 20000.443359, -0.000000, 1.000000}, + {378.913116, -0.000000, -19.862547, -0.000000, 19887.705078, -0.000000, 7549.223145, -0.000000, 1.000000}, + {173.887909, -0.000000, -19.426416, -0.000000, 19452.136719, -0.000000, 3437.047363, -0.000000, 1.000000}, + {91.336052, -0.000000, -18.647791, -0.000000, 18674.585938, -0.000000, 1823.601807, -0.000000, 1.000000}, + {51.090645, -0.000000, -17.419607, -0.000000, 17448.287109, -0.000000, 1016.308838, -0.000000, 1.000000}, + {34.765503, -0.000000, -15.781409, -0.000000, 12609.438477, -0.000000, 641.824646, -0.000000, 1.000000}, + {22.935726, -0.000000, -13.923059, -0.000000, 8201.116211, -0.000000, 439.613495, -0.000000, 1.000000}, + {17.374336, -0.000000, -12.009401, -0.000000, 5580.807129, -0.000000, 321.256165, -0.000000, 1.000000}, + {13.162230, -0.000000, -10.229010, -0.000000, 3661.013672, -0.000000, 230.669128, -0.000000, 1.000000}, + {10.154156, -0.000000, -8.664251, -0.000000, 2402.113770, -0.000000, 165.740784, -0.000000, 1.000000}, + {8.055133, -0.000000, -7.347579, -0.000000, 1588.059937, -0.000000, 120.749664, -0.000000, 1.000000}, + {6.493501, -0.000000, -6.264519, -0.000000, 1066.951294, -0.000000, 88.587204, -0.000000, 1.000000}, + {5.356596, -0.000000, -5.382983, -0.000000, 728.006592, -0.000000, 66.117699, -0.000000, 1.000000}, + {4.484689, -0.000000, -4.668671, -0.000000, 507.806549, -0.000000, 49.950119, -0.000000, 1.000000}, + {3.836012, -0.000000, -4.085837, -0.000000, 360.194397, -0.000000, 38.486553, -0.000000, 1.000000}, + {3.339977, -0.000000, -3.607764, -0.000000, 259.826752, -0.000000, 30.185396, -0.000000, 1.000000}, + {2.933768, -0.000000, -3.212286, -0.000000, 190.955856, -0.000000, 23.957863, -0.000000, 1.000000}, + {2.625576, -0.000000, -2.882353, -0.000000, 142.308273, -0.000000, 19.377966, -0.000000, 1.000000}, + {2.377281, -0.000000, -2.604426, -0.000000, 107.424568, -0.000000, 15.909470, -0.000000, 1.000000}, + {2.172325, -0.000000, -2.368577, -0.000000, 82.501915, -0.000000, 13.208935, -0.000000, 1.000000}, + {2.011713, -0.000000, -2.166433, -0.000000, 64.119171, -0.000000, 11.131875, -0.000000, 1.000000}, + {1.863040, -0.000000, -1.991312, -0.000000, 50.531494, -0.000000, 9.415673, -0.000000, 1.000000}, + {1.737537, -0.000000, -1.838462, -0.000000, 40.393814, -0.000000, 8.039965, -0.000000, 1.000000}, + {1.633933, -0.000000, -1.703898, -0.000000, 32.603786, -0.000000, 6.932382, -0.000000, 1.000000}, + {1.554610, -0.000000, -1.584310, -0.000000, 26.532118, -0.000000, 6.046955, -0.000000, 1.000000}, + {1.475402, -0.000000, -1.477418, -0.000000, 21.890182, -0.000000, 5.280934, -0.000000, 1.000000}, + {1.406395, -0.000000, -1.381327, -0.000000, 18.212904, -0.000000, 4.635618, -0.000000, 1.000000}, + {1.350537, -0.000000, -1.294286, -0.000000, 15.260345, -0.000000, 4.104113, -0.000000, 1.000000}, + {1.304659, -0.000000, -1.214812, -0.000000, 12.874681, -0.000000, 3.658871, -0.000000, 1.000000}, + {1.258044, -0.000000, -1.141865, -0.000000, 10.956322, -0.000000, 3.263624, -0.000000, 1.000000}, + {1.214879, -0.000000, -1.074652, -0.000000, 9.396078, -0.000000, 2.919321, -0.000000, 1.000000}, + {1.186597, -0.000000, -1.012289, -0.000000, 8.089111, -0.000000, 2.639096, -0.000000, 1.000000}, + {1.153076, -0.000000, -0.954190, -0.000000, 7.022493, -0.000000, 2.378364, -0.000000, 1.000000}, + {1.128181, -0.000000, -0.899823, -0.000000, 6.120345, -0.000000, 2.159361, -0.000000, 1.000000}, + {1.105751, -0.000000, -0.848775, -0.000000, 5.361947, -0.000000, 1.966318, -0.000000, 1.000000}, + {1.084143, -0.000000, -0.800726, -0.000000, 4.716421, -0.000000, 1.791840, -0.000000, 1.000000}, + {1.062140, -0.000000, -0.755278, -0.000000, 4.180991, -0.000000, 1.631325, -0.000000, 1.000000}, + {1.041897, -0.000000, -0.712143, -0.000000, 3.718901, -0.000000, 1.488189, -0.000000, 1.000000}, + {1.028538, -0.000000, -0.671095, -0.000000, 3.320058, -0.000000, 1.365576, -0.000000, 1.000000}, + {1.012829, -0.000000, -0.631921, -0.000000, 2.973172, -0.000000, 1.251476, -0.000000, 1.000000}, + {1.000671, -0.000000, -0.594426, -0.000000, 2.679246, -0.000000, 1.150313, -0.000000, 1.000000}, + {0.979573, -0.000000, -0.558470, -0.000000, 2.421418, -0.000000, 1.046061, -0.000000, 1.000000}, + {0.971715, -0.000000, -0.523884, -0.000000, 2.194597, -0.000000, 0.964354, -0.000000, 1.000000}, + {0.955829, -0.000000, -0.490565, -0.000000, 2.001263, -0.000000, 0.879904, -0.000000, 1.000000}, + {0.935232, -0.000000, -0.458370, -0.000000, 1.826279, -0.000000, 0.796294, -0.000000, 1.000000}, + {0.936694, -0.000000, -0.427225, -0.000000, 1.679218, -0.000000, 0.738003, -0.000000, 1.000000}, + {0.913400, -0.000000, -0.397028, -0.000000, 1.541822, -0.000000, 0.662934, -0.000000, 1.000000}, + {0.903221, -0.000000, -0.367699, -0.000000, 1.424504, -0.000000, 0.602501, -0.000000, 1.000000}, + {0.880391, -0.000000, -0.339149, -0.000000, 1.317439, -0.000000, 0.536449, -0.000000, 1.000000}, + {0.862923, -0.000000, -0.311303, -0.000000, 1.221370, -0.000000, 0.477796, -0.000000, 1.000000}, + {0.850968, -0.000000, -0.284116, -0.000000, 1.138954, -0.000000, 0.426038, -0.000000, 1.000000}, + {0.826887, -0.000000, -0.257515, -0.000000, 1.057532, -0.000000, 0.370011, -0.000000, 1.000000}, + {0.812749, -0.000000, -0.231445, -0.000000, 0.992746, -0.000000, 0.322627, -0.000000, 1.000000}, + {0.795176, -0.000000, -0.205869, -0.000000, 0.933137, -0.000000, 0.276691, -0.000000, 1.000000}, + {0.764240, -0.000000, -0.180738, -0.000000, 0.872033, -0.000000, 0.230579, -0.000000, 1.000000}, + {0.746094, -0.000000, -0.156005, -0.000000, 0.828593, -0.000000, 0.192347, -0.000000, 1.000000}, + {0.731032, -0.000000, -0.131632, -0.000000, 0.792854, -0.000000, 0.157679, -0.000000, 1.000000}, + {0.715943, -0.000000, -0.107589, -0.000000, 0.761541, -0.000000, 0.125760, -0.000000, 1.000000}, + {0.700419, -0.000000, -0.083846, -0.000000, 0.732819, -0.000000, 0.095441, -0.000000, 1.000000}, + {0.688468, -0.000000, -0.060364, -0.000000, 0.707722, -0.000000, 0.065242, -0.000000, 1.000000}, + {0.676600, -0.000000, -0.037115, -0.000000, 0.684819, -0.000000, 0.036227, -0.000000, 1.000000}, + {0.665275, -0.000000, -0.014072, -0.000000, 0.664032, -0.000000, 0.007569, -0.000000, 1.000000}, + {994.893127, -0.000000, -39.820560, -0.000000, 39833.109375, -0.000000, 39820.683594, -0.000000, 1.000000}, + {994.893127, -0.000000, -39.820560, -0.000000, 39833.109375, -0.000000, 39820.683594, -0.000000, 1.000000}, + {994.406372, -0.000000, -39.816357, -0.000000, 39828.910156, -0.000000, 39816.492188, -0.000000, 1.000000}, + {483.708405, -0.000000, -38.576591, -0.000000, 38589.546875, -0.000000, 18686.171875, -0.000000, 1.000000}, + {197.322464, -0.000000, -35.799675, -0.000000, 35813.636719, -0.000000, 7299.633301, -0.000000, 1.000000}, + {100.446022, -0.000000, -31.315689, -0.000000, 31331.654297, -0.000000, 3950.703613, -0.000000, 1.000000}, + {56.279198, -0.000000, -25.957386, -0.000000, 25976.642578, -0.000000, 1797.385010, -0.000000, 1.000000}, + {28.154728, -0.000000, -20.744593, -0.000000, 20768.679688, -0.000000, 725.731995, -0.000000, 1.000000}, + {19.027901, -0.000000, -16.364071, -0.000000, 16394.599609, -0.000000, 464.752045, -0.000000, 1.000000}, + {13.055046, -0.000000, -12.959450, -0.000000, 8970.863281, -0.000000, 352.151031, -0.000000, 1.000000}, + {10.366891, -0.000000, -10.395847, -0.000000, 5685.630859, -0.000000, 253.332947, -0.000000, 1.000000}, + {7.880549, -0.000000, -8.480193, -0.000000, 3241.803711, -0.000000, 167.085403, -0.000000, 1.000000}, + {6.323206, -0.000000, -7.036265, -0.000000, 2002.726563, -0.000000, 116.059944, -0.000000, 1.000000}, + {5.031785, -0.000000, -5.930668, -0.000000, 1186.607544, -0.000000, 83.446808, -0.000000, 1.000000}, + {4.369559, -0.000000, -5.070666, -0.000000, 843.374939, -0.000000, 61.138889, -0.000000, 1.000000}, + {3.756168, -0.000000, -4.392256, -0.000000, 569.649048, -0.000000, 46.177486, -0.000000, 1.000000}, + {3.284899, -0.000000, -3.848196, -0.000000, 394.281097, -0.000000, 35.739964, -0.000000, 1.000000}, + {2.883921, -0.000000, -3.405721, -0.000000, 281.049377, -0.000000, 27.902145, -0.000000, 1.000000}, + {2.571442, -0.000000, -3.041261, -0.000000, 204.300674, -0.000000, 22.228493, -0.000000, 1.000000}, + {2.339132, -0.000000, -2.737367, -0.000000, 150.837967, -0.000000, 18.141542, -0.000000, 1.000000}, + {2.120369, -0.000000, -2.481805, -0.000000, 114.263908, -0.000000, 14.825736, -0.000000, 1.000000}, + {1.948635, -0.000000, -2.264440, -0.000000, 87.588432, -0.000000, 12.315406, -0.000000, 1.000000}, + {1.800365, -0.000000, -2.077432, -0.000000, 68.310730, -0.000000, 10.325802, -0.000000, 1.000000}, + {1.670523, -0.000000, -1.915280, -0.000000, 54.053909, -0.000000, 8.719241, -0.000000, 1.000000}, + {1.569876, -0.000000, -1.773206, -0.000000, 43.103451, -0.000000, 7.467847, -0.000000, 1.000000}, + {1.490116, -0.000000, -1.647683, -0.000000, 34.827641, -0.000000, 6.471271, -0.000000, 1.000000}, + {1.422787, -0.000000, -1.536024, -0.000000, 28.357239, -0.000000, 5.650585, -0.000000, 1.000000}, + {1.350524, -0.000000, -1.435881, -0.000000, 23.424438, -0.000000, 4.917717, -0.000000, 1.000000}, + {1.300449, -0.000000, -1.345390, -0.000000, 19.401968, -0.000000, 4.356206, -0.000000, 1.000000}, + {1.254408, -0.000000, -1.263086, -0.000000, 16.257393, -0.000000, 3.864878, -0.000000, 1.000000}, + {1.213426, -0.000000, -1.187775, -0.000000, 13.705538, -0.000000, 3.445318, -0.000000, 1.000000}, + {1.187376, -0.000000, -1.118480, -0.000000, 11.611020, -0.000000, 3.109415, -0.000000, 1.000000}, + {1.152678, -0.000000, -1.054393, -0.000000, 9.910876, -0.000000, 2.790627, -0.000000, 1.000000}, + {1.124951, -0.000000, -0.994833, -0.000000, 8.515365, -0.000000, 2.520195, -0.000000, 1.000000}, + {1.108641, -0.000000, -0.939255, -0.000000, 7.359449, -0.000000, 2.299614, -0.000000, 1.000000}, + {1.078992, -0.000000, -0.887192, -0.000000, 6.403783, -0.000000, 2.077591, -0.000000, 1.000000}, + {1.068358, -0.000000, -0.838210, -0.000000, 5.579926, -0.000000, 1.911003, -0.000000, 1.000000}, + {1.045544, -0.000000, -0.791979, -0.000000, 4.909517, -0.000000, 1.737019, -0.000000, 1.000000}, + {1.039163, -0.000000, -0.748193, -0.000000, 4.324389, -0.000000, 1.605678, -0.000000, 1.000000}, + {1.017055, -0.000000, -0.706611, -0.000000, 3.844195, -0.000000, 1.462573, -0.000000, 1.000000}, + {1.004383, -0.000000, -0.666994, -0.000000, 3.423768, -0.000000, 1.342792, -0.000000, 1.000000}, + {0.992540, -0.000000, -0.629166, -0.000000, 3.063540, -0.000000, 1.237080, -0.000000, 1.000000}, + {0.984481, -0.000000, -0.592946, -0.000000, 2.750717, -0.000000, 1.141492, -0.000000, 1.000000}, + {0.967479, -0.000000, -0.558180, -0.000000, 2.481156, -0.000000, 1.043608, -0.000000, 1.000000}, + {0.962412, -0.000000, -0.524746, -0.000000, 2.244889, -0.000000, 0.966517, -0.000000, 1.000000}, + {0.947635, -0.000000, -0.492520, -0.000000, 2.040848, -0.000000, 0.884740, -0.000000, 1.000000}, + {0.927563, -0.000000, -0.461392, -0.000000, 1.857744, -0.000000, 0.802900, -0.000000, 1.000000}, + {0.918131, -0.000000, -0.431266, -0.000000, 1.701805, -0.000000, 0.735842, -0.000000, 1.000000}, + {0.907630, -0.000000, -0.402059, -0.000000, 1.563891, -0.000000, 0.672641, -0.000000, 1.000000}, + {0.883494, -0.000000, -0.373698, -0.000000, 1.434873, -0.000000, 0.602092, -0.000000, 1.000000}, + {0.869519, -0.000000, -0.346105, -0.000000, 1.325065, -0.000000, 0.543472, -0.000000, 1.000000}, + {0.861498, -0.000000, -0.319216, -0.000000, 1.229527, -0.000000, 0.491262, -0.000000, 1.000000}, + {0.832228, -0.000000, -0.292972, -0.000000, 1.130479, -0.000000, 0.429526, -0.000000, 1.000000}, + {0.816181, -0.000000, -0.267321, -0.000000, 1.051445, -0.000000, 0.378898, -0.000000, 1.000000}, + {0.786525, -0.000000, -0.242210, -0.000000, 0.970167, -0.000000, 0.325618, -0.000000, 1.000000}, + {0.780779, -0.000000, -0.217600, -0.000000, 0.918654, -0.000000, 0.284465, -0.000000, 1.000000}, + {0.762468, -0.000000, -0.193452, -0.000000, 0.865830, -0.000000, 0.241828, -0.000000, 1.000000}, + {0.731299, -0.000000, -0.169721, -0.000000, 0.812862, -0.000000, 0.200252, -0.000000, 1.000000}, + {0.713894, -0.000000, -0.146372, -0.000000, 0.774122, -0.000000, 0.165581, -0.000000, 1.000000}, + {0.702714, -0.000000, -0.123373, -0.000000, 0.742843, -0.000000, 0.133586, -0.000000, 1.000000}, + {0.691956, -0.000000, -0.100693, -0.000000, 0.716288, -0.000000, 0.103949, -0.000000, 1.000000}, + {0.668866, -0.000000, -0.078304, -0.000000, 0.686033, -0.000000, 0.074789, -0.000000, 1.000000}, + {0.654494, -0.000000, -0.056178, -0.000000, 0.661872, -0.000000, 0.046786, -0.000000, 1.000000}, + {0.640656, -0.000000, -0.034292, -0.000000, 0.639283, -0.000000, 0.018889, -0.000000, 1.000000}, + {368.624268, -0.000000, -255.918320, -0.000000, 255920.265625, -0.000000, 255920.796875, -0.000000, 1.000000}, + {368.624268, -0.000000, -255.918320, -0.000000, 255920.265625, -0.000000, 255920.796875, -0.000000, 1.000000}, + {364.104523, -0.000000, -253.713470, -0.000000, 253715.421875, -0.000000, 253715.968750, -0.000000, 1.000000}, + {284.967621, -0.000000, -105.050774, -0.000000, 105055.539063, -0.000000, 105057.585938, -0.000000, 1.000000}, + {225.051605, -0.000000, -57.172325, -0.000000, 57181.070313, -0.000000, 57185.875000, -0.000000, 1.000000}, + {11.684321, -0.000000, -36.029091, -0.000000, 36042.972656, -0.000000, 621.735474, -0.000000, 1.000000}, + {25.042456, -0.000000, -24.817822, -0.000000, 24837.957031, -0.000000, 2865.348877, -0.000000, 1.000000}, + {17.127863, -0.000000, -18.154654, -0.000000, 18182.173828, -0.000000, 384.187866, -0.000000, 1.000000}, + {11.650437, -0.000000, -13.869071, -0.000000, 13905.077148, -0.000000, 224.628876, -0.000000, 1.000000}, + {8.216252, -0.000000, -10.950104, -0.000000, 10331.644531, -0.000000, 260.237000, -0.000000, 1.000000}, + {5.907559, -0.000000, -8.873001, -0.000000, 8929.172852, -0.000000, 102.799171, -0.000000, 1.000000}, + {4.817279, -0.000000, -7.343625, -0.000000, 5326.685547, -0.000000, 72.651924, -0.000000, 1.000000}, + {2.978287, -0.000000, -6.185863, -0.000000, 2897.457764, -0.000000, 66.361404, -0.000000, 1.000000}, + {3.631224, -0.000000, -5.289113, -0.000000, 1569.821289, -0.000000, 66.001900, -0.000000, 1.000000}, + {3.187469, -0.000000, -4.581205, -0.000000, 1033.481079, -0.000000, 48.582752, -0.000000, 1.000000}, + {2.768893, -0.000000, -4.013087, -0.000000, 684.398560, -0.000000, 37.436520, -0.000000, 1.000000}, + {2.457926, -0.000000, -3.550626, -0.000000, 470.771790, -0.000000, 29.091085, -0.000000, 1.000000}, + {2.314997, -0.000000, -3.169384, -0.000000, 328.752625, -0.000000, 23.818150, -0.000000, 1.000000}, + {2.093580, -0.000000, -2.851492, -0.000000, 236.043579, -0.000000, 19.236486, -0.000000, 1.000000}, + {1.909406, -0.000000, -2.583620, -0.000000, 173.956696, -0.000000, 15.624541, -0.000000, 1.000000}, + {1.759313, -0.000000, -2.355661, -0.000000, 130.381760, -0.000000, 12.901838, -0.000000, 1.000000}, + {1.632784, -0.000000, -2.159850, -0.000000, 99.546364, -0.000000, 10.774215, -0.000000, 1.000000}, + {1.514441, -0.000000, -1.990140, -0.000000, 77.199669, -0.000000, 9.025685, -0.000000, 1.000000}, + {1.409535, -0.000000, -1.841777, -0.000000, 60.638985, -0.000000, 7.615921, -0.000000, 1.000000}, + {1.393320, -0.000000, -1.711004, -0.000000, 47.528347, -0.000000, 6.799057, -0.000000, 1.000000}, + {1.320484, -0.000000, -1.594821, -0.000000, 38.236202, -0.000000, 5.873020, -0.000000, 1.000000}, + {1.242410, -0.000000, -1.490820, -0.000000, 31.031847, -0.000000, 5.054711, -0.000000, 1.000000}, + {1.237673, -0.000000, -1.397065, -0.000000, 25.284676, -0.000000, 4.582990, -0.000000, 1.000000}, + {1.182925, -0.000000, -1.311984, -0.000000, 20.992647, -0.000000, 4.017620, -0.000000, 1.000000}, + {1.176501, -0.000000, -1.234298, -0.000000, 17.318192, -0.000000, 3.665294, -0.000000, 1.000000}, + {1.133547, -0.000000, -1.162960, -0.000000, 14.591148, -0.000000, 3.253035, -0.000000, 1.000000}, + {1.125217, -0.000000, -1.097106, -0.000000, 12.296440, -0.000000, 2.969493, -0.000000, 1.000000}, + {1.093465, -0.000000, -1.036020, -0.000000, 10.463271, -0.000000, 2.666238, -0.000000, 1.000000}, + {1.083275, -0.000000, -0.979105, -0.000000, 8.956235, -0.000000, 2.440557, -0.000000, 1.000000}, + {1.060562, -0.000000, -0.925860, -0.000000, 7.713723, -0.000000, 2.215227, -0.000000, 1.000000}, + {1.049519, -0.000000, -0.875859, -0.000000, 6.682784, -0.000000, 2.032087, -0.000000, 1.000000}, + {1.032032, -0.000000, -0.828741, -0.000000, 5.827990, -0.000000, 1.857221, -0.000000, 1.000000}, + {1.018987, -0.000000, -0.784196, -0.000000, 5.116087, -0.000000, 1.705405, -0.000000, 1.000000}, + {1.007602, -0.000000, -0.741956, -0.000000, 4.498546, -0.000000, 1.568523, -0.000000, 1.000000}, + {0.992375, -0.000000, -0.701791, -0.000000, 3.980726, -0.000000, 1.437860, -0.000000, 1.000000}, + {0.988607, -0.000000, -0.663498, -0.000000, 3.541646, -0.000000, 1.334776, -0.000000, 1.000000}, + {0.968230, -0.000000, -0.626898, -0.000000, 3.166821, -0.000000, 1.216528, -0.000000, 1.000000}, + {0.944781, -0.000000, -0.591836, -0.000000, 2.831877, -0.000000, 1.106590, -0.000000, 1.000000}, + {0.945987, -0.000000, -0.558172, -0.000000, 2.559725, -0.000000, 1.033804, -0.000000, 1.000000}, + {0.923684, -0.000000, -0.525783, -0.000000, 2.299483, -0.000000, 0.939927, -0.000000, 1.000000}, + {0.931669, -0.000000, -0.494561, -0.000000, 2.097793, -0.000000, 0.884566, -0.000000, 1.000000}, + {0.900607, -0.000000, -0.464405, -0.000000, 1.898084, -0.000000, 0.794077, -0.000000, 1.000000}, + {0.907272, -0.000000, -0.435227, -0.000000, 1.739798, -0.000000, 0.742634, -0.000000, 1.000000}, + {0.893180, -0.000000, -0.406948, -0.000000, 1.591641, -0.000000, 0.678342, -0.000000, 1.000000}, + {0.855697, -0.000000, -0.379493, -0.000000, 1.438521, -0.000000, 0.600044, -0.000000, 1.000000}, + {0.856723, -0.000000, -0.352800, -0.000000, 1.334550, -0.000000, 0.553423, -0.000000, 1.000000}, + {0.824318, -0.000000, -0.326806, -0.000000, 1.209542, -0.000000, 0.488206, -0.000000, 1.000000}, + {0.806548, -0.000000, -0.301457, -0.000000, 1.113896, -0.000000, 0.435934, -0.000000, 1.000000}, + {0.810348, -0.000000, -0.276705, -0.000000, 1.049273, -0.000000, 0.394856, -0.000000, 1.000000}, + {0.767125, -0.000000, -0.252502, -0.000000, 0.951908, -0.000000, 0.337448, -0.000000, 1.000000}, + {0.749976, -0.000000, -0.228807, -0.000000, 0.889436, -0.000000, 0.291562, -0.000000, 1.000000}, + {0.732485, -0.000000, -0.205582, -0.000000, 0.836374, -0.000000, 0.249723, -0.000000, 1.000000}, + {0.707799, -0.000000, -0.182791, -0.000000, 0.785760, -0.000000, 0.210818, -0.000000, 1.000000}, + {0.698760, -0.000000, -0.160400, -0.000000, 0.749314, -0.000000, 0.176389, -0.000000, 1.000000}, + {0.684260, -0.000000, -0.138380, -0.000000, 0.715853, -0.000000, 0.143288, -0.000000, 1.000000}, + {0.662066, -0.000000, -0.116703, -0.000000, 0.682031, -0.000000, 0.113378, -0.000000, 1.000000}, + {0.649300, -0.000000, -0.095341, -0.000000, 0.658064, -0.000000, 0.086197, -0.000000, 1.000000}, + {0.623254, -0.000000, -0.074271, -0.000000, 0.630556, -0.000000, 0.058888, -0.000000, 1.000000}, + {0.609037, -0.000000, -0.053470, -0.000000, 0.607151, -0.000000, 0.031450, -0.000000, 1.000000} + }; + + static float[] s_LtcGGXMagnitudeData = new float[k_LtcLUTResolution * k_LtcLUTResolution] + { + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 0.999995f, + 0.999990f, + 0.999971f, + 0.999936f, + 0.999853f, + 0.999670f, + 0.999138f, + 0.996746f, + 0.979578f, + 0.979309f, + 0.978836f, + 0.977972f, + 0.976223f, + 0.972205f, + 0.962466f, + 0.953919f, + 0.949829f, + 0.942492f, + 0.929870f, + 0.921319f, + 0.911112f, + 0.896015f, + 0.885105f, + 0.869971f, + 0.855017f, + 0.838328f, + 0.821241f, + 0.802352f, + 0.783874f, + 0.763309f, + 0.743058f, + 0.721929f, + 0.699755f, + 0.677721f, + 0.655456f, + 0.632681f, + 0.609629f, + 0.586831f, + 0.564287f, + 0.541772f, + 0.519428f, + 0.497353f, + 0.475624f, + 0.454606f, + 0.434099f, + 0.414085f, + 0.394605f, + 0.375698f, + 0.357386f, + 0.339871f, + 0.323085f, + 0.306905f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 0.999999f, + 0.999999f, + 0.999998f, + 0.999995f, + 0.999990f, + 0.999980f, + 0.999959f, + 0.999923f, + 0.999842f, + 0.999660f, + 0.999119f, + 0.996613f, + 0.981824f, + 0.979298f, + 0.978826f, + 0.977957f, + 0.976184f, + 0.972091f, + 0.962188f, + 0.953875f, + 0.949746f, + 0.942335f, + 0.930166f, + 0.921210f, + 0.910927f, + 0.896979f, + 0.884940f, + 0.869864f, + 0.854835f, + 0.838200f, + 0.821049f, + 0.802552f, + 0.783659f, + 0.763512f, + 0.742928f, + 0.721715f, + 0.699938f, + 0.677775f, + 0.655246f, + 0.632555f, + 0.609805f, + 0.586996f, + 0.564225f, + 0.541606f, + 0.519346f, + 0.497419f, + 0.475863f, + 0.454738f, + 0.434099f, + 0.414003f, + 0.394547f, + 0.375747f, + 0.357564f, + 0.340012f, + 0.323099f, + 0.306861f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 0.999999f, + 0.999998f, + 0.999995f, + 0.999991f, + 0.999979f, + 0.999959f, + 0.999917f, + 0.999839f, + 0.999648f, + 0.999074f, + 0.996168f, + 0.983770f, + 0.979279f, + 0.978800f, + 0.977905f, + 0.976058f, + 0.971727f, + 0.962121f, + 0.953901f, + 0.949486f, + 0.941859f, + 0.930911f, + 0.920853f, + 0.910394f, + 0.897600f, + 0.884427f, + 0.870101f, + 0.854522f, + 0.838324f, + 0.820754f, + 0.802707f, + 0.783223f, + 0.763605f, + 0.742872f, + 0.721566f, + 0.699935f, + 0.677726f, + 0.655242f, + 0.632580f, + 0.609766f, + 0.586946f, + 0.564275f, + 0.541759f, + 0.519467f, + 0.497478f, + 0.475886f, + 0.454794f, + 0.434233f, + 0.414207f, + 0.394751f, + 0.375892f, + 0.357683f, + 0.340146f, + 0.323287f, + 0.307095f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 0.999999f, + 0.999999f, + 0.999998f, + 0.999996f, + 0.999992f, + 0.999986f, + 0.999975f, + 0.999953f, + 0.999913f, + 0.999831f, + 0.999630f, + 0.998993f, + 0.995279f, + 0.985142f, + 0.979252f, + 0.978754f, + 0.977821f, + 0.975838f, + 0.971088f, + 0.962563f, + 0.954785f, + 0.949048f, + 0.941052f, + 0.931420f, + 0.920812f, + 0.909750f, + 0.897867f, + 0.883856f, + 0.870091f, + 0.854353f, + 0.838166f, + 0.820660f, + 0.802465f, + 0.783308f, + 0.763346f, + 0.742734f, + 0.721608f, + 0.699747f, + 0.677626f, + 0.655245f, + 0.632547f, + 0.609793f, + 0.587044f, + 0.564340f, + 0.541779f, + 0.519529f, + 0.497633f, + 0.476114f, + 0.455030f, + 0.434430f, + 0.414405f, + 0.394974f, + 0.376154f, + 0.357979f, + 0.340443f, + 0.323572f, + 0.307379f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 0.999998f, + 0.999998f, + 0.999996f, + 0.999991f, + 0.999984f, + 0.999970f, + 0.999946f, + 0.999905f, + 0.999815f, + 0.999599f, + 0.998856f, + 0.993704f, + 0.986135f, + 0.979212f, + 0.978690f, + 0.977691f, + 0.975504f, + 0.970133f, + 0.962951f, + 0.955649f, + 0.948405f, + 0.940418f, + 0.931660f, + 0.920881f, + 0.909376f, + 0.897785f, + 0.883844f, + 0.869756f, + 0.854326f, + 0.837732f, + 0.820617f, + 0.802053f, + 0.783195f, + 0.763119f, + 0.742610f, + 0.721344f, + 0.699709f, + 0.677623f, + 0.655114f, + 0.632523f, + 0.609812f, + 0.587052f, + 0.564417f, + 0.541966f, + 0.519751f, + 0.497824f, + 0.476309f, + 0.455271f, + 0.434735f, + 0.414736f, + 0.395317f, + 0.376524f, + 0.358364f, + 0.340852f, + 0.323988f, + 0.307786f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 0.999999f, + 0.999999f, + 0.999997f, + 0.999996f, + 0.999994f, + 0.999989f, + 0.999980f, + 0.999965f, + 0.999940f, + 0.999895f, + 0.999796f, + 0.999559f, + 0.998638f, + 0.992774f, + 0.986878f, + 0.980297f, + 0.978602f, + 0.977514f, + 0.975026f, + 0.969169f, + 0.963214f, + 0.956267f, + 0.947689f, + 0.940054f, + 0.931637f, + 0.920678f, + 0.908990f, + 0.897349f, + 0.883905f, + 0.869139f, + 0.854177f, + 0.837476f, + 0.820295f, + 0.801977f, + 0.782798f, + 0.762978f, + 0.742418f, + 0.721193f, + 0.699560f, + 0.677402f, + 0.655108f, + 0.632543f, + 0.609804f, + 0.587158f, + 0.564557f, + 0.542096f, + 0.519908f, + 0.498089f, + 0.476632f, + 0.455623f, + 0.435104f, + 0.415161f, + 0.395783f, + 0.377005f, + 0.358843f, + 0.341345f, + 0.324529f, + 0.308355f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 0.999999f, + 0.999999f, + 0.999998f, + 0.999997f, + 0.999992f, + 0.999991f, + 0.999984f, + 0.999977f, + 0.999959f, + 0.999935f, + 0.999878f, + 0.999773f, + 0.999505f, + 0.998284f, + 0.992353f, + 0.987457f, + 0.981665f, + 0.978492f, + 0.977277f, + 0.974360f, + 0.968716f, + 0.963374f, + 0.956629f, + 0.947397f, + 0.939657f, + 0.931339f, + 0.920588f, + 0.908975f, + 0.896712f, + 0.883763f, + 0.868890f, + 0.853731f, + 0.837333f, + 0.819702f, + 0.801738f, + 0.782454f, + 0.762712f, + 0.742024f, + 0.721037f, + 0.699325f, + 0.677359f, + 0.655030f, + 0.632439f, + 0.609869f, + 0.587221f, + 0.564663f, + 0.542328f, + 0.520220f, + 0.498400f, + 0.476997f, + 0.456053f, + 0.435593f, + 0.415658f, + 0.396300f, + 0.377577f, + 0.359473f, + 0.342004f, + 0.325170f, + 0.308997f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 0.999999f, + 0.999998f, + 0.999998f, + 0.999996f, + 0.999992f, + 0.999988f, + 0.999981f, + 0.999971f, + 0.999952f, + 0.999921f, + 0.999863f, + 0.999748f, + 0.999433f, + 0.997680f, + 0.992120f, + 0.987920f, + 0.982864f, + 0.978353f, + 0.976961f, + 0.973451f, + 0.968396f, + 0.963400f, + 0.956680f, + 0.947529f, + 0.939151f, + 0.930747f, + 0.920511f, + 0.908867f, + 0.896142f, + 0.883335f, + 0.868764f, + 0.853025f, + 0.837015f, + 0.819452f, + 0.801249f, + 0.782176f, + 0.762345f, + 0.741843f, + 0.720721f, + 0.699135f, + 0.677193f, + 0.654889f, + 0.632487f, + 0.609902f, + 0.587328f, + 0.564891f, + 0.542567f, + 0.520501f, + 0.498793f, + 0.477442f, + 0.456528f, + 0.436131f, + 0.416273f, + 0.396980f, + 0.378276f, + 0.360177f, + 0.342738f, + 0.325950f, + 0.309803f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 1.000000f, + 0.999999f, + 0.999999f, + 0.999997f, + 0.999995f, + 0.999991f, + 0.999985f, + 0.999978f, + 0.999963f, + 0.999942f, + 0.999907f, + 0.999844f, + 0.999715f, + 0.999332f, + 0.996612f, + 0.991974f, + 0.988297f, + 0.983843f, + 0.978349f, + 0.976540f, + 0.972351f, + 0.968109f, + 0.963281f, + 0.956464f, + 0.947779f, + 0.938754f, + 0.929952f, + 0.920253f, + 0.908530f, + 0.895785f, + 0.882679f, + 0.868456f, + 0.852669f, + 0.836406f, + 0.819138f, + 0.800708f, + 0.781803f, + 0.761855f, + 0.741534f, + 0.720405f, + 0.698959f, + 0.676964f, + 0.654827f, + 0.632411f, + 0.609922f, + 0.587477f, + 0.565050f, + 0.542829f, + 0.520889f, + 0.499225f, + 0.477951f, + 0.457148f, + 0.436791f, + 0.416963f, + 0.397723f, + 0.379068f, + 0.361025f, + 0.343608f, + 0.326842f, + 0.310718f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999998f, + 0.999994f, + 0.999994f, + 0.999990f, + 0.999983f, + 0.999971f, + 0.999954f, + 0.999932f, + 0.999892f, + 0.999820f, + 0.999675f, + 0.999190f, + 0.995492f, + 0.991911f, + 0.988610f, + 0.984662f, + 0.979221f, + 0.975975f, + 0.971671f, + 0.967788f, + 0.963002f, + 0.955938f, + 0.947964f, + 0.938692f, + 0.929309f, + 0.919781f, + 0.908267f, + 0.895518f, + 0.882022f, + 0.867884f, + 0.852346f, + 0.835746f, + 0.818607f, + 0.800261f, + 0.781335f, + 0.761539f, + 0.741063f, + 0.720116f, + 0.698617f, + 0.676815f, + 0.654700f, + 0.632388f, + 0.610037f, + 0.587591f, + 0.565328f, + 0.543205f, + 0.521293f, + 0.499745f, + 0.478562f, + 0.457776f, + 0.437515f, + 0.417776f, + 0.398586f, + 0.379963f, + 0.361984f, + 0.344616f, + 0.327857f, + 0.311751f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999997f, + 0.999996f, + 0.999992f, + 0.999986f, + 0.999977f, + 0.999965f, + 0.999947f, + 0.999916f, + 0.999873f, + 0.999794f, + 0.999628f, + 0.998966f, + 0.994914f, + 0.991849f, + 0.988873f, + 0.985288f, + 0.980170f, + 0.975207f, + 0.971156f, + 0.967476f, + 0.962538f, + 0.955601f, + 0.947978f, + 0.938541f, + 0.928618f, + 0.919056f, + 0.907890f, + 0.895098f, + 0.881352f, + 0.867263f, + 0.851805f, + 0.835168f, + 0.818003f, + 0.799785f, + 0.780633f, + 0.761080f, + 0.740618f, + 0.719795f, + 0.698332f, + 0.676629f, + 0.654544f, + 0.632411f, + 0.610042f, + 0.587805f, + 0.565593f, + 0.543549f, + 0.521793f, + 0.500309f, + 0.479195f, + 0.458546f, + 0.438353f, + 0.418669f, + 0.399557f, + 0.381012f, + 0.363049f, + 0.345710f, + 0.329006f, + 0.312948f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999998f, + 0.999997f, + 0.999993f, + 0.999990f, + 0.999984f, + 0.999972f, + 0.999959f, + 0.999939f, + 0.999906f, + 0.999853f, + 0.999765f, + 0.999567f, + 0.998603f, + 0.994519f, + 0.991794f, + 0.989089f, + 0.985781f, + 0.980956f, + 0.974161f, + 0.970688f, + 0.967064f, + 0.961890f, + 0.955292f, + 0.947848f, + 0.938359f, + 0.928226f, + 0.918214f, + 0.907361f, + 0.894702f, + 0.880834f, + 0.866500f, + 0.851209f, + 0.834627f, + 0.817211f, + 0.799250f, + 0.780131f, + 0.760512f, + 0.740218f, + 0.719264f, + 0.698063f, + 0.676325f, + 0.654450f, + 0.632316f, + 0.610170f, + 0.587988f, + 0.565891f, + 0.544013f, + 0.522305f, + 0.500958f, + 0.479971f, + 0.459377f, + 0.439271f, + 0.419698f, + 0.400620f, + 0.382126f, + 0.364246f, + 0.346967f, + 0.330273f, + 0.314236f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999998f, + 0.999996f, + 0.999994f, + 0.999988f, + 0.999979f, + 0.999967f, + 0.999952f, + 0.999924f, + 0.999888f, + 0.999833f, + 0.999733f, + 0.999490f, + 0.997946f, + 0.994192f, + 0.991812f, + 0.989274f, + 0.986224f, + 0.981547f, + 0.974000f, + 0.970269f, + 0.966545f, + 0.961031f, + 0.954921f, + 0.947416f, + 0.938226f, + 0.928003f, + 0.917390f, + 0.906553f, + 0.894191f, + 0.880329f, + 0.865540f, + 0.850476f, + 0.834058f, + 0.816467f, + 0.798509f, + 0.779561f, + 0.759828f, + 0.739738f, + 0.718877f, + 0.697718f, + 0.676138f, + 0.654342f, + 0.632317f, + 0.610292f, + 0.588207f, + 0.566288f, + 0.544443f, + 0.522927f, + 0.501674f, + 0.480765f, + 0.460314f, + 0.440304f, + 0.420782f, + 0.401824f, + 0.383410f, + 0.365538f, + 0.348312f, + 0.331692f, + 0.315688f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999998f, + 0.999996f, + 0.999993f, + 0.999985f, + 0.999976f, + 0.999961f, + 0.999943f, + 0.999913f, + 0.999872f, + 0.999807f, + 0.999691f, + 0.999390f, + 0.996859f, + 0.994003f, + 0.991808f, + 0.989423f, + 0.986523f, + 0.981783f, + 0.974511f, + 0.969791f, + 0.965933f, + 0.960377f, + 0.954434f, + 0.946803f, + 0.938026f, + 0.927620f, + 0.916545f, + 0.905639f, + 0.893489f, + 0.879820f, + 0.864852f, + 0.849513f, + 0.833311f, + 0.815878f, + 0.797622f, + 0.778938f, + 0.759253f, + 0.739142f, + 0.718479f, + 0.697274f, + 0.675902f, + 0.654135f, + 0.632357f, + 0.610364f, + 0.588497f, + 0.566631f, + 0.545012f, + 0.523579f, + 0.502429f, + 0.481680f, + 0.461304f, + 0.441425f, + 0.422039f, + 0.403135f, + 0.384779f, + 0.366976f, + 0.349796f, + 0.333231f, + 0.317277f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999999f, + 0.999998f, + 0.999996f, + 0.999991f, + 0.999983f, + 0.999974f, + 0.999956f, + 0.999932f, + 0.999901f, + 0.999852f, + 0.999780f, + 0.999646f, + 0.999248f, + 0.996193f, + 0.993784f, + 0.991782f, + 0.989539f, + 0.986694f, + 0.981765f, + 0.975135f, + 0.969309f, + 0.965129f, + 0.959788f, + 0.953831f, + 0.946255f, + 0.937664f, + 0.927351f, + 0.916044f, + 0.904715f, + 0.892528f, + 0.879111f, + 0.864256f, + 0.848452f, + 0.832434f, + 0.815129f, + 0.796806f, + 0.778118f, + 0.758668f, + 0.738466f, + 0.718024f, + 0.696958f, + 0.675643f, + 0.654067f, + 0.632325f, + 0.610546f, + 0.588786f, + 0.567123f, + 0.545617f, + 0.524312f, + 0.503348f, + 0.482637f, + 0.462418f, + 0.442657f, + 0.423338f, + 0.404564f, + 0.386277f, + 0.368545f, + 0.351448f, + 0.334906f, + 0.318961f, + 0.999998f, + 0.999998f, + 0.999998f, + 0.999998f, + 0.999998f, + 0.999998f, + 0.999994f, + 0.999989f, + 0.999979f, + 0.999968f, + 0.999949f, + 0.999921f, + 0.999886f, + 0.999833f, + 0.999747f, + 0.999596f, + 0.999029f, + 0.995748f, + 0.993677f, + 0.991724f, + 0.989620f, + 0.986723f, + 0.981515f, + 0.975767f, + 0.969056f, + 0.964124f, + 0.959142f, + 0.953036f, + 0.945650f, + 0.937022f, + 0.926971f, + 0.915515f, + 0.903584f, + 0.891602f, + 0.878212f, + 0.863472f, + 0.847653f, + 0.831398f, + 0.814299f, + 0.796105f, + 0.777231f, + 0.757977f, + 0.737895f, + 0.717415f, + 0.696595f, + 0.675317f, + 0.653980f, + 0.632343f, + 0.610735f, + 0.589076f, + 0.567620f, + 0.546251f, + 0.525165f, + 0.504255f, + 0.483759f, + 0.463666f, + 0.443987f, + 0.424783f, + 0.406042f, + 0.387891f, + 0.370293f, + 0.353221f, + 0.336715f, + 0.320806f, + 0.999998f, + 0.999998f, + 0.999998f, + 0.999998f, + 0.999998f, + 0.999998f, + 0.999993f, + 0.999987f, + 0.999977f, + 0.999964f, + 0.999943f, + 0.999911f, + 0.999867f, + 0.999808f, + 0.999714f, + 0.999531f, + 0.998645f, + 0.995399f, + 0.993512f, + 0.991717f, + 0.989661f, + 0.986652f, + 0.981559f, + 0.976182f, + 0.969411f, + 0.963317f, + 0.958457f, + 0.952091f, + 0.944951f, + 0.936307f, + 0.926454f, + 0.915043f, + 0.902668f, + 0.890462f, + 0.877245f, + 0.862672f, + 0.846823f, + 0.830201f, + 0.813293f, + 0.795306f, + 0.776393f, + 0.757199f, + 0.737324f, + 0.716808f, + 0.696187f, + 0.675094f, + 0.653814f, + 0.632453f, + 0.610885f, + 0.589483f, + 0.568099f, + 0.546975f, + 0.525953f, + 0.505268f, + 0.484936f, + 0.464988f, + 0.445458f, + 0.426314f, + 0.407750f, + 0.389670f, + 0.372098f, + 0.355105f, + 0.338682f, + 0.322825f, + 0.999998f, + 0.999998f, + 0.999998f, + 0.999998f, + 0.999998f, + 0.999996f, + 0.999992f, + 0.999983f, + 0.999976f, + 0.999959f, + 0.999933f, + 0.999898f, + 0.999849f, + 0.999780f, + 0.999676f, + 0.999454f, + 0.997884f, + 0.995166f, + 0.993394f, + 0.991723f, + 0.989654f, + 0.986389f, + 0.981632f, + 0.976607f, + 0.969701f, + 0.962555f, + 0.957605f, + 0.951232f, + 0.944099f, + 0.935556f, + 0.925699f, + 0.914492f, + 0.902027f, + 0.889116f, + 0.876093f, + 0.861649f, + 0.845956f, + 0.829238f, + 0.812220f, + 0.794420f, + 0.775657f, + 0.756265f, + 0.736673f, + 0.716372f, + 0.695669f, + 0.674886f, + 0.653728f, + 0.632568f, + 0.611217f, + 0.589929f, + 0.568783f, + 0.547751f, + 0.526930f, + 0.506425f, + 0.486238f, + 0.466425f, + 0.446945f, + 0.428026f, + 0.409536f, + 0.391551f, + 0.374087f, + 0.357155f, + 0.340787f, + 0.324974f, + 0.999996f, + 0.999996f, + 0.999996f, + 0.999996f, + 0.999996f, + 0.999996f, + 0.999990f, + 0.999984f, + 0.999970f, + 0.999952f, + 0.999925f, + 0.999886f, + 0.999831f, + 0.999757f, + 0.999633f, + 0.999356f, + 0.997017f, + 0.994868f, + 0.993337f, + 0.991710f, + 0.989580f, + 0.985848f, + 0.981640f, + 0.976711f, + 0.969755f, + 0.962166f, + 0.956609f, + 0.950365f, + 0.943026f, + 0.934693f, + 0.924880f, + 0.913729f, + 0.901350f, + 0.887966f, + 0.874726f, + 0.860474f, + 0.844905f, + 0.828269f, + 0.810905f, + 0.793364f, + 0.774812f, + 0.755478f, + 0.735886f, + 0.715847f, + 0.695231f, + 0.674537f, + 0.653667f, + 0.632527f, + 0.611475f, + 0.590363f, + 0.569462f, + 0.548571f, + 0.527976f, + 0.507634f, + 0.487632f, + 0.467901f, + 0.448680f, + 0.429833f, + 0.411467f, + 0.393568f, + 0.376197f, + 0.359374f, + 0.343034f, + 0.327273f, + 0.999997f, + 0.999997f, + 0.999997f, + 0.999997f, + 0.999997f, + 0.999993f, + 0.999989f, + 0.999980f, + 0.999965f, + 0.999945f, + 0.999913f, + 0.999869f, + 0.999810f, + 0.999723f, + 0.999583f, + 0.999213f, + 0.996540f, + 0.994740f, + 0.993245f, + 0.991671f, + 0.989411f, + 0.985533f, + 0.981616f, + 0.976847f, + 0.969968f, + 0.962314f, + 0.955468f, + 0.949420f, + 0.942017f, + 0.933617f, + 0.923949f, + 0.912899f, + 0.900495f, + 0.887022f, + 0.873283f, + 0.859153f, + 0.843830f, + 0.827325f, + 0.809888f, + 0.792172f, + 0.773832f, + 0.754686f, + 0.735035f, + 0.715297f, + 0.694955f, + 0.674242f, + 0.653660f, + 0.632752f, + 0.611804f, + 0.590993f, + 0.570154f, + 0.549539f, + 0.529087f, + 0.508974f, + 0.489030f, + 0.469599f, + 0.450465f, + 0.431761f, + 0.413508f, + 0.395761f, + 0.378480f, + 0.361679f, + 0.345465f, + 0.329753f, + 0.999996f, + 0.999996f, + 0.999996f, + 0.999996f, + 0.999996f, + 0.999994f, + 0.999987f, + 0.999978f, + 0.999961f, + 0.999936f, + 0.999903f, + 0.999855f, + 0.999786f, + 0.999689f, + 0.999527f, + 0.998988f, + 0.996137f, + 0.994527f, + 0.993108f, + 0.991599f, + 0.989084f, + 0.985308f, + 0.981527f, + 0.976677f, + 0.970079f, + 0.962535f, + 0.954490f, + 0.948270f, + 0.940942f, + 0.932422f, + 0.922836f, + 0.911896f, + 0.899632f, + 0.886119f, + 0.871864f, + 0.857720f, + 0.842536f, + 0.826163f, + 0.808849f, + 0.790860f, + 0.772802f, + 0.753860f, + 0.734335f, + 0.714582f, + 0.694543f, + 0.674071f, + 0.653544f, + 0.632922f, + 0.612153f, + 0.591573f, + 0.570951f, + 0.550520f, + 0.530352f, + 0.510311f, + 0.490707f, + 0.471359f, + 0.452396f, + 0.433837f, + 0.415736f, + 0.398052f, + 0.380874f, + 0.364233f, + 0.348023f, + 0.332368f, + 0.999997f, + 0.999997f, + 0.999997f, + 0.999997f, + 0.999997f, + 0.999994f, + 0.999988f, + 0.999976f, + 0.999957f, + 0.999928f, + 0.999891f, + 0.999837f, + 0.999759f, + 0.999650f, + 0.999463f, + 0.998551f, + 0.995879f, + 0.994366f, + 0.992964f, + 0.991479f, + 0.988521f, + 0.985101f, + 0.981482f, + 0.976168f, + 0.970242f, + 0.962585f, + 0.953950f, + 0.946973f, + 0.939686f, + 0.931248f, + 0.921614f, + 0.910765f, + 0.898617f, + 0.885183f, + 0.870772f, + 0.856138f, + 0.841120f, + 0.824962f, + 0.807732f, + 0.789813f, + 0.771638f, + 0.753008f, + 0.733686f, + 0.713927f, + 0.694082f, + 0.673967f, + 0.653549f, + 0.633135f, + 0.612702f, + 0.592200f, + 0.571904f, + 0.551679f, + 0.531678f, + 0.511898f, + 0.492437f, + 0.473239f, + 0.454451f, + 0.436067f, + 0.418054f, + 0.400541f, + 0.383486f, + 0.366848f, + 0.350781f, + 0.335182f, + 0.999995f, + 0.999995f, + 0.999995f, + 0.999995f, + 0.999995f, + 0.999993f, + 0.999985f, + 0.999972f, + 0.999951f, + 0.999919f, + 0.999877f, + 0.999817f, + 0.999733f, + 0.999608f, + 0.999380f, + 0.997685f, + 0.995603f, + 0.994264f, + 0.992911f, + 0.991286f, + 0.987923f, + 0.984871f, + 0.981239f, + 0.975933f, + 0.970149f, + 0.962511f, + 0.953824f, + 0.945699f, + 0.938285f, + 0.929907f, + 0.920343f, + 0.909537f, + 0.897435f, + 0.884057f, + 0.869626f, + 0.854490f, + 0.839459f, + 0.823511f, + 0.806511f, + 0.788752f, + 0.770440f, + 0.751995f, + 0.732962f, + 0.713424f, + 0.693525f, + 0.673798f, + 0.653622f, + 0.633301f, + 0.613224f, + 0.592938f, + 0.572833f, + 0.552904f, + 0.533030f, + 0.513556f, + 0.494215f, + 0.475279f, + 0.456673f, + 0.438411f, + 0.420583f, + 0.403178f, + 0.386178f, + 0.369728f, + 0.353688f, + 0.338147f, + 0.999993f, + 0.999993f, + 0.999993f, + 0.999993f, + 0.999993f, + 0.999991f, + 0.999984f, + 0.999967f, + 0.999944f, + 0.999912f, + 0.999863f, + 0.999796f, + 0.999703f, + 0.999563f, + 0.999279f, + 0.997104f, + 0.995394f, + 0.994111f, + 0.992825f, + 0.990979f, + 0.987529f, + 0.984661f, + 0.980774f, + 0.975758f, + 0.969866f, + 0.962465f, + 0.953678f, + 0.944489f, + 0.936886f, + 0.928356f, + 0.918820f, + 0.908073f, + 0.896092f, + 0.882833f, + 0.868463f, + 0.853212f, + 0.837744f, + 0.822048f, + 0.805333f, + 0.787643f, + 0.769414f, + 0.750830f, + 0.732178f, + 0.712972f, + 0.693227f, + 0.673569f, + 0.653744f, + 0.633739f, + 0.613735f, + 0.593822f, + 0.573916f, + 0.554158f, + 0.534652f, + 0.515248f, + 0.496233f, + 0.477436f, + 0.459009f, + 0.440929f, + 0.423259f, + 0.405951f, + 0.389136f, + 0.372690f, + 0.356789f, + 0.341329f, + 0.999995f, + 0.999995f, + 0.999995f, + 0.999995f, + 0.999995f, + 0.999991f, + 0.999981f, + 0.999966f, + 0.999939f, + 0.999903f, + 0.999847f, + 0.999771f, + 0.999666f, + 0.999510f, + 0.999131f, + 0.996690f, + 0.995147f, + 0.993882f, + 0.992696f, + 0.990474f, + 0.987227f, + 0.984334f, + 0.980153f, + 0.975438f, + 0.969406f, + 0.962238f, + 0.953598f, + 0.943868f, + 0.935356f, + 0.926721f, + 0.917122f, + 0.906430f, + 0.894550f, + 0.881354f, + 0.867131f, + 0.851954f, + 0.835972f, + 0.820331f, + 0.803911f, + 0.786452f, + 0.768420f, + 0.749821f, + 0.731298f, + 0.712393f, + 0.692979f, + 0.673418f, + 0.653859f, + 0.634232f, + 0.614327f, + 0.594732f, + 0.575131f, + 0.555584f, + 0.536346f, + 0.517175f, + 0.498323f, + 0.479744f, + 0.461485f, + 0.443645f, + 0.426061f, + 0.408969f, + 0.392154f, + 0.375921f, + 0.360060f, + 0.344677f, + 0.999994f, + 0.999994f, + 0.999994f, + 0.999994f, + 0.999994f, + 0.999991f, + 0.999979f, + 0.999960f, + 0.999931f, + 0.999891f, + 0.999832f, + 0.999748f, + 0.999629f, + 0.999449f, + 0.998879f, + 0.996305f, + 0.995024f, + 0.993812f, + 0.992508f, + 0.989721f, + 0.986936f, + 0.983936f, + 0.979629f, + 0.974979f, + 0.968928f, + 0.961970f, + 0.953291f, + 0.943458f, + 0.933644f, + 0.925007f, + 0.915388f, + 0.904755f, + 0.892932f, + 0.879831f, + 0.865794f, + 0.850672f, + 0.834591f, + 0.818398f, + 0.802304f, + 0.785151f, + 0.767450f, + 0.748987f, + 0.730325f, + 0.711758f, + 0.692761f, + 0.673417f, + 0.653908f, + 0.634686f, + 0.615168f, + 0.595707f, + 0.576393f, + 0.557198f, + 0.538018f, + 0.519253f, + 0.500555f, + 0.482220f, + 0.464197f, + 0.446414f, + 0.429106f, + 0.412035f, + 0.395508f, + 0.379284f, + 0.363538f, + 0.348220f, + 0.999993f, + 0.999993f, + 0.999993f, + 0.999993f, + 0.999993f, + 0.999989f, + 0.999977f, + 0.999956f, + 0.999924f, + 0.999879f, + 0.999813f, + 0.999722f, + 0.999590f, + 0.999381f, + 0.998335f, + 0.996088f, + 0.994814f, + 0.993709f, + 0.992220f, + 0.989209f, + 0.986575f, + 0.983383f, + 0.979084f, + 0.974272f, + 0.968359f, + 0.961275f, + 0.953025f, + 0.943098f, + 0.932434f, + 0.923101f, + 0.913477f, + 0.902861f, + 0.891059f, + 0.878071f, + 0.864118f, + 0.849188f, + 0.833281f, + 0.816808f, + 0.800596f, + 0.783745f, + 0.766331f, + 0.748123f, + 0.729687f, + 0.711078f, + 0.692527f, + 0.673491f, + 0.654296f, + 0.635113f, + 0.616048f, + 0.596848f, + 0.577720f, + 0.558879f, + 0.540028f, + 0.521371f, + 0.502996f, + 0.484858f, + 0.466997f, + 0.449477f, + 0.432217f, + 0.415426f, + 0.398924f, + 0.382890f, + 0.367206f, + 0.351955f, + 0.999993f, + 0.999993f, + 0.999993f, + 0.999993f, + 0.999993f, + 0.999988f, + 0.999974f, + 0.999953f, + 0.999918f, + 0.999865f, + 0.999791f, + 0.999690f, + 0.999542f, + 0.999294f, + 0.997535f, + 0.995790f, + 0.994609f, + 0.993557f, + 0.991766f, + 0.988767f, + 0.986255f, + 0.982544f, + 0.978541f, + 0.973528f, + 0.967700f, + 0.960596f, + 0.952299f, + 0.942684f, + 0.931653f, + 0.921211f, + 0.911489f, + 0.900818f, + 0.889018f, + 0.876245f, + 0.862406f, + 0.847517f, + 0.831852f, + 0.815367f, + 0.798719f, + 0.782223f, + 0.765167f, + 0.747304f, + 0.729133f, + 0.710485f, + 0.692196f, + 0.673589f, + 0.654770f, + 0.635717f, + 0.616986f, + 0.598119f, + 0.579298f, + 0.560560f, + 0.542163f, + 0.523669f, + 0.505564f, + 0.487642f, + 0.469991f, + 0.452658f, + 0.435620f, + 0.418937f, + 0.402612f, + 0.386633f, + 0.371091f, + 0.355949f, + 0.999992f, + 0.999992f, + 0.999992f, + 0.999992f, + 0.999992f, + 0.999986f, + 0.999973f, + 0.999948f, + 0.999909f, + 0.999852f, + 0.999769f, + 0.999656f, + 0.999490f, + 0.999186f, + 0.997059f, + 0.995624f, + 0.994510f, + 0.993327f, + 0.991020f, + 0.988380f, + 0.985771f, + 0.981971f, + 0.978051f, + 0.972892f, + 0.967020f, + 0.959965f, + 0.951625f, + 0.941902f, + 0.930951f, + 0.919370f, + 0.909285f, + 0.898562f, + 0.886809f, + 0.874251f, + 0.860597f, + 0.845808f, + 0.830365f, + 0.813972f, + 0.797260f, + 0.780597f, + 0.763854f, + 0.746401f, + 0.728519f, + 0.710203f, + 0.691882f, + 0.673687f, + 0.655275f, + 0.636621f, + 0.617909f, + 0.599473f, + 0.581032f, + 0.562560f, + 0.544295f, + 0.526228f, + 0.508293f, + 0.490652f, + 0.473242f, + 0.456004f, + 0.439212f, + 0.422663f, + 0.406476f, + 0.390647f, + 0.375204f, + 0.360129f, + 0.999990f, + 0.999990f, + 0.999990f, + 0.999990f, + 0.999990f, + 0.999984f, + 0.999969f, + 0.999940f, + 0.999898f, + 0.999837f, + 0.999746f, + 0.999617f, + 0.999438f, + 0.999016f, + 0.996703f, + 0.995302f, + 0.994356f, + 0.992993f, + 0.990390f, + 0.988072f, + 0.985152f, + 0.981446f, + 0.977273f, + 0.972234f, + 0.966113f, + 0.959033f, + 0.950869f, + 0.941217f, + 0.930175f, + 0.918279f, + 0.906941f, + 0.896201f, + 0.884509f, + 0.871920f, + 0.858420f, + 0.843905f, + 0.828730f, + 0.812524f, + 0.795978f, + 0.778979f, + 0.762450f, + 0.745459f, + 0.727966f, + 0.710046f, + 0.691808f, + 0.673739f, + 0.655756f, + 0.637574f, + 0.619153f, + 0.600887f, + 0.582796f, + 0.564748f, + 0.546636f, + 0.528904f, + 0.511252f, + 0.493791f, + 0.476563f, + 0.459694f, + 0.442942f, + 0.426632f, + 0.410558f, + 0.394895f, + 0.379517f, + 0.364560f, + 0.999989f, + 0.999989f, + 0.999989f, + 0.999989f, + 0.999989f, + 0.999984f, + 0.999966f, + 0.999934f, + 0.999887f, + 0.999819f, + 0.999720f, + 0.999578f, + 0.999367f, + 0.998696f, + 0.996353f, + 0.995201f, + 0.994115f, + 0.992665f, + 0.989948f, + 0.987633f, + 0.984331f, + 0.980826f, + 0.976390f, + 0.971327f, + 0.965201f, + 0.957977f, + 0.949712f, + 0.940128f, + 0.929187f, + 0.917237f, + 0.904644f, + 0.893711f, + 0.882113f, + 0.869516f, + 0.856236f, + 0.841929f, + 0.826924f, + 0.810991f, + 0.794686f, + 0.777761f, + 0.760980f, + 0.744384f, + 0.727314f, + 0.709877f, + 0.691988f, + 0.674098f, + 0.656243f, + 0.638603f, + 0.620606f, + 0.602574f, + 0.584694f, + 0.567018f, + 0.549311f, + 0.531673f, + 0.514403f, + 0.497148f, + 0.480177f, + 0.463439f, + 0.446998f, + 0.430743f, + 0.414943f, + 0.399304f, + 0.384121f, + 0.369251f, + 0.999988f, + 0.999988f, + 0.999988f, + 0.999988f, + 0.999988f, + 0.999981f, + 0.999962f, + 0.999927f, + 0.999874f, + 0.999798f, + 0.999690f, + 0.999533f, + 0.999291f, + 0.997909f, + 0.996117f, + 0.995029f, + 0.993880f, + 0.992142f, + 0.989577f, + 0.987185f, + 0.983588f, + 0.980055f, + 0.975487f, + 0.970172f, + 0.963998f, + 0.956738f, + 0.948637f, + 0.939083f, + 0.928169f, + 0.916143f, + 0.903147f, + 0.890916f, + 0.879389f, + 0.866895f, + 0.853826f, + 0.839729f, + 0.824957f, + 0.809472f, + 0.793341f, + 0.776743f, + 0.759808f, + 0.743277f, + 0.726643f, + 0.709685f, + 0.692249f, + 0.674639f, + 0.657008f, + 0.639576f, + 0.622114f, + 0.604471f, + 0.586851f, + 0.569340f, + 0.552135f, + 0.534806f, + 0.517599f, + 0.500765f, + 0.484035f, + 0.467440f, + 0.451212f, + 0.435240f, + 0.419399f, + 0.404083f, + 0.388944f, + 0.374182f, + 0.999987f, + 0.999987f, + 0.999987f, + 0.999987f, + 0.999987f, + 0.999979f, + 0.999958f, + 0.999919f, + 0.999861f, + 0.999774f, + 0.999656f, + 0.999482f, + 0.999195f, + 0.997307f, + 0.995837f, + 0.994722f, + 0.993707f, + 0.991391f, + 0.989169f, + 0.986461f, + 0.982904f, + 0.979062f, + 0.974536f, + 0.969035f, + 0.962653f, + 0.955486f, + 0.947243f, + 0.937747f, + 0.926861f, + 0.914936f, + 0.901835f, + 0.888472f, + 0.876572f, + 0.864223f, + 0.851252f, + 0.837374f, + 0.822985f, + 0.807788f, + 0.791927f, + 0.775701f, + 0.758928f, + 0.742347f, + 0.725914f, + 0.709495f, + 0.692569f, + 0.675363f, + 0.658085f, + 0.640639f, + 0.623698f, + 0.606505f, + 0.589267f, + 0.572008f, + 0.554939f, + 0.538132f, + 0.521212f, + 0.504487f, + 0.488048f, + 0.471807f, + 0.455651f, + 0.439858f, + 0.424332f, + 0.408983f, + 0.394071f, + 0.379402f, + 0.999986f, + 0.999986f, + 0.999986f, + 0.999986f, + 0.999986f, + 0.999978f, + 0.999954f, + 0.999913f, + 0.999844f, + 0.999753f, + 0.999618f, + 0.999424f, + 0.999067f, + 0.996875f, + 0.995659f, + 0.994603f, + 0.993420f, + 0.990874f, + 0.988713f, + 0.985585f, + 0.982193f, + 0.978145f, + 0.973416f, + 0.967801f, + 0.961483f, + 0.954069f, + 0.945704f, + 0.936138f, + 0.925374f, + 0.913395f, + 0.900339f, + 0.886675f, + 0.873512f, + 0.861326f, + 0.848513f, + 0.834955f, + 0.820820f, + 0.805943f, + 0.790574f, + 0.774677f, + 0.758279f, + 0.741807f, + 0.725271f, + 0.709231f, + 0.692874f, + 0.676189f, + 0.659352f, + 0.642296f, + 0.625250f, + 0.608700f, + 0.591823f, + 0.575012f, + 0.558143f, + 0.541491f, + 0.525075f, + 0.508558f, + 0.492277f, + 0.476270f, + 0.460459f, + 0.444739f, + 0.429400f, + 0.414309f, + 0.399421f, + 0.384907f, + 0.999985f, + 0.999985f, + 0.999985f, + 0.999985f, + 0.999985f, + 0.999977f, + 0.999947f, + 0.999902f, + 0.999832f, + 0.999730f, + 0.999577f, + 0.999359f, + 0.998845f, + 0.996554f, + 0.995328f, + 0.994442f, + 0.992919f, + 0.990392f, + 0.988170f, + 0.984854f, + 0.981312f, + 0.977149f, + 0.972137f, + 0.966207f, + 0.959968f, + 0.952454f, + 0.943873f, + 0.934434f, + 0.923813f, + 0.911942f, + 0.898928f, + 0.885120f, + 0.871043f, + 0.858248f, + 0.845666f, + 0.832346f, + 0.818482f, + 0.804029f, + 0.788982f, + 0.773571f, + 0.757700f, + 0.741484f, + 0.725186f, + 0.708915f, + 0.693244f, + 0.677028f, + 0.660656f, + 0.644079f, + 0.627377f, + 0.610804f, + 0.594542f, + 0.578112f, + 0.561650f, + 0.545163f, + 0.528962f, + 0.512926f, + 0.496893f, + 0.481007f, + 0.465397f, + 0.450042f, + 0.434740f, + 0.419831f, + 0.405156f, + 0.390692f, + 0.999981f, + 0.999981f, + 0.999981f, + 0.999981f, + 0.999981f, + 0.999973f, + 0.999942f, + 0.999891f, + 0.999813f, + 0.999698f, + 0.999532f, + 0.999285f, + 0.998286f, + 0.996295f, + 0.995215f, + 0.994182f, + 0.992032f, + 0.989855f, + 0.987415f, + 0.984047f, + 0.980050f, + 0.976017f, + 0.970845f, + 0.964767f, + 0.958269f, + 0.950600f, + 0.942033f, + 0.932501f, + 0.921807f, + 0.910017f, + 0.897149f, + 0.883414f, + 0.869182f, + 0.855055f, + 0.842687f, + 0.829548f, + 0.816162f, + 0.802072f, + 0.787436f, + 0.772533f, + 0.757043f, + 0.741263f, + 0.725330f, + 0.709262f, + 0.693497f, + 0.678038f, + 0.662128f, + 0.646068f, + 0.629824f, + 0.613436f, + 0.597334f, + 0.581401f, + 0.565372f, + 0.549288f, + 0.533182f, + 0.517405f, + 0.501765f, + 0.486143f, + 0.470675f, + 0.455464f, + 0.440531f, + 0.425630f, + 0.411113f, + 0.396887f, + 0.999982f, + 0.999982f, + 0.999982f, + 0.999982f, + 0.999982f, + 0.999970f, + 0.999934f, + 0.999878f, + 0.999793f, + 0.999665f, + 0.999481f, + 0.999192f, + 0.997505f, + 0.995926f, + 0.995009f, + 0.993736f, + 0.991298f, + 0.989326f, + 0.986371f, + 0.983199f, + 0.979031f, + 0.974595f, + 0.969364f, + 0.963198f, + 0.956385f, + 0.948509f, + 0.939993f, + 0.930421f, + 0.919590f, + 0.908140f, + 0.895349f, + 0.881699f, + 0.867456f, + 0.852784f, + 0.839500f, + 0.826629f, + 0.813602f, + 0.799983f, + 0.785873f, + 0.771340f, + 0.756480f, + 0.741190f, + 0.725687f, + 0.709997f, + 0.694192f, + 0.678975f, + 0.663673f, + 0.648135f, + 0.632442f, + 0.616477f, + 0.600565f, + 0.584772f, + 0.569202f, + 0.553595f, + 0.537882f, + 0.522193f, + 0.506784f, + 0.491554f, + 0.476349f, + 0.461278f, + 0.446419f, + 0.431913f, + 0.417443f, + 0.403271f, + 0.999980f, + 0.999980f, + 0.999980f, + 0.999980f, + 0.999980f, + 0.999966f, + 0.999927f, + 0.999866f, + 0.999772f, + 0.999629f, + 0.999423f, + 0.999075f, + 0.997024f, + 0.995773f, + 0.994651f, + 0.993353f, + 0.990822f, + 0.988569f, + 0.985596f, + 0.982182f, + 0.977871f, + 0.973140f, + 0.967584f, + 0.961408f, + 0.954294f, + 0.946398f, + 0.937603f, + 0.927937f, + 0.917305f, + 0.905833f, + 0.893138f, + 0.879770f, + 0.865720f, + 0.851023f, + 0.836801f, + 0.823784f, + 0.810909f, + 0.797886f, + 0.784177f, + 0.770243f, + 0.755925f, + 0.741144f, + 0.726214f, + 0.710971f, + 0.695563f, + 0.680212f, + 0.665304f, + 0.650297f, + 0.635168f, + 0.619796f, + 0.604217f, + 0.588692f, + 0.573254f, + 0.557998f, + 0.542839f, + 0.527470f, + 0.512162f, + 0.497115f, + 0.482296f, + 0.467477f, + 0.452812f, + 0.438310f, + 0.424184f, + 0.410163f, + 0.999977f, + 0.999977f, + 0.999977f, + 0.999977f, + 0.999977f, + 0.999962f, + 0.999920f, + 0.999852f, + 0.999745f, + 0.999586f, + 0.999354f, + 0.998894f, + 0.996685f, + 0.995485f, + 0.994493f, + 0.992573f, + 0.990323f, + 0.987772f, + 0.984692f, + 0.980887f, + 0.976446f, + 0.971625f, + 0.965717f, + 0.959421f, + 0.951975f, + 0.944086f, + 0.935066f, + 0.925403f, + 0.914814f, + 0.903208f, + 0.890958f, + 0.877817f, + 0.863828f, + 0.849289f, + 0.834872f, + 0.820890f, + 0.808183f, + 0.795660f, + 0.782556f, + 0.769066f, + 0.755386f, + 0.741229f, + 0.726726f, + 0.712170f, + 0.697209f, + 0.682170f, + 0.667203f, + 0.652689f, + 0.637938f, + 0.623262f, + 0.608190f, + 0.593002f, + 0.577817f, + 0.562737f, + 0.547836f, + 0.533036f, + 0.518052f, + 0.503135f, + 0.488422f, + 0.473986f, + 0.459552f, + 0.445282f, + 0.431149f, + 0.417407f, + 0.999973f, + 0.999973f, + 0.999973f, + 0.999973f, + 0.999973f, + 0.999957f, + 0.999914f, + 0.999836f, + 0.999718f, + 0.999538f, + 0.999275f, + 0.998454f, + 0.996341f, + 0.995246f, + 0.994222f, + 0.991844f, + 0.989829f, + 0.986688f, + 0.983562f, + 0.979638f, + 0.974932f, + 0.969827f, + 0.963621f, + 0.957146f, + 0.949365f, + 0.941398f, + 0.932245f, + 0.922556f, + 0.911949f, + 0.900627f, + 0.888440f, + 0.875544f, + 0.862005f, + 0.847810f, + 0.833372f, + 0.819134f, + 0.805509f, + 0.793339f, + 0.780916f, + 0.767837f, + 0.754858f, + 0.741307f, + 0.727496f, + 0.713386f, + 0.699131f, + 0.684542f, + 0.669878f, + 0.655261f, + 0.641035f, + 0.626685f, + 0.612377f, + 0.597625f, + 0.582805f, + 0.568030f, + 0.553204f, + 0.538684f, + 0.524269f, + 0.509662f, + 0.495119f, + 0.480735f, + 0.466634f, + 0.452593f, + 0.438748f, + 0.424915f, + 0.999971f, + 0.999971f, + 0.999971f, + 0.999971f, + 0.999971f, + 0.999956f, + 0.999901f, + 0.999818f, + 0.999683f, + 0.999487f, + 0.999185f, + 0.997584f, + 0.996004f, + 0.995050f, + 0.993715f, + 0.991212f, + 0.989057f, + 0.985879f, + 0.982243f, + 0.978206f, + 0.973119f, + 0.967919f, + 0.961343f, + 0.954603f, + 0.946712f, + 0.938378f, + 0.929266f, + 0.919443f, + 0.908911f, + 0.897725f, + 0.885589f, + 0.873254f, + 0.859889f, + 0.846123f, + 0.832094f, + 0.817898f, + 0.803866f, + 0.791061f, + 0.779235f, + 0.766885f, + 0.754292f, + 0.741565f, + 0.728331f, + 0.714861f, + 0.701179f, + 0.687166f, + 0.673012f, + 0.658716f, + 0.644443f, + 0.630472f, + 0.616519f, + 0.602514f, + 0.588172f, + 0.573689f, + 0.559281f, + 0.544768f, + 0.530543f, + 0.516485f, + 0.502303f, + 0.488100f, + 0.474095f, + 0.460245f, + 0.446598f, + 0.433169f, + 0.999967f, + 0.999967f, + 0.999967f, + 0.999967f, + 0.999967f, + 0.999947f, + 0.999891f, + 0.999794f, + 0.999647f, + 0.999425f, + 0.999062f, + 0.997049f, + 0.995778f, + 0.994652f, + 0.992778f, + 0.990482f, + 0.988004f, + 0.984893f, + 0.980881f, + 0.976605f, + 0.971199f, + 0.965610f, + 0.958925f, + 0.951746f, + 0.943791f, + 0.935200f, + 0.926018f, + 0.916028f, + 0.905724f, + 0.894528f, + 0.882914f, + 0.870741f, + 0.857802f, + 0.844552f, + 0.830857f, + 0.816921f, + 0.803102f, + 0.789625f, + 0.777480f, + 0.765891f, + 0.753908f, + 0.741795f, + 0.729390f, + 0.716440f, + 0.703411f, + 0.690068f, + 0.676438f, + 0.662587f, + 0.648698f, + 0.634732f, + 0.620997f, + 0.607451f, + 0.593765f, + 0.579748f, + 0.565661f, + 0.551594f, + 0.537396f, + 0.523433f, + 0.509708f, + 0.495972f, + 0.482082f, + 0.468427f, + 0.454890f, + 0.441623f, + 0.999964f, + 0.999964f, + 0.999964f, + 0.999964f, + 0.999964f, + 0.999940f, + 0.999875f, + 0.999768f, + 0.999605f, + 0.999352f, + 0.998882f, + 0.996665f, + 0.995459f, + 0.994380f, + 0.992013f, + 0.989912f, + 0.986796f, + 0.983537f, + 0.979326f, + 0.974792f, + 0.969140f, + 0.963160f, + 0.956222f, + 0.948807f, + 0.940518f, + 0.931755f, + 0.922452f, + 0.912319f, + 0.902227f, + 0.891142f, + 0.879838f, + 0.868047f, + 0.855745f, + 0.842718f, + 0.829827f, + 0.816398f, + 0.802786f, + 0.789396f, + 0.776581f, + 0.764901f, + 0.753710f, + 0.742102f, + 0.730448f, + 0.718337f, + 0.705768f, + 0.693172f, + 0.680153f, + 0.666882f, + 0.653402f, + 0.639837f, + 0.626152f, + 0.612676f, + 0.599435f, + 0.586109f, + 0.572473f, + 0.558715f, + 0.544964f, + 0.531112f, + 0.517416f, + 0.503992f, + 0.490653f, + 0.477162f, + 0.463832f, + 0.450645f, + 0.999958f, + 0.999958f, + 0.999958f, + 0.999958f, + 0.999958f, + 0.999933f, + 0.999861f, + 0.999741f, + 0.999554f, + 0.999267f, + 0.998411f, + 0.996303f, + 0.995191f, + 0.993945f, + 0.991406f, + 0.989019f, + 0.985720f, + 0.982057f, + 0.977501f, + 0.972605f, + 0.966698f, + 0.960340f, + 0.953031f, + 0.945347f, + 0.936866f, + 0.927917f, + 0.918563f, + 0.908598f, + 0.898486f, + 0.887794f, + 0.876545f, + 0.865379f, + 0.853428f, + 0.841168f, + 0.828649f, + 0.815967f, + 0.802957f, + 0.789865f, + 0.777077f, + 0.764695f, + 0.753544f, + 0.742694f, + 0.731571f, + 0.720304f, + 0.708490f, + 0.696351f, + 0.684134f, + 0.671470f, + 0.658541f, + 0.645376f, + 0.632209f, + 0.618776f, + 0.605510f, + 0.592527f, + 0.579546f, + 0.566310f, + 0.552860f, + 0.539492f, + 0.526005f, + 0.512564f, + 0.499340f, + 0.486360f, + 0.473357f, + 0.460306f, + 0.999956f, + 0.999956f, + 0.999956f, + 0.999956f, + 0.999956f, + 0.999926f, + 0.999842f, + 0.999710f, + 0.999498f, + 0.999164f, + 0.997463f, + 0.995870f, + 0.994917f, + 0.992911f, + 0.990682f, + 0.987816f, + 0.984410f, + 0.980551f, + 0.975693f, + 0.970263f, + 0.963946f, + 0.957248f, + 0.949765f, + 0.941571f, + 0.932941f, + 0.923873f, + 0.914332f, + 0.904560f, + 0.894394f, + 0.884127f, + 0.873294f, + 0.862503f, + 0.851335f, + 0.839566f, + 0.827776f, + 0.815708f, + 0.803370f, + 0.790821f, + 0.778386f, + 0.766121f, + 0.754193f, + 0.743420f, + 0.732975f, + 0.722326f, + 0.711376f, + 0.699992f, + 0.688180f, + 0.676354f, + 0.664004f, + 0.651449f, + 0.638600f, + 0.625776f, + 0.612660f, + 0.599603f, + 0.586719f, + 0.574078f, + 0.561273f, + 0.548129f, + 0.535155f, + 0.522015f, + 0.508851f, + 0.495837f, + 0.483190f, + 0.470624f, + 0.999947f, + 0.999947f, + 0.999947f, + 0.999947f, + 0.999947f, + 0.999916f, + 0.999823f, + 0.999669f, + 0.999425f, + 0.999025f, + 0.996874f, + 0.995670f, + 0.994415f, + 0.991991f, + 0.989766f, + 0.986646f, + 0.982812f, + 0.978356f, + 0.973317f, + 0.967611f, + 0.960820f, + 0.953603f, + 0.945969f, + 0.937323f, + 0.928661f, + 0.919507f, + 0.909833f, + 0.900245f, + 0.890390f, + 0.880252f, + 0.870000f, + 0.859518f, + 0.849162f, + 0.838101f, + 0.826960f, + 0.815688f, + 0.804126f, + 0.792234f, + 0.780356f, + 0.768474f, + 0.756678f, + 0.745159f, + 0.734601f, + 0.724624f, + 0.714339f, + 0.703751f, + 0.692766f, + 0.681267f, + 0.669799f, + 0.657871f, + 0.645577f, + 0.633102f, + 0.620560f, + 0.607737f, + 0.594890f, + 0.582143f, + 0.569779f, + 0.557360f, + 0.544651f, + 0.531942f, + 0.519228f, + 0.506467f, + 0.493710f, + 0.481143f, + 0.999938f, + 0.999938f, + 0.999938f, + 0.999938f, + 0.999938f, + 0.999901f, + 0.999798f, + 0.999622f, + 0.999341f, + 0.998801f, + 0.996398f, + 0.995225f, + 0.993927f, + 0.991339f, + 0.988500f, + 0.985327f, + 0.981195f, + 0.976383f, + 0.970726f, + 0.964471f, + 0.957386f, + 0.949813f, + 0.941694f, + 0.932681f, + 0.923974f, + 0.914755f, + 0.905026f, + 0.895649f, + 0.886178f, + 0.876277f, + 0.866629f, + 0.856890f, + 0.846934f, + 0.836887f, + 0.826373f, + 0.815885f, + 0.805169f, + 0.794133f, + 0.782812f, + 0.771547f, + 0.760175f, + 0.748896f, + 0.737688f, + 0.727151f, + 0.717601f, + 0.707670f, + 0.697425f, + 0.686789f, + 0.675664f, + 0.664513f, + 0.652962f, + 0.640965f, + 0.628851f, + 0.616551f, + 0.604169f, + 0.591559f, + 0.579009f, + 0.566648f, + 0.554597f, + 0.542382f, + 0.529999f, + 0.517655f, + 0.505254f, + 0.492894f, + 0.999929f, + 0.999929f, + 0.999929f, + 0.999929f, + 0.999929f, + 0.999889f, + 0.999766f, + 0.999562f, + 0.999240f, + 0.997952f, + 0.996094f, + 0.994979f, + 0.992773f, + 0.990536f, + 0.987213f, + 0.983322f, + 0.978938f, + 0.973714f, + 0.967681f, + 0.960981f, + 0.953144f, + 0.945475f, + 0.936909f, + 0.927734f, + 0.918826f, + 0.909590f, + 0.900085f, + 0.890867f, + 0.881801f, + 0.872565f, + 0.863236f, + 0.854239f, + 0.845060f, + 0.835686f, + 0.826251f, + 0.816284f, + 0.806586f, + 0.796419f, + 0.785914f, + 0.775210f, + 0.764461f, + 0.753599f, + 0.742805f, + 0.731872f, + 0.721370f, + 0.711898f, + 0.702337f, + 0.692383f, + 0.682137f, + 0.671365f, + 0.660479f, + 0.649314f, + 0.637685f, + 0.625899f, + 0.613898f, + 0.601865f, + 0.589582f, + 0.577285f, + 0.565013f, + 0.553106f, + 0.541280f, + 0.529367f, + 0.517320f, + 0.505411f, + 0.999920f, + 0.999920f, + 0.999920f, + 0.999920f, + 0.999920f, + 0.999869f, + 0.999732f, + 0.999499f, + 0.999110f, + 0.997167f, + 0.995720f, + 0.994349f, + 0.991727f, + 0.989197f, + 0.985883f, + 0.981483f, + 0.976618f, + 0.970597f, + 0.964122f, + 0.956994f, + 0.948639f, + 0.940500f, + 0.931606f, + 0.922385f, + 0.913291f, + 0.904205f, + 0.894938f, + 0.885890f, + 0.877334f, + 0.868754f, + 0.860053f, + 0.851683f, + 0.843447f, + 0.834889f, + 0.826304f, + 0.817441f, + 0.808285f, + 0.799141f, + 0.789570f, + 0.779600f, + 0.769510f, + 0.759155f, + 0.748882f, + 0.738346f, + 0.727629f, + 0.717273f, + 0.707467f, + 0.698283f, + 0.688609f, + 0.678748f, + 0.668371f, + 0.657739f, + 0.646951f, + 0.635765f, + 0.624253f, + 0.612647f, + 0.600900f, + 0.589061f, + 0.576998f, + 0.564991f, + 0.553102f, + 0.541517f, + 0.530027f, + 0.518495f, + 0.999906f, + 0.999906f, + 0.999906f, + 0.999906f, + 0.999906f, + 0.999851f, + 0.999684f, + 0.999412f, + 0.998925f, + 0.996597f, + 0.995207f, + 0.993603f, + 0.990903f, + 0.987594f, + 0.983814f, + 0.979016f, + 0.973647f, + 0.967048f, + 0.960109f, + 0.952123f, + 0.943560f, + 0.934900f, + 0.925747f, + 0.916566f, + 0.907305f, + 0.898441f, + 0.889629f, + 0.881042f, + 0.872874f, + 0.865065f, + 0.857225f, + 0.849446f, + 0.842063f, + 0.834561f, + 0.826814f, + 0.818875f, + 0.810748f, + 0.802316f, + 0.793699f, + 0.784704f, + 0.775198f, + 0.765642f, + 0.755735f, + 0.745873f, + 0.735526f, + 0.725229f, + 0.714892f, + 0.704807f, + 0.695502f, + 0.686241f, + 0.676633f, + 0.666688f, + 0.656384f, + 0.645871f, + 0.635174f, + 0.624113f, + 0.612788f, + 0.601426f, + 0.589925f, + 0.578399f, + 0.566612f, + 0.554931f, + 0.543383f, + 0.532065f, + 0.999889f, + 0.999889f, + 0.999889f, + 0.999889f, + 0.999889f, + 0.999824f, + 0.999633f, + 0.999306f, + 0.998430f, + 0.996133f, + 0.994890f, + 0.992316f, + 0.989752f, + 0.986095f, + 0.981564f, + 0.976234f, + 0.970081f, + 0.962779f, + 0.955232f, + 0.946702f, + 0.937716f, + 0.928604f, + 0.919281f, + 0.910167f, + 0.901046f, + 0.892446f, + 0.884183f, + 0.876253f, + 0.868620f, + 0.861545f, + 0.854673f, + 0.847885f, + 0.841074f, + 0.834610f, + 0.827984f, + 0.820945f, + 0.813648f, + 0.806232f, + 0.798444f, + 0.790232f, + 0.781853f, + 0.772897f, + 0.763648f, + 0.754227f, + 0.744542f, + 0.734689f, + 0.724526f, + 0.714204f, + 0.704152f, + 0.694222f, + 0.685143f, + 0.675860f, + 0.666319f, + 0.656415f, + 0.646273f, + 0.635902f, + 0.625399f, + 0.614563f, + 0.603490f, + 0.592413f, + 0.581217f, + 0.570000f, + 0.558608f, + 0.547242f, + 0.999867f, + 0.999867f, + 0.999867f, + 0.999867f, + 0.999867f, + 0.999790f, + 0.999561f, + 0.999168f, + 0.997237f, + 0.995672f, + 0.994074f, + 0.991219f, + 0.987792f, + 0.983822f, + 0.978599f, + 0.972804f, + 0.965718f, + 0.958053f, + 0.949461f, + 0.940503f, + 0.931011f, + 0.921608f, + 0.912409f, + 0.903378f, + 0.894606f, + 0.886369f, + 0.878756f, + 0.871573f, + 0.864862f, + 0.858421f, + 0.852541f, + 0.846802f, + 0.841027f, + 0.835206f, + 0.829628f, + 0.823730f, + 0.817415f, + 0.810655f, + 0.803873f, + 0.796659f, + 0.788887f, + 0.780940f, + 0.772537f, + 0.763507f, + 0.754487f, + 0.745163f, + 0.735572f, + 0.725687f, + 0.715611f, + 0.705398f, + 0.695418f, + 0.685592f, + 0.676518f, + 0.667304f, + 0.657875f, + 0.648182f, + 0.638235f, + 0.628062f, + 0.617813f, + 0.607283f, + 0.596552f, + 0.585770f, + 0.575033f, + 0.564153f, + 0.999840f, + 0.999840f, + 0.999840f, + 0.999840f, + 0.999840f, + 0.999748f, + 0.999472f, + 0.998969f, + 0.996528f, + 0.995102f, + 0.992701f, + 0.989963f, + 0.985981f, + 0.981194f, + 0.975183f, + 0.968501f, + 0.960502f, + 0.952012f, + 0.942861f, + 0.933376f, + 0.923506f, + 0.914042f, + 0.904921f, + 0.896282f, + 0.887987f, + 0.880341f, + 0.873536f, + 0.867293f, + 0.861556f, + 0.856148f, + 0.850987f, + 0.846352f, + 0.841684f, + 0.836879f, + 0.832036f, + 0.827091f, + 0.821900f, + 0.816206f, + 0.810042f, + 0.803629f, + 0.796918f, + 0.789653f, + 0.781915f, + 0.774014f, + 0.765530f, + 0.756526f, + 0.747669f, + 0.738342f, + 0.728770f, + 0.718942f, + 0.708942f, + 0.698855f, + 0.688933f, + 0.679131f, + 0.669855f, + 0.660811f, + 0.651549f, + 0.642127f, + 0.632454f, + 0.622651f, + 0.612709f, + 0.602606f, + 0.592344f, + 0.581877f, + 0.999806f, + 0.999806f, + 0.999806f, + 0.999806f, + 0.999806f, + 0.999691f, + 0.999350f, + 0.998431f, + 0.995873f, + 0.994456f, + 0.991327f, + 0.987798f, + 0.983232f, + 0.977500f, + 0.970828f, + 0.962815f, + 0.954228f, + 0.944752f, + 0.935126f, + 0.925179f, + 0.915102f, + 0.905763f, + 0.897087f, + 0.888933f, + 0.881452f, + 0.874687f, + 0.868716f, + 0.863585f, + 0.858931f, + 0.854662f, + 0.850569f, + 0.846719f, + 0.843151f, + 0.839426f, + 0.835588f, + 0.831443f, + 0.827004f, + 0.822395f, + 0.817254f, + 0.811630f, + 0.805464f, + 0.799124f, + 0.792382f, + 0.785091f, + 0.777315f, + 0.769360f, + 0.760908f, + 0.751957f, + 0.743128f, + 0.733917f, + 0.724340f, + 0.714712f, + 0.704721f, + 0.694835f, + 0.684862f, + 0.675099f, + 0.665570f, + 0.656644f, + 0.647651f, + 0.638581f, + 0.629337f, + 0.619926f, + 0.610358f, + 0.600707f, + 0.999759f, + 0.999759f, + 0.999759f, + 0.999759f, + 0.999759f, + 0.999613f, + 0.999186f, + 0.997025f, + 0.995317f, + 0.992849f, + 0.989760f, + 0.985270f, + 0.979807f, + 0.973049f, + 0.965228f, + 0.956248f, + 0.946394f, + 0.936324f, + 0.926124f, + 0.915808f, + 0.905942f, + 0.897060f, + 0.889001f, + 0.881755f, + 0.875351f, + 0.869688f, + 0.864736f, + 0.860745f, + 0.857306f, + 0.854190f, + 0.851261f, + 0.848484f, + 0.845642f, + 0.842948f, + 0.840060f, + 0.836901f, + 0.833379f, + 0.829393f, + 0.825103f, + 0.820431f, + 0.815288f, + 0.809574f, + 0.803326f, + 0.796949f, + 0.790174f, + 0.782873f, + 0.775048f, + 0.767139f, + 0.758772f, + 0.750019f, + 0.741120f, + 0.732127f, + 0.722743f, + 0.713225f, + 0.703637f, + 0.693768f, + 0.684016f, + 0.674277f, + 0.664703f, + 0.655328f, + 0.646550f, + 0.637812f, + 0.629036f, + 0.620129f, + 0.999692f, + 0.999692f, + 0.999692f, + 0.999692f, + 0.999692f, + 0.999508f, + 0.998917f, + 0.996236f, + 0.994617f, + 0.991176f, + 0.987089f, + 0.981881f, + 0.974966f, + 0.967156f, + 0.957914f, + 0.947585f, + 0.936938f, + 0.926318f, + 0.915661f, + 0.905567f, + 0.896223f, + 0.888166f, + 0.881117f, + 0.875079f, + 0.869981f, + 0.865675f, + 0.862091f, + 0.859183f, + 0.856981f, + 0.855065f, + 0.853273f, + 0.851572f, + 0.849782f, + 0.847768f, + 0.845668f, + 0.843345f, + 0.840703f, + 0.837646f, + 0.834095f, + 0.830030f, + 0.825631f, + 0.820873f, + 0.815619f, + 0.809856f, + 0.803578f, + 0.797096f, + 0.790359f, + 0.783152f, + 0.775507f, + 0.767504f, + 0.759411f, + 0.750982f, + 0.742208f, + 0.733382f, + 0.724445f, + 0.715190f, + 0.705827f, + 0.696440f, + 0.686773f, + 0.677242f, + 0.667735f, + 0.658471f, + 0.649236f, + 0.640305f, + 0.999595f, + 0.999595f, + 0.999595f, + 0.999595f, + 0.999595f, + 0.999350f, + 0.997576f, + 0.995477f, + 0.992614f, + 0.988817f, + 0.983601f, + 0.976880f, + 0.968694f, + 0.959092f, + 0.948297f, + 0.936831f, + 0.925592f, + 0.914494f, + 0.904159f, + 0.894643f, + 0.886417f, + 0.879620f, + 0.874023f, + 0.869533f, + 0.865967f, + 0.863237f, + 0.861113f, + 0.859527f, + 0.858367f, + 0.857594f, + 0.856882f, + 0.856172f, + 0.855316f, + 0.854197f, + 0.852818f, + 0.851062f, + 0.849046f, + 0.846747f, + 0.844043f, + 0.840842f, + 0.837164f, + 0.832985f, + 0.828344f, + 0.823544f, + 0.818276f, + 0.812543f, + 0.806374f, + 0.799838f, + 0.793170f, + 0.786247f, + 0.778956f, + 0.771297f, + 0.763278f, + 0.755252f, + 0.746984f, + 0.738445f, + 0.729688f, + 0.721045f, + 0.712189f, + 0.703099f, + 0.694045f, + 0.684930f, + 0.675601f, + 0.666480f, + 0.999439f, + 0.999439f, + 0.999439f, + 0.999439f, + 0.999439f, + 0.999093f, + 0.996310f, + 0.994405f, + 0.990527f, + 0.985186f, + 0.978518f, + 0.969748f, + 0.959597f, + 0.948104f, + 0.935724f, + 0.923704f, + 0.912023f, + 0.901356f, + 0.891850f, + 0.883847f, + 0.877279f, + 0.872289f, + 0.868583f, + 0.865913f, + 0.864098f, + 0.862993f, + 0.862356f, + 0.862125f, + 0.862107f, + 0.862169f, + 0.862359f, + 0.862490f, + 0.862430f, + 0.862063f, + 0.861431f, + 0.860386f, + 0.858950f, + 0.857090f, + 0.854848f, + 0.852381f, + 0.849503f, + 0.846167f, + 0.842399f, + 0.838194f, + 0.833566f, + 0.828579f, + 0.823464f, + 0.817951f, + 0.812079f, + 0.805873f, + 0.799320f, + 0.792533f, + 0.785715f, + 0.778636f, + 0.771260f, + 0.763618f, + 0.755719f, + 0.747815f, + 0.739825f, + 0.731602f, + 0.723212f, + 0.714846f, + 0.706465f, + 0.697933f, + 0.999179f, + 0.999179f, + 0.999179f, + 0.999179f, + 0.999179f, + 0.997943f, + 0.995219f, + 0.991760f, + 0.986663f, + 0.979592f, + 0.970218f, + 0.959155f, + 0.946575f, + 0.933047f, + 0.920022f, + 0.907749f, + 0.896801f, + 0.887506f, + 0.880077f, + 0.874322f, + 0.870126f, + 0.867481f, + 0.865949f, + 0.865293f, + 0.865287f, + 0.865746f, + 0.866502f, + 0.867439f, + 0.868442f, + 0.869382f, + 0.870161f, + 0.870782f, + 0.871303f, + 0.871511f, + 0.871427f, + 0.870978f, + 0.870136f, + 0.868893f, + 0.867248f, + 0.865209f, + 0.862775f, + 0.859944f, + 0.857004f, + 0.853671f, + 0.849984f, + 0.845927f, + 0.841518f, + 0.836774f, + 0.831750f, + 0.826407f, + 0.821001f, + 0.815333f, + 0.809412f, + 0.803238f, + 0.796802f, + 0.790204f, + 0.783457f, + 0.776713f, + 0.769749f, + 0.762596f, + 0.755239f, + 0.747690f, + 0.740127f, + 0.732595f, + 0.998113f, + 0.998113f, + 0.998113f, + 0.998113f, + 0.998113f, + 0.996124f, + 0.992844f, + 0.987757f, + 0.980062f, + 0.969642f, + 0.957087f, + 0.942736f, + 0.927747f, + 0.913622f, + 0.900889f, + 0.890115f, + 0.881584f, + 0.875288f, + 0.870926f, + 0.868307f, + 0.867033f, + 0.866972f, + 0.867692f, + 0.868950f, + 0.870549f, + 0.872320f, + 0.874144f, + 0.875947f, + 0.877674f, + 0.879192f, + 0.880478f, + 0.881539f, + 0.882307f, + 0.882739f, + 0.882902f, + 0.882847f, + 0.882461f, + 0.881725f, + 0.880636f, + 0.879197f, + 0.877421f, + 0.875296f, + 0.872849f, + 0.870076f, + 0.866988f, + 0.863637f, + 0.860159f, + 0.856475f, + 0.852525f, + 0.848327f, + 0.843883f, + 0.839198f, + 0.834322f, + 0.829221f, + 0.823907f, + 0.818460f, + 0.812972f, + 0.807315f, + 0.801473f, + 0.795458f, + 0.789275f, + 0.783025f, + 0.776615f, + 0.770223f, + 0.995737f, + 0.995737f, + 0.995737f, + 0.995737f, + 0.995737f, + 0.994123f, + 0.988168f, + 0.979344f, + 0.967003f, + 0.951763f, + 0.934724f, + 0.917948f, + 0.902918f, + 0.890432f, + 0.880902f, + 0.874401f, + 0.870394f, + 0.868503f, + 0.868209f, + 0.869062f, + 0.870725f, + 0.873006f, + 0.875558f, + 0.878230f, + 0.880892f, + 0.883445f, + 0.885832f, + 0.888059f, + 0.890058f, + 0.891782f, + 0.893247f, + 0.894460f, + 0.895397f, + 0.896023f, + 0.896380f, + 0.896434f, + 0.896198f, + 0.895673f, + 0.894865f, + 0.893908f, + 0.892700f, + 0.891224f, + 0.889501f, + 0.887539f, + 0.885336f, + 0.882903f, + 0.880244f, + 0.877373f, + 0.874296f, + 0.871019f, + 0.867549f, + 0.863932f, + 0.860153f, + 0.856355f, + 0.852395f, + 0.848277f, + 0.844006f, + 0.839587f, + 0.835045f, + 0.830378f, + 0.825579f, + 0.820649f, + 0.815592f, + 0.810432f, + 0.991627f, + 0.991627f, + 0.991627f, + 0.991627f, + 0.991627f, + 0.987290f, + 0.975397f, + 0.958508f, + 0.938352f, + 0.917733f, + 0.899800f, + 0.885878f, + 0.876516f, + 0.871200f, + 0.869099f, + 0.869317f, + 0.871112f, + 0.873870f, + 0.877160f, + 0.880682f, + 0.884229f, + 0.887737f, + 0.891076f, + 0.894161f, + 0.896981f, + 0.899543f, + 0.901847f, + 0.903882f, + 0.905672f, + 0.907188f, + 0.908451f, + 0.909480f, + 0.910289f, + 0.910878f, + 0.911259f, + 0.911430f, + 0.911396f, + 0.911154f, + 0.910712f, + 0.910081f, + 0.909266f, + 0.908264f, + 0.907094f, + 0.905752f, + 0.904244f, + 0.902577f, + 0.900799f, + 0.898931f, + 0.896923f, + 0.894782f, + 0.892513f, + 0.890117f, + 0.887600f, + 0.884968f, + 0.882222f, + 0.879369f, + 0.876408f, + 0.873345f, + 0.870183f, + 0.866925f, + 0.863575f, + 0.860160f, + 0.856672f, + 0.853098f, + 0.979942f, + 0.979942f, + 0.979942f, + 0.979942f, + 0.979942f, + 0.969716f, + 0.946057f, + 0.919578f, + 0.897061f, + 0.881240f, + 0.872544f, + 0.869415f, + 0.870091f, + 0.873049f, + 0.877196f, + 0.881826f, + 0.886523f, + 0.891022f, + 0.895225f, + 0.899054f, + 0.902538f, + 0.905714f, + 0.908532f, + 0.911016f, + 0.913201f, + 0.915120f, + 0.916813f, + 0.918292f, + 0.919581f, + 0.920674f, + 0.921575f, + 0.922321f, + 0.922902f, + 0.923329f, + 0.923616f, + 0.923756f, + 0.923765f, + 0.923641f, + 0.923396f, + 0.923026f, + 0.922542f, + 0.921943f, + 0.921237f, + 0.920427f, + 0.919514f, + 0.918502f, + 0.917397f, + 0.916203f, + 0.914920f, + 0.913553f, + 0.912107f, + 0.910581f, + 0.908980f, + 0.907306f, + 0.905561f, + 0.903749f, + 0.901869f, + 0.899925f, + 0.897961f, + 0.895966f, + 0.893913f, + 0.891804f, + 0.889640f, + 0.887423f, + 0.979942f, + 0.979942f, + 0.979942f, + 0.979942f, + 0.979942f, + 0.969716f, + 0.946057f, + 0.919578f, + 0.897061f, + 0.881240f, + 0.872544f, + 0.869415f, + 0.870091f, + 0.873049f, + 0.877196f, + 0.881826f, + 0.886523f, + 0.891022f, + 0.895225f, + 0.899054f, + 0.902538f, + 0.905714f, + 0.908532f, + 0.911016f, + 0.913201f, + 0.915120f, + 0.916813f, + 0.918292f, + 0.919581f, + 0.920674f, + 0.921575f, + 0.922321f, + 0.922902f, + 0.923329f, + 0.923616f, + 0.923756f, + 0.923765f, + 0.923641f, + 0.923396f, + 0.923026f, + 0.922542f, + 0.921943f, + 0.921237f, + 0.920427f, + 0.919514f, + 0.918502f, + 0.917397f, + 0.916203f, + 0.914920f, + 0.913553f, + 0.912107f, + 0.910581f, + 0.908980f, + 0.907306f, + 0.905561f, + 0.903749f, + 0.901869f, + 0.899925f, + 0.897961f, + 0.895966f, + 0.893913f, + 0.891804f, + 0.889640f, + 0.887423f + }; + } + } +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs.hlsl new file mode 100644 index 00000000000..d335dd53fb6 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs.hlsl @@ -0,0 +1,105 @@ +// +// This file was automatically generated from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs. Please don't edit by hand. +// + +// +// UnityEngine.Experimental.ScriptableRenderLoop.Lit.MaterialId: static fields +// +#define MATERIALID_LIT_STANDARD (0) +#define MATERIALID_LIT_SSS (1) +#define MATERIALID_LIT_CLEAR_COAT (2) +#define MATERIALID_LIT_SPECULAR (3) +#define MATERIALID_LIT_ANISO (4) + +// +// UnityEngine.Experimental.ScriptableRenderLoop.Lit.SurfaceData: static fields +// +#define DEBUGVIEW_LIT_SURFACEDATA_BASE_COLOR (1000) +#define DEBUGVIEW_LIT_SURFACEDATA_SPECULAR_OCCLUSION (1001) +#define DEBUGVIEW_LIT_SURFACEDATA_NORMAL_WS (1002) +#define DEBUGVIEW_LIT_SURFACEDATA_PERCEPTUAL_SMOOTHNESS (1003) +#define DEBUGVIEW_LIT_SURFACEDATA_MATERIAL_ID (1004) +#define DEBUGVIEW_LIT_SURFACEDATA_AMBIENT_OCCLUSION (1005) +#define DEBUGVIEW_LIT_SURFACEDATA_TANGENT_WS (1006) +#define DEBUGVIEW_LIT_SURFACEDATA_ANISOTROPY (1007) +#define DEBUGVIEW_LIT_SURFACEDATA_METALLIC (1008) +#define DEBUGVIEW_LIT_SURFACEDATA_SPECULAR (1009) +#define DEBUGVIEW_LIT_SURFACEDATA_SUB_SURFACE_RADIUS (1010) +#define DEBUGVIEW_LIT_SURFACEDATA_THICKNESS (1011) +#define DEBUGVIEW_LIT_SURFACEDATA_SUB_SURFACE_PROFILE (1012) +#define DEBUGVIEW_LIT_SURFACEDATA_COAT_NORMAL_WS (1013) +#define DEBUGVIEW_LIT_SURFACEDATA_COAT_PERCEPTUAL_SMOOTHNESS (1014) +#define DEBUGVIEW_LIT_SURFACEDATA_SPECULAR_COLOR (1015) + +// +// UnityEngine.Experimental.ScriptableRenderLoop.Lit.BSDFData: static fields +// +#define DEBUGVIEW_LIT_BSDFDATA_DIFFUSE_COLOR (1030) +#define DEBUGVIEW_LIT_BSDFDATA_FRESNEL0 (1031) +#define DEBUGVIEW_LIT_BSDFDATA_SPECULAR_OCCLUSION (1032) +#define DEBUGVIEW_LIT_BSDFDATA_NORMAL_WS (1033) +#define DEBUGVIEW_LIT_BSDFDATA_PERCEPTUAL_ROUGHNESS (1034) +#define DEBUGVIEW_LIT_BSDFDATA_ROUGHNESS (1035) +#define DEBUGVIEW_LIT_BSDFDATA_MATERIAL_ID (1036) +#define DEBUGVIEW_LIT_BSDFDATA_TANGENT_WS (1037) +#define DEBUGVIEW_LIT_BSDFDATA_BITANGENT_WS (1038) +#define DEBUGVIEW_LIT_BSDFDATA_ROUGHNESS_T (1039) +#define DEBUGVIEW_LIT_BSDFDATA_ROUGHNESS_B (1040) +#define DEBUGVIEW_LIT_BSDFDATA_ANISOTROPY (1041) +#define DEBUGVIEW_LIT_BSDFDATA_SUB_SURFACE_RADIUS (1042) +#define DEBUGVIEW_LIT_BSDFDATA_THICKNESS (1043) +#define DEBUGVIEW_LIT_BSDFDATA_SUB_SURFACE_PROFILE (1044) +#define DEBUGVIEW_LIT_BSDFDATA_COAT_NORMAL_WS (1045) +#define DEBUGVIEW_LIT_BSDFDATA_COAT_ROUGHNESS (1046) + +// +// UnityEngine.Experimental.ScriptableRenderLoop.Lit.GBufferMaterial: static fields +// +#define GBUFFERMATERIAL_COUNT (3) + +// Generated from UnityEngine.Experimental.ScriptableRenderLoop.Lit.SurfaceData +// PackingRules = Exact +struct SurfaceData +{ + float3 baseColor; + float specularOcclusion; + float3 normalWS; + float perceptualSmoothness; + int materialId; + float ambientOcclusion; + float3 tangentWS; + float anisotropy; + float metallic; + float specular; + float subSurfaceRadius; + float thickness; + int subSurfaceProfile; + float3 coatNormalWS; + float coatPerceptualSmoothness; + float3 specularColor; +}; + +// Generated from UnityEngine.Experimental.ScriptableRenderLoop.Lit.BSDFData +// PackingRules = Exact +struct BSDFData +{ + float3 diffuseColor; + float3 fresnel0; + float specularOcclusion; + float3 normalWS; + float perceptualRoughness; + float roughness; + float materialId; + float3 tangentWS; + float3 bitangentWS; + float roughnessT; + float roughnessB; + float anisotropy; + float subSurfaceRadius; + float thickness; + int subSurfaceProfile; + float3 coatNormalWS; + float coatRoughness; +}; + + diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs.hlsl.meta new file mode 100644 index 00000000000..310637ff43f --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ee69429b3df477b4391cbf8b40b46a23 +timeCreated: 1476010259 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs.meta new file mode 100644 index 00000000000..cb4baaa5dbe --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: c35b94e21bc30c948928a1131e79bd2e +timeCreated: 1476007916 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.hlsl new file mode 100644 index 00000000000..b2cc1e566b6 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.hlsl @@ -0,0 +1,670 @@ +#ifndef UNITY_MATERIAL_LIT_INCLUDED +#define UNITY_MATERIAL_LIT_INCLUDED + +//----------------------------------------------------------------------------- +// SurfaceData and BSDFData +//----------------------------------------------------------------------------- + +// SurfaceData is define in Lit.cs which generate Lit.cs.hlsl +#include "Lit.cs.hlsl" + +// Reference Lambert diffuse / GGX Specular for IBL and area lights +//#define LIT_DISPLAY_REFERENCE + +// TODO: Check if anisotropy with a dynamic if on anisotropy > 0 is performant. Because it may mean we always calculate both isotrpy and anisotropy case. +// Maybe we should always calculate anisotropy in case of standard ? Don't think the compile can optimize correctly. + +//----------------------------------------------------------------------------- +// Helper functions/variable specific to this materia +//----------------------------------------------------------------------------- + +float PackMaterialId(int materialId) +{ + return float(materialId) / 3.0; +} + +int UnpackMaterialId(float f) +{ + return int(round(f * 3.0)); +} + +// TODO: How can I declare a sampler for this one that is bilinear filtering +// TODO: This one should be set into a constant Buffer at pass frequency (with _Screensize) +UNITY_DECLARE_TEX2D(_PreIntegratedFGD); +UNITY_DECLARE_TEX2D(_LtcGGXMatrix); +UNITY_DECLARE_TEX2D(_LtcGGXMagnitude); + +// For image based lighting, a part of the BSDF is pre-integrated. +// This is done both for specular and diffuse (in case of DisneyDiffuse) +void GetPreIntegratedFGD(float NdotV, float perceptualRoughness, float3 fresnel0, out float3 specularFGD, out float diffuseFGD) +{ + // Pre-integrate GGX FGD + // _PreIntegratedFGD.x = Gv * (1 - Fc) with Fc = (1 - H.L)^5 + // _PreIntegratedFGD.y = Gv * Fc + // Pre integrate DisneyDiffuse FGD: + // _PreIntegratedFGD.z = DisneyDiffuse + float3 preFGD = UNITY_SAMPLE_TEX2D_LOD(_PreIntegratedFGD, float2(NdotV, perceptualRoughness), 0).xyz; + + // f0 * Gv * (1 - Fc) + Gv * Fc + specularFGD = fresnel0 * preFGD.x + preFGD.y; +#if DIFFUSE_LAMBERT_BRDF + diffuseFGD = 1.0; +#else + diffuseFGD = preFGD.z; +#endif +} + +//----------------------------------------------------------------------------- +// conversion function for forward +//----------------------------------------------------------------------------- + +BSDFData ConvertSurfaceDataToBSDFData(SurfaceData surfaceData) +{ + BSDFData bsdfData; + ZERO_INITIALIZE(BSDFData, bsdfData); + + bsdfData.specularOcclusion = surfaceData.specularOcclusion; + bsdfData.normalWS = surfaceData.normalWS; + bsdfData.perceptualRoughness = PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness); + bsdfData.roughness = PerceptualRoughnessToRoughness(bsdfData.perceptualRoughness); + bsdfData.materialId = surfaceData.materialId; + bsdfData.diffuseColor = surfaceData.baseColor; + + if (bsdfData.materialId == MATERIALID_LIT_STANDARD) + { + bsdfData.diffuseColor = surfaceData.baseColor * (1.0 - surfaceData.metallic); + bsdfData.fresnel0 = lerp(float3(surfaceData.specular, surfaceData.specular, surfaceData.specular), surfaceData.baseColor, surfaceData.metallic); + + bsdfData.tangentWS = surfaceData.tangentWS; + bsdfData.bitangentWS = cross(surfaceData.normalWS, surfaceData.tangentWS); + ConvertAnisotropyToRoughness(bsdfData.roughness, surfaceData.anisotropy, bsdfData.roughnessT, bsdfData.roughnessB); + bsdfData.anisotropy = surfaceData.anisotropy; + + bsdfData.materialId = surfaceData.anisotropy > 0 ? MATERIALID_LIT_ANISO : bsdfData.materialId; + } + else if (bsdfData.materialId == MATERIALID_LIT_SSS) + { + bsdfData.diffuseColor = surfaceData.baseColor; + bsdfData.fresnel0 = 0.028; // TODO take from subSurfaceProfile + bsdfData.subSurfaceRadius = surfaceData.subSurfaceRadius; + bsdfData.thickness = surfaceData.thickness; + bsdfData.subSurfaceProfile = surfaceData.subSurfaceProfile; + } + else if (bsdfData.materialId == MATERIALID_LIT_CLEAR_COAT) + { + bsdfData.diffuseColor = surfaceData.baseColor * (1.0 - surfaceData.metallic); + bsdfData.fresnel0 = lerp(float3(surfaceData.specular, surfaceData.specular, surfaceData.specular), surfaceData.baseColor, surfaceData.metallic); + bsdfData.coatNormalWS = surfaceData.coatNormalWS; + bsdfData.coatRoughness = PerceptualSmoothnessToRoughness(surfaceData.coatPerceptualSmoothness); + } + else if (bsdfData.materialId == MATERIALID_LIT_SPECULAR) + { + bsdfData.diffuseColor = surfaceData.baseColor; + bsdfData.fresnel0 = surfaceData.specularColor; + } + + return bsdfData; +} + +//----------------------------------------------------------------------------- +// conversion function for deferred +//----------------------------------------------------------------------------- + +// Encode SurfaceData (BSDF parameters) into GBuffer +// Must be in sync with RT declared in HDRenderLoop.cs ::Rebuild +void EncodeIntoGBuffer( SurfaceData surfaceData, + out float4 outGBuffer0, + out float4 outGBuffer1, + out float4 outGBuffer2) +{ + // RT0 - 8:8:8:8 sRGB + outGBuffer0 = float4(surfaceData.baseColor, surfaceData.specularOcclusion); + + // RT1 - 10:10:10:2 + // Encode normal on 20bit with oct compression + float2 octNormalWS = PackNormalOctEncode(surfaceData.normalWS); + // We store perceptualRoughness instead of roughness because it save a sqrt ALU when decoding + // (as we want both perceptualRoughness and roughness for the lighting due to Disney Diffuse model) + // TODO: Store 2 bit of flag into perceptualSmoothness (one for SSR, other is free (deferred planar reflection ID ? / MatID extension ?) + outGBuffer1 = float4(octNormalWS * 0.5 + 0.5, PerceptualSmoothnessToPerceptualRoughness(surfaceData.perceptualSmoothness), PackMaterialId(surfaceData.materialId)); + + // RT2 - 8:8:8:8 + if (surfaceData.materialId == MATERIALID_LIT_STANDARD) + { + // Encode tangent on 16bit with oct compression + float2 octTangentWS = PackNormalOctEncode(surfaceData.tangentWS); + // TODO: store metal and specular together, specular should be an enum (fixed value) + outGBuffer2 = float4(octTangentWS * 0.5 + 0.5, surfaceData.anisotropy, surfaceData.metallic); + } + else if (surfaceData.materialId == MATERIALID_LIT_SSS) + { + outGBuffer2 = float4(surfaceData.subSurfaceRadius, surfaceData.thickness, 0.0, surfaceData.subSurfaceProfile / 8.0f); // Number of profile not define yet + } + else if (surfaceData.materialId == MATERIALID_LIT_CLEAR_COAT) + { + // Encode coat normal on 16bit with oct compression + float2 octCoatNormalWS = PackNormalOctEncode(surfaceData.coatNormalWS); + // TODO: store metal and specular together, specular should be an enum (fixed value) + outGBuffer2 = float4(octCoatNormalWS * 0.5 + 0.5, PerceptualSmoothnessToRoughness(surfaceData.coatPerceptualSmoothness), surfaceData.metallic); + } + else if (surfaceData.materialId == MATERIALID_LIT_SPECULAR) + { + outGBuffer2 = float4(surfaceData.specularColor, 0.0); + } +} + +BSDFData DecodeFromGBuffer( float4 inGBuffer0, + float4 inGBuffer1, + float4 inGBuffer2) +{ + BSDFData bsdfData; + ZERO_INITIALIZE(BSDFData, bsdfData); + + float3 baseColor = inGBuffer0.rgb; + bsdfData.specularOcclusion = inGBuffer0.a; + + bsdfData.normalWS = UnpackNormalOctEncode(float2(inGBuffer1.r * 2.0 - 1.0, inGBuffer1.g * 2.0 - 1.0)); + bsdfData.perceptualRoughness = inGBuffer1.b; + bsdfData.roughness = PerceptualRoughnessToRoughness(bsdfData.perceptualRoughness); + bsdfData.materialId = UnpackMaterialId(inGBuffer1.a); + + if (bsdfData.materialId == MATERIALID_LIT_STANDARD) + { + float metallic = inGBuffer2.a; + // TODO extract spec + float specular = 0.04; + float anisotropy = inGBuffer2.b; + + bsdfData.diffuseColor = baseColor * (1.0 - metallic); + bsdfData.fresnel0 = lerp(float3(specular, specular, specular), baseColor, metallic); + + bsdfData.tangentWS = UnpackNormalOctEncode(float2(inGBuffer2.rg * 2.0 - 1.0)); + bsdfData.bitangentWS = cross(bsdfData.normalWS, bsdfData.tangentWS); + ConvertAnisotropyToRoughness(bsdfData.roughness, anisotropy, bsdfData.roughnessT, bsdfData.roughnessB); + bsdfData.anisotropy = anisotropy; + + bsdfData.materialId = anisotropy > 0 ? MATERIALID_LIT_ANISO : bsdfData.materialId; + } + else if (bsdfData.materialId == MATERIALID_LIT_SSS) + { + bsdfData.diffuseColor = baseColor; + bsdfData.fresnel0 = 0.028; // TODO take from subSurfaceProfile + bsdfData.subSurfaceRadius = inGBuffer2.r; + bsdfData.thickness = inGBuffer2.g; + bsdfData.subSurfaceProfile = inGBuffer2.a * 8.0f; + } + else if (bsdfData.materialId == MATERIALID_LIT_CLEAR_COAT) + { + float metallic = inGBuffer2.a; + // TODO extract spec + float specular = 0.04; + + bsdfData.diffuseColor = baseColor * (1.0 - metallic); + bsdfData.fresnel0 = lerp(float3(specular, specular, specular), baseColor, metallic); + bsdfData.coatNormalWS = UnpackNormalOctEncode(float2(inGBuffer2.rg * 2.0 - 1.0)); + bsdfData.coatRoughness = inGBuffer2.b; + } + else if (bsdfData.materialId == MATERIALID_LIT_SPECULAR) + { + bsdfData.diffuseColor = baseColor; + bsdfData.fresnel0 = inGBuffer2.rgb; + } + + return bsdfData; +} + +//----------------------------------------------------------------------------- +// Debug method (use to display values) +//----------------------------------------------------------------------------- + +void GetSurfaceDataDebug(uint paramId, SurfaceData surfaceData, inout float3 result, inout bool needLinearToSRGB) +{ + switch (paramId) + { + case DEBUGVIEW_LIT_SURFACEDATA_BASE_COLOR: + result = surfaceData.baseColor; needLinearToSRGB = true; + break; + case DEBUGVIEW_LIT_SURFACEDATA_SPECULAR_OCCLUSION: + result = surfaceData.specularOcclusion.xxx; + break; + case DEBUGVIEW_LIT_SURFACEDATA_NORMAL_WS: + result = surfaceData.normalWS * 0.5 + 0.5; + break; + case DEBUGVIEW_LIT_SURFACEDATA_PERCEPTUAL_SMOOTHNESS: + result = surfaceData.perceptualSmoothness.xxx; + break; + case DEBUGVIEW_LIT_SURFACEDATA_MATERIAL_ID: + result = GetIndexColor(surfaceData.materialId); + break; + case DEBUGVIEW_LIT_SURFACEDATA_AMBIENT_OCCLUSION: + result = surfaceData.ambientOcclusion.xxx; + break; + case DEBUGVIEW_LIT_SURFACEDATA_TANGENT_WS: + result = surfaceData.tangentWS * 0.5 + 0.5; + break; + case DEBUGVIEW_LIT_SURFACEDATA_ANISOTROPY: + result = surfaceData.anisotropy.xxx; + break; + case DEBUGVIEW_LIT_SURFACEDATA_METALLIC: + result = surfaceData.metallic.xxx; + break; + // TODO: Remap here! + case DEBUGVIEW_LIT_SURFACEDATA_SPECULAR: + result = surfaceData.specular.xxx; + break; + case DEBUGVIEW_LIT_SURFACEDATA_SUB_SURFACE_RADIUS: + result = surfaceData.subSurfaceRadius.xxx; + break; + case DEBUGVIEW_LIT_SURFACEDATA_THICKNESS: + result = surfaceData.thickness.xxx; + break; + case DEBUGVIEW_LIT_SURFACEDATA_SUB_SURFACE_PROFILE: + result = GetIndexColor(surfaceData.subSurfaceProfile); + break; + case DEBUGVIEW_LIT_SURFACEDATA_COAT_NORMAL_WS: + result = surfaceData.coatNormalWS * 0.5 + 0.5; + break; + case DEBUGVIEW_LIT_SURFACEDATA_COAT_PERCEPTUAL_SMOOTHNESS: + result = surfaceData.coatPerceptualSmoothness.xxx; + break; + case DEBUGVIEW_LIT_SURFACEDATA_SPECULAR_COLOR: + result = surfaceData.specularColor; needLinearToSRGB = true; + break; + } +} + +void GetBSDFDataDebug(uint paramId, BSDFData bsdfData, inout float3 result, inout bool needLinearToSRGB) +{ + switch (paramId) + { + case DEBUGVIEW_LIT_BSDFDATA_DIFFUSE_COLOR: + result = bsdfData.diffuseColor; needLinearToSRGB = true; + break; + case DEBUGVIEW_LIT_BSDFDATA_FRESNEL0: + result = bsdfData.fresnel0; + break; + case DEBUGVIEW_LIT_BSDFDATA_SPECULAR_OCCLUSION: + result = bsdfData.specularOcclusion.xxx; + break; + case DEBUGVIEW_LIT_BSDFDATA_NORMAL_WS: + result = bsdfData.normalWS * 0.5 + 0.5; + break; + case DEBUGVIEW_LIT_BSDFDATA_PERCEPTUAL_ROUGHNESS: + result = bsdfData.perceptualRoughness.xxx; + break; + case DEBUGVIEW_LIT_BSDFDATA_ROUGHNESS: + result = bsdfData.roughness.xxx; + break; + case DEBUGVIEW_LIT_BSDFDATA_MATERIAL_ID: + result = GetIndexColor(bsdfData.materialId); + break; + case DEBUGVIEW_LIT_BSDFDATA_TANGENT_WS: + result = bsdfData.tangentWS * 0.5 + 0.5; + break; + case DEBUGVIEW_LIT_BSDFDATA_BITANGENT_WS: + result = bsdfData.bitangentWS * 0.5 + 0.5; + break; + case DEBUGVIEW_LIT_BSDFDATA_ROUGHNESS_T: + result = bsdfData.roughnessT.xxx; + break; + case DEBUGVIEW_LIT_BSDFDATA_ROUGHNESS_B: + result = bsdfData.roughnessB.xxx; + break; + case DEBUGVIEW_LIT_BSDFDATA_ANISOTROPY: + result = bsdfData.anisotropy.xxx; + break; + case DEBUGVIEW_LIT_BSDFDATA_SUB_SURFACE_RADIUS: + result = bsdfData.subSurfaceRadius.xxx; + break; + case DEBUGVIEW_LIT_BSDFDATA_THICKNESS: + result = bsdfData.thickness.xxx; + break; + case DEBUGVIEW_LIT_BSDFDATA_SUB_SURFACE_PROFILE: + result = GetIndexColor(bsdfData.subSurfaceProfile); + break; + case DEBUGVIEW_LIT_BSDFDATA_COAT_NORMAL_WS: + result = bsdfData.coatNormalWS * 0.5 + 0.5; + break; + case DEBUGVIEW_LIT_BSDFDATA_COAT_ROUGHNESS: + result = bsdfData.coatRoughness.xxx; + break; + } +} + +//----------------------------------------------------------------------------- +// PreLightData +//----------------------------------------------------------------------------- + +// Precomputed lighting data to send to the various lighting functions +struct PreLightData +{ + float NdotV; + float ggxLambdaV; + + // Aniso + float TdotV; + float BdotV; + + float anisoGGXLambdaV; + + // image based lighting + // These variables aim to be use with EvaluateBSDF_Env + float3 iblNormalWS; // Normal to be use with image based lighting + float3 iblR; // Reflction vector, same as above. + + float3 specularFGD; // Store preconvole BRDF for both specular and diffuse + float diffuseFGD; + + // TODO: if we want we can store ambient occlusion here from SSAO pass for example that can be use for IBL specular occlusion + // float ambientOcclusion; // Feed from an ambient occlusion buffer + + // area light + float3x3 minV; + float ltcGGXMagnitude; +}; + +PreLightData GetPreLightData(float3 V, float3 positionWS, Coordinate coord, BSDFData bsdfData) +{ + PreLightData preLightData; + + // TODO: check Eric idea about doing that when writting into the GBuffer (with our forward decal) +#if 0 + preLightData.NdotV = GetShiftedNdotV(bsdfData.normalWS, V); // Note: May not work with speedtree... +#else + preLightData.NdotV = GetNdotV(bsdfData.normalWS, V); +#endif + + preLightData.ggxLambdaV = GetSmithJointGGXLambdaV(preLightData.NdotV, bsdfData.roughness); + + float iblNdotV = preLightData.NdotV; + float3 iblNormalWS = bsdfData.normalWS; + + // Check if we precompute anisotropy too + if (bsdfData.materialId == MATERIALID_LIT_ANISO) + { + preLightData.TdotV = dot(bsdfData.tangentWS, V); + preLightData.BdotV = dot(bsdfData.bitangentWS, V); + preLightData.anisoGGXLambdaV = GetSmithJointGGXAnisoLambdaV(preLightData.TdotV, preLightData.BdotV, preLightData.NdotV, bsdfData.roughnessT, bsdfData.roughnessB); + iblNormalWS = GetAnisotropicModifiedNormal(bsdfData.normalWS, bsdfData.tangentWS, V, bsdfData.anisotropy); + + // NOTE: If we follow the theory we should use the modified normal for the different calculation implying a normal (like NDotV) and use iblNormalWS + // into function like GetSpecularDominantDir(). However modified normal is just a hack. The goal is just to stretch a cubemap, no accuracy here. + // With this in mind and for performance reasons we chose to only use modified normal to calculate R. + // iblNdotV = GetNdotV(iblNormalWS, V); + } + + // We need to take into account the modified normal for faking anisotropic here. + preLightData.iblR = reflect(-V, iblNormalWS); + GetPreIntegratedFGD(iblNdotV, bsdfData.perceptualRoughness, bsdfData.fresnel0, preLightData.specularFGD, preLightData.diffuseFGD); + + // #if SHADERPASS == SHADERPASS_GBUFFER + // preLightData.ambientOcclusion = _AmbientOcclusion.Load(uint3(coord.unPositionSS, 0)).x; + // #endif + + // Area light specific + // UVs for sampling the LUTs + // TODO: Test with fastAcos + float theta = acos(dot(bsdfData.normalWS, V)); + // Scale and bias for the current precomputed table + float2 uv = 0.0078125 + 0.984375 * float2(bsdfData.perceptualRoughness, theta * INV_HALF_PI); + + // Get the inverse LTC matrix for GGX + // Note we load the matrix transpose (avoid to have to transpose it in shader) + preLightData.minV = 0.0; + preLightData.minV._m22 = 1.0; + preLightData.minV._m00_m02_m11_m20 = UNITY_SAMPLE_TEX2D_LOD(_LtcGGXMatrix, uv, 0); + + preLightData.ltcGGXMagnitude = UNITY_SAMPLE_TEX2D_LOD(_LtcGGXMagnitude, uv, 0).w; + + return preLightData; +} + +//----------------------------------------------------------------------------- +// bake lighting function +//----------------------------------------------------------------------------- + +// GetBakedDiffuseLigthing function compute the bake lighting + emissive color to be store in emissive buffer (Deferred case) +// In forward it must be add to the final contribution. +// This function require the 3 structure surfaceData, builtinData, bsdfData because it may require both the engine side data, and data that will not be store inside the gbuffer. +float3 GetBakedDiffuseLigthing(PreLightData prelightData, SurfaceData surfaceData, BuiltinData builtinData, BSDFData bsdfData) +{ + // Premultiply bake diffuse lighting information with DisneyDiffuse pre-integration + return builtinData.bakeDiffuseLighting * prelightData.diffuseFGD * surfaceData.ambientOcclusion * bsdfData.diffuseColor + builtinData.emissiveColor * builtinData.emissiveIntensity; +} + +//----------------------------------------------------------------------------- +// light transport functions +//----------------------------------------------------------------------------- + +LighTransportData GetLightTransportData(SurfaceData surfaceData, BuiltinData builtinData, BSDFData bsdfData) +{ + LighTransportData lightTransportData; + + // diffuseColor for lightmapping should basically be diffuse color. + // But rough metals (black diffuse) still scatter quite a lot of light around, so + // we want to take some of that into account too. + + lightTransportData.diffuseColor = bsdfData.diffuseColor + bsdfData.fresnel0 * bsdfData.roughness * 0.5 * surfaceData.metallic; + lightTransportData.emissiveColor = builtinData.emissiveColor * builtinData.emissiveIntensity; + + return lightTransportData; +} + +//----------------------------------------------------------------------------- +// BSDF share between area light (reference) and punctual light +//----------------------------------------------------------------------------- + +void BSDF( float3 V, float3 L, float3 positionWS, PreLightData prelightData, BSDFData bsdfData, + out float3 diffuseLighting, + out float3 specularLighting) +{ + float3 H = normalize(V + L); + float LdotH = saturate(dot(L, H)); + float NdotH = saturate(dot(bsdfData.normalWS, H)); + float NdotL = saturate(dot(bsdfData.normalWS, L)); + float3 F = F_Schlick(bsdfData.fresnel0, LdotH); + + float Vis; + float D; + // TODO: this way of handling aniso may not be efficient, or maybe with material classification, need to check perf here + // Maybe always using aniso maybe a win ? + if (bsdfData.materialId == MATERIALID_LIT_ANISO) + { + float TdotL = saturate(dot(bsdfData.tangentWS, L)); + float BdotL = saturate(dot(bsdfData.bitangentWS, L)); + + #ifdef USE_BSDF_PRE_LAMBDAV + Vis = V_SmithJointGGXAnisoLambdaV( prelightData.TdotV, prelightData.BdotV, prelightData.NdotV, TdotL, BdotL, NdotL, + bsdfData.roughnessT, bsdfData.roughnessB, prelightData.anisoGGXlambdaV); + #else + Vis = V_SmithJointGGXAniso( prelightData.TdotV, prelightData.BdotV, prelightData.NdotV, TdotL, BdotL, NdotL, + bsdfData.roughnessT, bsdfData.roughnessB); + #endif + + float TdotH = saturate(dot(bsdfData.tangentWS, H)); + float BdotH = saturate(dot(bsdfData.bitangentWS, H)); + D = D_GGXAnisoDividePI(TdotH, BdotH, NdotH, bsdfData.roughnessT, bsdfData.roughnessB); + } + else + { + #ifdef USE_BSDF_PRE_LAMBDAV + Vis = V_SmithJointGGX(NdotL, prelightData.NdotV, bsdfData.roughness, prelightData.ggxLambdaV); + #else + Vis = V_SmithJointGGX(NdotL, prelightData.NdotV, bsdfData.roughness); + #endif + D = D_GGXDividePI(NdotH, bsdfData.roughness); + } + specularLighting.rgb = F * Vis * D; + #ifdef DIFFUSE_LAMBERT_BRDF + float diffuseTerm = LambertDividePI(); + #else + float diffuseTerm = DisneyDiffuseDividePI(prelightData.NdotV, NdotL, LdotH, bsdfData.perceptualRoughness); + #endif + diffuseLighting.rgb = bsdfData.diffuseColor * diffuseTerm; +} + +//----------------------------------------------------------------------------- +// EvaluateBSDF_Punctual +//----------------------------------------------------------------------------- + +void EvaluateBSDF_Punctual( float3 V, float3 positionWS, PreLightData prelightData, PunctualLightData lightData, BSDFData bsdfData, + out float4 diffuseLighting, + out float4 specularLighting) +{ + // All punctual light type in the same formula, attenuation is neutral depends on light type. + // light.positionWS is the normalize light direction in case of directional light and invSqrAttenuationRadius is 0 + // mean dot(unL, unL) = 1 and mean GetDistanceAttenuation() will return 1 + // For point light and directional GetAngleAttenuation() return 1 + + float3 unL = lightData.positionWS - positionWS * lightData.useDistanceAttenuation; + float3 L = normalize(unL); + + float attenuation = GetDistanceAttenuation(unL, lightData.invSqrAttenuationRadius); + // Reminder: lights are ortiented backward (-Z) + attenuation *= GetAngleAttenuation(L, -lightData.forward, lightData.angleScale, lightData.angleOffset); + float illuminance = saturate(dot(bsdfData.normalWS, L)) * attenuation; + + diffuseLighting = float4(0.0, 0.0, 0.0, 1.0); + specularLighting = float4(0.0, 0.0, 0.0, 1.0); + + if (illuminance > 0.0f) + { + BSDF(V, L, positionWS, prelightData, bsdfData, diffuseLighting.rgb, specularLighting.rgb); + diffuseLighting.rgb *= lightData.color * illuminance * lightData.diffuseScale; + specularLighting.rgb *= lightData.color * illuminance * lightData.specularScale; + } +} + +//----------------------------------------------------------------------------- +// EvaluateBSDF_Area - Reference +//----------------------------------------------------------------------------- + +void IntegrateGGXAreaRef(float3 V, float3 positionWS, PreLightData prelightData, AreaLightData lightData, BSDFData bsdfData, + out float4 diffuseLighting, + out float4 specularLighting, + uint sampleCount = 512) +{ + // Add some jittering on Hammersley2d + float2 randNum = InitRandom(V.xy * 0.5 + 0.5); + + diffuseLighting = float4(0.0, 0.0, 0.0, 1.0); + specularLighting = float4(0.0, 0.0, 0.0, 1.0); + + for (uint i = 0; i < sampleCount; ++i) + { + float3 P = float3(0.0, 0.0, 0.0); // Sample light point. Random point on the light shape in local space. + float3 Ns = float3(0.0, 0.0, 0.0); // Unit surface normal at P + float lightPdf = 0.0; // Pdf of the light sample + + float2 u = Hammersley2d(i, sampleCount); + u = frac(u + randNum + 0.5); + + float4x4 localToWorld = float4x4(float4(lightData.right, 0.0), float4(lightData.up, 0.0), float4(lightData.forward, 0.0), float4(lightData.positionWS, 1.0)); + + if (lightData.shapeType == AREASHAPETYPE_SPHERE) + SampleSphere(u, localToWorld, lightData.size.x, lightPdf, P, Ns); + else if (lightData.shapeType == AREASHAPETYPE_HEMISPHERE) + SampleHemisphere(u, localToWorld, lightData.size.x, lightPdf, P, Ns); + else if (lightData.shapeType == AREASHAPETYPE_CYLINDER) + SampleCylinder(u, localToWorld, lightData.size.x, lightData.size.y, lightPdf, P, Ns); + else if (lightData.shapeType == AREASHAPETYPE_RECTANGLE) + SampleRectangle(u, localToWorld, lightData.size.x, lightData.size.y, lightPdf, P, Ns); + else if (lightData.shapeType == AREASHAPETYPE_DISK) + SampleDisk(u, localToWorld, lightData.size.x, lightPdf, P, Ns); + else if (lightData.shapeType == AREASHAPETYPE_LINE) + // SampleLine(u, localToWorld, areaLight.lightRadius0, lightPdf, P, Ns); + ; // TODO + + // Get distance + float3 unL = P - positionWS; + float sqrDist = dot(unL, unL); + float3 L = normalize(unL); + + // We calculate area reference light with the area integral rather than the solid angle one. + float illuminance = saturate(dot(Ns, -L)) * saturate(dot(bsdfData.normalWS, L)) / (sqrDist * lightPdf); + + float3 localDiffuseLighting = float3(0.0, 0.0, 0.0); + float3 localSpecularLighting = float3(0.0, 0.0, 0.0); + + if (illuminance > 0.0) + { + BSDF(V, L, positionWS, prelightData, bsdfData, localDiffuseLighting, localSpecularLighting); + localDiffuseLighting *= lightData.color * illuminance * lightData.diffuseScale; + localSpecularLighting *= lightData.color * illuminance * lightData.specularScale; + } + + diffuseLighting.rgb += localDiffuseLighting; + specularLighting.rgb += localSpecularLighting; + } + + diffuseLighting.rgb /= float(sampleCount); + specularLighting.rgb /= float(sampleCount); +} + +//----------------------------------------------------------------------------- +// EvaluateBSDF_Area +//----------------------------------------------------------------------------- + +void EvaluateBSDF_Area( float3 V, float3 positionWS, PreLightData prelightData, AreaLightData lightData, BSDFData bsdfData, + out float4 diffuseLighting, + out float4 specularLighting) +{ +#ifdef LIT_DISPLAY_REFERENCE + IntegrateGGXAreaRef(V, positionWS, prelightData, lightData, bsdfData, diffuseLighting, specularLighting); +#else + + // TODO: This could be precomputed + float halfWidth = lightData.size.x * 0.5; + float halfHeight = lightData.size.y * 0.5; + float3 p0 = lightData.positionWS + lightData.right * -halfWidth + lightData.up * halfHeight; + float3 p1 = lightData.positionWS + lightData.right * -halfWidth + lightData.up * -halfHeight; + float3 p2 = lightData.positionWS + lightData.right * halfWidth + lightData.up * -halfHeight; + float3 p3 = lightData.positionWS + lightData.right * halfWidth + lightData.up * halfHeight; + + float4x3 matL = float4x3(p0, p1, p2, p3); + float4x3 L = matL - float4x3(positionWS, positionWS, positionWS, positionWS); + + // TODO: Can we get early out based on diffuse computation ? (if all point are clip) + diffuseLighting = float4(0.0f, 0.0f, 0.0f, 1.0f); + specularLighting = float4(0.0f, 0.0f, 0.0f, 1.0f); + + // TODO: Fresnel is missing here but should be present + specularLighting.rgb = LTCEvaluate(V, bsdfData.normalWS, prelightData.minV, L, lightData.twoSided) * prelightData.ltcGGXMagnitude; + +//#ifdef DIFFUSE_LAMBERT_BRDF + // Lambert diffuse term (here it should be Disney) + float3x3 identity = 0; + identity._m00_m11_m22 = 1.0; + diffuseLighting.rgb = LTCEvaluate(V, bsdfData.normalWS, identity, L, lightData.twoSided) * bsdfData.diffuseColor; +//#else + // TODO: Disney +//#endif + + // Divide all by 2 PI as it is Lambert integration for diffuse + diffuseLighting.rgb *= lightData.color * INV_TWO_PI * lightData.diffuseScale; + specularLighting.rgb *= lightData.color * INV_TWO_PI * lightData.specularScale; + + // TODO: current area light code doesn't take into account artist attenuation radius! +#endif +} + +//----------------------------------------------------------------------------- +// EvaluateBSDF_Env +// ---------------------------------------------------------------------------- + +// We must implement EvaluateBSDF_Env for various environment map case. For now just cube array and cube (but could add latlong later). +// As a loop can call several version inside the same lighting architecture (think about sky and reflection probes, one isolated uncompressed, the others compressed BC6H in a textures array) +// we need to implemnt various version here. To factor code we play with macro to generate the various varient. +#define UNITY_ARGS_ENV(tex) UNITY_ARGS_TEXCUBEARRAY(tex) +#define UNITY_SAMPLE_ENV_LOD(tex, coord, lightData, lod) UNITY_SAMPLE_TEXCUBEARRAY_LOD(tex, float4(coord, lightData.sliceIndex), lod) +#include "LitEnvTemplate.hlsl" +#undef UNITY_ARGS_ENV +#undef UNITY_SAMPLE_ENV_LOD + +#define UNITY_ARGS_ENV(tex) UNITY_ARGS_TEXCUBE(tex) +#define UNITY_SAMPLE_ENV_LOD(tex, coord, lightData, lod) UNITY_SAMPLE_TEXCUBE_LOD(tex, float3(coord), lod) +#include "LitEnvTemplate.hlsl" +#undef UNITY_ARGS_ENV +#undef UNITY_SAMPLE_ENV_LOD + +#endif // UNITY_MATERIAL_LIT_INCLUDED diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.hlsl.meta new file mode 100644 index 00000000000..ce1a1bee13c --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/Lit.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 103bcc6c90ed7124f8474d354c0171ba +timeCreated: 1475845771 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitData.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitData.hlsl new file mode 100644 index 00000000000..2ce073113ea --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitData.hlsl @@ -0,0 +1,149 @@ +// No guard header! + +//------------------------------------------------------------------------------------- +// FragInput +// This structure gather all possible varying/interpolator for this shader. +//------------------------------------------------------------------------------------- + +struct FragInput +{ + float4 positionHS; + float3 positionWS; + float2 texCoord0; + float2 texCoord1; + float2 texCoord2; + float3 tangentToWorld[3]; + bool isFrontFace; +}; + +//------------------------------------------------------------------------------------- +// Fill SurfaceData/Builtin data function +//------------------------------------------------------------------------------------- + +void GetSurfaceAndBuiltinData(FragInput input, out SurfaceData surfaceData, out BuiltinData builtinData) +{ +#ifdef _HEIGHTMAP + // TODO: in case of shader graph, a node like parallax must be nullify if use to generate code for Meta pass + #ifndef _HEIGHTMAP_AS_DISPLACEMENT + float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS); // This should be remove by the compiler as we usually cal it before. + float height = UNITY_SAMPLE_TEX2D(_HeightMap, input.texCoord0).r * _HeightScale + _HeightBias; + // Transform view vector in tangent space + TransformWorldToTangent(V, input.tangentToWorld); + float2 offset = ParallaxOffset(viewDirTS, height); + input.texCoord0 += offset; + input.texCoord1 += offset; + #endif +#endif + + surfaceData.baseColor = UNITY_SAMPLE_TEX2D(_BaseColorMap, input.texCoord0).rgb * _BaseColor.rgb; +#ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + float alpha = _BaseColor.a; +#else + float alpha = UNITY_SAMPLE_TEX2D(_BaseColorMap, input.texCoord0).a * _BaseColor.a; +#endif + +#ifdef _ALPHATEST_ON + clip(alpha - _AlphaCutoff); +#endif + +#ifdef _SPECULAROCCLUSIONMAP + // TODO: Do something. For now just take alpha channel + surfaceData.specularOcclusion = UNITY_SAMPLE_TEX2D(_SpecularOcclusionMap, input.texCoord0).a; +#else + // Horizon Occlusion for Normal Mapped Reflections: http://marmosetco.tumblr.com/post/81245981087 + //surfaceData.specularOcclusion = saturate(1.0 + horizonFade * dot(r, input.tangentToWorld[2].xyz); + // smooth it + //surfaceData.specularOcclusion *= surfaceData.specularOcclusion; + surfaceData.specularOcclusion = 1.0; +#endif + + // TODO: think about using BC5 + float3 vertexNormalWS = input.tangentToWorld[2].xyz; + +#ifdef _NORMALMAP + #ifdef _NORMALMAP_TANGENT_SPACE + float3 normalTS = UnpackNormalAG(UNITY_SAMPLE_TEX2D(_NormalMap, input.texCoord0)); + surfaceData.normalWS = TransformTangentToWorld(normalTS, input.tangentToWorld); + #else // Object space (TODO: We need to apply the world rotation here! - Require to pass world transform) + surfaceData.normalWS = UNITY_SAMPLE_TEX2D(_NormalMap, input.texCoord0).rgb; + #endif +#else + surfaceData.normalWS = vertexNormalWS; +#endif + +#if defined(_DOUBLESIDED_LIGHTING_FLIP) || defined(_DOUBLESIDED_LIGHTING_MIRROR) + #ifdef _DOUBLESIDED_LIGHTING_FLIP + float3 oppositeNormalWS = -surfaceData.normalWS; + #else + // Mirror the normal with the plane define by vertex normal + float3 oppositeNormalWS = reflect(surfaceData.normalWS, vertexNormalWS); +#endif + // TODO : Test if GetOdddNegativeScale() is necessary here in case of normal map, as GetOdddNegativeScale is take into account in CreateTangentToWorld(); + surfaceData.normalWS = input.isFrontFace ? + (GetOdddNegativeScale() >= 0.0 ? surfaceData.normalWS : oppositeNormalWS) : + (-GetOdddNegativeScale() >= 0.0 ? surfaceData.normalWS : oppositeNormalWS); +#endif + +#ifdef _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + surfaceData.perceptualSmoothness = UNITY_SAMPLE_TEX2D(_BaseColorMap, input.texCoord0).a; +#elif defined(_MASKMAP) + surfaceData.perceptualSmoothness = UNITY_SAMPLE_TEX2D(_MaskMap, input.texCoord0).a; +#else + surfaceData.perceptualSmoothness = 1.0; +#endif + surfaceData.perceptualSmoothness *= _Smoothness; + + surfaceData.materialId = 0; + + // MaskMap is Metallic, Ambient Occlusion, (Optional) - emissive Mask, Optional - Smoothness (in alpha) +#ifdef _MASKMAP + surfaceData.metallic = UNITY_SAMPLE_TEX2D(_MaskMap, input.texCoord0).r; + surfaceData.ambientOcclusion = UNITY_SAMPLE_TEX2D(_MaskMap, input.texCoord0).g; +#else + surfaceData.metallic = 1.0; + surfaceData.ambientOcclusion = 1.0; +#endif + surfaceData.metallic *= _Metallic; + + + surfaceData.tangentWS = input.tangentToWorld[0].xyz; // TODO: do with tangent same as with normal, sample into texture etc... + surfaceData.anisotropy = 0; + surfaceData.specular = 0.04; + + surfaceData.subSurfaceRadius = 1.0; + surfaceData.thickness = 0.0; + surfaceData.subSurfaceProfile = 0; + + surfaceData.coatNormalWS = float3(1.0, 0.0, 0.0); + surfaceData.coatPerceptualSmoothness = 1.0; + surfaceData.specularColor = float3(0.0, 0.0, 0.0); + + + // Builtin Data + builtinData.opacity = alpha; + + // TODO: Sample lightmap/lightprobe/volume proxy + // This should also handle projective lightmap + // Note that data input above can be use to sample into lightmap (like normal) + builtinData.bakeDiffuseLighting = UNITY_SAMPLE_TEX2D(_DiffuseLightingMap, input.texCoord1).rgb; + + // If we chose an emissive color, we have a dedicated texture for it and don't use MaskMap +#ifdef _EMISSIVE_COLOR + #ifdef _EMISSIVE_COLOR_MAP + builtinData.emissiveColor = UNITY_SAMPLE_TEX2D(_EmissiveColorMap, input.texCoord0).rgb * _EmissiveColor; + #else + builtinData.emissiveColor = _EmissiveColor; + #endif +#elif defined(_MASKMAP) // If we have a MaskMap, use emissive slot as a mask on baseColor + builtinData.emissiveColor = surfaceData.baseColor * UNITY_SAMPLE_TEX2D(_MaskMap, input.texCoord0).bbb; +#else + builtinData.emissiveColor = float3(0.0, 0.0, 0.0); +#endif + + builtinData.emissiveIntensity = _EmissiveIntensity; + + builtinData.velocity = float2(0.0, 0.0); + + builtinData.distortion = float2(0.0, 0.0); + builtinData.distortionBlur = 0.0; +} \ No newline at end of file diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitData.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitData.hlsl.meta new file mode 100644 index 00000000000..211ce9c397c --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitData.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c4a6d6f92d4f44d47b369e7a13250e0a +timeCreated: 1477003836 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitDefault.shader b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitDefault.shader new file mode 100644 index 00000000000..46fbb4018f1 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitDefault.shader @@ -0,0 +1,494 @@ +Shader "Unity/Lit" +{ + Properties + { + // Following set of parameters represent the parameters node inside the MaterialGraph. + // They are use to fill a SurfaceData. With a MaterialGraph this should not exist. + + // Reminder. Color here are in linear but the UI (color picker) do the conversion sRGB to linear + _BaseColor("BaseColor", Color) = (1,1,1,1) + _BaseColorMap("BaseColorMap", 2D) = "white" {} + + _Metallic("_Metallic", Range(0.0, 1.0)) = 0 + _Smoothness("Smoothness", Range(0.0, 1.0)) = 0.5 + _MaskMap("MaskMap", 2D) = "white" {} + + _SpecularOcclusionMap("SpecularOcclusion", 2D) = "white" {} + + _NormalMap("NormalMap", 2D) = "bump" {} + [Enum(TangentSpace, 0, ObjectSpace, 1)] _NormalMapSpace("NormalMap space", Float) = 0 + + _HeightMap("HeightMap", 2D) = "black" {} + _HeightScale("Height Scale", Float) = 1 + _HeightBias("Height Bias", Float) = 0 + [Enum(Parallax, 0, Displacement, 1)] _HeightMapMode("Heightmap usage", Float) = 0 + + _SubSurfaceRadius("SubSurfaceRadius", Range(0.0, 1.0)) = 0 + _SubSurfaceRadiusMap("SubSurfaceRadiusMap", 2D) = "white" {} + //_Thickness("Thickness", Range(0.0, 1.0)) = 0 + //_ThicknessMap("ThicknessMap", 2D) = "white" {} + //_SubSurfaceProfile("SubSurfaceProfile", Float) = 0 + + //_CoatCoverage("CoatCoverage", Range(0.0, 1.0)) = 0 + //_CoatCoverageMap("CoatCoverageMapMap", 2D) = "white" {} + + //_CoatRoughness("CoatRoughness", Range(0.0, 1.0)) = 0 + //_CoatRoughnessMap("CoatRoughnessMap", 2D) = "white" {} + + // _DistortionVectorMap("DistortionVectorMap", 2D) = "white" {} + // _DistortionBlur("DistortionBlur", Range(0.0, 1.0)) = 0 + + // Following options are for the GUI inspector and different from the input parameters above + // These option below will cause different compilation flag. + + _DiffuseLightingMap("DiffuseLightingMap", 2D) = "black" {} + _EmissiveColor("EmissiveColor", Color) = (0, 0, 0) + _EmissiveColorMap("EmissiveColorMap", 2D) = "white" {} + _EmissiveIntensity("EmissiveIntensity", Float) = 0 + + [ToggleOff] _DistortionOnly("Distortion Only", Float) = 0.0 + [ToggleOff] _DistortionDepthTest("Distortion Only", Float) = 0.0 + + [ToggleOff] _AlphaCutoffEnable("Alpha Cutoff Enable", Float) = 0.0 + _AlphaCutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5 + + // Blending state + [HideInInspector] _SurfaceType("__surfacetype", Float) = 0.0 + [HideInInspector] _BlendMode ("__blendmode", Float) = 0.0 + [HideInInspector] _SrcBlend ("__src", Float) = 1.0 + [HideInInspector] _DstBlend ("__dst", Float) = 0.0 + [HideInInspector] _ZWrite ("__zw", Float) = 1.0 + [HideInInspector] _CullMode("__cullmode", Float) = 2.0 + // Material Id + [HideInInspector] _MaterialId("_MaterialId", FLoat) = 0 + + [Enum(Mask Alpha, 0, BaseColor Alpha, 1)] _SmoothnessTextureChannel("Smoothness texture channel", Float) = 1 + [Enum(Use Emissive Color, 0, Use Emissive Mask, 1)] _EmissiveColorMode("Emissive color mode", Float) = 1 + [Enum(None, 0, DoubleSided, 1, DoubleSidedLigthingFlip, 2, DoubleSidedLigthingMirror, 3)] _DoubleSidedMode("Double sided mode", Float) = 0 + } + + HLSLINCLUDE + + #pragma target 5.0 + #pragma only_renderers d3d11 // TEMP: unitl we go futher in dev + + //------------------------------------------------------------------------------------- + // Variant + //------------------------------------------------------------------------------------- + + #pragma shader_feature _ALPHATEST_ON + #pragma shader_feature _ _DOUBLESIDED_LIGHTING_FLIP _DOUBLESIDED_LIGHTING_MIRROR + #pragma shader_feature _NORMALMAP + #pragma shader_feature _NORMALMAP_TANGENT_SPACE + #pragma shader_feature _MASKMAP + #pragma shader_feature _SPECULAROCCLUSIONMAP + #pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + #pragma shader_feature _EMISSIVE_COLOR + #pragma shader_feature _EMISSIVE_COLOR_MAP + #pragma shader_feature _HEIGHTMAP + #pragma shader_feature _HEIGHTMAP_AS_DISPLACEMENT + + #pragma multi_compile _ LIGHTMAP_ON + #pragma multi_compile _ DIRLIGHTMAP_COMBINED + #pragma multi_compile _ DYNAMICLIGHTMAP_ON + + //------------------------------------------------------------------------------------- + // Define + //------------------------------------------------------------------------------------- + + #define UNITY_MATERIAL_LIT // Need to be define before including Material.hlsl + + //------------------------------------------------------------------------------------- + // Include + //------------------------------------------------------------------------------------- + + #include "common.hlsl" + #include "../../ShaderPass/ShaderPass.cs.hlsl" + #include "../../ShaderVariables.hlsl" + #include "../../Debug/DebugViewMaterial.hlsl" + + //------------------------------------------------------------------------------------- + // variable declaration + //------------------------------------------------------------------------------------- + + // Set of users variables + float4 _BaseColor; + UNITY_DECLARE_TEX2D(_BaseColorMap); + + float _Metallic; + float _Smoothness; + UNITY_DECLARE_TEX2D(_MaskMap); + UNITY_DECLARE_TEX2D(_SpecularOcclusionMap); + + UNITY_DECLARE_TEX2D(_NormalMap); + UNITY_DECLARE_TEX2D(_Heightmap); + float _HeightScale; + float _HeightBias; + + UNITY_DECLARE_TEX2D(_DiffuseLightingMap); + float4 _EmissiveColor; + UNITY_DECLARE_TEX2D(_EmissiveColorMap); + float _EmissiveIntensity; + + float _SubSurfaceRadius; + UNITY_DECLARE_TEX2D(_SubSurfaceRadiusMap); + // float _Thickness; + // UNITY_DECLARE_TEX2D(_ThicknessMap); + + // float _CoatCoverage; + // UNITY_DECLARE_TEX2D(_CoatCoverageMap); + + // float _CoatRoughness; + // UNITY_DECLARE_TEX2D(_CoatRoughnessMap); + + float _AlphaCutoff; + + ENDHLSL + + SubShader + { + Tags { "RenderType"="Opaque" "PerformanceChecks"="False" } + LOD 300 + + // ------------------------------------------------------------------ + // Deferred pass + Pass + { + Name "GBuffer" // Name is not used + Tags { "LightMode" = "GBuffer" } // This will be only for opaque object based on the RenderQueue index + + Cull [_CullMode] + + HLSLPROGRAM + + #pragma vertex VertDefault + #pragma fragment Frag + + #define SHADERPASS SHADERPASS_GBUFFER + #include "../../Lighting/Lighting.hlsl" // This include Material.hlsl + #include "LitData.hlsl" + #include "LitShare.hlsl" + + #include "../../ShaderPass/ShaderPassGBuffer.hlsl" + + ENDHLSL + } + + // ------------------------------------------------------------------ + // Debug pass + Pass + { + Name "Debug" + Tags { "LightMode" = "DebugViewMaterial" } + + Cull[_CullMode] + + HLSLPROGRAM + + #pragma vertex VertDefault + #pragma fragment Frag + + #define SHADERPASS SHADERPASS_DEBUG_VIEW_MATERIAL + #include "../../Material/Material.hlsl" + #include "LitData.hlsl" + #include "LitShare.hlsl" + + void GetVaryingsDataDebug(uint paramId, FragInput input, inout float3 result, inout bool needLinearToSRGB) + { + switch (paramId) + { + case DEBUGVIEW_VARYING_DEPTH: + // TODO: provide a customize parameter (like a slider) + float linearDepth = frac(LinearEyeDepth(input.positionHS.z, _ZBufferParams) * 0.1); + result = linearDepth.xxx; + break; + case DEBUGVIEW_VARYING_TEXCOORD0: + result = float3(input.texCoord0 * 0.5 + 0.5, 0.0); + break; + case DEBUGVIEW_VARYING_TEXCOORD1: + result = float3(input.texCoord1 * 0.5 + 0.5, 0.0); + break; + case DEBUGVIEW_VARYING_TEXCOORD2: + result = float3(input.texCoord2 * 0.5 + 0.5, 0.0); + break; + case DEBUGVIEW_VARYING_VERTEXTANGENTWS: + result = input.tangentToWorld[0].xyz * 0.5 + 0.5; + break; + case DEBUGVIEW_VARYING_VERTEXBITANGENTWS: + result = input.tangentToWorld[1].xyz * 0.5 + 0.5; + break; + case DEBUGVIEW_VARYING_VERTEXNORMALWS: + result = input.tangentToWorld[2].xyz * 0.5 + 0.5; + break; + } + } + + #include "../../ShaderPass/ShaderPassDebugViewMaterial.hlsl" + + ENDHLSL + } + + // ------------------------------------------------------------------ + // Extracts information for lightmapping, GI (emission, albedo, ...) + // This pass it not used during regular rendering. + Pass + { + Name "META" + Tags{ "LightMode" = "Meta" } + + Cull Off + + HLSLPROGRAM + + // Lightmap memo + // DYNAMICLIGHTMAP_ON is used when we have an "enlighten lightmap" ie a lightmap updated at runtime by enlighten.This lightmap contain indirect lighting from realtime lights and realtime emissive material.Offline baked lighting(from baked material / light, + // both direct and indirect lighting) will hand up in the "regular" lightmap->LIGHTMAP_ON. + + #pragma vertex Vert + #pragma fragment Frag + + #define SHADERPASS SHADERPASS_LIGHT_TRANSPORT + #include "../../Material/Material.hlsl" + #include "LitData.hlsl" + + CBUFFER_START(UnityMetaPass) + // x = use uv1 as raster position + // y = use uv2 as raster position + bool4 unity_MetaVertexControl; + + // x = return albedo + // y = return normal + bool4 unity_MetaFragmentControl; + + CBUFFER_END + + // This was not in constant buffer in original unity, so keep outiside. But should be in as ShaderRenderPass frequency + float unity_OneOverOutputBoost; + float unity_MaxOutputValue; + + struct Attributes + { + float3 positionOS : POSITION; + float3 normalOS : NORMAL; + float2 uv0 : TEXCOORD0; + float2 uv1 : TEXCOORD1; + float2 uv2 : TEXCOORD2; + float4 tangentOS : TANGENT; + }; + + struct Varyings + { + float4 positionHS; + float2 texCoord0; + float2 texCoord1; + }; + + struct PackedVaryings + { + float4 positionHS : SV_Position; + float4 interpolators[1] : TEXCOORD0; + }; + + // Function to pack data to use as few interpolator as possible, the ShaderGraph should generate these functions + PackedVaryings PackVaryings(Varyings input) + { + PackedVaryings output; + output.positionHS = input.positionHS; + output.interpolators[0].xy = input.texCoord0; + output.interpolators[0].zw = input.texCoord1; + + return output; + } + + FragInput UnpackVaryings(PackedVaryings input) + { + FragInput output; + ZERO_INITIALIZE(FragInput, output); + + output.positionHS = input.positionHS; + output.texCoord0 = input.interpolators[0].xy; + output.texCoord1 = input.interpolators[0].zw; + + return output; + } + + PackedVaryings Vert(Attributes input) + { + Varyings output; + + // Output UV coordinate in vertex shader + if (unity_MetaVertexControl.x) + { + input.positionOS.xy = input.uv1 * unity_LightmapST.xy + unity_LightmapST.zw; + // OpenGL right now needs to actually use incoming vertex position, + // so use it in a very dummy way + //v.positionOS.z = vertex.z > 0 ? 1.0e-4f : 0.0f; + } + if (unity_MetaVertexControl.y) + { + input.positionOS.xy = input.uv2 * unity_DynamicLightmapST.xy + unity_DynamicLightmapST.zw; + // OpenGL right now needs to actually use incoming vertex position, + // so use it in a very dummy way + //v.positionOS.z = vertex.z > 0 ? 1.0e-4f : 0.0f; + } + + float3 positionWS = TransformObjectToWorld(input.positionOS); + output.positionHS = TransformWorldToHClip(positionWS); + output.texCoord0 = input.uv0; + output.texCoord1 = input.uv1; + + return PackVaryings(output); + } + + #include "../../ShaderPass/ShaderPassLightTransport.hlsl" + + ENDHLSL + } + + // ------------------------------------------------------------------ + // Depth only + Pass + { + Name "DepthOnly" // Name is not used + Tags { "LightMode" = "DepthOnly" } // This will be only for transparent object based on the RenderQueue index + + Blend [_SrcBlend] [_DstBlend] + ZWrite [_ZWrite] + Cull [_CullMode] + + HLSLPROGRAM + + #pragma vertex Vert + #pragma fragment Frag + + #define SHADERPASS SHADERPASS_DEPTH_ONLY + #include "../../Material/Material.hlsl" + #include "LitData.hlsl" + + struct Attributes + { + float3 positionOS : POSITION; + float2 uv0 : TEXCOORD0; + #if defined(_HEIGHTMAP) && !defined (_HEIGHTMAP_AS_DISPLACEMENT) + float4 tangentOS : TANGENT; + #endif + }; + + struct Varyings + { + float4 positionHS; + float2 texCoord0; + #if defined(_HEIGHTMAP) && !defined (_HEIGHTMAP_AS_DISPLACEMENT) + float3 positionWS; + float3 tangentToWorld[3]; + #endif + }; + + struct PackedVaryings + { + float4 positionHS : SV_Position; + #if defined(_HEIGHTMAP) && !defined (_HEIGHTMAP_AS_DISPLACEMENT) + float4 interpolators[4] : TEXCOORD0; + #else + float4 interpolators[1] : TEXCOORD0; + #endif + }; + + // Function to pack data to use as few interpolator as possible, the ShaderGraph should generate these functions + PackedVaryings PackVaryings(Varyings input) + { + PackedVaryings output; + output.positionHS = input.positionHS; + #if defined(_HEIGHTMAP) && !defined (_HEIGHTMAP_AS_DISPLACEMENT) + output.interpolators[0].xyz = input.positionWS.xyz; + output.interpolators[1].xyz = input.tangentToWorld[0]; + output.interpolators[2].xyz = input.tangentToWorld[1]; + output.interpolators[3].xyz = input.tangentToWorld[2]; + + output.interpolators[0].w = input.texCoord0.x; + output.interpolators[1].w = input.texCoord0.y; + #else + output.interpolators[0] = float4(input.texCoord0, 0.0, 0.0); + #endif + + return output; + } + + FragInput UnpackVaryings(PackedVaryings input) + { + FragInput output; + ZERO_INITIALIZE(FragInput, output); + + output.positionHS = input.positionHS; + #if defined(_HEIGHTMAP) && !defined (_HEIGHTMAP_AS_DISPLACEMENT) + output.positionWS.xyz = input.interpolators[0].xyz; + output.tangentToWorld[0] = input.interpolators[1].xyz; + output.tangentToWorld[1] = input.interpolators[2].xyz; + output.tangentToWorld[2] = input.interpolators[3].xyz; + + output.texCoord0.xy = float2(input.interpolators[0].w, input.interpolators[1].w); + #else + output.texCoord0.xy = input.interpolators[0].xy; + #endif + + return output; + } + + PackedVaryings Vert(Attributes input) + { + Varyings output; + + float3 positionWS = TransformObjectToWorld(input.positionOS); + output.positionHS = TransformWorldToHClip(positionWS); + + output.texCoord0 = input.uv0; + + #if defined(_HEIGHTMAP) && !defined (_HEIGHTMAP_AS_DISPLACEMENT) + output.positionWS = positionWS; + + float3 normalWS = TransformObjectToWorldNormal(input.normalOS); + float4 tangentWS = float4(TransformObjectToWorldDir(input.tangentOS.xyz), input.tangentOS.w); + + float3x3 tangentToWorld = CreateTangentToWorld(normalWS, tangentWS.xyz, tangentWS.w); + output.tangentToWorld[0] = tangentToWorld[0]; + output.tangentToWorld[1] = tangentToWorld[1]; + output.tangentToWorld[2] = tangentToWorld[2]; + #endif + + return PackVaryings(output); + } + + #include "../../ShaderPass/ShaderPassDepthOnly.hlsl" + + ENDHLSL + } + + // ------------------------------------------------------------------ + // forward pass + Pass + { + Name "Forward" // Name is not used + Tags { "LightMode" = "Forward" } // This will be only for transparent object based on the RenderQueue index + + Blend [_SrcBlend] [_DstBlend] + ZWrite [_ZWrite] + Cull [_CullMode] + + HLSLPROGRAM + + #pragma vertex VertDefault + #pragma fragment Frag + + #define SHADERPASS SHADERPASS_FORWARD + #include "../../Lighting/Lighting.hlsl" + #include "LitData.hlsl" + #include "LitShare.hlsl" + + #include "../../ShaderPass/ShaderPassForward.hlsl" + + ENDHLSL + } + } + + CustomEditor "LitGUI" +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitDefault.shader.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitDefault.shader.meta new file mode 100644 index 00000000000..5b02ce33418 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitDefault.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 6e4ae4064600d784cac1e41a9e6f2e59 +timeCreated: 1477003836 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitEnvTemplate.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitEnvTemplate.hlsl new file mode 100644 index 00000000000..d32b23b8c13 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitEnvTemplate.hlsl @@ -0,0 +1,238 @@ +// No guard header! + +//----------------------------------------------------------------------------- +// EvaluateBSDF_Env - Reference +// ---------------------------------------------------------------------------- + +// Ref: Moving Frostbite to PBR (Appendix A) +float3 IntegrateLambertIBLRef( EnvLightData lightData, BSDFData bsdfData, + UNITY_ARGS_ENV(_EnvTextures), + uint sampleCount = 2048) +{ + float3 N = bsdfData.normalWS; + float3 acc = float3(0.0, 0.0, 0.0); + // Add some jittering on Hammersley2d + float2 randNum = InitRandom(N.xy * 0.5 + 0.5); + + float3 tangentX, tangentY; + GetLocalFrame(N, tangentX, tangentY); + + for (uint i = 0; i < sampleCount; ++i) + { + float2 u = Hammersley2d(i, sampleCount); + u = frac(u + randNum + 0.5); + + float3 L; + float NdotL; + float weightOverPdf; + ImportanceSampleLambert(u, N, tangentX, tangentY, L, NdotL, weightOverPdf); + + if (NdotL > 0.0) + { + float4 val = UNITY_SAMPLE_ENV_LOD(_EnvTextures, L, lightData, 0); + + // diffuse Albedo is apply here as describe in ImportanceSampleLambert function + acc += bsdfData.diffuseColor * Lambert() * weightOverPdf * val.rgb; + } + } + + return acc / sampleCount; +} + +float3 IntegrateDisneyDiffuseIBLRef(float3 V, EnvLightData lightData, BSDFData bsdfData, + UNITY_ARGS_ENV(_EnvTextures), + uint sampleCount = 2048) +{ + float3 N = bsdfData.normalWS; + float NdotV = dot(N, V); + float3 acc = float3(0.0, 0.0, 0.0); + // Add some jittering on Hammersley2d + float2 randNum = InitRandom(N.xy * 0.5 + 0.5); + + float3 tangentX, tangentY; + GetLocalFrame(N, tangentX, tangentY); + + for (uint i = 0; i < sampleCount; ++i) + { + float2 u = Hammersley2d(i, sampleCount); + u = frac(u + randNum + 0.5); + + float3 L; + float NdotL; + float weightOverPdf; + // for Disney we still use a Cosine importance sampling, true Disney importance sampling imply a look up table + ImportanceSampleLambert(u, N, tangentX, tangentY, L, NdotL, weightOverPdf); + + if (NdotL > 0.0) + { + float3 H = normalize(L + V); + float LdotH = dot(L, H); + // Note: we call DisneyDiffuse that require to multiply by Albedo / PI. Divide by PI is already taken into account + // in weightOverPdf of ImportanceSampleLambert call. + float disneyDiffuse = DisneyDiffuse(NdotV, NdotL, LdotH, bsdfData.perceptualRoughness); + + // diffuse Albedo is apply here as describe in ImportanceSampleLambert function + float4 val = UNITY_SAMPLE_ENV_LOD(_EnvTextures, L, lightData, 0); + acc += bsdfData.diffuseColor * disneyDiffuse * weightOverPdf * val.rgb; + } + } + + return acc / sampleCount; +} + +// Ref: Moving Frostbite to PBR (Appendix A) +float3 IntegrateSpecularGGXIBLRef( float3 V, EnvLightData lightData, BSDFData bsdfData, + UNITY_ARGS_ENV(_EnvTextures), + uint sampleCount = 2048) +{ + float3 N = bsdfData.normalWS; + float NdotV = saturate(dot(N, V)); + float3 acc = float3(0.0, 0.0, 0.0); + + // Add some jittering on Hammersley2d + float2 randNum = InitRandom(V.xy * 0.5 + 0.5); + + float3 tangentX, tangentY; + GetLocalFrame(N, tangentX, tangentY); + + for (uint i = 0; i < sampleCount; ++i) + { + float2 u = Hammersley2d(i, sampleCount); + u = frac(u + randNum + 0.5); + + float VdotH; + float NdotL; + float3 L; + float weightOverPdf; + + // GGX BRDF + ImportanceSampleGGX(u, V, N, tangentX, tangentY, bsdfData.roughness, NdotV, + L, VdotH, NdotL, weightOverPdf); + + if (NdotL > 0.0) + { + // Fresnel component is apply here as describe in ImportanceSampleGGX function + float3 FweightOverPdf = F_Schlick(bsdfData.fresnel0, VdotH) * weightOverPdf; + + float4 val = UNITY_SAMPLE_ENV_LOD(_EnvTextures, L, lightData, 0); + + acc += FweightOverPdf * val.rgb; + } + } + + return acc / sampleCount; +} + +//----------------------------------------------------------------------------- +// EvaluateBSDF_Env +// ---------------------------------------------------------------------------- + +// _preIntegratedFGD and _CubemapLD are unique for each BRDF +void EvaluateBSDF_Env( float3 V, float3 positionWS, PreLightData prelightData, EnvLightData lightData, BSDFData bsdfData, + UNITY_ARGS_ENV(_EnvTextures), + out float4 diffuseLighting, + out float4 specularLighting) +{ +#ifdef LIT_DISPLAY_REFERENCE + + specularLighting.rgb = IntegrateSpecularGGXIBLRef(V, lightData, bsdfData, UNITY_PASS_ENV(_EnvTextures)); + specularLighting.a = 1.0; + +/* + #ifdef DIFFUSE_LAMBERT_BRDF + diffuseLighting.rgb = IntegrateLambertIBLRef(lightData, bsdfData, UNITY_PASS_ENV(_EnvTextures)); + #else + diffuseLighting.rgb = IntegrateDisneyDiffuseIBLRef(V, lightData, bsdfData, UNITY_PASS_ENV(_EnvTextures)); + #endif + diffuseLighting.a = 1.0; +*/ + diffuseLighting = float4(0.0, 0.0, 0.0, 0.0); + +#else + // TODO: factor this code in common, so other material authoring don't require to rewrite everything, + // also think about how such a loop can handle 2 cubemap at the same time as old unity. Macro can allow to do that + // but we need to have UNITY_SAMPLE_ENV_LOD replace by a true function instead that is define by the lighting arcitecture. + // Also not sure how to deal with 2 intersection.... + // Box and sphere are related to light property (but we have also distance based roughness etc...) + + // TODO: test the strech from Tomasz + // float shrinkedRoughness = AnisotropicStrechAtGrazingAngle(bsdfData.roughness, bsdfData.perceptualRoughness, NdotV); + + // Note: As explain in GetPreLightData we use normalWS and not iblNormalWS here (in case of anisotropy) + float3 rayWS = GetSpecularDominantDir(bsdfData.normalWS, prelightData.iblR, bsdfData.roughness); + + float3 R = rayWS; + float weight = 1.0; + + // In this code we redefine a bit the behavior of the reflcetion proble. We separate the projection volume (the proxy of the scene) form the influence volume (what pixel on the screen is affected) + + // 1. First determine the projection volume + + // In Unity the cubemaps are capture with the localToWorld transform of the component. + // This mean that location and oritention matter. So after intersection of proxy volume we need to convert back to world. + + // CAUTION: localToWorld is the transform use to convert the cubemap capture point to world space (mean it include the offset) + // the center of the bounding box is thus in locals space: positionLS - offsetLS + // We use this formulation as it is the one of legacy unity that was using only AABB box. + + float3x3 worldToLocal = transpose(float3x3(lightData.right, lightData.up, lightData.forward)); // worldToLocal assume no scaling + float3 positionLS = positionWS - lightData.positionWS; + positionLS = mul(positionLS, worldToLocal).xyz - lightData.offsetLS; // We want to calculate the intersection from the center of the bounding box. + + if (lightData.envShapeType == ENVSHAPETYPE_BOX) + { + float3 rayLS = mul(rayWS, worldToLocal); + float3 boxOuterDistance = lightData.innerDistance + float3(lightData.blendDistance, lightData.blendDistance, lightData.blendDistance); + float dist = BoxRayIntersectSimple(positionLS, rayLS, -boxOuterDistance, boxOuterDistance); + + // No need to normalize for fetching cubemap + // We can reuse dist calculate in LS directly in WS as there is no scaling. Also the offset is already include in lightData.positionWS + R = (positionWS + dist * rayWS) - lightData.positionWS; + + // TODO: add distance based roughness + } + else if (lightData.envShapeType == ENVSHAPETYPE_SPHERE) + { + float3 rayLS = mul(rayWS, worldToLocal); + float sphereOuterDistance = lightData.innerDistance.x + lightData.blendDistance; + float dist = SphereRayIntersectSimple(positionLS, rayLS, sphereOuterDistance); + + R = (positionWS + dist * rayWS) - lightData.positionWS; + } + + // 2. Apply the influence volume (Box volume is used for culling whatever the influence shape) + // TODO: In the future we could have an influence volume inside the projection volume (so with a different transform, in this case we will need another transform) + if (lightData.envShapeType == ENVSHAPETYPE_SPHERE) + { + float distFade = max(length(positionLS) - lightData.innerDistance.x, 0.0); + weight = saturate(1.0 - distFade / max(lightData.blendDistance, 0.0001)); // avoid divide by zero + } + else // ENVSHAPETYPE_BOX or ENVSHAPETYPE_NONE + { + // Calculate falloff value, so reflections on the edges of the volume would gradually blend to previous reflection. + float distFade = DistancePointBox(positionLS, -lightData.innerDistance, lightData.innerDistance); + weight = saturate(1.0 - distFade / max(lightData.blendDistance, 0.0001)); // avoid divide by zero + } + + // Smooth weighting + weight = smoothstep01(weight); + + // TODO: we must always perform a weight calculation as due to tiled rendering we need to smooth out cubemap at boundaries. + // So goal is to split into two category and have an option to say if we parallax correct or not. + + // TODO: compare current Morten version: offline cubemap with a particular remap + the bias in perceptualRoughnessToMipmapLevel + // to classic remap like unreal/Frobiste. The function GetSpecularDominantDir can result in a better matching in this case + // We let GetSpecularDominantDir currently as it still an improvement but not as good as it could be + float mip = perceptualRoughnessToMipmapLevel(bsdfData.perceptualRoughness); + float4 preLD = UNITY_SAMPLE_ENV_LOD(_EnvTextures, R, lightData, mip); + specularLighting.rgb = preLD.rgb * prelightData.specularFGD; + + // Apply specular occlusion on it + specularLighting.rgb *= bsdfData.specularOcclusion; + specularLighting.a = weight; + + diffuseLighting = float4(0.0, 0.0, 0.0, 0.0); + +#endif +} + diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitEnvTemplate.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitEnvTemplate.hlsl.meta new file mode 100644 index 00000000000..2b9814d4970 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitEnvTemplate.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 22c20a34a48ade04daa95ffdc51ac052 +timeCreated: 1476997917 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitShare.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitShare.hlsl new file mode 100644 index 00000000000..5773f4234ef --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitShare.hlsl @@ -0,0 +1,131 @@ +// No guard header! + +#ifndef SHADERPASS +#error Undefine_SHADERPASS +#endif + +//------------------------------------------------------------------------------------- +// Attribute/Varying +//------------------------------------------------------------------------------------- + +struct Attributes +{ + float3 positionOS : POSITION; + float3 normalOS : NORMAL; + float2 uv0 : TEXCOORD0; + float2 uv1 : TEXCOORD1; +#if (DYNAMICLIGHTMAP_ON) || (SHADERPASS == SHADERPASS_DEBUG_VIEW_MATERIAL) + float2 uv2 : TEXCOORD2; +#endif + float4 tangentOS : TANGENT; // Always present as we require it also in case of anisotropic lighting + + // UNITY_INSTANCE_ID +}; + +struct Varyings +{ + float4 positionHS; + float3 positionWS; + float2 texCoord0; + float2 texCoord1; +#if (DYNAMICLIGHTMAP_ON) || (SHADERPASS == SHADERPASS_DEBUG_VIEW_MATERIAL) + float2 texCoord2; +#endif + float3 tangentToWorld[3]; +}; + +struct PackedVaryings +{ + float4 positionHS : SV_Position; +#if (DYNAMICLIGHTMAP_ON) || (SHADERPASS == SHADERPASS_DEBUG_VIEW_MATERIAL) + float4 interpolators[5] : TEXCOORD0; +#else + float4 interpolators[4] : TEXCOORD0; +#endif + +#if SHADER_STAGE_FRAGMENT + #if defined(_DOUBLESIDED_LIGHTING_FLIP) || defined(_DOUBLESIDED_LIGHTING_MIRROR) + FRONT_FACE_TYPE cullFace : FRONT_FACE_SEMATIC; + #endif +#endif +}; + +// Function to pack data to use as few interpolator as possible, the ShaderGraph should generate these functions +PackedVaryings PackVaryings(Varyings input) +{ + PackedVaryings output; + output.positionHS = input.positionHS; + output.interpolators[0].xyz = input.positionWS.xyz; + output.interpolators[1].xyz = input.tangentToWorld[0]; + output.interpolators[2].xyz = input.tangentToWorld[1]; + output.interpolators[3].xyz = input.tangentToWorld[2]; + + output.interpolators[0].w = input.texCoord0.x; + output.interpolators[1].w = input.texCoord0.y; + output.interpolators[2].w = input.texCoord1.x; + output.interpolators[3].w = input.texCoord1.y; + +#if (DYNAMICLIGHTMAP_ON) || (SHADERPASS == SHADERPASS_DEBUG_VIEW_MATERIAL) + output.interpolators[4] = float4(input.texCoord2.xy, 0.0, 0.0); +#endif + + return output; +} + +FragInput UnpackVaryings(PackedVaryings input) +{ + FragInput output; + ZERO_INITIALIZE(FragInput, output); + + output.positionHS = input.positionHS; + output.positionWS.xyz = input.interpolators[0].xyz; + output.tangentToWorld[0] = input.interpolators[1].xyz; + output.tangentToWorld[1] = input.interpolators[2].xyz; + output.tangentToWorld[2] = input.interpolators[3].xyz; + + output.texCoord0.xy = float2(input.interpolators[0].w, input.interpolators[1].w); + output.texCoord1.xy = float2(input.interpolators[2].w, input.interpolators[3].w); + +#if (DYNAMICLIGHTMAP_ON) || (SHADERPASS == SHADERPASS_DEBUG_VIEW_MATERIAL) + output.texCoord2 = input.interpolators[4].xy; +#endif + +#if SHADER_STAGE_FRAGMENT + #if defined(_DOUBLESIDED_LIGHTING_FLIP) || defined(_DOUBLESIDED_LIGHTING_MIRROR) + output.isFrontFace = IS_FRONT_VFACE(input.cullFace, true, false); + #endif +#endif + + return output; +} + +//------------------------------------------------------------------------------------- +// Vertex shader +//------------------------------------------------------------------------------------- + +// TODO: Here we will also have all the vertex deformation (GPU skinning, vertex animation, morph target...) or we will need to generate a compute shaders instead (better! but require work to deal with unpacking like fp16) +PackedVaryings VertDefault(Attributes input) +{ + Varyings output; + + output.positionWS = TransformObjectToWorld(input.positionOS); + // TODO deal with camera center rendering and instancing (This is the reason why we always perform tow steps transform to clip space + instancing matrix) + output.positionHS = TransformWorldToHClip(output.positionWS); + + float3 normalWS = TransformObjectToWorldNormal(input.normalOS); + + output.texCoord0 = input.uv0; + output.texCoord1 = input.uv1; +#if (DYNAMICLIGHTMAP_ON) || (SHADERPASS == SHADERPASS_DEBUG_VIEW_MATERIAL) + output.texCoord2 = input.uv2; +#endif + + float4 tangentWS = float4(TransformObjectToWorldDir(input.tangentOS.xyz), input.tangentOS.w); + + float3x3 tangentToWorld = CreateTangentToWorld(normalWS, tangentWS.xyz, tangentWS.w); + output.tangentToWorld[0] = tangentToWorld[0]; + output.tangentToWorld[1] = tangentToWorld[1]; + output.tangentToWorld[2] = tangentToWorld[2]; + + return PackVaryings(output); +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitShare.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitShare.hlsl.meta new file mode 100644 index 00000000000..791d373478d --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitShare.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9e1065b7612f2bd4c918d79e8a7ea8a3 +timeCreated: 1477003836 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitUI.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitUI.cs new file mode 100644 index 00000000000..469291277dd --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitUI.cs @@ -0,0 +1,453 @@ +using System; +using UnityEngine; +using UnityEngine.Rendering; + +namespace UnityEditor +{ + internal class LitGUI : ShaderGUI + { + public enum SurfaceType + { + Opaque, + Transparent + } + public enum BlendMode + { + Lerp, + Add, + SoftAdd, + Multiply, + Premultiply + } + + public enum SmoothnessMapChannel + { + MaskAlpha, + AlbedoAlpha, + } + public enum EmissiveColorMode + { + UseEmissiveColor, + UseEmissiveMask, + } + public enum DoubleSidedMode + { + None, + DoubleSided, + DoubleSidedLightingFlip, + DoubleSidedLightingMirror, + } + + public enum NormalMapSpace + { + TangentSpace, + ObjectSpace, + } + + public enum HeightmapMode + { + Parallax, + Displacement, + } + + private static class Styles + { + public static string OptionText = "Options"; + public static string SurfaceTypeText = "Surface Type"; + public static string BlendModeText = "Blend Mode"; + + public static GUIContent alphaCutoffEnableText = new GUIContent("Alpha Cutoff Enable", "Threshold for alpha cutoff"); + public static GUIContent alphaCutoffText = new GUIContent("Alpha Cutoff", "Threshold for alpha cutoff"); + public static GUIContent doubleSidedModeText = new GUIContent("Double Sided", "This will render the two face of the objects (disable backface culling)"); + + public static readonly string[] surfaceTypeNames = Enum.GetNames(typeof(SurfaceType)); + public static readonly string[] blendModeNames = Enum.GetNames(typeof(BlendMode)); + + public static string InputsOptionsText = "Inputs options"; + + public static GUIContent smoothnessMapChannelText = new GUIContent("Smoothness Source", "Smoothness texture and channel"); + public static GUIContent emissiveColorModeText = new GUIContent("Emissive Color Usage", "Use emissive color or emissive mask"); + + public static string InputsText = "Inputs"; + + public static string InputsMapText = ""; + + public static GUIContent baseColorText = new GUIContent("Base Color + Opacity", "Albedo (RGB) and Opacity (A)"); + public static GUIContent baseColorSmoothnessText = new GUIContent("Base Color + Smoothness", "Albedo (RGB) and Smoothness (A)"); + + public static GUIContent metallicText = new GUIContent("Metallic", "Metallic scale factor"); + public static GUIContent smoothnessText = new GUIContent("Smoothness", "Smoothness scale factor"); + public static GUIContent maskMapESText = new GUIContent("Mask Map - M(R), AO(G), E(B), S(A)", "Mask map"); + public static GUIContent maskMapEText = new GUIContent("Mask Map - M(R), AO(G), E(B)", "Mask map"); + public static GUIContent maskMapText = new GUIContent("Mask Map - M(R), AO(G)", "Mask map"); + public static GUIContent maskMapSText = new GUIContent("Mask Map - M(R), AO(G), S(A)", "Mask map"); + + public static GUIContent specularOcclusionMapText = new GUIContent("Specular Occlusion Map (RGBA)", "Specular Occlusion Map"); + + public static GUIContent normalMapText = new GUIContent("Normal Map", "Normal Map (BC5) - DXT5 for test"); + public static GUIContent normalMapSpaceText = new GUIContent("Normal Map space", ""); + + public static GUIContent heightMapText = new GUIContent("Height Map", "Height Map"); + public static GUIContent heightMapModeText = new GUIContent("Height Map Mode", ""); + + + // public static GUIContent diffuseLightingMapText = new GUIContent("DiffuseLightingMap", "Lightmap/Lightprobe data (fill by system is not done"); + + public static GUIContent emissiveText = new GUIContent("Emissive Color", "Emissive"); + public static GUIContent emissiveIntensityText = new GUIContent("Emissive Intensity", "Emissive"); + } + + MaterialProperty surfaceType = null; + MaterialProperty blendMode = null; + MaterialProperty alphaCutoff = null; + MaterialProperty alphaCutoffEnable = null; + MaterialProperty doubleSidedMode = null; + MaterialProperty smoothnessMapChannel = null; + MaterialProperty emissiveColorMode = null; + + MaterialProperty baseColor = null; + MaterialProperty baseColorMap = null; + MaterialProperty metallic = null; + MaterialProperty smoothness = null; + MaterialProperty maskMap = null; + MaterialProperty specularOcclusionMap = null; + MaterialProperty normalMap = null; + MaterialProperty normalMapSpace = null; + MaterialProperty heightMap = null; + MaterialProperty heightScale = null; + MaterialProperty heightBias = null; + MaterialProperty heightMapMode = null; +// MaterialProperty diffuseLightingMap = null; + MaterialProperty emissiveColor = null; + MaterialProperty emissiveColorMap = null; + MaterialProperty emissiveIntensity = null; +// MaterialProperty subSurfaceRadius = null; +// MaterialProperty subSurfaceRadiusMap = null; + + protected MaterialEditor m_MaterialEditor; + + protected const string kSurfaceType = "_SurfaceType"; + protected const string kBlendMode = "_BlendMode"; + protected const string kAlphaCutoff = "_AlphaCutoff"; + protected const string kAlphaCutoffEnabled = "_AlphaCutoffEnable"; + protected const string kDoubleSidedMode = "_DoubleSidedMode"; + protected const string kSmoothnessTextureChannelProp = "_SmoothnessTextureChannel"; + protected const string kEmissiveColorMode = "_EmissiveColorMode"; + protected const string kNormalMapSpace = "_NormalMapSpace"; + protected const string kHeightMapMode = "_HeightMapMode"; + + protected const string kNormalMap = "_NormalMap"; + protected const string kMaskMap = "_MaskMap"; + protected const string kspecularOcclusionMap = "_SpecularOcclusionMap"; + protected const string kEmissiveColorMap = "_EmissiveColorMap"; + protected const string kHeightMap = "_HeightMap"; + + public void FindOptionProperties(MaterialProperty[] props) + { + surfaceType = FindProperty(kSurfaceType, props); + blendMode = FindProperty(kBlendMode, props); + alphaCutoff = FindProperty(kAlphaCutoff, props); + alphaCutoffEnable = FindProperty(kAlphaCutoffEnabled, props); + doubleSidedMode = FindProperty(kDoubleSidedMode, props); + smoothnessMapChannel = FindProperty(kSmoothnessTextureChannelProp, props); + emissiveColorMode = FindProperty(kEmissiveColorMode, props); + normalMapSpace = FindProperty(kNormalMapSpace, props); + heightMapMode = FindProperty(kHeightMapMode, props); + } + + public void FindInputProperties(MaterialProperty[] props) + { + baseColor = FindProperty("_BaseColor", props); + baseColorMap = FindProperty("_BaseColorMap", props); + metallic = FindProperty("_Metallic", props); + smoothness = FindProperty("_Smoothness", props); + maskMap = FindProperty(kMaskMap, props); + specularOcclusionMap = FindProperty(kspecularOcclusionMap, props); + normalMap = FindProperty(kNormalMap, props); + heightMap = FindProperty(kHeightMap, props); + heightScale = FindProperty("_HeightScale", props); + heightBias = FindProperty("_HeightBias", props); + // diffuseLightingMap = FindProperty("_DiffuseLightingMap", props); + emissiveColor = FindProperty("_EmissiveColor", props); + emissiveColorMap = FindProperty(kEmissiveColorMap, props); + emissiveIntensity = FindProperty("_EmissiveIntensity", props); + } + + public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] props) + { + FindOptionProperties(props); // MaterialProperties can be animated so we do not cache them but fetch them every event to ensure animated values are updated correctly + FindInputProperties(props); + + m_MaterialEditor = materialEditor; + Material material = materialEditor.target as Material; + ShaderPropertiesGUI(material); + } + + protected void ShaderOptionsGUI() + { + EditorGUI.indentLevel++; + GUILayout.Label(Styles.OptionText, EditorStyles.boldLabel); + SurfaceTypePopup(); + if ((SurfaceType)surfaceType.floatValue == SurfaceType.Transparent) + { + BlendModePopup(); + } + m_MaterialEditor.ShaderProperty(alphaCutoffEnable, Styles.alphaCutoffEnableText.text); + if (alphaCutoffEnable.floatValue == 1.0) + { + m_MaterialEditor.ShaderProperty(alphaCutoff, Styles.alphaCutoffText.text); + } + m_MaterialEditor.ShaderProperty(doubleSidedMode, Styles.doubleSidedModeText.text); + + EditorGUI.indentLevel--; + } + + protected void ShaderInputOptionsGUI() + { + EditorGUI.indentLevel++; + GUILayout.Label(Styles.InputsOptionsText, EditorStyles.boldLabel); + m_MaterialEditor.ShaderProperty(smoothnessMapChannel, Styles.smoothnessMapChannelText.text); + m_MaterialEditor.ShaderProperty(emissiveColorMode, Styles.emissiveColorModeText.text); + m_MaterialEditor.ShaderProperty(normalMapSpace, Styles.normalMapSpaceText.text); + m_MaterialEditor.ShaderProperty(heightMapMode, Styles.heightMapModeText.text); + EditorGUI.indentLevel--; + } + + protected void ShaderInputGUI() + { + EditorGUI.indentLevel++; + bool smoothnessInAlbedoAlpha = (SmoothnessMapChannel)smoothnessMapChannel.floatValue == SmoothnessMapChannel.AlbedoAlpha; + bool useEmissiveMask = (EmissiveColorMode)emissiveColorMode.floatValue == EmissiveColorMode.UseEmissiveMask; + + GUILayout.Label(Styles.InputsText, EditorStyles.boldLabel); + m_MaterialEditor.TexturePropertySingleLine(smoothnessInAlbedoAlpha ? Styles.baseColorSmoothnessText : Styles.baseColorText, baseColorMap, baseColor); + m_MaterialEditor.ShaderProperty(metallic, Styles.metallicText); + m_MaterialEditor.ShaderProperty(smoothness, Styles.smoothnessText); + + if (smoothnessInAlbedoAlpha && useEmissiveMask) + m_MaterialEditor.TexturePropertySingleLine(Styles.maskMapEText, maskMap); + else if (smoothnessInAlbedoAlpha && !useEmissiveMask) + m_MaterialEditor.TexturePropertySingleLine(Styles.maskMapText, maskMap); + else if (!smoothnessInAlbedoAlpha && useEmissiveMask) + m_MaterialEditor.TexturePropertySingleLine(Styles.maskMapESText, maskMap); + else if (!smoothnessInAlbedoAlpha && !useEmissiveMask) + m_MaterialEditor.TexturePropertySingleLine(Styles.maskMapSText, maskMap); + + m_MaterialEditor.TexturePropertySingleLine(Styles.specularOcclusionMapText, specularOcclusionMap); + + m_MaterialEditor.TexturePropertySingleLine(Styles.normalMapText, normalMap); + + m_MaterialEditor.TexturePropertySingleLine(Styles.heightMapText, heightMap, heightScale, heightBias); + + if (!useEmissiveMask) + { + m_MaterialEditor.TexturePropertySingleLine(Styles.emissiveText, emissiveColorMap, emissiveColor); + } + m_MaterialEditor.ShaderProperty(emissiveIntensity, Styles.emissiveIntensityText); + EditorGUI.indentLevel--; + } + + public void ShaderPropertiesGUI(Material material) + { + // Use default labelWidth + EditorGUIUtility.labelWidth = 0f; + + // Detect any changes to the material + EditorGUI.BeginChangeCheck(); + { + ShaderOptionsGUI(); + EditorGUILayout.Space(); + + ShaderInputOptionsGUI(); + + EditorGUILayout.Space(); + ShaderInputGUI(); + } + + if (EditorGUI.EndChangeCheck()) + { + foreach (var obj in m_MaterialEditor.targets) + SetupMaterial((Material)obj); + } + } + + // TODO: try to setup minimun value to fall back to standard shaders and reverse + public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader) + { + base.AssignNewShaderToMaterial(material, oldShader, newShader); + } + + void SurfaceTypePopup() + { + EditorGUI.showMixedValue = surfaceType.hasMixedValue; + var mode = (SurfaceType)surfaceType.floatValue; + + EditorGUI.BeginChangeCheck(); + mode = (SurfaceType)EditorGUILayout.Popup(Styles.SurfaceTypeText, (int)mode, Styles.surfaceTypeNames); + if (EditorGUI.EndChangeCheck()) + { + m_MaterialEditor.RegisterPropertyChangeUndo("Surface Type"); + surfaceType.floatValue = (float)mode; + } + + EditorGUI.showMixedValue = false; + } + + void BlendModePopup() + { + EditorGUI.showMixedValue = blendMode.hasMixedValue; + var mode = (BlendMode)blendMode.floatValue; + + EditorGUI.BeginChangeCheck(); + mode = (BlendMode)EditorGUILayout.Popup(Styles.BlendModeText, (int)mode, Styles.blendModeNames); + if (EditorGUI.EndChangeCheck()) + { + m_MaterialEditor.RegisterPropertyChangeUndo("Blend Mode"); + blendMode.floatValue = (float)mode; + } + + EditorGUI.showMixedValue = false; + } + + protected virtual void SetupKeywordsForInputMaps(Material material) + { + SetKeyword(material, "_NORMALMAP", material.GetTexture(kNormalMap)); + SetKeyword(material, "_MASKMAP", material.GetTexture(kMaskMap)); + SetKeyword(material, "_SPECULAROCCLUSIONMAP", material.GetTexture(kspecularOcclusionMap)); + SetKeyword(material, "_EMISSIVE_COLOR_MAP", material.GetTexture(kEmissiveColorMap)); + SetKeyword(material, "_HEIGHTMAP", material.GetTexture(kHeightMap)); + } + + protected void SetupMaterial(Material material) + { + // Note: keywords must be based on Material value not on MaterialProperty due to multi-edit & material animation + // (MaterialProperty value might come from renderer material property block) + + bool alphaTestEnable = material.GetFloat(kAlphaCutoffEnabled) == 1.0; + SurfaceType surfaceType = (SurfaceType)material.GetFloat(kSurfaceType); + BlendMode blendMode = (BlendMode)material.GetFloat(kBlendMode); + DoubleSidedMode doubleSidedMode = (DoubleSidedMode)material.GetFloat(kDoubleSidedMode); + + if (surfaceType == SurfaceType.Opaque) + { + material.SetOverrideTag("RenderType", alphaTestEnable ? "TransparentCutout" : ""); + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); + material.SetInt("_ZWrite", 1); + material.renderQueue = alphaTestEnable ? (int)UnityEngine.Rendering.RenderQueue.AlphaTest : -1; + } + else + { + material.SetOverrideTag("RenderType", "Transparent"); + material.SetInt("_ZWrite", 0); + material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.Transparent; + + switch (blendMode) + { + case BlendMode.Lerp: + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); + break; + + case BlendMode.Add: + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.One); + break; + + case BlendMode.SoftAdd: + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusDstColor); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.One); + break; + + case BlendMode.Multiply: + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.DstColor); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); + break; + + case BlendMode.Premultiply: + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); + break; + } + } + + if (doubleSidedMode == DoubleSidedMode.None) + { + material.SetInt("_CullMode", (int)UnityEngine.Rendering.CullMode.Back); + } + else + { + material.SetInt("_CullMode", (int)UnityEngine.Rendering.CullMode.Off); + } + + if (doubleSidedMode == DoubleSidedMode.DoubleSidedLightingFlip) + { + material.EnableKeyword("_DOUBLESIDED_LIGHTING_FLIP"); + material.DisableKeyword("_DOUBLESIDED_LIGHTING_MIRROR"); + } + else if (doubleSidedMode == DoubleSidedMode.DoubleSidedLightingMirror) + { + material.DisableKeyword("_DOUBLESIDED_LIGHTING_FLIP"); + material.EnableKeyword("_DOUBLESIDED_LIGHTING_MIRROR"); + } + else + { + material.DisableKeyword("_DOUBLESIDED_LIGHTING_FLIP"); + material.DisableKeyword("_DOUBLESIDED_LIGHTING_MIRROR"); + } + + SetKeyword(material, "_ALPHATEST_ON", alphaTestEnable); + SetKeyword(material, "_NORMALMAP_TANGENT_SPACE", (NormalMapSpace)material.GetFloat(kNormalMapSpace) == NormalMapSpace.TangentSpace); + SetKeyword(material, "_SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A", ((SmoothnessMapChannel)material.GetFloat(kSmoothnessTextureChannelProp)) == SmoothnessMapChannel.AlbedoAlpha); + SetKeyword(material, "_EMISSIVE_COLOR", ((EmissiveColorMode)material.GetFloat(kEmissiveColorMode)) == EmissiveColorMode.UseEmissiveColor); + SetKeyword(material, "_HEIGHTMAP_AS_DISPLACEMENT", (HeightmapMode)material.GetFloat(kHeightMapMode) == HeightmapMode.Displacement); + + SetupKeywordsForInputMaps(material); + + /* + // Setup lightmap emissive flags + MaterialGlobalIlluminationFlags flags = material.globalIlluminationFlags; + if ((flags & (MaterialGlobalIlluminationFlags.BakedEmissive | MaterialGlobalIlluminationFlags.RealtimeEmissive)) != 0) + { + flags &= ~MaterialGlobalIlluminationFlags.EmissiveIsBlack; + if (!shouldEmissionBeEnabled) + flags |= MaterialGlobalIlluminationFlags.EmissiveIsBlack; + + material.globalIlluminationFlags = flags; + } + */ + } + + static bool ShouldEmissionBeEnabled(Material mat, Color color) + { + //var realtimeEmission = (mat.globalIlluminationFlags & MaterialGlobalIlluminationFlags.RealtimeEmissive) > 0; + //return color.maxColorComponent > 0.1f / 255.0f || realtimeEmission; + + return false; + } + + bool HasValidEmissiveKeyword(Material material) + { + /* + // Material animation might be out of sync with the material keyword. + // So if the emission support is disabled on the material, but the property blocks have a value that requires it, then we need to show a warning. + // (note: (Renderer MaterialPropertyBlock applies its values to emissionColorForRendering)) + bool hasEmissionKeyword = material.IsKeywordEnabled ("_EMISSION"); + if (!hasEmissionKeyword && ShouldEmissionBeEnabled (material, emissionColorForRendering.colorValue)) + return false; + else + return true; + */ + + return true; + } + + protected void SetKeyword(Material m, string keyword, bool state) + { + if (state) + m.EnableKeyword(keyword); + else + m.DisableKeyword(keyword); + } + } +} // namespace UnityEditor diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitUI.cs.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitUI.cs.meta new file mode 100644 index 00000000000..b1d4fbd1d0d --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/LitUI.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: e3ab516250dce95488a52a547dca41a2 +timeCreated: 1475878177 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/PreIntegratedFGD.shader b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/PreIntegratedFGD.shader new file mode 100644 index 00000000000..ab580140933 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/PreIntegratedFGD.shader @@ -0,0 +1,58 @@ +Shader "Hidden/Unity/PreIntegratedFGD" +{ + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + + HLSLPROGRAM + #pragma vertex Vert + #pragma fragment Frag + #pragma target 5.0 + #pragma only_renderers d3d11 // TEMP: unitl we go futher in dev + + #include "Common.hlsl" + #include "ImageBasedLighting.hlsl" + #include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderVariables.hlsl" + + + struct Attributes + { + float3 vertex : POSITION; + float2 texcoord : TEXCOORD0; + }; + + struct Varyings + { + float4 vertex : SV_POSITION; + float2 texcoord : TEXCOORD0; + }; + + Varyings Vert(Attributes input) + { + Varyings output; + output.vertex = TransformWorldToHClip(input.vertex); + output.texcoord = input.texcoord.xy; + return output; + } + + float4 Frag(Varyings input) : SV_Target + { + // These coordinate sampling must match the decoding in GetPreIntegratedDFG in lit.hlsl, i.e here we use perceptualRoughness, must be the same in shader + float NdotV = input.texcoord.x; + float perceptualRoughness = input.texcoord.y; + float3 V = float3(sqrt(1 - NdotV * NdotV), 0, NdotV); + float3 N = float3(0.0, 0.0, 1.0); + + const int numSamples = 2048; + + // Pre integrate GGX with smithJoint visibility as well as DisneyDiffuse + float4 preFGD = IntegrateGGXAndDisneyFGD(V, N, PerceptualRoughnessToRoughness(perceptualRoughness), numSamples); + + return float4(preFGD.xyz, 1.0); + } + + ENDHLSL + } + } + Fallback Off +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/PreIntegratedFGD.shader.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/PreIntegratedFGD.shader.meta new file mode 100644 index 00000000000..39d75426f74 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Lit/PreIntegratedFGD.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 123f13d52852ef547b2962de4bd9eaad +timeCreated: 1476656697 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Material.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Material.hlsl index 09250381e9c..22173333e94 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Material.hlsl +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Material.hlsl @@ -1,68 +1,193 @@ #ifndef UNITY_MATERIAL_INCLUDED #define UNITY_MATERIAL_INCLUDED -#include "Assets/ScriptableRenderLoop/ShaderLibrary/Packing.hlsl" -#include "Assets/ScriptableRenderLoop/ShaderLibrary/BSDF.hlsl" -#include "Assets/ScriptableRenderLoop/ShaderLibrary/CommonLighting.hlsl" +#include "Common.hlsl" +#include "Packing.hlsl" +#include "BSDF.hlsl" +#include "CommonLighting.hlsl" +#include "Sampling.hlsl" +#include "AreaLighting.hlsl" +#include "ImageBasedLighting.hlsl" +#include "Debug.hlsl" +#include "GeometricTools.hlsl" + +#include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderConfig.cs" +#include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Lighting/LightDefinition.cs.hlsl" -#include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/LightDefinition.cs" -#include "CommonMaterial.hlsl" +//----------------------------------------------------------------------------- +// common Encode/Decode functions +//----------------------------------------------------------------------------- + +// Encode/Decode velocity in a buffer (either forward of deferred) +// Design note: We assume that VelocityVector fit into a single buffer (i.e not spread on several buffer) +void EncodeVelocity(float2 velocity, out float4 outBuffer) +{ + // RT - 16:16 float + outBuffer = float4(velocity.xy, 0.0, 0.0); +} + +float2 DecodeVelocity(float4 inBuffer) +{ + return float2(inBuffer.xy); +} + +// Encode/Decode into GBuffer - This is share so others material can use it. +// Design note: We assume that BakeDiffuseLighting and emissive fit into a single buffer (i.e not spread on several buffer) +void EncodeBakedDiffuseLigthingIntoGBuffer(float3 bakeDiffuseLighting, out float4 outBuffer) +{ + // RT - 11:11:10f + outBuffer = float4(bakeDiffuseLighting.xyz, 0.0); +} + +float3 DecodeBakedDiffuseLigthingFromGBuffer(float4 inBuffer) +{ + return float3(inBuffer.xyz); +} + +//----------------------------------------------------------------------------- +// BuiltinData +//----------------------------------------------------------------------------- + +#include "Builtin/BuiltinData.hlsl" + +//----------------------------------------------------------------------------- +// SurfaceData +//----------------------------------------------------------------------------- // Here we include all the different lighting model supported by the renderloop based on define done in .shader -#ifdef UNITY_MATERIAL_DISNEYGXX -#include "DisneyGGX.hlsl" +#ifdef UNITY_MATERIAL_LIT +#include "Lit/Lit.hlsl" +#elif defined(UNITY_MATERIAL_UNLIT) +#include "Unlit/Unlit.hlsl" #endif //----------------------------------------------------------------------------- // Define for GBuffer //----------------------------------------------------------------------------- -#ifdef GBUFFER_COUNT -#if GBUFFER_COUNT == 3 +#ifdef GBUFFERMATERIAL_COUNT + +#if GBUFFERMATERIAL_COUNT == 3 -#define OUTPUT_GBUFFER(NAME) \ - out float4 MERGE_NAME(NAME, 0) : SV_Target0, \ - out float4 MERGE_NAME(NAME, 1) : SV_Target1, \ - out float4 MERGE_NAME(NAME, 2) : SV_Target2 +#define OUTPUT_GBUFFER(NAME) \ + out float4 MERGE_NAME(NAME, 0) : SV_Target0, \ + out float4 MERGE_NAME(NAME, 1) : SV_Target1, \ + out float4 MERGE_NAME(NAME, 2) : SV_Target2 -#define DECLARE_GBUFFER_TEXTURE(NAME) \ - Texture2D MERGE_NAME(NAME, 0); \ - Texture2D MERGE_NAME(NAME, 1); \ - Texture2D MERGE_NAME(NAME, 2); +#define DECLARE_GBUFFER_TEXTURE(NAME) \ + Texture2D MERGE_NAME(NAME, 0); \ + Texture2D MERGE_NAME(NAME, 1); \ + Texture2D MERGE_NAME(NAME, 2); -#define FETCH_GBUFFER(NAME, TEX, UV) \ - float4 MERGE_NAME(NAME, 0) = MERGE_NAME(TEX, 0).Load(uint3(UV, 0)); \ - float4 MERGE_NAME(NAME, 1) = MERGE_NAME(TEX, 1).Load(uint3(UV, 0)); \ - float4 MERGE_NAME(NAME, 2) = MERGE_NAME(TEX, 2).Load(uint3(UV, 0)); +#define FETCH_GBUFFER(NAME, TEX, UV) \ + float4 MERGE_NAME(NAME, 0) = MERGE_NAME(TEX, 0).Load(uint3(UV, 0)); \ + float4 MERGE_NAME(NAME, 1) = MERGE_NAME(TEX, 1).Load(uint3(UV, 0)); \ + float4 MERGE_NAME(NAME, 2) = MERGE_NAME(TEX, 2).Load(uint3(UV, 0)); #define ENCODE_INTO_GBUFFER(SURFACE_DATA, NAME) EncodeIntoGBuffer(SURFACE_DATA, MERGE_NAME(NAME,0), MERGE_NAME(NAME,1), MERGE_NAME(NAME,2)) #define DECODE_FROM_GBUFFER(NAME) DecodeFromGBuffer(MERGE_NAME(NAME,0), MERGE_NAME(NAME,1), MERGE_NAME(NAME,2)) -#elif GBUFFER_COUNT == 4 +#ifdef VELOCITY_IN_GBUFFER +#define GBUFFER_VELOCITY_NAME(NAME) MERGE_NAME(NAME, 3) +#define GBUFFER_VELOCITY_TARGET(TARGET) MERGE_NAME(TARGET, 3) +#define GBUFFER_BAKE_LIGHTING_NAME(NAME) MERGE_NAME(NAME, 4) +#define GBUFFER_BAKE_LIGHTING_TARGET(TARGET) MERGE_NAME(TARGET, 4) +#else +#define GBUFFER_BAKE_LIGHTING_NAME(NAME) MERGE_NAME(NAME, 3) +#define GBUFFER_BAKE_LIGHTING_TARGET(TARGET) MERGE_NAME(TARGET, 3) +#endif + +#elif GBUFFERMATERIAL_COUNT == 4 -#define OUTPUT_GBUFFER(NAME) \ - out float4 MERGE_NAME(NAME, 0) : SV_Target0, \ - out float4 MERGE_NAME(NAME, 1) : SV_Target1, \ - out float4 MERGE_NAME(NAME, 2) : SV_Target2, \ - out float4 MERGE_NAME(NAME, 3) : SV_Target3 +#define OUTPUT_GBUFFER(NAME) \ + out float4 MERGE_NAME(NAME, 0) : SV_Target0, \ + out float4 MERGE_NAME(NAME, 1) : SV_Target1, \ + out float4 MERGE_NAME(NAME, 2) : SV_Target2, \ + out float4 MERGE_NAME(NAME, 3) : SV_Target3 -#define DECLARE_GBUFFER_TEXTURE(NAME) \ - Texture2D MERGE_NAME(NAME, 0); \ - Texture2D MERGE_NAME(NAME, 1); \ - Texture2D MERGE_NAME(NAME, 2); \ - Texture2D MERGE_NAME(NAME, 3); +#define DECLARE_GBUFFER_TEXTURE(NAME) \ + Texture2D MERGE_NAME(NAME, 0); \ + Texture2D MERGE_NAME(NAME, 1); \ + Texture2D MERGE_NAME(NAME, 2); \ + Texture2D MERGE_NAME(NAME, 3); -#define FETCH_GBUFFER(NAME, TEX, UV) \ - float4 MERGE_NAME(NAME, 0) = MERGE_NAME(TEX, 0).Load(uint3(UV, 0)); \ - float4 MERGE_NAME(NAME, 1) = MERGE_NAME(TEX, 1).Load(uint3(UV, 0)); \ - float4 MERGE_NAME(NAME, 2) = MERGE_NAME(TEX, 2).Load(uint3(UV, 0)); \ - float4 MERGE_NAME(NAME, 3) = MERGE_NAME(TEX, 3).Load(uint3(UV, 0)); +#define FETCH_GBUFFER(NAME, TEX, UV) \ + float4 MERGE_NAME(NAME, 0) = MERGE_NAME(TEX, 0).Load(uint3(UV, 0)); \ + float4 MERGE_NAME(NAME, 1) = MERGE_NAME(TEX, 1).Load(uint3(UV, 0)); \ + float4 MERGE_NAME(NAME, 2) = MERGE_NAME(TEX, 2).Load(uint3(UV, 0)); \ + float4 MERGE_NAME(NAME, 3) = MERGE_NAME(TEX, 3).Load(uint3(UV, 0)); #define ENCODE_INTO_GBUFFER(SURFACE_DATA, NAME) EncodeIntoGBuffer(SURFACE_DATA, MERGE_NAME(NAME, 0), MERGE_NAME(NAME, 1), MERGE_NAME(NAME, 2), MERGE_NAME(NAME, 3)) #define DECODE_FROM_GBUFFER(NAME) DecodeFromGBuffer(MERGE_NAME(NAME, 0), MERGE_NAME(NAME, 1), MERGE_NAME(NAME, 2), MERGE_NAME(NAME, 3)) +#ifdef VELOCITY_IN_GBUFFER +#define GBUFFER_VELOCITY_NAME(NAME) MERGE_NAME(NAME, 4) +#define GBUFFER_VELOCITY_TARGET(TARGET) MERGE_NAME(TARGET, 4) +#define GBUFFER_BAKE_LIGHTING_NAME(NAME) MERGE_NAME(NAME, 5) +#define GBUFFER_BAKE_LIGHTING_TARGET(TARGET) MERGE_NAME(TARGET, 5) +#else +#define GBUFFER_BAKE_LIGHTING_NAME(NAME) MERGE_NAME(NAME, 4) +#define GBUFFER_BAKE_LIGHTING_TARGET(TARGET) MERGE_NAME(TARGET, 4) +#endif + +#elif GBUFFERMATERIAL_COUNT == 5 + +#define OUTPUT_GBUFFER(NAME) \ + out float4 MERGE_NAME(NAME, 0) : SV_Target0, \ + out float4 MERGE_NAME(NAME, 1) : SV_Target1, \ + out float4 MERGE_NAME(NAME, 2) : SV_Target2, \ + out float4 MERGE_NAME(NAME, 3) : SV_Target3, \ + out float4 MERGE_NAME(NAME, 4) : SV_Target4 + +#define DECLARE_GBUFFER_TEXTURE(NAME) \ + Texture2D MERGE_NAME(NAME, 0); \ + Texture2D MERGE_NAME(NAME, 1); \ + Texture2D MERGE_NAME(NAME, 2); \ + Texture2D MERGE_NAME(NAME, 3); \ + Texture2D MERGE_NAME(NAME, 4); + +#define FETCH_GBUFFER(NAME, TEX, UV) \ + float4 MERGE_NAME(NAME, 0) = MERGE_NAME(TEX, 0).Load(uint3(UV, 0)); \ + float4 MERGE_NAME(NAME, 1) = MERGE_NAME(TEX, 1).Load(uint3(UV, 0)); \ + float4 MERGE_NAME(NAME, 2) = MERGE_NAME(TEX, 2).Load(uint3(UV, 0)); \ + float4 MERGE_NAME(NAME, 3) = MERGE_NAME(TEX, 3).Load(uint3(UV, 0)); \ + float4 MERGE_NAME(NAME, 4) = MERGE_NAME(TEX, 4).Load(uint3(UV, 0)); + +#define ENCODE_INTO_GBUFFER(SURFACE_DATA, NAME) EncodeIntoGBuffer(SURFACE_DATA, MERGE_NAME(NAME, 0), MERGE_NAME(NAME, 1), MERGE_NAME(NAME, 2), MERGE_NAME(NAME, 3), MERGE_NAME(NAME, 4)) +#define DECODE_FROM_GBUFFER(NAME) DecodeFromGBuffer(MERGE_NAME(NAME, 0), MERGE_NAME(NAME, 1), MERGE_NAME(NAME, 2), MERGE_NAME(NAME, 3), MERGE_NAME(NAME, 4)) + +#ifdef VELOCITY_IN_GBUFFER +#define GBUFFER_VELOCITY_NAME(NAME) MERGE_NAME(NAME, 5) +#define GBUFFER_VELOCITY_TARGET(TARGET) MERGE_NAME(TARGET, 5) +#define GBUFFER_BAKE_LIGHTING_NAME(NAME) MERGE_NAME(NAME, 6) +#define GBUFFER_BAKE_LIGHTING_TARGET(TARGET) MERGE_NAME(TARGET, 6) +#else +#define GBUFFER_BAKE_LIGHTING_NAME(NAME) MERGE_NAME(NAME, 5) +#define GBUFFER_BAKE_LIGHTING_TARGET(TARGET) MERGE_NAME(TARGET, 5) +#endif + +#endif // #if GBUFFERMATERIAL_COUNT == 3 + +// Generic whatever the number of GBuffer +#ifdef VELOCITY_IN_GBUFFER +#define OUTPUT_GBUFFER_VELOCITY(NAME) out float4 GBUFFER_VELOCITY_NAME(NAME) : GBUFFER_VELOCITY_TARGET(SV_Target) +#define DECLARE_GBUFFER_VELOCITY_TEXTURE(NAME) Texture2D GBUFFER_VELOCITY_NAME(NAME); +#define ENCODE_VELOCITY_INTO_GBUFFER(VELOCITY, NAME) EncodeVelocity(VELOCITY, GBUFFER_VELOCITY_NAME(NAME)) #endif -#endif // #ifdef GBUFFER_COUNT +#define OUTPUT_GBUFFER_BAKE_LIGHTING(NAME) out float4 GBUFFER_BAKE_LIGHTING_NAME(NAME) : GBUFFER_BAKE_LIGHTING_TARGET(SV_Target) +#define DECLARE_GBUFFER_BAKE_LIGHTING(NAME) Texture2D GBUFFER_BAKE_LIGHTING_NAME(NAME); +#define ENCODE_BAKE_LIGHTING_INTO_GBUFFER(BAKE_DIFFUSE_LIGHTING, NAME) EncodeBakedDiffuseLigthingIntoGBuffer(BAKE_DIFFUSE_LIGHTING, GBUFFER_BAKE_LIGHTING_NAME(NAME)) +#define FETCH_BAKE_LIGHTING_GBUFFER(NAME, TEX, UV) float4 GBUFFER_BAKE_LIGHTING_NAME(NAME) = GBUFFER_BAKE_LIGHTING_NAME(TEX).Load(uint3(UV, 0)); +#define DECODE_BAKE_LIGHTING_FROM_GBUFFER(NAME) DecodeBakedDiffuseLigthingFromGBuffer(GBUFFER_BAKE_LIGHTING_NAME(NAME)) + +#endif // #ifdef GBUFFERMATERIAL_COUNT + +// Decode velocity need to be accessible in both forward and deferred +#ifdef VELOCITY_IN_GBUFFER +#define DECODE_VELOCITY_BUFFER(NAME) DecodeVelocity(GBUFFER_VELOCITY_NAME(NAME)) +#else +#define DECODE_VELOCITY_BUFFER(NAME) DecodeVelocity(GBUFFER_VELOCITY_NAME(NAME)) +#endif -#endif // UNITY_MATERIAL_INCLUDED \ No newline at end of file +#endif // UNITY_MATERIAL_INCLUDED diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit.meta new file mode 100644 index 00000000000..e4fa28363c4 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 355ba1f7a06cc7a4abe51689715bb1e7 +folderAsset: yes +timeCreated: 1476653182 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs new file mode 100644 index 00000000000..ad46b1812a8 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs @@ -0,0 +1,34 @@ +using UnityEngine; +using UnityEngine.Experimental.Rendering; +using System; + +//----------------------------------------------------------------------------- +// structure definition +//----------------------------------------------------------------------------- +namespace UnityEngine.Experimental.ScriptableRenderLoop +{ + namespace Unlit + { + //----------------------------------------------------------------------------- + // SurfaceData + //----------------------------------------------------------------------------- + + // Main structure that store the user data (i.e user input of master node in material graph) + [GenerateHLSL(PackingRules.Exact, false, true, 1100)] + public struct SurfaceData + { + [SurfaceDataAttributes("Color")] + public Vector3 color; + }; + + //----------------------------------------------------------------------------- + // BSDFData + //----------------------------------------------------------------------------- + + [GenerateHLSL(PackingRules.Exact, false, true, 1130)] + public struct BSDFData + { + public Vector3 color; + }; + } +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs.hlsl new file mode 100644 index 00000000000..fc2a322a55c --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs.hlsl @@ -0,0 +1,29 @@ +// +// This file was automatically generated from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs. Please don't edit by hand. +// + +// +// UnityEngine.Experimental.ScriptableRenderLoop.Unlit.SurfaceData: static fields +// +#define DEBUGVIEW_UNLIT_SURFACEDATA_COLOR (1100) + +// +// UnityEngine.Experimental.ScriptableRenderLoop.Unlit.BSDFData: static fields +// +#define DEBUGVIEW_UNLIT_BSDFDATA_COLOR (1130) + +// Generated from UnityEngine.Experimental.ScriptableRenderLoop.Unlit.SurfaceData +// PackingRules = Exact +struct SurfaceData +{ + float3 color; +}; + +// Generated from UnityEngine.Experimental.ScriptableRenderLoop.Unlit.BSDFData +// PackingRules = Exact +struct BSDFData +{ + float3 color; +}; + + diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs.hlsl.meta new file mode 100644 index 00000000000..750e97f4c51 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 69c83587055c7b1488151841534b03e1 +timeCreated: 1476887739 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs.meta new file mode 100644 index 00000000000..8804bcc3240 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 442f2692415eb6d4ab434b389a186d4a +timeCreated: 1476887639 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.hlsl new file mode 100644 index 00000000000..5e31fe650d8 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.hlsl @@ -0,0 +1,51 @@ +#ifndef UNITY_UNLIT_INCLUDED +#define UNITY_UNLIT_INCLUDED + +//----------------------------------------------------------------------------- +// SurfaceData and BSDFData +//----------------------------------------------------------------------------- + +// SurfaceData is define in Lit.cs which generate Lit.cs.hlsl +#include "Unlit.cs.hlsl" + +//----------------------------------------------------------------------------- +// conversion function for forward +//----------------------------------------------------------------------------- + +BSDFData ConvertSurfaceDataToBSDFData(SurfaceData data) +{ + BSDFData output; + output.color = data.color; + + return output; +} + +//----------------------------------------------------------------------------- +// No light evaluation, this is unlit +//----------------------------------------------------------------------------- + +//----------------------------------------------------------------------------- +// Debug method (use to display values) +//----------------------------------------------------------------------------- + +void GetSurfaceDataDebug(uint paramId, SurfaceData surfaceData, inout float3 result, inout bool needLinearToSRGB) +{ + switch (paramId) + { + case DEBUGVIEW_UNLIT_SURFACEDATA_COLOR: + result = surfaceData.color; needLinearToSRGB = true; + break; + } +} + +void GetBSDFDataDebug(uint paramId, BSDFData bsdfData, inout float3 result, inout bool needLinearToSRGB) +{ + switch (paramId) + { + case DEBUGVIEW_UNLIT_SURFACEDATA_COLOR: + result = bsdfData.color; needLinearToSRGB = true; + break; + } +} + +#endif // UNITY_UNLIT_INCLUDED diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.hlsl.meta new file mode 100644 index 00000000000..519fcb4d14e --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/Unlit.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 00f37057845073e4880c18942abfb094 +timeCreated: 1475742185 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitData.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitData.hlsl new file mode 100644 index 00000000000..32a548f2275 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitData.hlsl @@ -0,0 +1,45 @@ +// No guard header! + +//------------------------------------------------------------------------------------- +// FragInput +// This structure gather all possible varying/interpolator for this shader. +//------------------------------------------------------------------------------------- + +struct FragInput +{ + float4 positionHS; + float2 texCoord0; +}; + +//------------------------------------------------------------------------------------- +// Fill SurfaceData/Builtin data function +//------------------------------------------------------------------------------------- + +void GetSurfaceAndBuiltinData(FragInput input, out SurfaceData surfaceData, out BuiltinData builtinData) +{ + surfaceData.color = UNITY_SAMPLE_TEX2D(_ColorMap, input.texCoord0).rgb * _Color.rgb; + float alpha = UNITY_SAMPLE_TEX2D(_ColorMap, input.texCoord0).a * _Color.a; + +#ifdef _ALPHATEST_ON + clip(alpha - _AlphaCutoff); +#endif + + // Builtin Data + builtinData.opacity = alpha; + + builtinData.bakeDiffuseLighting = float3(0.0, 0.0, 0.0); + +#ifdef _EMISSIVE_COLOR_MAP + builtinData.emissiveColor = UNITY_SAMPLE_TEX2D(_EmissiveColorMap, input.texCoord0).rgb * _EmissiveColor; +#else + builtinData.emissiveColor = _EmissiveColor; +#endif + + builtinData.emissiveIntensity = _EmissiveIntensity; + + builtinData.velocity = float2(0.0, 0.0); + + builtinData.distortion = float2(0.0, 0.0); + builtinData.distortionBlur = 0.0; +} + diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitData.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitData.hlsl.meta new file mode 100644 index 00000000000..7e9599a94f0 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitData.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d0259a31ef8b78e47b18e07b4ed40762 +timeCreated: 1477005871 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitDefault.shader b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitDefault.shader new file mode 100644 index 00000000000..42656ea2f3b --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitDefault.shader @@ -0,0 +1,142 @@ +Shader "Unity/Unlit" +{ + Properties + { + _Color("Color", Color) = (1,1,1,1) + _ColorMap("ColorMap", 2D) = "white" {} + + _EmissiveColor("EmissiveColor", Color) = (0, 0, 0) + _EmissiveColorMap("EmissiveColorMap", 2D) = "white" {} + _EmissiveIntensity("EmissiveIntensity", Float) = 0 + + [ToggleOff] _DistortionOnly("Distortion Only", Float) = 0.0 + [ToggleOff] _DistortionDepthTest("Distortion Only", Float) = 0.0 + + [ToggleOff] _AlphaCutoffEnable("Alpha Cutoff Enable", Float) = 0.0 + _AlphaCutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5 + + // Blending state + [HideInInspector] _SurfaceType("__surfacetype", Float) = 0.0 + [HideInInspector] _BlendMode ("__blendmode", Float) = 0.0 + [HideInInspector] _SrcBlend ("__src", Float) = 1.0 + [HideInInspector] _DstBlend ("__dst", Float) = 0.0 + [HideInInspector] _ZWrite ("__zw", Float) = 1.0 + [HideInInspector] _CullMode("__cullmode", Float) = 2.0 + + [Enum(None, 0, DoubleSided, 1)] _DoubleSidedMode("Double sided mode", Float) = 0 + } + + HLSLINCLUDE + + #pragma target 5.0 + #pragma only_renderers d3d11 // TEMP: unitl we go futher in dev + + //------------------------------------------------------------------------------------- + // Variant + //------------------------------------------------------------------------------------- + + #pragma shader_feature _ALPHATEST_ON + #pragma shader_feature _EMISSIVE_COLOR_MAP + + //------------------------------------------------------------------------------------- + // Define + //------------------------------------------------------------------------------------- + + #define UNITY_MATERIAL_UNLIT // Need to be define before including Material.hlsl + + //------------------------------------------------------------------------------------- + // Include + //------------------------------------------------------------------------------------- + + #include "common.hlsl" + #include "../../ShaderPass/ShaderPass.cs.hlsl" + #include "../../ShaderVariables.hlsl" + #include "../../Debug/DebugViewMaterial.hlsl" + + //------------------------------------------------------------------------------------- + // variable declaration + //------------------------------------------------------------------------------------- + + float4 _Color; + UNITY_DECLARE_TEX2D(_ColorMap); + float3 _EmissiveColor; + UNITY_DECLARE_TEX2D(_EmissiveColorMap); + float _EmissiveIntensity; + + float _AlphaCutoff; + + ENDHLSL + + SubShader + { + Tags { "RenderType"="Opaque" "PerformanceChecks"="False" } + LOD 300 + + // ------------------------------------------------------------------ + // Debug pass + Pass + { + Name "Debug" + Tags { "LightMode" = "DebugViewMaterial" } + + Cull[_CullMode] + + HLSLPROGRAM + + #pragma vertex VertDefault + #pragma fragment Frag + + #define SHADERPASS SHADERPASS_DEBUG_VIEW_MATERIAL + #include "../../Material/Material.hlsl" + #include "UnlitData.hlsl" + #include "UnlitShare.hlsl" + + void GetVaryingsDataDebug(uint paramId, FragInput input, inout float3 result, inout bool needLinearToSRGB) + { + switch (paramId) + { + case DEBUGVIEW_VARYING_DEPTH: + // TODO: provide a customize parameter (like a slider) + float linearDepth = frac(LinearEyeDepth(input.positionHS.z, _ZBufferParams) * 0.1); + result = linearDepth.xxx; + break; + case DEBUGVIEW_VARYING_TEXCOORD0: + result = float3(input.texCoord0 * 0.5 + 0.5, 0.0); + break; + } + } + + #include "../../ShaderPass/ShaderPassDebugViewMaterial.hlsl" + + ENDHLSL + } + + // ------------------------------------------------------------------ + // forward pass + Pass + { + Name "ForwardUnlit" + Tags { "LightMode" = "ForwardUnlit" } + + Blend [_SrcBlend] [_DstBlend] + ZWrite [_ZWrite] + Cull [_CullMode] + + HLSLPROGRAM + + #pragma vertex VertDefault + #pragma fragment Frag + + #define SHADERPASS SHADERPASS_FORWARD_UNLIT + #include "../../Material/Material.hlsl" + #include "UnlitData.hlsl" + #include "UnlitShare.hlsl" + + #include "../../ShaderPass/ShaderPassForwardUnlit.hlsl" + + ENDHLSL + } + } + + CustomEditor "UnlitGUI" +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitDefault.shader.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitDefault.shader.meta new file mode 100644 index 00000000000..0b3eec84983 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitDefault.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c4edd00ff2db5b24391a4fcb1762e459 +timeCreated: 1477005432 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitShare.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitShare.hlsl new file mode 100644 index 00000000000..a7d444a6266 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitShare.hlsl @@ -0,0 +1,63 @@ +// No guard header! + +#ifndef SHADERPASS +#error Undefine_SHADERPASS +#endif + +//------------------------------------------------------------------------------------- +// Attribute/Varying +//------------------------------------------------------------------------------------- + +struct Attributes +{ + float3 positionOS : POSITION; + float2 uv0 : TEXCOORD0; +}; + +struct Varyings +{ + float4 positionHS; + float2 texCoord0; +}; + +struct PackedVaryings +{ + float4 positionHS : SV_Position; + float4 interpolators[1] : TEXCOORD0; +}; + +PackedVaryings PackVaryings(Varyings input) +{ + PackedVaryings output; + output.positionHS = input.positionHS; + output.interpolators[0] = float4(input.texCoord0.xy, 0.0, 0.0); + + return output; +} + +FragInput UnpackVaryings(PackedVaryings input) +{ + FragInput output; + ZERO_INITIALIZE(FragInput, output); + + output.positionHS = input.positionHS; + output.texCoord0.xy = input.interpolators[0].xy; + + return output; +} + +//------------------------------------------------------------------------------------- +// Vertex shader +//------------------------------------------------------------------------------------- + +PackedVaryings VertDefault(Attributes input) +{ + Varyings output; + + float3 positionWS = TransformObjectToWorld(input.positionOS); + output.positionHS = TransformWorldToHClip(positionWS); + + output.texCoord0 = input.uv0; + + return PackVaryings(output); +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitShare.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitShare.hlsl.meta new file mode 100644 index 00000000000..87844f415db --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitShare.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: dde56582e54a7624f9768780b89f9c46 +timeCreated: 1477005849 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitUI.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitUI.cs new file mode 100644 index 00000000000..b2cc994e878 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitUI.cs @@ -0,0 +1,323 @@ +using System; +using UnityEngine; +using UnityEngine.Rendering; + +namespace UnityEditor +{ + internal class UnlitGUI : ShaderGUI + { + public enum SurfaceType + { + Opaque, + Transparent + } + public enum BlendMode + { + Lerp, + Add, + SoftAdd, + Multiply, + Premultiply + } + + public enum DoubleSidedMode + { + None, + DoubleSided + } + + private static class Styles + { + public static string OptionText = "Options"; + public static string SurfaceTypeText = "Surface Type"; + public static string BlendModeText = "Blend Mode"; + + public static GUIContent alphaCutoffEnableText = new GUIContent("Alpha Cutoff Enable", "Threshold for alpha cutoff"); + public static GUIContent alphaCutoffText = new GUIContent("Alpha Cutoff", "Threshold for alpha cutoff"); + public static GUIContent doubleSidedModeText = new GUIContent("Double Sided", "This will render the two face of the objects (disable backface culling)"); + + public static readonly string[] surfaceTypeNames = Enum.GetNames(typeof(SurfaceType)); + public static readonly string[] blendModeNames = Enum.GetNames(typeof(BlendMode)); + + public static string InputsOptionsText = "Inputs options"; + + public static string InputsText = "Inputs"; + + public static string InputsMapText = ""; + + public static GUIContent colorText = new GUIContent("Color + Opacity", "Albedo (RGB) and Opacity (A)"); + + public static GUIContent emissiveText = new GUIContent("Emissive Color", "Emissive"); + public static GUIContent emissiveIntensityText = new GUIContent("Emissive Intensity", "Emissive"); + } + + MaterialProperty surfaceType = null; + MaterialProperty blendMode = null; + MaterialProperty alphaCutoff = null; + MaterialProperty alphaCutoffEnable = null; + MaterialProperty doubleSidedMode = null; + + MaterialProperty color = null; + MaterialProperty colorMap = null; + + MaterialProperty emissiveColor = null; + MaterialProperty emissiveColorMap = null; + MaterialProperty emissiveIntensity = null; + + protected MaterialEditor m_MaterialEditor; + + protected const string kSurfaceType = "_SurfaceType"; + protected const string kBlendMode = "_BlendMode"; + protected const string kAlphaCutoff = "_AlphaCutoff"; + protected const string kAlphaCutoffEnabled = "_AlphaCutoffEnable"; + protected const string kDoubleSidedMode = "_DoubleSidedMode"; + + protected const string kEmissiveColorMap = "_EmissiveColorMap"; + + public void FindOptionProperties(MaterialProperty[] props) + { + surfaceType = FindProperty(kSurfaceType, props); + blendMode = FindProperty(kBlendMode, props); + alphaCutoff = FindProperty(kAlphaCutoff, props); + alphaCutoffEnable = FindProperty(kAlphaCutoffEnabled, props); + doubleSidedMode = FindProperty(kDoubleSidedMode, props); + } + + public void FindInputProperties(MaterialProperty[] props) + { + color = FindProperty("_Color", props); + colorMap = FindProperty("_ColorMap", props); + emissiveColor = FindProperty("_EmissiveColor", props); + emissiveColorMap = FindProperty(kEmissiveColorMap, props); + emissiveIntensity = FindProperty("_EmissiveIntensity", props); + } + + public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] props) + { + FindOptionProperties(props); // MaterialProperties can be animated so we do not cache them but fetch them every event to ensure animated values are updated correctly + FindInputProperties(props); + + m_MaterialEditor = materialEditor; + Material material = materialEditor.target as Material; + ShaderPropertiesGUI(material); + } + + protected void ShaderOptionsGUI() + { + EditorGUI.indentLevel++; + GUILayout.Label(Styles.OptionText, EditorStyles.boldLabel); + SurfaceTypePopup(); + if ((SurfaceType)surfaceType.floatValue == SurfaceType.Transparent) + { + BlendModePopup(); + } + m_MaterialEditor.ShaderProperty(alphaCutoffEnable, Styles.alphaCutoffEnableText.text); + if (alphaCutoffEnable.floatValue == 1.0) + { + m_MaterialEditor.ShaderProperty(alphaCutoff, Styles.alphaCutoffText.text); + } + m_MaterialEditor.ShaderProperty(doubleSidedMode, Styles.doubleSidedModeText.text); + + EditorGUI.indentLevel--; + } + + protected void ShaderInputOptionsGUI() + { + EditorGUI.indentLevel++; + EditorGUI.indentLevel--; + } + + protected void ShaderInputGUI() + { + EditorGUI.indentLevel++; + + GUILayout.Label(Styles.InputsText, EditorStyles.boldLabel); + + m_MaterialEditor.TexturePropertySingleLine(Styles.colorText, colorMap, color); + + m_MaterialEditor.TexturePropertySingleLine(Styles.emissiveText, emissiveColorMap, emissiveColor); + m_MaterialEditor.ShaderProperty(emissiveIntensity, Styles.emissiveIntensityText); + + EditorGUI.indentLevel--; + } + + public void ShaderPropertiesGUI(Material material) + { + // Use default labelWidth + EditorGUIUtility.labelWidth = 0f; + + // Detect any changes to the material + EditorGUI.BeginChangeCheck(); + { + ShaderOptionsGUI(); + EditorGUILayout.Space(); + + ShaderInputOptionsGUI(); + + EditorGUILayout.Space(); + ShaderInputGUI(); + } + + if (EditorGUI.EndChangeCheck()) + { + foreach (var obj in m_MaterialEditor.targets) + SetupMaterial((Material)obj); + } + } + + // TODO: try to setup minimun value to fall back to standard shaders and reverse + public override void AssignNewShaderToMaterial(Material material, Shader oldShader, Shader newShader) + { + base.AssignNewShaderToMaterial(material, oldShader, newShader); + } + + void SurfaceTypePopup() + { + EditorGUI.showMixedValue = surfaceType.hasMixedValue; + var mode = (SurfaceType)surfaceType.floatValue; + + EditorGUI.BeginChangeCheck(); + mode = (SurfaceType)EditorGUILayout.Popup(Styles.SurfaceTypeText, (int)mode, Styles.surfaceTypeNames); + if (EditorGUI.EndChangeCheck()) + { + m_MaterialEditor.RegisterPropertyChangeUndo("Surface Type"); + surfaceType.floatValue = (float)mode; + } + + EditorGUI.showMixedValue = false; + } + + void BlendModePopup() + { + EditorGUI.showMixedValue = blendMode.hasMixedValue; + var mode = (BlendMode)blendMode.floatValue; + + EditorGUI.BeginChangeCheck(); + mode = (BlendMode)EditorGUILayout.Popup(Styles.BlendModeText, (int)mode, Styles.blendModeNames); + if (EditorGUI.EndChangeCheck()) + { + m_MaterialEditor.RegisterPropertyChangeUndo("Blend Mode"); + blendMode.floatValue = (float)mode; + } + + EditorGUI.showMixedValue = false; + } + + protected virtual void SetupKeywordsForInputMaps(Material material) + { + SetKeyword(material, "_EMISSIVE_COLOR_MAP", material.GetTexture(kEmissiveColorMap)); + } + + protected void SetupMaterial(Material material) + { + // Note: keywords must be based on Material value not on MaterialProperty due to multi-edit & material animation + // (MaterialProperty value might come from renderer material property block) + + bool alphaTestEnable = material.GetFloat(kAlphaCutoffEnabled) == 1.0; + SurfaceType surfaceType = (SurfaceType)material.GetFloat(kSurfaceType); + BlendMode blendMode = (BlendMode)material.GetFloat(kBlendMode); + DoubleSidedMode doubleSidedMode = (DoubleSidedMode)material.GetFloat(kDoubleSidedMode); + + if (surfaceType == SurfaceType.Opaque) + { + material.SetOverrideTag("RenderType", alphaTestEnable ? "TransparentCutout" : ""); + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); + material.SetInt("_ZWrite", 1); + material.renderQueue = alphaTestEnable ? (int)UnityEngine.Rendering.RenderQueue.AlphaTest : -1; + } + else + { + material.SetOverrideTag("RenderType", "Transparent"); + material.SetInt("_ZWrite", 0); + material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.Transparent; + + switch (blendMode) + { + case BlendMode.Lerp: + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); + break; + + case BlendMode.Add: + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.One); + break; + + case BlendMode.SoftAdd: + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusDstColor); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.One); + break; + + case BlendMode.Multiply: + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.DstColor); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero); + break; + + case BlendMode.Premultiply: + material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One); + material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha); + break; + } + } + + if (doubleSidedMode == DoubleSidedMode.None) + { + material.SetInt("_CullMode", (int)UnityEngine.Rendering.CullMode.Back); + } + else + { + material.SetInt("_CullMode", (int)UnityEngine.Rendering.CullMode.Off); + } + + SetKeyword(material, "_ALPHATEST_ON", alphaTestEnable); + + SetupKeywordsForInputMaps(material); + + /* + // Setup lightmap emissive flags + MaterialGlobalIlluminationFlags flags = material.globalIlluminationFlags; + if ((flags & (MaterialGlobalIlluminationFlags.BakedEmissive | MaterialGlobalIlluminationFlags.RealtimeEmissive)) != 0) + { + flags &= ~MaterialGlobalIlluminationFlags.EmissiveIsBlack; + if (!shouldEmissionBeEnabled) + flags |= MaterialGlobalIlluminationFlags.EmissiveIsBlack; + + material.globalIlluminationFlags = flags; + } + */ + } + + static bool ShouldEmissionBeEnabled(Material mat, Color color) + { + //var realtimeEmission = (mat.globalIlluminationFlags & MaterialGlobalIlluminationFlags.RealtimeEmissive) > 0; + //return color.maxColorComponent > 0.1f / 255.0f || realtimeEmission; + + return false; + } + + bool HasValidEmissiveKeyword(Material material) + { + /* + // Material animation might be out of sync with the material keyword. + // So if the emission support is disabled on the material, but the property blocks have a value that requires it, then we need to show a warning. + // (note: (Renderer MaterialPropertyBlock applies its values to emissionColorForRendering)) + bool hasEmissionKeyword = material.IsKeywordEnabled ("_EMISSION"); + if (!hasEmissionKeyword && ShouldEmissionBeEnabled (material, emissionColorForRendering.colorValue)) + return false; + else + return true; + */ + + return true; + } + + protected void SetKeyword(Material m, string keyword, bool state) + { + if (state) + m.EnableKeyword(keyword); + else + m.DisableKeyword(keyword); + } + } +} // namespace UnityEditor diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitUI.cs.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitUI.cs.meta new file mode 100644 index 00000000000..60988c90be7 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/Unlit/UnlitUI.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c48229427cd20841ada5ba240c493da +timeCreated: 1476888642 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/PostProcess/FinalPass.shader b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/PostProcess/FinalPass.shader index d325952485b..27c6573ee82 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/PostProcess/FinalPass.shader +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/PostProcess/FinalPass.shader @@ -1,48 +1,142 @@ -// Final compositing pass, just does gamma correction for now. -Shader "Hidden/Unity/FinalPass" +// Final compositing pass, just does gamma correction for now. +Shader "Hidden/Unity/FinalPass" { - Properties { _MainTex ("Texture", any) = "" {} } - SubShader { - Pass { - ZTest Always Cull Off ZWrite Off - - CGPROGRAM - #pragma vertex Vert - #pragma fragment Frag - #pragma target 5.0 - - #include "../../../ShaderLibrary/Color.hlsl" - #include "../ShaderVariables.hlsl" - - sampler2D _MainTex; - - struct Attributes { - float3 vertex : POSITION; - float2 texcoord : TEXCOORD0; - }; - - struct Varyings { - float4 vertex : SV_POSITION; - float2 texcoord : TEXCOORD0; - }; - - Varyings Vert(Attributes input) - { - Varyings output; - output.vertex = TransformWorldToHClip(input.vertex); - output.texcoord = input.texcoord.xy; - return output; - } - - float4 Frag(Varyings input) : SV_Target - { - float4 c = tex2D(_MainTex, input.texcoord); - // Gamma correction - return LinearToSRGB(c); - } - ENDCG - - } - } - Fallback Off + Properties + { + _MainTex ("Texture", any) = "" {} + + _ToneMapCoeffs1("Parameters for neutral tonemap", Vector) = (0.0, 0.0, 0.0, 0.0) + _ToneMapCoeffs2("Parameters for neutral tonemap", Vector) = (0.0, 0.0, 0.0, 0.0) + _Exposure("Exposure", Range(-32.0, 32.0)) = 0 + [ToggleOff] _EnableToneMap("Enable Tone Map", Float) = 0 + } + + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + + HLSLPROGRAM + #pragma vertex Vert + #pragma fragment Frag + #pragma target 5.0 + + #include "Common.hlsl" + #include "Color.hlsl" + #include "Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderVariables.hlsl" + + UNITY_DECLARE_TEX2D(_MainTex); + float4 _ToneMapCoeffs1; + float4 _ToneMapCoeffs2; + + #define InBlack _ToneMapCoeffs1.x + #define OutBlack _ToneMapCoeffs1.y + #define InWhite _ToneMapCoeffs1.z + #define OutWhite _ToneMapCoeffs1.w + #define WhiteLevel _ToneMapCoeffs2.z + #define WhiteClip _ToneMapCoeffs2.w + + float _Exposure; + float _EnableToneMap; + + struct Attributes + { + float3 vertex : POSITION; + float2 texcoord : TEXCOORD0; + }; + + struct Varyings + { + float4 vertex : SV_POSITION; + float2 texcoord : TEXCOORD0; + }; + + Varyings Vert(Attributes input) + { + Varyings output; + output.vertex = TransformWorldToHClip(input.vertex); + output.texcoord = input.texcoord.xy; + return output; + } + + float3 evalCurve(float3 x, float A, float B, float C, float D, float E, float F) + { + return ((x*(A*x + C*B) + D*E) / (x*(A*x + B) + D*F)) - E / F; + } + + float3 applyTonemapFilmicAD(float3 linearColor) + { + float blackRatio = InBlack / OutBlack; + float whiteRatio = InWhite / OutWhite; + + // blend tunable coefficients + float B = lerp(0.57, 0.37, blackRatio); + float C = lerp(0.01, 0.24, whiteRatio); + float D = lerp(0.02, 0.20, blackRatio); + + // constants + float A = 0.2; + float E = 0.02; + float F = 0.30; + + // eval and correct for white point + float3 whiteScale = 1.0f / evalCurve(WhiteLevel, A, B, C, D, E, F); + float3 curr = evalCurve(linearColor * whiteScale, A, B, C, D, E, F); + + return curr * whiteScale; + } + + float3 remapWhite(float3 inPixel, float whitePt) + { + // var breakout for readability + const float inBlack = 0; + const float outBlack = 0; + float inWhite = whitePt; + const float outWhite = 1; + + // remap input range to output range + float3 outPixel = ((inPixel.rgb) - inBlack.xxx) / (inWhite.xxx - inBlack.xxx) * (outWhite.xxx - outBlack.xxx) + outBlack.xxx; + return (outPixel.rgb); + } + + float3 NeutralTonemap(float3 x) + { + float3 finalColor = applyTonemapFilmicAD(x); // curve (dynamic coeffs differ per level) + finalColor = remapWhite(finalColor, WhiteClip); // post-curve white point adjustment + finalColor = saturate(finalColor); + return finalColor; + } + + float3 ApplyToneMap(float3 color) + { + if (_EnableToneMap > 0.0) + { + return NeutralTonemap(color); + } + else + { + return saturate(color); + } + } + + float4 Frag(Varyings input) : SV_Target + { + float4 c = UNITY_SAMPLE_TEX2D(_MainTex, input.texcoord); + // Gamma correction + + // TODO: Currenlt in the editor there a an additional pass were the result is copyed in a render target RGBA8_sRGB. + // So we must not correct the sRGB here else it will be done two time. + // To fix! + + c.rgb = ApplyToneMap(c.rgb * exp2(_Exposure)); + + // return LinearToSRGB(c); + return c; + + + } + ENDHLSL + + } + } + Fallback Off } diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderConfig.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderConfig.cs new file mode 100644 index 00000000000..1977ee55d1a --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderConfig.cs @@ -0,0 +1,7 @@ +//----------------------------------------------------------------------------- +// Configuration +//----------------------------------------------------------------------------- + +// #define DIFFUSE_LAMBERT_BRDF +// #define USE_BSDF_PRE_LAMBDAV +// #define VELOCITY_IN_GBUFFER \ No newline at end of file diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderConfig.cs.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderConfig.cs.meta new file mode 100644 index 00000000000..e9f92435cbf --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderConfig.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 4c02a0bb722d0214696c302f8fe1688e +timeCreated: 1475742183 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass.meta new file mode 100644 index 00000000000..6d1745fcc77 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 86e1905991f44ab49baa68fc4d0570e4 +folderAsset: yes +timeCreated: 1476885561 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs new file mode 100644 index 00000000000..e6a7db1abc2 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs @@ -0,0 +1,22 @@ +using UnityEngine; +using UnityEngine.Experimental.Rendering; +using System; + +//----------------------------------------------------------------------------- +// structure definition +//----------------------------------------------------------------------------- +namespace UnityEngine.Experimental.ScriptableRenderLoop +{ + [GenerateHLSL(PackingRules.Exact)] + public enum ShaderPass + { + GBuffer, + Forward, + ForwardUnlit, + DepthOnly, + Velocity, + Distortion, + LightTransport, + DebugViewMaterial + } +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs.hlsl new file mode 100644 index 00000000000..0e8edcf4fa7 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs.hlsl @@ -0,0 +1,17 @@ +// +// This file was automatically generated from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs. Please don't edit by hand. +// + +// +// UnityEngine.Experimental.ScriptableRenderLoop.ShaderPass: static fields +// +#define SHADERPASS_GBUFFER (0) +#define SHADERPASS_FORWARD (1) +#define SHADERPASS_FORWARD_UNLIT (2) +#define SHADERPASS_DEPTH_ONLY (3) +#define SHADERPASS_VELOCITY (4) +#define SHADERPASS_DISTORTION (5) +#define SHADERPASS_LIGHT_TRANSPORT (6) +#define SHADERPASS_DEBUG_VIEW_MATERIAL (7) + + diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs.hlsl.meta new file mode 100644 index 00000000000..9efc5e841b8 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2c2d7b256f4650943b60cc4ef1c7aeaa +timeCreated: 1476916342 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs.meta new file mode 100644 index 00000000000..87065347c82 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPass.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 974f8c2dd0fe55a4d9f840490fcfa252 +timeCreated: 1476916273 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDebugViewMaterial.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDebugViewMaterial.hlsl new file mode 100644 index 00000000000..638f3e19d5b --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDebugViewMaterial.hlsl @@ -0,0 +1,34 @@ +#if SHADERPASS != SHADERPASS_DEBUG_VIEW_MATERIAL +#error SHADERPASS_is_not_correctly_define +#endif + +#include "Color.hlsl" +int _DebugViewMaterial; + +float4 Frag(PackedVaryings packedInput) : SV_Target +{ + FragInput input = UnpackVaryings(packedInput); + + SurfaceData surfaceData; + BuiltinData builtinData; + GetSurfaceAndBuiltinData(input, surfaceData, builtinData); + + BSDFData bsdfData = ConvertSurfaceDataToBSDFData(surfaceData); + + float3 result = float3(1.0, 1.0, 0.0); + bool needLinearToSRGB = false; + + GetVaryingsDataDebug(_DebugViewMaterial, input, result, needLinearToSRGB); + GetBuiltinDataDebug(_DebugViewMaterial, builtinData, result, needLinearToSRGB); + GetSurfaceDataDebug(_DebugViewMaterial, surfaceData, result, needLinearToSRGB); + GetBSDFDataDebug(_DebugViewMaterial, bsdfData, result, needLinearToSRGB); // TODO: This required to initialize all field from BSDFData... + + // TEMP! + // For now, the final blit in the backbuffer performs an sRGB write + // So in the meantime we apply the inverse transform to linear data to compensate. + if (!needLinearToSRGB) + result = SRGBToLinear(max(0, result)); + + return float4(result, 0.0); +} + diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDebugViewMaterial.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDebugViewMaterial.hlsl.meta new file mode 100644 index 00000000000..e385f5d3706 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDebugViewMaterial.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: e786716259fc05e4299d8dd2350471ef +timeCreated: 1476885564 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDepthOnly.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDepthOnly.hlsl new file mode 100644 index 00000000000..b894e73e569 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDepthOnly.hlsl @@ -0,0 +1,16 @@ +#if SHADERPASS != SHADERPASS_DEPTH_ONLY +#error SHADERPASS_is_not_correctly_define +#endif + +float4 Frag(PackedVaryings packedInput) : SV_Target +{ + FragInput input = UnpackVaryings(packedInput); + + SurfaceData surfaceData; + BuiltinData builtinData; + GetSurfaceAndBuiltinData(input, surfaceData, builtinData); + + // TODO: handle cubemap shadow + return float4(0.0, 0.0, 0.0, 0.0); +} + diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDepthOnly.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDepthOnly.hlsl.meta new file mode 100644 index 00000000000..9351ada17b1 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassDepthOnly.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d2b018587e99fd248bcbab551f0151a1 +timeCreated: 1476981737 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForward.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForward.hlsl new file mode 100644 index 00000000000..b8ebcb2e88a --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForward.hlsl @@ -0,0 +1,27 @@ +#if SHADERPASS != SHADERPASS_FORWARD +#error SHADERPASS_is_not_correctly_define +#endif + +float4 Frag(PackedVaryings packedInput) : SV_Target +{ + FragInput input = UnpackVaryings(packedInput); + float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS); + float3 positionWS = input.positionWS; + + SurfaceData surfaceData; + BuiltinData builtinData; + GetSurfaceAndBuiltinData(input, surfaceData, builtinData); + + BSDFData bsdfData = ConvertSurfaceDataToBSDFData(surfaceData); + Coordinate coord = GetCoordinate(input.positionHS.xy, _ScreenSize.zw); + PreLightData preLightData = GetPreLightData(V, positionWS, coord, bsdfData); + + float4 diffuseLighting; + float4 specularLighting; + ForwardLighting(V, positionWS, preLightData, bsdfData, diffuseLighting, specularLighting); + + diffuseLighting.rgb += GetBakedDiffuseLigthing(preLightData, surfaceData, builtinData, bsdfData); + + return float4(diffuseLighting.rgb + specularLighting.rgb, builtinData.opacity); +} + diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForward.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForward.hlsl.meta new file mode 100644 index 00000000000..329ed210efa --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForward.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: fcba5d34434ca2d4ba0e3a17aa46b4b1 +timeCreated: 1476885564 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForwardUnlit.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForwardUnlit.hlsl new file mode 100644 index 00000000000..0a69c6f9514 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForwardUnlit.hlsl @@ -0,0 +1,20 @@ +#if SHADERPASS != SHADERPASS_FORWARD_UNLIT +#error SHADERPASS_is_not_correctly_define +#endif + +float4 Frag(PackedVaryings packedInput) : SV_Target +{ + FragInput input = UnpackVaryings(packedInput); + + SurfaceData surfaceData; + BuiltinData builtinData; + GetSurfaceAndBuiltinData(input, surfaceData, builtinData); + + // Not lit here (but emissive is allowed) + + BSDFData bsdfData = ConvertSurfaceDataToBSDFData(surfaceData); + + // TODO: we must not access bsdfData here, it break the genericity of the code! + return float4(bsdfData.color, builtinData.opacity); +} + diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForwardUnlit.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForwardUnlit.hlsl.meta new file mode 100644 index 00000000000..a43f3b330c7 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassForwardUnlit.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 00c90b339432489468b14dc26ca81899 +timeCreated: 1476887321 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassGBuffer.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassGBuffer.hlsl new file mode 100644 index 00000000000..0da1ee58f78 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassGBuffer.hlsl @@ -0,0 +1,30 @@ +#if SHADERPASS != SHADERPASS_GBUFFER +#error SHADERPASS_is_not_correctly_define +#endif + +void Frag( PackedVaryings packedInput, + OUTPUT_GBUFFER(outGBuffer) + #ifdef VELOCITY_IN_GBUFFER + , OUTPUT_GBUFFER_VELOCITY(outGBuffer) + #endif + , OUTPUT_GBUFFER_BAKE_LIGHTING(outGBuffer) + ) +{ + FragInput input = UnpackVaryings(packedInput); + float3 V = GetWorldSpaceNormalizeViewDir(input.positionWS); + float3 positionWS = input.positionWS; + + SurfaceData surfaceData; + BuiltinData builtinData; + GetSurfaceAndBuiltinData(input, surfaceData, builtinData); + + BSDFData bsdfData = ConvertSurfaceDataToBSDFData(surfaceData); + Coordinate coord = GetCoordinate(input.positionHS.xy, _ScreenSize.zw); + PreLightData preLightData = GetPreLightData(V, positionWS, coord, bsdfData); + + ENCODE_INTO_GBUFFER(surfaceData, outGBuffer); + #ifdef VELOCITY_IN_GBUFFER + ENCODE_VELOCITY_INTO_GBUFFER(builtinData.velocity, outGBuffer); + #endif + ENCODE_BAKE_LIGHTING_INTO_GBUFFER(GetBakedDiffuseLigthing(preLightData, surfaceData, builtinData, bsdfData), outGBuffer); +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassGBuffer.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassGBuffer.hlsl.meta new file mode 100644 index 00000000000..e312e6e768a --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassGBuffer.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: bfcad7b1a4353ed4c8d77619baa740ca +timeCreated: 1476885564 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassLightTransport.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassLightTransport.hlsl new file mode 100644 index 00000000000..daf98831bd4 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassLightTransport.hlsl @@ -0,0 +1,43 @@ +#if SHADERPASS != SHADERPASS_LIGHT_TRANSPORT +#error SHADERPASS_is_not_correctly_define +#endif + +#include "Color.hlsl" + +// TODO: This is the max value allowed for emissive (bad name - but keep for now to retrieve it) (It is 8^2.2 (gamma) and 8 is the limit of punctual light slider...), comme from UnityCg.cginc. Fix it! +// Ask Jesper if this can be change for HDRenderLoop +#define EMISSIVE_RGBM_SCALE 97.0 + +float4 Frag(PackedVaryings packedInput) : SV_Target +{ + FragInput input = UnpackVaryings(packedInput); + + SurfaceData surfaceData; + BuiltinData builtinData; + GetSurfaceAndBuiltinData(input, surfaceData, builtinData); + + BSDFData bsdfData = ConvertSurfaceDataToBSDFData(surfaceData); + LighTransportData lightTransportData = GetLightTransportData(surfaceData, builtinData, bsdfData); + + // This shader is call two time. Once for getting emissiveColor, the other time to get diffuseColor + // We use unity_MetaFragmentControl to make the distinction. + + float4 res = float4(0.0, 0.0, 0.0, 1.0); + + // TODO: No if / else in original code from Unity, why ? keep like original code but should be either diffuse or emissive + if (unity_MetaFragmentControl.x) + { + // Apply diffuseColor Boost from LightmapSettings. + // put abs here to silent a warning, no cost, no impact as color is assume to be positive. + res.rgb = clamp(pow(abs(lightTransportData.diffuseColor), saturate(unity_OneOverOutputBoost)), 0, unity_MaxOutputValue); + } + + if (unity_MetaFragmentControl.y) + { + // TODO: THIS LIMIT MUST BE REMOVE, IT IS NOT HDR, change when RGB9e5 is here. + // Do we assume here that emission is [0..1] ? + res = PackRGBM(lightTransportData.emissiveColor, EMISSIVE_RGBM_SCALE); + } + + return res; +} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassLightTransport.hlsl.meta b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassLightTransport.hlsl.meta new file mode 100644 index 00000000000..0416a2d8384 --- /dev/null +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderPass/ShaderPassLightTransport.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 5fd11cedfe7e32f428a5b3ee47a077f7 +timeCreated: 1476909403 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderVariables.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderVariables.hlsl index dd1b171f2bd..c3777c75cdb 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderVariables.hlsl +++ b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/ShaderVariables.hlsl @@ -1,15 +1,14 @@ // UNITY_SHADER_NO_UPGRADE +#ifndef UNITY_SHADER_VARIABLES_INCLUDED +#define UNITY_SHADER_VARIABLES_INCLUDED + // CAUTION: // Currently the shaders compiler always include regualr Unity shaderVariables, so I get a conflict here were UNITY_SHADER_VARIABLES_INCLUDED is already define, this need to be fixed. // As I haven't change the variables name yet, I simply don't define anything, and I put the transform function at the end of the file outside the guard header. // This need to be fixed. float4x4 glstate_matrix_inv_projection; - -#ifndef UNITY_SHADER_VARIABLES_INCLUDED -#define UNITY_SHADER_VARIABLES_INCLUDED - #define UNITY_MATRIX_M unity_ObjectToWorld // These are updated per eye in VR @@ -18,9 +17,9 @@ float4x4 glstate_matrix_inv_projection; #define UNITY_MATRIX_VP unity_MatrixVP #ifdef UNITY_SINGLE_PASS_STEREO - #define UNITY_MATRIX_MVP mul(unity_MatrixVP, unity_ObjectToWorld) + #define UNITY_MATRIX_MVP mul(unity_MatrixVP, unity_ObjectToWorld) #else - #define UNITY_MATRIX_MVP glstate_matrix_mvp + #define UNITY_MATRIX_MVP glstate_matrix_mvp #endif // These use the camera center position in VR @@ -33,55 +32,55 @@ float4x4 glstate_matrix_inv_projection; CBUFFER_START(UnityPerCamera) - // Time (t = time since current level load) values from Unity - float4 _Time; // (t/20, t, t*2, t*3) - float4 _SinTime; // sin(t/8), sin(t/4), sin(t/2), sin(t) - float4 _CosTime; // cos(t/8), cos(t/4), cos(t/2), cos(t) - float4 unity_DeltaTime; // dt, 1/dt, smoothdt, 1/smoothdt - + // Time (t = time since current level load) values from Unity + float4 _Time; // (t/20, t, t*2, t*3) + float4 _SinTime; // sin(t/8), sin(t/4), sin(t/2), sin(t) + float4 _CosTime; // cos(t/8), cos(t/4), cos(t/2), cos(t) + float4 unity_DeltaTime; // dt, 1/dt, smoothdt, 1/smoothdt + #ifndef UNITY_SINGLE_PASS_STEREO - float3 _WorldSpaceCameraPos; + float3 _WorldSpaceCameraPos; #endif - - // x = 1 or -1 (-1 if projection is flipped) - // y = near plane - // z = far plane - // w = 1/far plane - float4 _ProjectionParams; - - // x = width - // y = height - // z = 1 + 1.0/width - // w = 1 + 1.0/height - float4 _ScreenParams; - - // Values used to linearize the Z buffer (http://www.humus.name/temp/Linearize%20depth.txt) - // x = 1-far/near - // y = far/near - // z = x/far - // w = y/far - float4 _ZBufferParams; - - // x = orthographic camera's width - // y = orthographic camera's height - // z = unused - // w = 1.0 if camera is ortho, 0.0 if perspective - float4 unity_OrthoParams; + + // x = 1 or -1 (-1 if projection is flipped) + // y = near plane + // z = far plane + // w = 1/far plane + float4 _ProjectionParams; + + // x = width + // y = height + // z = 1 + 1.0/width + // w = 1 + 1.0/height + float4 _ScreenParams; + + // Values used to linearize the Z buffer (http://www.humus.name/temp/Linearize%20depth.txt) + // x = 1-far/near + // y = far/near + // z = x/far + // w = y/far + float4 _ZBufferParams; + + // x = orthographic camera's width + // y = orthographic camera's height + // z = unused + // w = 1.0 if camera is ortho, 0.0 if perspective + float4 unity_OrthoParams; CBUFFER_END CBUFFER_START(UnityPerCameraRare) - float4 unity_CameraWorldClipPlanes[6]; + float4 unity_CameraWorldClipPlanes[6]; - // Projection matrices of the camera. Note that this might be different from projection matrix - // that is set right now, e.g. while rendering shadows the matrices below are still the projection - // of original camera. - float4x4 unity_CameraProjection; - float4x4 unity_CameraInvProjection; + // Projection matrices of the camera. Note that this might be different from projection matrix + // that is set right now, e.g. while rendering shadows the matrices below are still the projection + // of original camera. + float4x4 unity_CameraProjection; + float4x4 unity_CameraInvProjection; #ifndef UNITY_SINGLE_PASS_STEREO - float4x4 unity_WorldToCamera; - float4x4 unity_CameraToWorld; + float4x4 unity_WorldToCamera; + float4x4 unity_CameraToWorld; #endif CBUFFER_END @@ -89,36 +88,36 @@ CBUFFER_END CBUFFER_START(UnityPerDraw) #ifndef UNITY_SINGLE_PASS_STEREO - float4x4 glstate_matrix_mvp; + float4x4 glstate_matrix_mvp; #endif - - // Use center position for stereo rendering - float4x4 glstate_matrix_modelview0; - float4x4 glstate_matrix_invtrans_modelview0; - - float4x4 unity_ObjectToWorld; - float4x4 unity_WorldToObject; - float4 unity_LODFade; // x is the fade value ranging within [0,1]. y is x quantized into 16 levels - float4 unity_WorldTransformParams; // w is usually 1.0, or -1.0 for odd-negative scale transforms + + // Use center position for stereo rendering + float4x4 glstate_matrix_modelview0; + float4x4 glstate_matrix_invtrans_modelview0; + + float4x4 unity_ObjectToWorld; + float4x4 unity_WorldToObject; + float4 unity_LODFade; // x is the fade value ranging within [0,1]. y is x quantized into 16 levels + float4 unity_WorldTransformParams; // w is usually 1.0, or -1.0 for odd-negative scale transforms CBUFFER_END #ifdef UNITY_SINGLE_PASS_STEREO CBUFFER_START(UnityPerEye) - float3 _WorldSpaceCameraPos; - float4x4 glstate_matrix_projection; - - float4x4 unity_MatrixV; - float4x4 unity_MatrixVP; - - float4x4 unity_WorldToCamera; - float4x4 unity_CameraToWorld; + float3 _WorldSpaceCameraPos; + float4x4 glstate_matrix_projection; + + float4x4 unity_MatrixV; + float4x4 unity_MatrixVP; + + float4x4 unity_WorldToCamera; + float4x4 unity_CameraToWorld; CBUFFER_END #endif CBUFFER_START(UnityPerDrawRare) - float4x4 glstate_matrix_transpose_modelview0; + float4x4 glstate_matrix_transpose_modelview0; #ifdef UNITY_SINGLE_PASS_STEREO - float4x4 glstate_matrix_mvp; + float4x4 glstate_matrix_mvp; #endif CBUFFER_END @@ -128,97 +127,123 @@ CBUFFER_END CBUFFER_START(UnityPerFrame) #ifndef UNITY_SINGLE_PASS_STEREO - float4x4 glstate_matrix_projection; - float4x4 unity_MatrixV; - float4x4 unity_MatrixVP; + float4x4 glstate_matrix_projection; + float4x4 unity_MatrixV; + float4x4 unity_MatrixVP; #endif - - fixed4 glstate_lightmodel_ambient; - fixed4 unity_AmbientSky; - fixed4 unity_AmbientEquator; - fixed4 unity_AmbientGround; - fixed4 unity_IndirectSpecColor; + + float4 glstate_lightmodel_ambient; + float4 unity_AmbientSky; + float4 unity_AmbientEquator; + float4 unity_AmbientGround; + float4 unity_IndirectSpecColor; CBUFFER_END +CBUFFER_START(UnityLightmaps) +float4 unity_LightmapST; +float4 unity_DynamicLightmapST; +CBUFFER_END + // ---------------------------------------------------------------------------- -#endif // UNITY_SHADER_VARIABLES_INCLUDED +// TODO: move this to constant buffer by Pass +float4 _ScreenSize; float4x4 GetObjectToWorldMatrix() { - return unity_ObjectToWorld; + return unity_ObjectToWorld; } float4x4 GetWorldToObjectMatrix() { - return unity_WorldToObject; + return unity_WorldToObject; } // Transform to homogenous clip space float4x4 GetWorldToHClipMatrix() { - return unity_MatrixVP; + return unity_MatrixVP; } // Transform from clip space to homogenous world space float4x4 GetClipToHWorldMatrix() { - return glstate_matrix_inv_projection; + return glstate_matrix_inv_projection; +} + +float GetOdddNegativeScale() +{ + return unity_WorldTransformParams.w; } float4x4 GetObjectToWorldViewMatrix() { - return glstate_matrix_modelview0; + return glstate_matrix_modelview0; } float3 TransformObjectToWorld(float3 positionOS) { - return mul(GetObjectToWorldMatrix(), float4(positionOS, 1.0)); + return mul(GetObjectToWorldMatrix(), float4(positionOS, 1.0)).xyz; } float3 TransformObjectToView(float3 positionOS) { - return mul(GetObjectToWorldViewMatrix(), float4(positionOS, 1.0)); + return mul(GetObjectToWorldViewMatrix(), float4(positionOS, 1.0)).xyz; } float3 TransformObjectToWorldDir(float3 dirOS) { - // Normalize to support uniform scaling - return normalize(mul((float3x3)GetObjectToWorldMatrix(), dirOS)); + // Normalize to support uniform scaling + return normalize(mul((float3x3)GetObjectToWorldMatrix(), dirOS)); } // Transforms normal from object to world space float3 TransformObjectToWorldNormal(float3 normalOS) { #ifdef UNITY_ASSUME_UNIFORM_SCALING - return UnityObjectToWorldDir(normalOS); + return UnityObjectToWorldDir(normalOS); #else - // Normal need to be multiply by inverse transpose - // mul(IT_M, norm) => mul(norm, I_M) => {dot(norm, I_M.col0), dot(norm, I_M.col1), dot(norm, I_M.col2)} - return normalize(mul(normalOS, (float3x3)GetWorldToObjectMatrix())); + // Normal need to be multiply by inverse transpose + // mul(IT_M, norm) => mul(norm, I_M) => {dot(norm, I_M.col0), dot(norm, I_M.col1), dot(norm, I_M.col2)} + return normalize(mul(normalOS, (float3x3)GetWorldToObjectMatrix())); #endif } // Tranforms position from world space to homogenous space float4 TransformWorldToHClip(float3 positionWS) { - return mul(GetWorldToHClipMatrix(), float4(positionWS, 1.0)); + return mul(GetWorldToHClipMatrix(), float4(positionWS, 1.0)); } float3x3 CreateTangentToWorld(float3 normal, float3 tangent, float tangentSign) { - // For odd-negative scale transforms we need to flip the sign - float sign = tangentSign * unity_WorldTransformParams.w; - float3 binormal = cross(normal, tangent) * sign; - - return float3x3(tangent, binormal, normal); + // For odd-negative scale transforms we need to flip the sign + float sign = tangentSign * GetOdddNegativeScale(); + float3 bitangent = cross(normal, tangent) * sign; + + return float3x3(tangent, bitangent, normal); } // Computes world space view direction, from object space position float3 GetWorldSpaceNormalizeViewDir(float3 positionWS) { - return normalize(_WorldSpaceCameraPos.xyz - positionWS); + return normalize(_WorldSpaceCameraPos.xyz - positionWS); +} + +float3 TransformTangentToWorld(float3 dirTS, float3 tangentToWorld[3]) +{ + // TODO check: do we need to normalize ? + return normalize(mul(dirTS, float3x3(tangentToWorld[0].xyz, tangentToWorld[1].xyz, tangentToWorld[2].xyz))); } + +// Assume TBN is orthonormal. +float3 TransformWorldToTangent(float3 dirWS, float3 tangentToWorld[3]) +{ + // TODO check: do we need to normalize ? + return normalize(mul(float3x3(tangentToWorld[0].xyz, tangentToWorld[1].xyz, tangentToWorld[2].xyz), dirWS)); +} + +#endif // UNITY_SHADER_VARIABLES_INCLUDED diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/TemplateDisneyGGX.hlsl b/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/TemplateDisneyGGX.hlsl deleted file mode 100644 index cf9dd491161..00000000000 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/TemplateDisneyGGX.hlsl +++ /dev/null @@ -1,138 +0,0 @@ -// GENERATED BY SHADER GRAPH -// No guard header! - -#define UNITY_MATERIAL_DISNEYGXX // Need to be define before including Material.hlsl -#include "Lighting/Lighting.hlsl" // This include Material.hlsl -#include "ShaderVariables.hlsl" - -// This files is generated by the ShaderGraph or written by hand - -// Note for ShaderGraph: -// ShaderGraph should generate the vertex shader output to add the variable that may be required -// For example if we require view vector in shader graph, the output must contain positionWS and we calcualte the view vector with it. -// Still some input are mandatory depends on the type of loop. positionWS is mandatory in this current framework. So the ShaderGraph should always generate it. - -//------------------------------------------------------------------------------------- -// variable declaration -//------------------------------------------------------------------------------------- - -// Set of users variables -float4 _DiffuseColor; -float4 _SpecColor; -float _Smoothness; -sampler2D _DiffuseMap; -sampler2D _NormalMap; -// ... Others - -//------------------------------------------------------------------------------------- -// Lighting architecture -//------------------------------------------------------------------------------------- - -// TODO: Check if we will have different Varyings based on different pass, not sure about that... - -// Forward -struct Attributes -{ - float3 positionOS : POSITION; - float3 normalOS : NORMAL; - float2 uv0 : TEXCOORD0; - float4 tangentOS : TANGENT; -}; - -struct Varyings -{ - float4 positionHS; - float3 positionWS; - float2 texCoord0; - float4 tangentToWorld[3]; // [3x3:tangentToWorld | 1x3:viewDirForParallax] -}; - -struct PackedVaryings -{ - float4 positionHS : SV_Position; - float4 interpolators[5] : TEXCOORD0; -}; - -// Function to pack data to use as few interpolator as possible, the ShaderGraph should generate these functions -PackedVaryings PackVaryings(Varyings input) -{ - PackedVaryings output; - output.positionHS = input.positionHS; - output.interpolators[0].xyz = input.positionWS.xyz; - output.interpolators[0].w = input.texCoord0.x; - output.interpolators[1] = input.tangentToWorld[0]; - output.interpolators[2] = input.tangentToWorld[1]; - output.interpolators[3] = input.tangentToWorld[2]; - output.interpolators[4].x = input.texCoord0.y; - output.interpolators[4].yzw = float3(0.0, 0.0, 0.0); - - return output; -} - -Varyings UnpackVaryings(PackedVaryings input) -{ - Varyings output; - output.positionHS = input.positionHS; - output.positionWS.xyz = input.interpolators[0].xyz; - output.texCoord0.x = input.interpolators[0].w; - output.texCoord0.y = input.interpolators[4].x; - output.tangentToWorld[0] = input.interpolators[1]; - output.tangentToWorld[1] = input.interpolators[2]; - output.tangentToWorld[2] = input.interpolators[3]; - - return output; -} - -// TODO: Here we will also have all the vertex deformation (GPU skinning, vertex animation, morph target...) or we will need to generate a compute shaders instead (better! but require work to deal with unpacking like fp16) -PackedVaryings VertDefault(Attributes input) -{ - Varyings output; - - output.positionWS = TransformObjectToWorld(input.positionOS); - // TODO deal with camera center rendering and instancing (This is the reason why we always perform tow steps transform to clip space + instancing matrix) - output.positionHS = TransformWorldToHClip(output.positionWS); - - float3 normalWS = TransformObjectToWorldNormal(input.normalOS); - - output.texCoord0 = input.uv0; - - float4 tangentWS = float4(TransformObjectToWorldDir(input.tangentOS.xyz), input.tangentOS.w); - - float3x3 tangentToWorld = CreateTangentToWorld(normalWS, tangentWS.xyz, tangentWS.w); - output.tangentToWorld[0].xyz = tangentToWorld[0]; - output.tangentToWorld[1].xyz = tangentToWorld[1]; - output.tangentToWorld[2].xyz = tangentToWorld[2]; - - output.tangentToWorld[0].w = 0; - output.tangentToWorld[1].w = 0; - output.tangentToWorld[2].w = 0; - - return PackVaryings(output); -} - -//------------------------------------------------------------------------------------- -// Fill SurfaceData/Lighting data function -//------------------------------------------------------------------------------------- - -SurfaceData GetSurfaceData(Varyings input) -{ - SurfaceData data; - - data.diffuseColor = tex2D(_DiffuseMap, input.texCoord0) * _DiffuseColor; - data.occlusion = 1.0; - - data.specularColor = _SpecColor; - data.smoothness = _Smoothness; - - data.normal = input.tangentToWorld[2].xyz;//UnpackNormalDXT5nm(tex2D(_NormalMap, input.texCoord0)); - - // TODO: Sample lightmap/lightprobe/volume proxy - // This should also handle projective lightmap - // Note that data input above can be use to sample into lightmap (like normal) - data.baked = float3(0.0, 0.0, 0.0); - - data.emissiveColor = float3(0.0, 0.0, 0.0); - data.emissiveIntensity = 0.0; - - return data; -} \ No newline at end of file diff --git a/Assets/ScriptableRenderLoop/RenderPasses/ShadowRenderPass.cs b/Assets/ScriptableRenderLoop/RenderPasses/ShadowRenderPass.cs index 8131f571cc4..36ae5de4fe0 100644 --- a/Assets/ScriptableRenderLoop/RenderPasses/ShadowRenderPass.cs +++ b/Assets/ScriptableRenderLoop/RenderPasses/ShadowRenderPass.cs @@ -1,425 +1,425 @@ -using UnityEngine; -using System.Collections; using UnityEngine.Rendering; +using UnityEngine.Experimental.Rendering; using UnityEngine.Profiling; using System.Collections.Generic; using System; -namespace UnityEngine.ScriptableRenderLoop +namespace UnityEngine.Experimental.ScriptableRenderLoop { - [System.Serializable] - public struct ShadowSettings - { - public bool enabled; - public int shadowAtlasWidth; - public int shadowAtlasHeight; - - public float maxShadowDistance; - public int directionalLightCascadeCount; - public Vector3 directionalLightCascades; - - - public static ShadowSettings Default - { - get - { - ShadowSettings settings; - settings.enabled = true; - settings.shadowAtlasHeight = settings.shadowAtlasWidth = 4096; - settings.directionalLightCascadeCount = 1; - settings.directionalLightCascades = new Vector3 (0.05F, 0.2F, 0.3F); - settings.directionalLightCascadeCount = 4; - settings.maxShadowDistance = 1000.0F; - return settings; - } - } - } - - public struct InputShadowLightData - { - public int lightIndex; - public int shadowResolution; - } - - public struct ShadowLight - { - public int shadowSliceIndex; - public int shadowSliceCount; - } - - public struct ShadowSliceData - { - public Matrix4x4 shadowTransform; - public int atlasX; - public int atlasY; - public int shadowResolution; - } - - public struct ShadowOutput - { - public ShadowSliceData[] shadowSlices; - public ShadowLight[] shadowLights; - public Vector4[] directionalShadowSplitSphereSqr; - - public int GetShadowSliceCountLightIndex(int lightIndex) - { - return shadowLights[lightIndex].shadowSliceCount; - } - - public int GetShadowSliceIndex(int lightIndex, int sliceIndex) - { - if (sliceIndex >= shadowLights[lightIndex].shadowSliceCount) - throw new System.IndexOutOfRangeException (); - - return shadowLights[lightIndex].shadowSliceIndex + sliceIndex; - } - } - - public struct ShadowRenderPass : IDisposable - { - ShadowSettings m_Settings; - - [NonSerialized] - bool m_bFailedToPackLastTime; - int m_ShadowTexName; - const int kDepthBuffer = 24; - - - public ShadowRenderPass(ShadowSettings settings) - { - m_Settings = settings; - m_bFailedToPackLastTime = false; - m_ShadowTexName = Shader.PropertyToID("g_tShadowBuffer"); - } - - public void Dispose() - { - - } - - struct AtlasEntry - { - public AtlasEntry(int splitIndex, int lightIndex) - { - this.splitIndex = splitIndex; - this.lightIndex = lightIndex; - } - - public int splitIndex; - public int lightIndex; - } - - int CalculateNumShadowSplits(int index, ActiveLight[] lights) - { - LightType lightType = lights [index].lightType; - if (lightType == LightType.Spot) - return 1; - - if (lightType == LightType.Directional) - return m_Settings.directionalLightCascadeCount; - - return 6; - } - - static public void ClearPackedShadows(ActiveLight[] lights, out ShadowOutput packedShadows) - { - packedShadows.directionalShadowSplitSphereSqr = null; - packedShadows.shadowSlices = null; - packedShadows.shadowLights = new ShadowLight[lights.Length]; - } - - //--------------------------------------------------------------------------------------------------------------------------------------------------- - bool AutoPackLightsIntoShadowTexture(List shadowLights, ActiveLight[] lights, out ShadowOutput packedShadows) - { - Dictionary activeShadowLights = new Dictionary(); - List shadowIndices = new List(); - - //@TODO: Disallow multiple directional lights - - for (int i = 0; i < shadowLights.Count; i++) - { - shadowIndices.Add (shadowLights[i].lightIndex); - activeShadowLights[shadowLights[i].lightIndex] = shadowLights[i]; - } - - // World's stupidest sheet packer: - // 1. Sort all lights from largest to smallest - // 2. In a left->right, top->bottom pattern, fill quads until you reach the edge of the texture - // 3. Move position to x=0, y=bottomOfFirstTextureInThisRow - // 4. Goto 2. - // Yes, this will produce holes as the quads shrink, but it's good enough for now. I'll work on this more later to fill the gaps. - - // Sort all lights from largest to smallest - shadowIndices.Sort( - delegate( int l1, int l2 ) - { - int nCompare = 0; - // Sort shadow-casting lights by shadow resolution - nCompare = activeShadowLights[l1].shadowResolution.CompareTo(activeShadowLights[l2].shadowResolution); // Sort by shadow size - - if ( nCompare == 0 ) // Same, so sort by range to stabilize sort results - nCompare = lights[l1].range.CompareTo( lights[l2].range ); // Sort by shadow size - - if ( nCompare == 0 ) // Still same, so sort by instance ID to stabilize sort results - nCompare = lights[l1].light.GetInstanceID().CompareTo( lights[l2].light.GetInstanceID() ); - - return nCompare; - } - ); - - // Start filling lights into texture - List requestedPages = new List(); - packedShadows.shadowLights = new ShadowLight[lights.Length]; - for (int i = 0; i != shadowIndices.Count;i++) - { - int numShadowSplits = CalculateNumShadowSplits(shadowIndices[i], lights); - - packedShadows.shadowLights[shadowIndices [i]].shadowSliceCount = numShadowSplits; - packedShadows.shadowLights[shadowIndices [i]].shadowSliceIndex = requestedPages.Count; - - for (int s = 0; s < numShadowSplits; s++) - requestedPages.Add (new AtlasEntry (requestedPages.Count, shadowIndices[i])); - } - - int nCurrentX = 0; - int nCurrentY = -1; - int nNextY = 0; - - packedShadows.shadowSlices = new ShadowSliceData[requestedPages.Count]; - packedShadows.directionalShadowSplitSphereSqr = new Vector4[4]; - - foreach (AtlasEntry entry in requestedPages) - { - int shadowResolution = activeShadowLights[entry.lightIndex].shadowResolution; - - // Check if first texture is too wide - if ( nCurrentY == -1 ) - { - if ( ( shadowResolution > m_Settings.shadowAtlasWidth ) || ( shadowResolution > m_Settings.shadowAtlasHeight ) ) - { - Debug.LogError( "ERROR! Shadow packer ran out of space in the " + m_Settings.shadowAtlasWidth + "x" + m_Settings.shadowAtlasHeight + " texture!\n\n" ); - m_bFailedToPackLastTime = true; - ClearPackedShadows (lights, out packedShadows); - return false; - } - } - - // Goto next scanline - if ( ( nCurrentY == -1 ) || ( ( nCurrentX + shadowResolution ) > m_Settings.shadowAtlasWidth ) ) - { - nCurrentX = 0; - nCurrentY = nNextY; - nNextY += shadowResolution; - } - - // Check if we've run out of space - if ( ( nCurrentY + shadowResolution ) > m_Settings.shadowAtlasHeight ) - { - Debug.LogError( "ERROR! Shadow packer ran out of space in the " + m_Settings.shadowAtlasWidth + "x" + m_Settings.shadowAtlasHeight + " texture!\n\n" ); - m_bFailedToPackLastTime = true; - ClearPackedShadows (lights, out packedShadows); - return false; - } - - // Save location to light - packedShadows.shadowSlices[entry.splitIndex].atlasX = nCurrentX; - packedShadows.shadowSlices[entry.splitIndex].atlasY = nCurrentY; - packedShadows.shadowSlices[entry.splitIndex].shadowResolution = shadowResolution; - - // Move ahead - nCurrentX += shadowResolution; - - //Debug.Log( "Sheet packer: " + vl.m_cachedLight.name + " ( " + vl.m_shadowX + ", " + vl.m_shadowY + " ) " + vl.m_shadowResolution + "\n\n" ); - } - - if ( m_bFailedToPackLastTime ) - { - m_bFailedToPackLastTime = false; - Debug.Log( "SUCCESS! Shadow packer can now fit all lights into the " + m_Settings.shadowAtlasWidth + "x" + m_Settings.shadowAtlasHeight + " texture!\n\n" ); - } - - return requestedPages.Count != 0; - } - - static List GetInputShadowLightData(CullResults cullResults) - { - var shadowCasters = new List (); - ActiveLight[] lights = cullResults.culledLights; - int directionalLightCount = 0; - for (int i = 0; i < lights.Length; i++) - { - //@TODO: ignore baked. move this logic to c++... - if (lights[i].light.shadows != LightShadows.None) - { - - // Only a single directional shadow casting light is supported - if (lights [i].lightType == LightType.Directional) - { - directionalLightCount++; - if (directionalLightCount != 1) - continue; - } - - AdditionalLightData additionalLight = lights [i].light.GetComponent (); - - InputShadowLightData light; - light.lightIndex = i; - light.shadowResolution = AdditionalLightData.GetShadowResolution(additionalLight); - - shadowCasters.Add (light); - } - } - return shadowCasters; - } - - public void UpdateCullingParameters(ref CullingParameters parameters) - { - parameters.shadowDistance = Mathf.Min (m_Settings.maxShadowDistance, parameters.shadowDistance); - } - - public void Render(RenderLoop loop, CullResults cullResults, out ShadowOutput packedShadows) - { - if (!m_Settings.enabled) - { - ClearPackedShadows(cullResults.culledLights, out packedShadows); - } - - // Pack all shadow quads into the texture - if ( !AutoPackLightsIntoShadowTexture(GetInputShadowLightData(cullResults), cullResults.culledLights, out packedShadows) ) - { - // No shadowing lights found, so skip all rendering - return; - } - - RenderPackedShadows (loop, cullResults, ref packedShadows); - } - - //--------------------------------------------------------------------------------------------------------------------------------------------------- - // Render shadows - //--------------------------------------------------------------------------------------------------------------------------------------------------- - void RenderPackedShadows(RenderLoop loop, CullResults cullResults, ref ShadowOutput packedShadows) - { - var setRenderTargetCommandBuffer = new CommandBuffer (); - - setRenderTargetCommandBuffer.name = "Render packed shadows"; - setRenderTargetCommandBuffer.GetTemporaryRT (m_ShadowTexName, m_Settings.shadowAtlasWidth, m_Settings.shadowAtlasHeight, kDepthBuffer, FilterMode.Bilinear, RenderTextureFormat.Shadowmap, RenderTextureReadWrite.Linear); - setRenderTargetCommandBuffer.SetRenderTarget (new RenderTargetIdentifier (m_ShadowTexName)); - - setRenderTargetCommandBuffer.ClearRenderTarget (true, true, Color.green); - loop.ExecuteCommandBuffer (setRenderTargetCommandBuffer); - setRenderTargetCommandBuffer.Dispose (); - - ActiveLight[] activeLights = cullResults.culledLights; - var shadowSlices = packedShadows.shadowSlices; - - // Render each light's shadow buffer into a subrect of the shared depth texture - for ( int lightIndex = 0; lightIndex < packedShadows.shadowLights.Length; lightIndex++ ) - { - int shadowSliceCount = packedShadows.shadowLights[lightIndex].shadowSliceCount; - if (shadowSliceCount == 0) - continue; - - Profiler.BeginSample ("Shadows.GetShadowCasterBounds"); - Bounds bounds; - if (!cullResults.GetShadowCasterBounds (lightIndex, out bounds)) - { - Profiler.EndSample (); - return; - } - Profiler.EndSample (); - - Profiler.BeginSample ("Shadows.DrawShadows"); - - Matrix4x4 proj; - Matrix4x4 view; - - LightType lightType = activeLights[lightIndex].lightType; - Vector3 lightDirection = activeLights[lightIndex].light.transform.forward; - var shadowNearClip = activeLights[lightIndex].light.shadowNearPlane; - - int shadowSliceIndex = packedShadows.GetShadowSliceIndex (lightIndex, 0); - - if (lightType == LightType.Spot) - { - DrawShadowsSettings settings = new DrawShadowsSettings(cullResults, lightIndex); - bool needRendering = cullResults.ComputeSpotShadowsMatricesAndCullingPrimitives(lightIndex, out view, out proj, out settings.splitData); - SetupShadowSplitMatrices(ref packedShadows.shadowSlices[shadowSliceIndex], proj, view); - if (needRendering) - RenderShadowSplit(ref shadowSlices[shadowSliceIndex], lightDirection, proj, view, ref loop, settings); - } - else if (lightType == LightType.Directional) - { - Vector3 splitRatio = m_Settings.directionalLightCascades; - - for (int s = 0; s < 4; ++s) - packedShadows.directionalShadowSplitSphereSqr[s] = new Vector4 (0, 0, 0, float.NegativeInfinity); - - for (int s = 0; s < shadowSliceCount; ++s, shadowSliceIndex++) - { - var settings = new DrawShadowsSettings(cullResults, lightIndex); - var shadowResolution = shadowSlices [shadowSliceIndex].shadowResolution; - bool needRendering = cullResults.ComputeDirectionalShadowMatricesAndCullingPrimitives(lightIndex, s, shadowSliceCount, splitRatio, shadowResolution, shadowNearClip, out view, out proj, out settings.splitData); - - packedShadows.directionalShadowSplitSphereSqr[s] = settings.splitData.cullingSphere; - packedShadows.directionalShadowSplitSphereSqr[s].w *= packedShadows.directionalShadowSplitSphereSqr[s].w; - - SetupShadowSplitMatrices(ref shadowSlices[shadowSliceIndex], proj, view); - if (needRendering) - RenderShadowSplit(ref shadowSlices[shadowSliceIndex], lightDirection, proj, view, ref loop, settings); - } - } - else if (lightType == LightType.Point) - { - for(int s = 0; s < shadowSliceCount; ++s, shadowSliceIndex++) - { - DrawShadowsSettings settings = new DrawShadowsSettings(cullResults, lightIndex); - bool needRendering = cullResults.ComputePointShadowsMatricesAndCullingPrimitives(lightIndex, (CubemapFace)s, 2.0f, out view, out proj, out settings.splitData); - - SetupShadowSplitMatrices(ref shadowSlices[shadowSliceIndex], proj, view); - if (needRendering) - RenderShadowSplit(ref shadowSlices[shadowSliceIndex], lightDirection, proj, view, ref loop, settings); - } - } - Profiler.EndSample (); - } - } - - - private void SetupShadowSplitMatrices(ref ShadowSliceData lightData, Matrix4x4 proj, Matrix4x4 view) - { - Matrix4x4 matScaleBias = Matrix4x4.identity; - matScaleBias.m00 = 0.5f; - matScaleBias.m11 = 0.5f; - matScaleBias.m22 = 0.5f; - matScaleBias.m03 = 0.5f; - matScaleBias.m13 = 0.5f; - matScaleBias.m23 = 0.5f; - - Matrix4x4 matTile = Matrix4x4.identity; - matTile.m00 = (float)lightData.shadowResolution / (float)m_Settings.shadowAtlasWidth; - matTile.m11 = (float)lightData.shadowResolution / (float)m_Settings.shadowAtlasHeight; - matTile.m03 = (float)lightData.atlasX / (float)m_Settings.shadowAtlasWidth; - matTile.m13 = (float)lightData.atlasY / (float)m_Settings.shadowAtlasHeight; - lightData.shadowTransform = matTile * matScaleBias * proj * view; - } - - //--------------------------------------------------------------------------------------------------------------------------------------------------- - private void RenderShadowSplit(ref ShadowSliceData slice, Vector3 lightDirection, Matrix4x4 proj, Matrix4x4 view, ref RenderLoop loop, DrawShadowsSettings settings) - { - var commandBuffer = new CommandBuffer(); - commandBuffer.name = "ShadowSetup"; - - // Set viewport / matrices etc - commandBuffer.SetViewport(new Rect(slice.atlasX, slice.atlasY, slice.shadowResolution, slice.shadowResolution)); - //commandBuffer.ClearRenderTarget (true, true, Color.green); - commandBuffer.SetGlobalVector("g_vLightDirWs", new Vector4(lightDirection.x, lightDirection.y, lightDirection.z)); - commandBuffer.SetProjectionAndViewMatrices(proj, view); - // commandBuffer.SetGlobalDepthBias (1.0F, 1.0F); - loop.ExecuteCommandBuffer(commandBuffer); - commandBuffer.Dispose(); - - // Render - loop.DrawShadows(ref settings); - } - } -} \ No newline at end of file + [System.Serializable] + public struct ShadowSettings + { + public bool enabled; + public int shadowAtlasWidth; + public int shadowAtlasHeight; + + public float maxShadowDistance; + public int directionalLightCascadeCount; + public Vector3 directionalLightCascades; + + + public static ShadowSettings Default + { + get + { + ShadowSettings settings; + settings.enabled = true; + settings.shadowAtlasHeight = settings.shadowAtlasWidth = 4096; + settings.directionalLightCascadeCount = 1; + settings.directionalLightCascades = new Vector3(0.05F, 0.2F, 0.3F); + settings.directionalLightCascadeCount = 4; + settings.maxShadowDistance = 1000.0F; + return settings; + } + } + } + + public struct InputShadowLightData + { + public int lightIndex; + public int shadowResolution; + } + + public struct ShadowLight + { + public int shadowSliceIndex; + public int shadowSliceCount; + } + + public struct ShadowSliceData + { + public Matrix4x4 shadowTransform; + public int atlasX; + public int atlasY; + public int shadowResolution; + } + + public struct ShadowOutput + { + public ShadowSliceData[] shadowSlices; + public ShadowLight[] shadowLights; + public Vector4[] directionalShadowSplitSphereSqr; + + public int GetShadowSliceCountLightIndex(int lightIndex) + { + return shadowLights[lightIndex].shadowSliceCount; + } + + public int GetShadowSliceIndex(int lightIndex, int sliceIndex) + { + if (sliceIndex >= shadowLights[lightIndex].shadowSliceCount) + throw new System.IndexOutOfRangeException(); + + return shadowLights[lightIndex].shadowSliceIndex + sliceIndex; + } + } + + public struct ShadowRenderPass : IDisposable + { + ShadowSettings m_Settings; + + [NonSerialized] + bool m_FailedToPackLastTime; + int m_ShadowTexName; + const int k_DepthBuffer = 24; + + + public ShadowRenderPass(ShadowSettings settings) + { + m_Settings = settings; + m_FailedToPackLastTime = false; + m_ShadowTexName = Shader.PropertyToID("g_tShadowBuffer"); + } + + public void Dispose() + { + } + + struct AtlasEntry + { + public AtlasEntry(int splitIndex, int lightIndex) + { + this.splitIndex = splitIndex; + this.lightIndex = lightIndex; + } + + public readonly int splitIndex; + public readonly int lightIndex; + } + + int CalculateNumShadowSplits(int index, VisibleLight[] lights) + { + var lightType = lights[index].lightType; + switch (lightType) + { + case LightType.Spot: + return 1; + + case LightType.Directional: + return m_Settings.directionalLightCascadeCount; + + default: + return 6; + } + } + + public static void ClearPackedShadows(VisibleLight[] lights, out ShadowOutput packedShadows) + { + packedShadows.directionalShadowSplitSphereSqr = null; + packedShadows.shadowSlices = null; + packedShadows.shadowLights = new ShadowLight[lights.Length]; + } + + //--------------------------------------------------------------------------------------------------------------------------------------------------- + bool AutoPackLightsIntoShadowTexture(List shadowLights, VisibleLight[] lights, out ShadowOutput packedShadows) + { + var activeShadowLights = new Dictionary(); + var shadowIndices = new List(); + + //@TODO: Disallow multiple directional lights + + for (int i = 0; i < shadowLights.Count; i++) + { + shadowIndices.Add(shadowLights[i].lightIndex); + activeShadowLights[shadowLights[i].lightIndex] = shadowLights[i]; + } + + // World's stupidest sheet packer: + // 1. Sort all lights from largest to smallest + // 2. In a left->right, top->bottom pattern, fill quads until you reach the edge of the texture + // 3. Move position to x=0, y=bottomOfFirstTextureInThisRow + // 4. Goto 2. + // Yes, this will produce holes as the quads shrink, but it's good enough for now. I'll work on this more later to fill the gaps. + + // Sort all lights from largest to smallest + shadowIndices.Sort( + delegate(int l1, int l2) + { + var nCompare = 0; + // Sort shadow-casting lights by shadow resolution + nCompare = activeShadowLights[l1].shadowResolution.CompareTo(activeShadowLights[l2].shadowResolution); // Sort by shadow size + + if (nCompare == 0) // Same, so sort by range to stabilize sort results + nCompare = lights[l1].range.CompareTo(lights[l2].range); // Sort by shadow size + + if (nCompare == 0) // Still same, so sort by instance ID to stabilize sort results + nCompare = lights[l1].light.GetInstanceID().CompareTo(lights[l2].light.GetInstanceID()); + + return nCompare; + } + ); + + // Start filling lights into texture + var requestedPages = new List(); + packedShadows.shadowLights = new ShadowLight[lights.Length]; + for (int i = 0; i != shadowIndices.Count; i++) + { + var numShadowSplits = CalculateNumShadowSplits(shadowIndices[i], lights); + + packedShadows.shadowLights[shadowIndices[i]].shadowSliceCount = numShadowSplits; + packedShadows.shadowLights[shadowIndices[i]].shadowSliceIndex = requestedPages.Count; + + for (int s = 0; s < numShadowSplits; s++) + requestedPages.Add(new AtlasEntry(requestedPages.Count, shadowIndices[i])); + } + + var nCurrentX = 0; + var nCurrentY = -1; + var nNextY = 0; + + packedShadows.shadowSlices = new ShadowSliceData[requestedPages.Count]; + packedShadows.directionalShadowSplitSphereSqr = new Vector4[4]; + + foreach (var entry in requestedPages) + { + var shadowResolution = activeShadowLights[entry.lightIndex].shadowResolution; + + // Check if first texture is too wide + if (nCurrentY == -1) + { + if ((shadowResolution > m_Settings.shadowAtlasWidth) || (shadowResolution > m_Settings.shadowAtlasHeight)) + { + Debug.LogError("ERROR! Shadow packer ran out of space in the " + m_Settings.shadowAtlasWidth + "x" + m_Settings.shadowAtlasHeight + " texture!\n\n"); + m_FailedToPackLastTime = true; + ClearPackedShadows(lights, out packedShadows); + return false; + } + } + + // Goto next scanline + if ((nCurrentY == -1) || ((nCurrentX + shadowResolution) > m_Settings.shadowAtlasWidth)) + { + nCurrentX = 0; + nCurrentY = nNextY; + nNextY += shadowResolution; + } + + // Check if we've run out of space + if ((nCurrentY + shadowResolution) > m_Settings.shadowAtlasHeight) + { + Debug.LogError("ERROR! Shadow packer ran out of space in the " + m_Settings.shadowAtlasWidth + "x" + m_Settings.shadowAtlasHeight + " texture!\n\n"); + m_FailedToPackLastTime = true; + ClearPackedShadows(lights, out packedShadows); + return false; + } + + // Save location to light + packedShadows.shadowSlices[entry.splitIndex].atlasX = nCurrentX; + packedShadows.shadowSlices[entry.splitIndex].atlasY = nCurrentY; + packedShadows.shadowSlices[entry.splitIndex].shadowResolution = shadowResolution; + + // Move ahead + nCurrentX += shadowResolution; + + //Debug.Log( "Sheet packer: " + vl.m_cachedLight.name + " ( " + vl.m_shadowX + ", " + vl.m_shadowY + " ) " + vl.m_shadowResolution + "\n\n" ); + } + + if (m_FailedToPackLastTime) + { + m_FailedToPackLastTime = false; + Debug.Log("SUCCESS! Shadow packer can now fit all lights into the " + m_Settings.shadowAtlasWidth + "x" + m_Settings.shadowAtlasHeight + " texture!\n\n"); + } + + return requestedPages.Count != 0; + } + + static List GetInputShadowLightData(CullResults cullResults) + { + var shadowCasters = new List(); + var lights = cullResults.visibleLights; + int directionalLightCount = 0; + + for (int i = 0; i < lights.Length; i++) + { + //@TODO: ignore baked. move this logic to c++... + if (lights[i].light.shadows == LightShadows.None) + continue; + + // Only a single directional shadow casting light is supported + if (lights[i].lightType == LightType.Directional) + { + directionalLightCount++; + if (directionalLightCount != 1) + continue; + } + + AdditionalLightData additionalLight = lights[i].light.GetComponent(); + + InputShadowLightData light; + light.lightIndex = i; + light.shadowResolution = AdditionalLightData.GetShadowResolution(additionalLight); + + shadowCasters.Add(light); + } + return shadowCasters; + } + + public void UpdateCullingParameters(ref CullingParameters parameters) + { + parameters.shadowDistance = Mathf.Min(m_Settings.maxShadowDistance, parameters.shadowDistance); + } + + public void Render(RenderLoop loop, CullResults cullResults, out ShadowOutput packedShadows) + { + if (!m_Settings.enabled) + { + ClearPackedShadows(cullResults.visibleLights, out packedShadows); + } + + // Pack all shadow quads into the texture + if (!AutoPackLightsIntoShadowTexture(GetInputShadowLightData(cullResults), cullResults.visibleLights, out packedShadows)) + { + // No shadowing lights found, so skip all rendering + return; + } + + RenderPackedShadows(loop, cullResults, ref packedShadows); + } + + //--------------------------------------------------------------------------------------------------------------------------------------------------- + // Render shadows + //--------------------------------------------------------------------------------------------------------------------------------------------------- + void RenderPackedShadows(RenderLoop loop, CullResults cullResults, ref ShadowOutput packedShadows) + { + var setRenderTargetCommandBuffer = new CommandBuffer(); + + setRenderTargetCommandBuffer.name = "Render packed shadows"; + setRenderTargetCommandBuffer.GetTemporaryRT(m_ShadowTexName, m_Settings.shadowAtlasWidth, m_Settings.shadowAtlasHeight, k_DepthBuffer, FilterMode.Bilinear, RenderTextureFormat.Shadowmap, RenderTextureReadWrite.Linear); + setRenderTargetCommandBuffer.SetRenderTarget(new RenderTargetIdentifier(m_ShadowTexName)); + + setRenderTargetCommandBuffer.ClearRenderTarget(true, true, Color.green); + loop.ExecuteCommandBuffer(setRenderTargetCommandBuffer); + setRenderTargetCommandBuffer.Dispose(); + + VisibleLight[] visibleLights = cullResults.visibleLights; + var shadowSlices = packedShadows.shadowSlices; + + // Render each light's shadow buffer into a subrect of the shared depth texture + for (int lightIndex = 0; lightIndex < packedShadows.shadowLights.Length; lightIndex++) + { + int shadowSliceCount = packedShadows.shadowLights[lightIndex].shadowSliceCount; + if (shadowSliceCount == 0) + continue; + + Profiler.BeginSample("Shadows.GetShadowCasterBounds"); + Bounds bounds; + if (!cullResults.GetShadowCasterBounds(lightIndex, out bounds)) + { + Profiler.EndSample(); + return; + } + Profiler.EndSample(); + + Profiler.BeginSample("Shadows.DrawShadows"); + + Matrix4x4 proj; + Matrix4x4 view; + + var lightType = visibleLights[lightIndex].lightType; + var lightDirection = visibleLights[lightIndex].light.transform.forward; + var shadowNearClip = visibleLights[lightIndex].light.shadowNearPlane; + + int shadowSliceIndex = packedShadows.GetShadowSliceIndex(lightIndex, 0); + + if (lightType == LightType.Spot) + { + var settings = new DrawShadowsSettings(cullResults, lightIndex); + bool needRendering = cullResults.ComputeSpotShadowsMatricesAndCullingPrimitives(lightIndex, out view, out proj, out settings.splitData); + SetupShadowSplitMatrices(ref packedShadows.shadowSlices[shadowSliceIndex], proj, view); + if (needRendering) + RenderShadowSplit(ref shadowSlices[shadowSliceIndex], lightDirection, proj, view, ref loop, settings); + } + else if (lightType == LightType.Directional) + { + Vector3 splitRatio = m_Settings.directionalLightCascades; + + for (int s = 0; s < 4; ++s) + packedShadows.directionalShadowSplitSphereSqr[s] = new Vector4(0, 0, 0, float.NegativeInfinity); + + for (int s = 0; s < shadowSliceCount; ++s, shadowSliceIndex++) + { + var settings = new DrawShadowsSettings(cullResults, lightIndex); + var shadowResolution = shadowSlices[shadowSliceIndex].shadowResolution; + bool needRendering = cullResults.ComputeDirectionalShadowMatricesAndCullingPrimitives(lightIndex, s, shadowSliceCount, splitRatio, shadowResolution, shadowNearClip, out view, out proj, out settings.splitData); + + packedShadows.directionalShadowSplitSphereSqr[s] = settings.splitData.cullingSphere; + packedShadows.directionalShadowSplitSphereSqr[s].w *= packedShadows.directionalShadowSplitSphereSqr[s].w; + + SetupShadowSplitMatrices(ref shadowSlices[shadowSliceIndex], proj, view); + if (needRendering) + RenderShadowSplit(ref shadowSlices[shadowSliceIndex], lightDirection, proj, view, ref loop, settings); + } + } + else if (lightType == LightType.Point) + { + for (int s = 0; s < shadowSliceCount; ++s, shadowSliceIndex++) + { + var settings = new DrawShadowsSettings(cullResults, lightIndex); + bool needRendering = cullResults.ComputePointShadowsMatricesAndCullingPrimitives(lightIndex, (CubemapFace)s, 2.0f, out view, out proj, out settings.splitData); + + SetupShadowSplitMatrices(ref shadowSlices[shadowSliceIndex], proj, view); + if (needRendering) + RenderShadowSplit(ref shadowSlices[shadowSliceIndex], lightDirection, proj, view, ref loop, settings); + } + } + Profiler.EndSample(); + } + } + + private void SetupShadowSplitMatrices(ref ShadowSliceData lightData, Matrix4x4 proj, Matrix4x4 view) + { + var matScaleBias = Matrix4x4.identity; + matScaleBias.m00 = 0.5f; + matScaleBias.m11 = 0.5f; + matScaleBias.m22 = 0.5f; + matScaleBias.m03 = 0.5f; + matScaleBias.m13 = 0.5f; + matScaleBias.m23 = 0.5f; + + var matTile = Matrix4x4.identity; + matTile.m00 = (float)lightData.shadowResolution / (float)m_Settings.shadowAtlasWidth; + matTile.m11 = (float)lightData.shadowResolution / (float)m_Settings.shadowAtlasHeight; + matTile.m03 = (float)lightData.atlasX / (float)m_Settings.shadowAtlasWidth; + matTile.m13 = (float)lightData.atlasY / (float)m_Settings.shadowAtlasHeight; + lightData.shadowTransform = matTile * matScaleBias * proj * view; + } + + //--------------------------------------------------------------------------------------------------------------------------------------------------- + private void RenderShadowSplit(ref ShadowSliceData slice, Vector3 lightDirection, Matrix4x4 proj, Matrix4x4 view, ref RenderLoop loop, DrawShadowsSettings settings) + { + var commandBuffer = new CommandBuffer { name = "ShadowSetup" }; + + // Set viewport / matrices etc + commandBuffer.SetViewport(new Rect(slice.atlasX, slice.atlasY, slice.shadowResolution, slice.shadowResolution)); + //commandBuffer.ClearRenderTarget (true, true, Color.green); + commandBuffer.SetGlobalVector("g_vLightDirWs", new Vector4(lightDirection.x, lightDirection.y, lightDirection.z)); + commandBuffer.SetProjectionAndViewMatrices(proj, view); + // commandBuffer.SetGlobalDepthBias (1.0F, 1.0F); + loop.ExecuteCommandBuffer(commandBuffer); + commandBuffer.Dispose(); + + // Render + loop.DrawShadows(ref settings); + } + } +} diff --git a/Assets/ScriptableRenderLoop/ScriptableRenderLoop.cs b/Assets/ScriptableRenderLoop/ScriptableRenderLoop.cs index f9d67f54922..206104dde77 100644 --- a/Assets/ScriptableRenderLoop/ScriptableRenderLoop.cs +++ b/Assets/ScriptableRenderLoop/ScriptableRenderLoop.cs @@ -1,15 +1,14 @@ -using UnityEngine; -using System.Collections; -using UnityEngine.Rendering; +using UnityEngine.Experimental.Rendering; -namespace UnityEngine.ScriptableRenderLoop +namespace UnityEngine.Experimental.ScriptableRenderLoop { - public abstract class ScriptableRenderLoop : ScriptableObject - { - public abstract void Render(Camera[] cameras, RenderLoop renderLoop); + public abstract class ScriptableRenderLoop : ScriptableObject + { + public abstract void Render(Camera[] cameras, RenderLoop renderLoop); + public virtual void Rebuild() {} - #if UNITY_EDITOR - public virtual UnityEditor.SupportedRenderingFeatures GetSupportedRenderingFeatures() { return new UnityEditor.SupportedRenderingFeatures(); } - #endif - } -} \ No newline at end of file + #if UNITY_EDITOR + public virtual UnityEditor.SupportedRenderingFeatures GetSupportedRenderingFeatures() { return new UnityEditor.SupportedRenderingFeatures(); } + #endif + } +} diff --git a/Assets/ScriptableRenderLoop/ScriptableRenderLoopPicker.cs b/Assets/ScriptableRenderLoop/ScriptableRenderLoopPicker.cs index 5672320b564..19b95076ddc 100644 --- a/Assets/ScriptableRenderLoop/ScriptableRenderLoopPicker.cs +++ b/Assets/ScriptableRenderLoop/ScriptableRenderLoopPicker.cs @@ -1,62 +1,86 @@ -using UnityEngine; -using System.Collections; -using UnityEngine.Rendering; -using System.Collections.Generic; -using System; +using UnityEngine.Experimental.Rendering; -namespace UnityEngine.ScriptableRenderLoop +namespace UnityEngine.Experimental.ScriptableRenderLoop { - //@TODO: This should be moved into GraphicsSettings - [ExecuteInEditMode] - public class ScriptableRenderLoopPicker : MonoBehaviour - { - public ScriptableRenderLoop renderloop - { - get { return m_RenderLoop; } - set { m_RenderLoop = value; } - } - - [SerializeField] - private ScriptableRenderLoop m_RenderLoop; - - void OnEnable () - { - RenderLoop.renderLoopDelegate += Render; - - SyncRenderingFeatures(); - } - - void OnValidate() - { - SyncRenderingFeatures(); - } - - void SyncRenderingFeatures () - { + //@TODO: This should be moved into GraphicsSettings + [ExecuteInEditMode] + public class ScriptableRenderLoopPicker : MonoBehaviour + { + public ScriptableRenderLoop renderloop + { + get { return m_RenderLoop; } + set { m_RenderLoop = value; } + } + + [SerializeField] + private ScriptableRenderLoop m_RenderLoop; + + void OnEnable() + { + RenderLoop.renderLoopDelegate += Render; + + SyncRenderingFeatures(); + } + + void OnValidate() + { + SyncRenderingFeatures(); + } + + void SyncRenderingFeatures() + { +#if UNITY_EDITOR + if (m_RenderLoop != null && isActiveAndEnabled) + UnityEditor.SupportedRenderingFeatures.active = m_RenderLoop.GetSupportedRenderingFeatures(); + else + UnityEditor.SupportedRenderingFeatures.active = UnityEditor.SupportedRenderingFeatures.Default; +#endif + } + + void OnDisable() + { + RenderLoop.renderLoopDelegate -= Render; + + #if UNITY_EDITOR + UnityEditor.SupportedRenderingFeatures.active = UnityEditor.SupportedRenderingFeatures.Default; + #endif + } + + bool Render(Camera[] cameras, RenderLoop loop) + { + if (m_RenderLoop == null) + return false; + +#if UNITY_EDITOR + if (m_AssetVersion != s_GlobalAssetVersion) + { + m_AssetVersion = s_GlobalAssetVersion; + m_RenderLoop.Rebuild(); + } +#endif + + m_RenderLoop.Render(cameras, loop); + return true; + } + #if UNITY_EDITOR - if (m_RenderLoop != null && isActiveAndEnabled) - UnityEditor.SupportedRenderingFeatures.active = m_RenderLoop.GetSupportedRenderingFeatures(); - else - UnityEditor.SupportedRenderingFeatures.active = UnityEditor.SupportedRenderingFeatures.Default; + // Temporary hack to allow compute shader reloading + internal class AssetReloader : UnityEditor.AssetPostprocessor + { + static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) + { + foreach (var str in importedAssets) + { + if (str.EndsWith(".compute")) + { + s_GlobalAssetVersion++; + break; + } + } + } + } + static int s_GlobalAssetVersion = 0; + int m_AssetVersion = 0; #endif - } - - void OnDisable () - { - RenderLoop.renderLoopDelegate -= Render; - - #if UNITY_EDITOR - UnityEditor.SupportedRenderingFeatures.active = UnityEditor.SupportedRenderingFeatures.Default; - #endif - } - - bool Render(Camera[] cameras, RenderLoop loop) - { - if (m_RenderLoop == null) - return false; - - m_RenderLoop.Render (cameras, loop); - return true; - } - } -} \ No newline at end of file + } +} diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/API/D3D11.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/API/D3D11.hlsl index b3fd4e38f3d..7f149aca377 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/API/D3D11.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/API/D3D11.hlsl @@ -3,3 +3,72 @@ #define UNITY_UV_STARTS_AT_TOP 1 #define UNITY_REVERSED_Z 1 #define UNITY_NEAR_CLIP_VALUE (1.0) +#define FRONT_FACE_SEMATIC SV_IsFrontFace +#define FRONT_FACE_TYPE bool +#define IS_FRONT_VFACE(VAL, FRONT, BACK) ((VAL) ? (FRONT) : (BACK)) + +#define CBUFFER_START(name) cbuffer name { +#define CBUFFER_END }; + +// Initialize arbitrary structure with zero values. +// Do not exist on some platform, in this case we need to have a standard name that call a function that will initialize all parameters to 0 +#define ZERO_INITIALIZE(type, name) name = (type)0; + +// Macros to declare textures and samplers, possibly separately. For platforms +// that have separate samplers & textures (like DX11), and we'd want to conserve +// the samplers. +// - UNITY_DECLARE_TEX*_NOSAMPLER declares a texture, without a sampler. +// - UNITY_SAMPLE_TEX*_SAMPLER samples a texture, using sampler from another texture. +// That another texture must also be actually used in the current shader, otherwise +// the correct sampler will not be set. + +// 2D textures +#define UNITY_DECLARE_TEX2D(tex) Texture2D tex; SamplerState sampler##tex +#define UNITY_DECLARE_TEX2D_NOSAMPLER(tex) Texture2D tex +#define UNITY_SAMPLE_TEX2D(tex,coord) tex.Sample (sampler##tex,coord) +#define UNITY_SAMPLE_TEX2D_LOD(tex,coord,lod) tex.SampleLevel (sampler##tex,coord, lod) +#define UNITY_SAMPLE_TEX2D_SAMPLER(tex,samplertex,coord) tex.Sample (sampler##samplertex,coord) + +// Cubemaps +#define UNITY_DECLARE_TEXCUBE(tex) TextureCube tex; SamplerState sampler##tex +#define UNITY_ARGS_TEXCUBE(tex) TextureCube tex, SamplerState sampler##tex +#define UNITY_PASS_TEXCUBE(tex) tex, sampler##tex +#define UNITY_PASS_TEXCUBE_SAMPLER(tex,samplertex) tex, sampler##samplertex +#define UNITY_DECLARE_TEXCUBE_NOSAMPLER(tex) TextureCube tex +#define UNITY_SAMPLE_TEXCUBE(tex,coord) tex.Sample (sampler##tex,coord) +#define UNITY_SAMPLE_TEXCUBE_LOD(tex,coord,lod) tex.SampleLevel (sampler##tex,coord, lod) +#define UNITY_SAMPLE_TEXCUBE_SAMPLER(tex,samplertex,coord) tex.Sample (sampler##samplertex,coord) + +// 3D textures +#define UNITY_DECLARE_TEX3D(tex) Texture3D tex; SamplerState sampler##tex +#define UNITY_DECLARE_TEX3D_NOSAMPLER(tex) Texture3D tex +#define UNITY_SAMPLE_TEX3D(tex,coord) tex.Sample (sampler##tex,coord) +#define UNITY_SAMPLE_TEX3D_LOD(tex,coord,lod) tex.SampleLevel (sampler##tex,coord, lod) +#define UNITY_SAMPLE_TEX3D_SAMPLER(tex,samplertex,coord) tex.Sample (sampler##samplertex,coord) + +// 2D arrays +#define UNITY_DECLARE_TEX2DARRAY(tex) Texture2DArray tex; SamplerState sampler##tex +#define UNITY_DECLARE_TEX2DARRAY_NOSAMPLER(tex) Texture2DArray tex +#define UNITY_ARGS_TEX2DARRAY(tex) Texture2DArray tex, SamplerState sampler##tex +#define UNITY_PASS_TEX2DARRAY(tex) tex, sampler##tex +#define UNITY_SAMPLE_TEX2DARRAY(tex,coord) tex.Sample (sampler##tex,coord) +#define UNITY_SAMPLE_TEX2DARRAY_LOD(tex,coord,lod) tex.SampleLevel (sampler##tex,coord, lod) +#define UNITY_SAMPLE_TEX2DARRAY_SAMPLER(tex,samplertex,coord) tex.Sample (sampler##samplertex,coord) + +// Cube arrays +#define UNITY_DECLARE_TEXCUBEARRAY(tex) TextureCubeArray tex; SamplerState sampler##tex +#define UNITY_DECLARE_TEXCUBEARRAY_NOSAMPLER(tex) TextureCubeArray tex +#define UNITY_ARGS_TEXCUBEARRAY(tex) TextureCubeArray tex, SamplerState sampler##tex +#define UNITY_PASS_TEXCUBEARRAY(tex) tex, sampler##tex +#define UNITY_SAMPLE_TEXCUBEARRAY(tex,coord) tex.Sample (sampler##tex,coord) +#define UNITY_SAMPLE_TEXCUBEARRAY_LOD(tex,coord,lod) tex.SampleLevel (sampler##tex,coord, lod) +#define UNITY_SAMPLE_TEXCUBEARRAY_SAMPLER(tex,samplertex,coord) tex.Sample (sampler##samplertex,coord) + + + + +#define TEXTURE2D(textureName) Texture2D textureName; +#define SAMPLER2D(samplerName) SamplerState samplerName; +#define TEXTURE2D_ARGS(textureName, samplerName) Texture2D textureName, SamplerState samplerName +#define TEXTURE2D_PASS(textureName, samplerName) textureName, samplerName +#define SAMPLE_TEXTURE2D(textureName, samplerName, coord) textureName.Sample(samplerName, coord) diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/API/D3D11_1.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/API/D3D11_1.hlsl index 9e8b13ac224..4bead8d5b01 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/API/D3D11_1.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/API/D3D11_1.hlsl @@ -1,3 +1,3 @@ // This file assume SHADER_API_D3D11 is defined -#define UNITY_UV_STARTS_AT_TOP 1 \ No newline at end of file +#define UNITY_UV_STARTS_AT_TOP 1 diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/API/Validate.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/API/Validate.hlsl index 0a98a666e08..ef25f0ea027 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/API/Validate.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/API/Validate.hlsl @@ -1,13 +1,18 @@ -// Upgrade NOTE: replaced 'defined in' with 'defined (in)' - -// Wait for a fix from Trunk +// Wait for a fix from Trunk #error not supported yet /* #define REQUIRE_DEFINED(X_) \ - #ifndef X_ \ - #error X_ must be defined (in) the platform include \ - #endif X_ \ + #ifndef X_ \ + #error X_ must be defined (in) the platform include \ + #endif X_ \ REQUIRE_DEFINED(UNITY_UV_STARTS_AT_TOP) REQUIRE_DEFINED(UNITY_REVERSED_Z) +REQUIRE_DEFINED(UNITY_NEAR_CLIP_VALUE) +REQUIRE_DEFINED(FACE) + +REQUIRE_DEFINED(CBUFFER_START) +REQUIRE_DEFINED(CBUFFER_END) + +REQUIRE_DEFINED(INITIALIZE_OUTPUT) -*/ \ No newline at end of file +*/ diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/AreaLighting.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/AreaLighting.hlsl new file mode 100644 index 00000000000..1190a6d1a74 --- /dev/null +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/AreaLighting.hlsl @@ -0,0 +1,173 @@ +#ifndef UNITY_AREA_LIGHTING_INCLUDED +#define UNITY_AREA_LIGHTING_INCLUDED + +float IntegrateEdge(float3 v1, float3 v2) +{ + float cosTheta = dot(v1, v2); + // TODO: Explain the 0.9999 <= precision is important! + cosTheta = clamp(cosTheta, -0.9999, 0.9999); + + // TODO: Experiment with fastAcos + float theta = acos(cosTheta); + float res = cross(v1, v2).z * theta / sin(theta); + + return res; +} + +// Baum's equation +// Expects non-normalized vertex positions +float PolygonRadiance(float4x3 L, bool twoSided) +{ + // 1. ClipQuadToHorizon + + // detect clipping config + uint config = 0; + if (L[0].z > 0) config += 1; + if (L[1].z > 0) config += 2; + if (L[2].z > 0) config += 4; + if (L[3].z > 0) config += 8; + + // The fifth vertex for cases when clipping cuts off one corner. + // Due to a compiler bug, copying L into a vector array with 5 rows + // messes something up, so we need to stick with the matrix + the L4 vertex. + float3 L4 = L[3]; + + // This switch is surprisingly fast. Tried replacing it with a lookup array of vertices. + // Even though that replaced the switch with just some indexing and no branches, it became + // way, way slower - mem fetch stalls? + + uint n = 0; + switch (config) + { + case 0: // clip all + break; + + case 1: // V1 clip V2 V3 V4 + n = 3; + L[1] = -L[1].z * L[0] + L[0].z * L[1]; + L[2] = -L[3].z * L[0] + L[0].z * L[3]; + break; + + case 2: // V2 clip V1 V3 V4 + n = 3; + L[0] = -L[0].z * L[1] + L[1].z * L[0]; + L[2] = -L[2].z * L[1] + L[1].z * L[2]; + break; + + case 3: // V1 V2 clip V3 V4 + n = 4; + L[2] = -L[2].z * L[1] + L[1].z * L[2]; + L[3] = -L[3].z * L[0] + L[0].z * L[3]; + break; + + case 4: // V3 clip V1 V2 V4 + n = 3; + L[0] = -L[3].z * L[2] + L[2].z * L[3]; + L[1] = -L[1].z * L[2] + L[2].z * L[1]; + break; + + case 5: // V1 V3 clip V2 V4: impossible + break; + + case 6: // V2 V3 clip V1 V4 + n = 4; + L[0] = -L[0].z * L[1] + L[1].z * L[0]; + L[3] = -L[3].z * L[2] + L[2].z * L[3]; + break; + + case 7: // V1 V2 V3 clip V4 + n = 5; + L4 = -L[3].z * L[0] + L[0].z * L[3]; + L[3] = -L[3].z * L[2] + L[2].z * L[3]; + break; + + case 8: // V4 clip V1 V2 V3 + n = 3; + L[0] = -L[0].z * L[3] + L[3].z * L[0]; + L[1] = -L[2].z * L[3] + L[3].z * L[2]; + L[2] = L[3]; + break; + + case 9: // V1 V4 clip V2 V3 + n = 4; + L[1] = -L[1].z * L[0] + L[0].z * L[1]; + L[2] = -L[2].z * L[3] + L[3].z * L[2]; + break; + + case 10: // V2 V4 clip V1 V3: impossible + break; + + case 11: // V1 V2 V4 clip V3 + n = 5; + L[3] = -L[2].z * L[3] + L[3].z * L[2]; + L[2] = -L[2].z * L[1] + L[1].z * L[2]; + break; + + case 12: // V3 V4 clip V1 V2 + n = 4; + L[1] = -L[1].z * L[2] + L[2].z * L[1]; + L[0] = -L[0].z * L[3] + L[3].z * L[0]; + break; + + case 13: // V1 V3 V4 clip V2 + n = 5; + L[3] = L[2]; + L[2] = -L[1].z * L[2] + L[2].z * L[1]; + L[1] = -L[1].z * L[0] + L[0].z * L[1]; + break; + + case 14: // V2 V3 V4 clip V1 + n = 5; + L4 = -L[0].z * L[3] + L[3].z * L[0]; + L[0] = -L[0].z * L[1] + L[1].z * L[0]; + break; + + case 15: // V1 V2 V3 V4 + n = 4; + break; + } + + if (n == 0) + return 0; + if (n == 3) + L[3] = L[0]; + if (n == 4) + L4 = L[0]; + + // 2. Project onto sphere + L[0] = normalize(L[0]); + L[1] = normalize(L[1]); + L[2] = normalize(L[2]); + L[3] = normalize(L[3]); + L4 = normalize(L4); + + // 3. Integrate + float sum = 0; + sum += IntegrateEdge(L[0], L[1]); + sum += IntegrateEdge(L[1], L[2]); + sum += IntegrateEdge(L[2], L[3]); + if (n >= 4) + sum += IntegrateEdge(L[3], L4); + if (n == 5) + sum += IntegrateEdge(L4, L[0]); + + return twoSided > 0.0 ? abs(sum) : max(0.0, sum); +} + +float LTCEvaluate(float3 V, float3 N, float3x3 minV, float4x3 L, bool twoSided) +{ + // Construct local orthonormal basis around N, aligned with N + float3x3 basis; + basis[0] = normalize(V - N * dot(V, N)); + basis[1] = normalize(cross(N, basis[0])); + basis[2] = N; + + // rotate area light in local basis + minV = mul(transpose(basis), minV); + L = mul(L, minV); + + // Polygon radiance in transformed configuration - specular + return PolygonRadiance(L, twoSided); +} + +#endif // UNITY_AREA_LIGHTING_INCLUDED diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/AreaLighting.hlsl.meta b/Assets/ScriptableRenderLoop/ShaderLibrary/AreaLighting.hlsl.meta new file mode 100644 index 00000000000..198139fb731 --- /dev/null +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/AreaLighting.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2af09bb13e6547242913c40dfb0e50f9 +timeCreated: 1476726533 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/BSDF.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/BSDF.hlsl index 5788ca01e46..d2e48ea6033 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/BSDF.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/BSDF.hlsl @@ -1,7 +1,9 @@ #ifndef UNITY_BSDF_INCLUDED #define UNITY_BSDF_INCLUDED -#include "Common.hlsl" +// Note: All NDF and diffuse term have a version with and without divide by PI. +// Version with divide by PI are use for direct lighting. +// Version without divide by PI are use for image based lighting where often the PI cancel during importance sampling //----------------------------------------------------------------------------- // Fresnel term @@ -9,83 +11,168 @@ float F_Schlick(float f0, float f90, float u) { - float x = 1.0f - u; - float x5 = x * x; - x5 = x5 * x5 * x; + float x = 1.0 - u; + float x5 = x * x; + x5 = x5 * x5 * x; return (f90 - f0) * x5 + f0; // sub mul mul mul sub mad } float F_Schlick(float f0, float u) { - return F_Schlick(f0, 1.0f, u); + return F_Schlick(f0, 1.0, u); } float3 F_Schlick(float3 f0, float f90, float u) { - float x = 1.0f - u; - float x5 = x * x; - x5 = x5 * x5 * x; - return (f90 - f0) * x5 + f0; // sub mul mul mul sub mad + float x = 1.0 - u; + float x5 = x * x; + x5 = x5 * x5 * x; + return (float3(f90, f90, f90) - f0) * x5 + f0; // sub mul mul mul sub mad } float3 F_Schlick(float3 f0, float u) { - return F_Schlick(f0, float3(1.0f, 1.0f, 1.0f), u); + return F_Schlick(f0, 1.0, u); } //----------------------------------------------------------------------------- // Specular BRDF //----------------------------------------------------------------------------- -// With analytical light (not image based light) we clamp the minimun roughness to avoid numerical instability. +// With analytical light (not image based light) we clamp the minimun roughness in the NDF to avoid numerical instability. #define UNITY_MIN_ROUGHNESS 0.002 float D_GGX(float NdotH, float roughness) { - roughness = max(roughness, UNITY_MIN_ROUGHNESS); + roughness = max(roughness, UNITY_MIN_ROUGHNESS); + float a2 = roughness * roughness; - float f = (NdotH * a2 - NdotH) * NdotH + 1.0f; - return INV_PI * a2 / (f * f); + float f = (NdotH * a2 - NdotH) * NdotH + 1.0; + return a2 / (f * f); } -// roughnessT -> roughness in tangent direction -// roughnessB -> roughness in bitangent direction -float D_GGX_Aniso(float NdotH, float TdotH, float BdotH, float roughnessT, float roughnessB) +float D_GGXDividePI(float NdotH, float roughness) { - // TODO: Do the clamp on the artists parameter - float f = TdotH * TdotH / (roughnessT * roughnessT) + BdotH * BdotH / (roughnessB * roughnessB) + NdotH * NdotH; - return INV_PI / (roughnessT * roughnessB * f * f); + return INV_PI * D_GGX(NdotH, roughness); } // Ref: http://jcgt.org/published/0003/02/03/paper.pdf float V_SmithJointGGX(float NdotL, float NdotV, float roughness) { -#if 1 - // Original formulation: - // lambda_v = (-1 + sqrt(a2 * (1 - NdotL2) / NdotL2 + 1)) * 0.5f; - // lambda_l = (-1 + sqrt(a2 * (1 - NdotV2) / NdotV2 + 1)) * 0.5f; - // G = 1 / (1 + lambda_v + lambda_l); + // Original formulation: + // lambda_v = (-1 + sqrt(a2 * (1 - NdotL2) / NdotL2 + 1)) * 0.5f; + // lambda_l = (-1 + sqrt(a2 * (1 - NdotV2) / NdotV2 + 1)) * 0.5f; + // G = 1 / (1 + lambda_v + lambda_l); + + float a = roughness; + float a2 = a * a; + // Reorder code to be more optimal + float lambdaV = NdotL * sqrt((-NdotV * a2 + NdotV) * NdotV + a2); + float lambdaL = NdotV * sqrt((-NdotL * a2 + NdotL) * NdotL + a2); + + // Simplify visibility term: (2.0f * NdotL * NdotV) / ((4.0f * NdotL * NdotV) * (lambda_v + lambda_l)); + return 0.5 / (lambdaV + lambdaL); +} + +// Precompute part of lambdaV +float GetSmithJointGGXLambdaV(float NdotV, float roughness) +{ + float a = roughness; + float a2 = a * a; + return sqrt((-NdotV * a2 + NdotV) * NdotV + a2); +} + +float V_SmithJointGGX(float NdotL, float NdotV, float roughness, float lambdaV) +{ + float a = roughness; + float a2 = a * a; + // Reorder code to be more optimal + lambdaV *= NdotL; + float lambdaL = NdotV * sqrt((-NdotL * a2 + NdotL) * NdotL + a2); + + // Simplify visibility term: (2.0f * NdotL * NdotV) / ((4.0f * NdotL * NdotV) * (lambda_v + lambda_l)); + return 0.5 / (lambdaV + lambdaL); +} + +float V_SmithJointGGXApprox(float NdotL, float NdotV, float roughness) +{ + float a = roughness; + // Approximation of the above formulation (simplify the sqrt, not mathematically correct but close enough) + float lambdaV = NdotL * (NdotV * (1 - a) + a); + float lambdaL = NdotV * (NdotL * (1 - a) + a); - // Reorder code to be more optimal - half a = roughness; - half a2 = a * a; + return 0.5 / (lambdaV + lambdaL); +} - half lambdaV = NdotL * sqrt((-NdotV * a2 + NdotV) * NdotV + a2); - half lambdaL = NdotV * sqrt((-NdotL * a2 + NdotL) * NdotL + a2); +// Precompute part of LambdaV +float GetSmithJointGGXApproxLambdaV(float NdotV, float roughness) +{ + float a = roughness; + return (NdotV * (1 - a) + a); +} - // Simplify visibility term: (2.0f * NdotL * NdotV) / ((4.0f * NdotL * NdotV) * (lambda_v + lambda_l)); - return 0.5f / (lambdaV + lambdaL); -#else +float V_SmithJointGGXApprox(float NdotL, float NdotV, float roughness, float lambdaV) +{ + float a = roughness; // Approximation of the above formulation (simplify the sqrt, not mathematically correct but close enough) - half a = roughness; - half lambdaV = NdotL * (NdotV * (1 - a) + a); - half lambdaL = NdotV * (NdotL * (1 - a) + a); + lambdaV *= NdotL; + float lambdaL = NdotV * (NdotL * (1 - a) + a); - return 0.5f / (lambdaV + lambdaL); -#endif + return 0.5 / (lambdaV + lambdaL); } -// TODO: V_ term for aniso GGX from farcry +// roughnessT -> roughness in tangent direction +// roughnessB -> roughness in bitangent direction +float D_GGXAniso(float TdotH, float BdotH, float NdotH, float roughnessT, float roughnessB) +{ + roughnessT = max(roughnessT, UNITY_MIN_ROUGHNESS); + roughnessB = max(roughnessB, UNITY_MIN_ROUGHNESS); + + float f = TdotH * TdotH / (roughnessT * roughnessT) + BdotH * BdotH / (roughnessB * roughnessB) + NdotH * NdotH; + return 1.0 / (roughnessT * roughnessB * f * f); +} + +float D_GGXAnisoDividePI(float TdotH, float BdotH, float NdotH, float roughnessT, float roughnessB) +{ + return INV_PI * D_GGXAniso(TdotH, BdotH, NdotH, roughnessT, roughnessB); +} + +// Ref: https://cedec.cesa.or.jp/2015/session/ENG/14698.html The Rendering Materials of Far Cry 4 +float V_SmithJointGGXAniso(float TdotV, float BdotV, float NdotV, float TdotL, float BdotL, float NdotL, float roughnessT, float roughnessB) +{ + float aT = roughnessT; + float aT2 = aT * aT; + float aB = roughnessB; + float aB2 = aB * aB; + + float lambdaV = NdotL * sqrt(aT2 * TdotV * TdotV + aB2 * BdotV * BdotV + NdotV * NdotV); + float lambdaL = NdotV * sqrt(aT2 * TdotL * TdotL + aB2 * BdotL * BdotL + NdotL * NdotL); + + return 0.5 / (lambdaV + lambdaL); +} + +float GetSmithJointGGXAnisoLambdaV(float TdotV, float BdotV, float NdotV, float roughnessT, float roughnessB) +{ + float aT = roughnessT; + float aT2 = aT * aT; + float aB = roughnessB; + float aB2 = aB * aB; + + return sqrt(aT2 * TdotV * TdotV + aB2 * BdotV * BdotV + NdotV * NdotV); +} + +float V_SmithJointGGXAnisoLambdaV(float TdotV, float BdotV, float NdotV, float TdotL, float BdotL, float NdotL, float roughnessT, float roughnessB, float lambdaV) +{ + float aT = roughnessT; + float aT2 = aT * aT; + float aB = roughnessB; + float aB2 = aB * aB; + + lambdaV *= NdotL; + float lambdaL = NdotV * sqrt(aT2 * TdotL * TdotL + aB2 * BdotL * BdotL + NdotL * NdotL); + + return 0.5 / (lambdaV + lambdaL); +} //----------------------------------------------------------------------------- // Diffuse BRDF - diffuseColor is expected to be multiply by the caller @@ -93,17 +180,28 @@ float V_SmithJointGGX(float NdotL, float NdotV, float roughness) float Lambert() { - return INV_PI; + return 1.0; +} + +float LambertDividePI() +{ + return INV_PI; } float DisneyDiffuse(float NdotV, float NdotL, float LdotH, float perceptualRoughness) { - float fd90 = 0.5 + 2 * LdotH * LdotH * perceptualRoughness; - // Two schlick fresnel term - float lightScatter = F_Schlick(1.0f, fd90, NdotL); - float viewScatter = F_Schlick(1.0f, fd90, NdotV); + float fd90 = 0.5 + 2 * LdotH * LdotH * perceptualRoughness; + // Two schlick fresnel term + float lightScatter = F_Schlick(1.0, fd90, NdotL); + float viewScatter = F_Schlick(1.0, fd90, NdotV); - return INV_PI * lightScatter * viewScatter; + return lightScatter * viewScatter; } +float DisneyDiffuseDividePI(float NdotV, float NdotL, float LdotH, float perceptualRoughness) +{ + return INV_PI * DisneyDiffuse(NdotV, NdotL, LdotH, perceptualRoughness); +} + + #endif // UNITY_BSDF_INCLUDED diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/Color.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/Color.hlsl index 7eb5d504ce2..323cae37484 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/Color.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/Color.hlsl @@ -1,8 +1,6 @@ #ifndef UNITY_COLOR_INCLUDED #define UNITY_COLOR_INCLUDED -#include "Common.hlsl" - //----------------------------------------------------------------------------- // Gamma space - Assume positive values //----------------------------------------------------------------------------- @@ -10,112 +8,112 @@ // Gamma20 float Gamma20ToLinear(float c) { - return c * c; + return c * c; } float3 Gamma20ToLinear(float3 c) { - return c.rgb * c.rgb; + return c.rgb * c.rgb; } float4 Gamma20ToLinear(float4 c) { - return float4(Gamma20ToLinear(c.rgb), c.a); + return float4(Gamma20ToLinear(c.rgb), c.a); } float LinearToGamma20(float c) { - return sqrt(c); + return sqrt(c); } float3 LinearToGamma20(float3 c) { - return sqrt(c.rgb); + return sqrt(c.rgb); } float4 LinearToGamma20(float4 c) { - return float4(LinearToGamma20(c.rgb), c.a); + return float4(LinearToGamma20(c.rgb), c.a); } // Gamma22 float Gamma22ToLinear(float c) { - return pow(c, 2.2); + return pow(c, 2.2); } float3 Gamma22ToLinear(float3 c) { - return pow(c.rgb, float3(2.2, 2.2, 2.2)); + return pow(c.rgb, float3(2.2, 2.2, 2.2)); } float4 Gamma22ToLinear(float4 c) { - return float4(Gamma22ToLinear(c.rgb), c.a); + return float4(Gamma22ToLinear(c.rgb), c.a); } float LinearToGamma22(float c) { - return pow(c, 0.454545454545455); + return pow(c, 0.454545454545455); } float3 LinearToGamma22(float3 c) { - return pow(c.rgb, float3(0.454545454545455, 0.454545454545455, 0.454545454545455)); + return pow(c.rgb, float3(0.454545454545455, 0.454545454545455, 0.454545454545455)); } float4 LinearToGamma22(float4 c) { - return float4(LinearToGamma22(c.rgb), c.a); + return float4(LinearToGamma22(c.rgb), c.a); } // sRGB float3 SRGBToLinear(float3 c) { - float3 linearRGBLo = c / 12.92; - float3 linearRGBHi = pow((c + 0.055) / 1.055, float3(2.4, 2.4, 2.4)); - float3 linearRGB = (c <= 0.04045) ? linearRGBLo : linearRGBHi; - return linearRGB; + float3 linearRGBLo = c / 12.92; + float3 linearRGBHi = pow((c + 0.055) / 1.055, float3(2.4, 2.4, 2.4)); + float3 linearRGB = (c <= 0.04045) ? linearRGBLo : linearRGBHi; + return linearRGB; } float4 SRGBToLinear(float4 c) { - return float4(SRGBToLinear(c.rgb), c.a); + return float4(SRGBToLinear(c.rgb), c.a); } float3 LinearToSRGB(float3 c) { - float3 sRGBLo = c * 12.92; - float3 sRGBHi = (pow(c, float3(1.0/2.4, 1.0/2.4, 1.0/2.4)) * 1.055) - 0.055; - float3 sRGB = (c <= 0.0031308) ? sRGBLo : sRGBHi; - return sRGB; + float3 sRGBLo = c * 12.92; + float3 sRGBHi = (pow(c, float3(1.0/2.4, 1.0/2.4, 1.0/2.4)) * 1.055) - 0.055; + float3 sRGB = (c <= 0.0031308) ? sRGBLo : sRGBHi; + return sRGB; } float4 LinearToSRGB(float4 c) { - return float4(LinearToSRGB(c.rgb), c.a); + return float4(LinearToSRGB(c.rgb), c.a); } // TODO: Seb - To verify and refit! // Ref: http://chilliant.blogspot.com.au/2012/08/srgb-approximations-for-hlsl.html?m=1 float3 FastSRGBToLinear(float3 c) { - return c * (c * (c * 0.305306011 + 0.682171111) + 0.012522878); + return c * (c * (c * 0.305306011 + 0.682171111) + 0.012522878); } float4 FastSRGBToLinear(float4 c) { - return float4(FastSRGBToLinear(c.rgb), c.a); + return float4(FastSRGBToLinear(c.rgb), c.a); } float3 FastLinearToSRGB(float3 c) { - return max(1.055 * pow(c, 0.416666667) - 0.055, 0.0); + return max(1.055 * pow(c, 0.416666667) - 0.055, 0.0); } float4 FastLinearToSRGB(float4 c) { - return float4(FastLinearToSRGB(c.rgb), c.a); + return float4(FastLinearToSRGB(c.rgb), c.a); } //----------------------------------------------------------------------------- @@ -125,18 +123,18 @@ float4 FastLinearToSRGB(float4 c) // Convert rgb to luminance // with rgb in linear space with sRGB primaries and D65 white point float Luminance(float3 linearRgb) -{ - return dot(linearRgb, float3(0.2126729f, 0.7151522f, 0.0721750f)); +{ + return dot(linearRgb, float3(0.2126729f, 0.7151522f, 0.0721750f)); } // Ref: http://realtimecollisiondetection.net/blog/?p=15 float4 PackLogLuv(float3 vRGB) { - // M matrix, for encoding - const float3x3 M = float3x3( - 0.2209, 0.3390, 0.4184, - 0.1138, 0.6780, 0.7319, - 0.0102, 0.1130, 0.2969); + // M matrix, for encoding + const float3x3 M = float3x3( + 0.2209, 0.3390, 0.4184, + 0.1138, 0.6780, 0.7319, + 0.0102, 0.1130, 0.2969); float4 vResult; float3 Xp_Y_XYZp = mul(vRGB, M); @@ -150,11 +148,11 @@ float4 PackLogLuv(float3 vRGB) float3 UnpackLogLuv(float4 vLogLuv) { - // Inverse M matrix, for decoding - const float3x3 InverseM = float3x3( - 6.0014, -2.7008, -1.7996, - -1.3320, 3.1029, -5.7721, - 0.3008, -1.0882, 5.6268); + // Inverse M matrix, for decoding + const float3x3 InverseM = float3x3( + 6.0014, -2.7008, -1.7996, + -1.3320, 3.1029, -5.7721, + 0.3008, -1.0882, 5.6268); float Le = vLogLuv.z * 255.0 + vLogLuv.w; float3 Xp_Y_XYZp; @@ -165,39 +163,63 @@ float3 UnpackLogLuv(float4 vLogLuv) return max(vRGB, float3(0.0, 0.0, 0.0)); } -// TODO: check what is really use by the lightmap... should be hardcoded -// This function must handle various crappy case of lightmap ? -float4 UnityEncodeRGBM (float3 rgb, float maxRGBM) +// TODO: This function is used with the LightTransport pass to encode lightmap or emissive +float4 PackRGBM(float3 rgb, float maxRGBM) { - float kOneOverRGBMMaxRange = 1.0 / maxRGBM; - const float kMinMultiplier = 2.0 * 1e-2; + float kOneOverRGBMMaxRange = 1.0 / maxRGBM; + const float kMinMultiplier = 2.0 * 1e-2; + + float4 rgbm = float4(rgb * kOneOverRGBMMaxRange, 1.0); + rgbm.a = max(max(rgbm.r, rgbm.g), max(rgbm.b, kMinMultiplier)); + rgbm.a = ceil(rgbm.a * 255.0) / 255.0; - float4 rgbm = float4(rgb * kOneOverRGBMMaxRange, 1.0f); - rgbm.a = max(max(rgbm.r, rgbm.g), max(rgbm.b, kMinMultiplier)); - rgbm.a = ceil(rgbm.a * 255.0) / 255.0; - - // Division-by-zero warning from d3d9, so make compiler happy. - rgbm.a = max(rgbm.a, kMinMultiplier); - - rgbm.rgb /= rgbm.a; - return rgbm; + // Division-by-zero warning from d3d9, so make compiler happy. + rgbm.a = max(rgbm.a, kMinMultiplier); + + rgbm.rgb /= rgbm.a; + return rgbm; } // Alternative... #define RGBMRANGE (8.0) -float4 packRGBM(float3 color) +float4 PackRGBM(float3 color) +{ + float4 rgbm; + color *= (1.0 / RGBMRANGE); + rgbm.a = saturate( max( max( color.r, color.g ), max( color.b, 1e-6 ) ) ); + rgbm.a = ceil( rgbm.a * 255.0 ) / 255.0; + rgbm.rgb = color / rgbm.a; + return rgbm; +} + +float3 UnpackRGBM(float4 rgbm) { - float4 rgbm; - color *= (1.0 / RGBMRANGE); - rgbm.a = saturate( max( max( color.r, color.g ), max( color.b, 1e-6 ) ) ); - rgbm.a = ceil( rgbm.a * 255.0 ) / 255.0; - rgbm.rgb = color / rgbm.a; - return rgbm; + return RGBMRANGE * rgbm.rgb * rgbm.a; } -float3 unpackRGBM(float4 rgbm) +// Ref: http://www.nvidia.com/object/real-time-ycocg-dxt-compression.html +#define CHROMA_BIAS (0.5 * 256.0 / 255.0) +float3 RGBToYCoCg(float3 rgb) { - return RGBMRANGE * rgbm.rgb * rgbm.a; + float3 YCoCg; + YCoCg.x = dot(rgb, float3(0.25, 0.5, 0.25)); + YCoCg.y = dot(rgb, float3(0.5, 0.0, -0.5)) + CHROMA_BIAS; + YCoCg.z = dot(rgb, float3(-0.25, 0.5, -0.25)) + CHROMA_BIAS; + + return YCoCg; } -#endif // UNITY_COLOR_INCLUDED \ No newline at end of file +float3 YCoCgToRGB(float3 YCoCg) +{ + float Y = YCoCg.x; + float Co = YCoCg.y - CHROMA_BIAS; + float Cg = YCoCg.z - CHROMA_BIAS; + + float3 rgb; + rgb.r = Y + Co - Cg; + rgb.g = Y + Cg; + rgb.b = Y - Co - Cg; + + return rgb; +} +#endif // UNITY_COLOR_INCLUDED diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/Common.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/Common.hlsl index b77ef99284f..bf60abe5a71 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/Common.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/Common.hlsl @@ -2,6 +2,9 @@ #define UNITY_COMMON_INCLUDED // Convention: + +// Unity is Y up - left handed + // space at the end of the variable name // WS: world space // VS: view space @@ -32,7 +35,7 @@ // constant floating number written as 1.0 (not 1, not 1.0f, not 1.0h) -// uniform have g_ as prefix (still lowercaseThenCamelCase) +// uniform have _ as prefix + uppercase _LowercaseThenCamelCase // Structure definition that are share between C# and hlsl. // These structures need to be align on float4 to respectect various packing rules from sahder language. @@ -44,6 +47,8 @@ // When declaring "out" argument of function, they are always last +// headers from ShaderLibrary do not include "common.hlsl", this should be included in the .shader using it (or Material.hlsl) + // Include language header #if defined(SHADER_API_D3D11) @@ -55,40 +60,30 @@ #endif #include "API/Validate.hlsl" - -// ---------------------------------------------------------------------------- -// Common define allowing to include shared file between C# and hlsl -// ---------------------------------------------------------------------------- - -#define __HLSL 1 -#define public -#define Vec2 float2 -#define Vec3 float3 -#define Vec4 float4 -#define Mat44 float4x4 - // ---------------------------------------------------------------------------- // Common math definition and fastmath function // ---------------------------------------------------------------------------- -#define PI 3.14159265359f -#define TWO_PI 6.28318530718f -#define FOUR_PI 12.56637061436f -#define INV_PI 0.31830988618f -#define INV_TWO_PI 0.15915494309f -#define INV_FOUR_PI 0.07957747155f -#define HALF_PI 1.57079632679f -#define INV_HALF_PI 0.636619772367f +#define PI 3.14159265359 +#define TWO_PI 6.28318530718 +#define FOUR_PI 12.56637061436 +#define INV_PI 0.31830988618 +#define INV_TWO_PI 0.15915494309 +#define INV_FOUR_PI 0.07957747155 +#define HALF_PI 1.57079632679 +#define INV_HALF_PI 0.636619772367 + +#define FLT_EPSILON 1.192092896e-07f // smallest such that 1.0 + FLT_EPSILON != 1.0 #define MERGE_NAME(X, Y) X##Y // Ref: https://seblagarde.wordpress.com/2014/12/01/inverse-trigonometric-functions-gpu-optimization-for-amd-gcn-architecture/ -float FastACos(float inX) -{ - float x = abs(inX); - float res = -0.156583f * x + HALF_PI; - res *= sqrt(1.0f - x); - return (inX >= 0) ? res : PI - res; +float FastACos(float inX) +{ + float x = abs(inX); + float res = -0.156583 * x + HALF_PI; + res *= sqrt(1.0 - x); + return (inX >= 0) ? res : PI - res; } // Same cost as Acos + 1 FR @@ -103,23 +98,29 @@ float FastASin(float x) // Eberly's odd polynomial degree 5 - respect bounds // 4 VGPR, 14 FR (10 FR, 1 QR), 2 scalar // input [0, infinity] and output [0, PI/2] -float FastATanPos(float x) -{ - float t0 = (x < 1.0f) ? x : 1.0f / x; +float FastATanPos(float x) +{ + float t0 = (x < 1.0) ? x : 1.0 / x; float t1 = t0 * t0; - float poly = 0.0872929f; - poly = -0.301895f + poly * t1; - poly = 1.0f + poly * t1; + float poly = 0.0872929; + poly = -0.301895 + poly * t1; + poly = 1.0 + poly * t1; poly = poly * t0; - return (x < 1.0f) ? poly : HALF_PI - poly; + return (x < 1.0) ? poly : HALF_PI - poly; } // 4 VGPR, 16 FR (12 FR, 1 QR), 2 scalar // input [-infinity, infinity] and output [-PI/2, PI/2] float FastATan(float x) -{ - float t0 = FastATanPos(abs(x)); - return (x < 0.0f) ? -t0: t0; +{ + float t0 = FastATanPos(abs(x)); + return (x < 0.0) ? -t0 : t0; +} + +// Same smoothstep except it assume 0, 1 interval for x +float smoothstep01(float x) +{ + return x * x * (3.0 - (2.0 * x)); } // ---------------------------------------------------------------------------- @@ -128,30 +129,30 @@ float FastATan(float x) struct Coordinate { - // Normalize coordinates - float2 positionSS; - // Unormalize coordinates - int2 unPositionSS; + // Normalize coordinates + float2 positionSS; + // Unormalize coordinates + int2 unPositionSS; }; // This function is use to provide an easy way to sample into a screen texture, either from a pixel or a compute shaders. // This allow to easily share code. -// If a compute shader call this function inPositionSS is an interger usually calculate like: uint2 inPositionSS = groupId.xy * BLOCK_SIZE + groupThreadId.xy +// If a compute shader call this function inPositionSS is an integer usually calculate like: uint2 inPositionSS = groupId.xy * BLOCK_SIZE + groupThreadId.xy // else it is current unormalized screen coordinate like return by VPOS Coordinate GetCoordinate(float2 inPositionSS, float2 invScreenSize) { - Coordinate coord; - coord.positionSS = inPositionSS; - // TODO: How to detect automatically that we are a compute shader ? - #if 0 - // In case of compute shader an extra half offset is added to the screenPos to shift the integer position to pixel center. - coord.positionSS.xy += float2(0.5f, 0.5f); + Coordinate coord; + coord.positionSS = inPositionSS; + // TODO: How to detect automatically that we are a compute shader ? +#if SHADER_STAGE_COMPUTE + // In case of compute shader an extra half offset is added to the screenPos to shift the integer position to pixel center. + coord.positionSS.xy += float2(0.5, 0.5); #endif - coord.positionSS *= invScreenSize; + coord.positionSS *= invScreenSize; - coord.unPositionSS = int2(inPositionSS); + coord.unPositionSS = int2(inPositionSS); - return coord; + return coord; } // screenPos is screen coordinate in [0..1] (return by Coordinate.positionSS) @@ -159,17 +160,44 @@ Coordinate GetCoordinate(float2 inPositionSS, float2 invScreenSize) // For information. In Unity Depth is always in range 0..1 (even on OpenGL) but can be reversed. float3 UnprojectToWorld(float depth, float2 screenPos, float4x4 invViewProjectionMatrix) { - // CAUTION: The camera projection we get with Unity don't include the reverse stuff and the depth need to be remap manually to -1..1 - // We should simplify the process and have a way to do Camera.Projection matrix that return the projection martix use to project depth. - #if UNITY_REVERSED_Z - depth = 1.0 - depth; - #endif - depth = depth * 2.0 - 1.0; + float4 positionHS = float4(screenPos.xy * 2.0 - 1.0, depth, 1.0); + float4 hpositionWS = mul(invViewProjectionMatrix, positionHS); - float4 positionHS = float4(screenPos.xy * 2.0 - 1.0, depth, 1.0); - float4 hpositionWS = mul(invViewProjectionMatrix, positionHS); + return hpositionWS.xyz / hpositionWS.w; +} - return hpositionWS.xyz / hpositionWS.w; +// Z buffer to linear 0..1 depth +float Linear01Depth(float depth, float4 zBufferParam) +{ + return 1.0 / (zBufferParam.x * depth + zBufferParam.y); } +// Z buffer to linear depth +float LinearEyeDepth(float depth, float4 zBufferParam) +{ + return 1.0 / (zBufferParam.z * depth + zBufferParam.w); +} + +// NdotV should not be negative for visible pixels, but it can happen due to perspective projection and normal mapping + decal +// In this case this may cause weird artifact. +// GetNdotV return a 'valid' data +float GetNdotV(float3 N, float3 V) +{ + return abs(dot(N, V)); // This abs allow to limit artifact +} + +// NdotV should not be negative for visible pixels, but it can happen due to perspective projection and normal mapping + decal +// In this case normal should be modified to become valid (i.e facing camera) and not cause weird artifacts. +// but this operation adds few ALU and users may not want it. Alternative is to simply take the abs of NdotV (less correct but works too). +// Note: This code is not compatible with two sided lighting used in SpeedTree (TODO: investigate). +float GetShiftedNdotV(float3 N, float3 V) +{ + // The amount we shift the normal toward the view vector is defined by the dot product. + float shiftAmount = dot(N, V); + N = shiftAmount < 0.0 ? N + V * (-shiftAmount + 1e-5f) : N; + N = normalize(N); + + return saturate(dot(N, V)); // TODO: this saturate should not be necessary here +} + -#endif // UNITY_COMMON_INCLUDED \ No newline at end of file +#endif // UNITY_COMMON_INCLUDED diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/CommonLighting.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/CommonLighting.hlsl index f042aa4fb55..7348dcf4866 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/CommonLighting.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/CommonLighting.hlsl @@ -1,6 +1,9 @@ #ifndef UNITY_COMMON_LIGHTING_INCLUDED #define UNITY_COMMON_LIGHTING_INCLUDED +// Ligthing convention +// Light direction is oriented backward (-Z). i.e in shader code, light direction is - lightData.forward + //----------------------------------------------------------------------------- // Attenuation functions //----------------------------------------------------------------------------- @@ -8,31 +11,122 @@ // Ref: Moving Frostbite to PBR float SmoothDistanceAttenuation(float squaredDistance, float invSqrAttenuationRadius) { - float factor = squaredDistance * invSqrAttenuationRadius; - float smoothFactor = saturate(1.0f - factor * factor); - return smoothFactor * smoothFactor; + float factor = squaredDistance * invSqrAttenuationRadius; + float smoothFactor = saturate(1.0f - factor * factor); + return smoothFactor * smoothFactor; } #define PUNCTUAL_LIGHT_THRESHOLD 0.01 // 1cm (in Unity 1 is 1m) float GetDistanceAttenuation(float3 unL, float invSqrAttenuationRadius) { - float sqrDist = dot(unL, unL); - float attenuation = 1.0f / (max(PUNCTUAL_LIGHT_THRESHOLD * PUNCTUAL_LIGHT_THRESHOLD, sqrDist)); - // Non physically based hack to limit light influence to attenuationRadius. - attenuation *= SmoothDistanceAttenuation(sqrDist, invSqrAttenuationRadius); + float sqrDist = dot(unL, unL); + float attenuation = 1.0f / (max(PUNCTUAL_LIGHT_THRESHOLD * PUNCTUAL_LIGHT_THRESHOLD, sqrDist)); + // Non physically based hack to limit light influence to attenuationRadius. + attenuation *= SmoothDistanceAttenuation(sqrDist, invSqrAttenuationRadius); - return attenuation; + return attenuation; } float GetAngleAttenuation(float3 L, float3 lightDir, float lightAngleScale, float lightAngleOffset) { - float cd = dot(lightDir, L); - float attenuation = saturate(cd * lightAngleScale + lightAngleOffset); - // smooth the transition - attenuation *= attenuation; + float cd = dot(lightDir, L); + float attenuation = saturate(cd * lightAngleScale + lightAngleOffset); + // smooth the transition + attenuation *= attenuation; + + return attenuation; +} + +//----------------------------------------------------------------------------- +// Helper function for anisotropy +//----------------------------------------------------------------------------- + +// Ref: http://blog.selfshadow.com/publications/s2012-shading-course/burley/s2012_pbs_disney_brdf_notes_v3.pdf (in addenda) +// Convert anisotropic ratio (0->no isotropic; 1->full anisotropy in tangent direction) to roughness +void ConvertAnisotropyToRoughness(float roughness, float anisotropy, out float roughnessT, out float roughnessB) +{ + float anisoAspect = sqrt(1.0 - 0.9 * anisotropy); + roughnessT = roughness * anisoAspect; + roughnessB = roughness / anisoAspect; +} + +// Fake anisotropic by distorting the normal as suggested by: +// Ref: Donald Revie - Implementing Fur Using Deferred Shading (GPU Pro 2) +// anisotropic ratio (0->no isotropic; 1->full anisotropy in tangent direction) +float3 GetAnisotropicModifiedNormal(float3 N, float3 T, float3 V, float anisotropy) +{ + float3 anisoT = cross(-V, T); + float3 anisoN = cross(anisoT, T); + + return normalize(lerp(N, anisoN, anisotropy)); +} + +//----------------------------------------------------------------------------- +// Helper function for perceptual roughness +//----------------------------------------------------------------------------- + +float PerceptualRoughnessToRoughness(float perceptualRoughness) +{ + return perceptualRoughness * perceptualRoughness; +} + +float RoughnessToPerceptualRoughness(float roughness) +{ + return sqrt(roughness); +} + +float PerceptualSmoothnessToRoughness(float perceptualSmoothness) +{ + return (1 - perceptualSmoothness) * (1 - perceptualSmoothness); +} - return attenuation; +float PerceptualSmoothnessToPerceptualRoughness(float perceptualSmoothness) +{ + return (1 - perceptualSmoothness); } -#endif // UNITY_COMMON_LIGHTING_INCLUDED \ No newline at end of file + +//----------------------------------------------------------------------------- +// Get local frame +//----------------------------------------------------------------------------- + +// generate an orthonormalBasis from 3d unit vector. +void GetLocalFrame(float3 N, out float3 tangentX, out float3 tangentY) +{ + float3 upVector = abs(N.z) < 0.999 ? float3(0.0, 0.0, 1.0) : float3(1.0, 0.0, 0.0); + tangentX = normalize(cross(upVector, N)); + tangentY = cross(N, tangentX); +} + +// TODO: test +/* +// http://orbit.dtu.dk/files/57573287/onb_frisvad_jgt2012.pdf +void GetLocalFrame(float3 N, out float3 tangentX, out float3 tangentY) +{ + if (N.z < -0.999) // Handle the singularity + { + tangentX = float3(0.0, -1.0, 0.0); + tangentY = float3(-1.0, 0.0, 0.0); + return ; + } + + float a = 1.0 / (1.0 + N.z); + float b = -N.x * N.y * a; + tangentX = float3(1.0f - N.x * N.x * a , b, -N.x); + tangentY = float3(b, 1.0f - N.y * N.y * a, -N.y); +} +*/ + +// ---------------------------------------------------------------------------- +// Parallax mapping +// ---------------------------------------------------------------------------- + +float2 ParallaxOffset(float3 viewDirTS, float height) +{ + // Parallax mapping with offset limiting to reduce weird artifcat (i.e do not divide by z), also save performance + return viewDirTS.xy * height; +} + + +#endif // UNITY_COMMON_LIGHTING_INCLUDED diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/Debug.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/Debug.hlsl new file mode 100644 index 00000000000..1deb4097896 --- /dev/null +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/Debug.hlsl @@ -0,0 +1,34 @@ +#ifndef UNITY_DEBUG_INCLUDED +#define UNITY_DEBUG_INCLUDED + +// Given an enum (represented by an int here), return a color. +// Use for DebugView of enum +float3 GetIndexColor(int index) +{ + float3 outColor = float3(1.0, 0.0, 0.0); + + if (index == 0) + outColor = float3(1.0, 0.5, 0.5); + else if (index == 1) + outColor = float3(0.5, 1.0, 0.5); + else if (index == 2) + outColor = float3(0.5, 0.5, 1.0); + else if (index == 3) + outColor = float3(1.0, 1.0, 0.5); + else if (index == 4) + outColor = float3(1.0, 0.5, 1.0); + else if (index == 5) + outColor = float3(0.5, 1.0, 1.0); + else if (index == 6) + outColor = float3(0.25, 0.75, 1.0); + else if (index == 7) + outColor = float3(1.0, 0.75, 0.25); + else if (index == 8) + outColor = float3(0.75, 1.0, 0.25); + else if (index == 9) + outColor = float3(0.75, 0.25, 1.0); + + return outColor; +} + +#endif // UNITY_DEBUG_INCLUDED diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/Debug.hlsl.meta b/Assets/ScriptableRenderLoop/ShaderLibrary/Debug.hlsl.meta new file mode 100644 index 00000000000..5423ffc257b --- /dev/null +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/Debug.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 90f3145f58b7eb44cb4252ac2a3ab258 +timeCreated: 1476051069 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/Filtering.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/Filtering.hlsl index e0f5accb5b8..c94dcc0f9ab 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/Filtering.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/Filtering.hlsl @@ -18,16 +18,16 @@ float4 SampleTextureCatmullRom(Texture2D tex, SamplerState linearSampler // Compute the Catmull-Rom weights using the fractional offset that we calculated earlier. // These equations are pre-expanded based on our knowledge of where the texels will be located, // which lets us avoid having to evaluate a piece-wise function. - float2 w0 = (1.0f / 6.0f) * (-3.0f * f3 + 6.0f * f2 - 3.0f * f); - float2 w1 = (1.0f / 6.0f) * (9.0f * f3 - 15.0f * f2 + 6.0f); - float2 w2 = (1.0f / 6.0f) * (-9.0f * f3 + 12.0f * f2 + 3.0f * f); - float2 w3 = (1.0f / 6.0f) * (3.0f * f3 - 3.0f * f2); + float2 w0 = (1.0f / 6.0) * (-3.0 * f3 + 6.0 * f2 - 3.0 * f); + float2 w1 = (1.0f / 6.0) * (9.0 * f3 - 15.0 * f2 + 6.0); + float2 w2 = (1.0f / 6.0) * (-9.0 * f3 + 12.0 * f2 + 3.0 * f); + float2 w3 = (1.0f / 6.0) * (3.0 * f3 - 3.0 * f2); - // Otim by Vlad, to test - // float2 w0 = (1.0 / 2.0) * f * (-1.0 + f * (2.0 - f)); - // float2 w1 = (1.0 / 6.0) * f2 * (-15.0 + 9.0 * f)) + 1.0; - // float2 w2 = (1.0 / 6.0) * f * (3.0 + f * (12.0 - f * 9.0)); - // float2 w3 = (1.0 / 2.0) * f2 * (f - 1.0); + // Otim by Vlad, to test + // float2 w0 = (1.0 / 2.0) * f * (-1.0 + f * (2.0 - f)); + // float2 w1 = (1.0 / 6.0) * f2 * (-15.0 + 9.0 * f)) + 1.0; + // float2 w2 = (1.0 / 6.0) * f * (3.0 + f * (12.0 - f * 9.0)); + // float2 w3 = (1.0 / 2.0) * f2 * (f - 1.0); // Work out weighting factors and sampling offsets that will let us use bilinear filtering to // simultaneously evaluate the middle 2 samples from the 4x4 grid. @@ -79,4 +79,4 @@ mix( texture3D( samp, (qi+vec3(0.0,1.0,1.0))*oneOverUvMapSize ), texture3D( samp, (qi+vec3(1.0,1.0,1.0))*oneOverUvMapSize ), qa.x ), qa.y ), qa.z ); } -*/ \ No newline at end of file +*/ diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/GeometricTools.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/GeometricTools.hlsl index 9c1c9523ca6..baa34b336ac 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/GeometricTools.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/GeometricTools.hlsl @@ -1,6 +1,101 @@ #ifndef UNITY_GEOMETRICTOOLS_INCLUDED #define UNITY_GEOMETRICTOOLS_INCLUDED -#include "Common.hlsl" +//----------------------------------------------------------------------------- +// Intersection functions +//----------------------------------------------------------------------------- + +// return furthest near intersection in x and closest far intersection in y +// if (intersections.y > intersections.x) the ray hit the box, else it miss it +// Assume dir is normalize +float2 BoxRayIntersect(float3 start, float3 dir, float3 boxMin, float3 boxMax) +{ + float3 invDir = 1.0 / dir; + + // Find the ray intersection with box plane + float3 firstPlaneIntersect = (boxMin - start) * invDir; + float3 secondPlaneIntersect = (boxMax - start) * invDir; + + // Get the closest/furthest of these intersections along the ray (Ok because x/0 give +inf and -x/0 give �inf ) + float3 closestPlane = min(firstPlaneIntersect, secondPlaneIntersect); + float3 furthestPlane = max(firstPlaneIntersect, secondPlaneIntersect); + + float2 intersections; + // Find the furthest near intersection + intersections.x = max(closestPlane.x, max(closestPlane.y, closestPlane.z)); + // Find the closest far intersection + intersections.y = min(min(furthestPlane.x, furthestPlane.y), furthestPlane.z); + + return intersections; +} + +// This simplified version assume that we care about the result only when we are inside the box +// Assume dir is normalize +float BoxRayIntersectSimple(float3 start, float3 dir, float3 boxMin, float3 boxMax) +{ + float3 invDir = 1.0 / dir; + + // Find the ray intersection with box plane + float3 rbmin = (boxMin - start) * invDir; + float3 rbmax = (boxMax - start) * invDir; + + float3 rbminmax = (dir > 0.0) ? rbmax : rbmin; + + return min(min(rbminmax.x, rbminmax.y), rbminmax.z); +} + +// Assume Sphere is at the origin (i.e start = position - spherePosition) +float2 SphereRayIntersect(float3 start, float3 dir, float radius, out bool intersect) +{ + float a = dot(dir, dir); + float b = dot(dir, start) * 2.0; + float c = dot(start, start) - radius * radius; + float discriminant = b * b - 4.0 * a * c; + + float2 intersections = float2(0.0, 0.0); + intersect = false; + if (discriminant < 0.0 || a == 0.0) + { + intersections.x = 0.0; + intersections.y = 0.0; + } + else + { + float sqrtDiscriminant = sqrt(discriminant); + intersections.x = (-b - sqrtDiscriminant) / (2.0 * a); + intersections.y = (-b + sqrtDiscriminant) / (2.0 * a); + intersect = true; + } + + return intersections; +} + +// This simplified version assume that we care about the result only when we are inside the sphere +// Assume Sphere is at the origin (i.e start = position - spherePosition) and dir is normalized +// Ref: http://http.developer.nvidia.com/GPUGems/gpugems_ch19.html +float SphereRayIntersectSimple(float3 start, float3 dir, float radius) +{ + float b = dot(dir, start) * 2.0; + float c = dot(start, start) - radius * radius; + float discriminant = b * b - 4.0 * c; + + return abs(sqrt(discriminant) - b) * 0.5; +} + +float3 RayPlaneIntersect(in float3 rayOrigin, in float3 rayDirection, in float3 planeOrigin, in float3 planeNormal) +{ + float dist = dot(planeNormal, planeOrigin - rayOrigin) / dot(planeNormal, rayDirection); + return rayOrigin + rayDirection * dist; +} + +//----------------------------------------------------------------------------- +// Distance functions +//----------------------------------------------------------------------------- + +// Box is AABB +float DistancePointBox(float3 position, float3 boxMin, float3 boxMax) +{ + return length(max(max(position - boxMax, boxMin - position), float3(0.0, 0.0, 0.0))); +} #endif // UNITY_GEOMETRICTOOLS_INCLUDED diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/ImageBasedLighting.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/ImageBasedLighting.hlsl new file mode 100644 index 00000000000..976faadc4ae --- /dev/null +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/ImageBasedLighting.hlsl @@ -0,0 +1,297 @@ +#ifndef UNITY_IMAGE_BASED_LIGHTING_INCLUDED +#define UNITY_IMAGE_BASED_LIGHTING_INCLUDED + +#include "CommonLighting.hlsl" +#include "BSDF.hlsl" +#include "Sampling.hlsl" + +//----------------------------------------------------------------------------- +// Util image based lighting +//----------------------------------------------------------------------------- + +// TODO: We need to change this hard limit! +#define UNITY_SPECCUBE_LOD_STEPS (6) + +float perceptualRoughnessToMipmapLevel(float perceptualRoughness) +{ + // TODO: Clean a bit this code + // CAUTION: remap from Morten may work only with offline convolution, see impact with runtime convolution! + + // For now disabled +#if 0 + float m = PerceptualRoughnessToRoughness(perceptualRoughness); // m is the real roughness parameter + const float fEps = 1.192092896e-07F; // smallest such that 1.0+FLT_EPSILON != 1.0 (+1e-4h is NOT good here. is visibly very wrong) + float n = (2.0 / max(fEps, m*m)) - 2.0; // remap to spec power. See eq. 21 in --> https://dl.dropboxusercontent.com/u/55891920/papers/mm_brdf.pdf + + n /= 4.0; // remap from n_dot_h formulatino to n_dot_r. See section "Pre-convolved Cube Maps vs Path Tracers" --> https://s3.amazonaws.com/docs.knaldtech.com/knald/1.0.0/lys_power_drops.html + + perceptualRoughness = pow(2.0 / (n + 2.0), 0.25); // remap back to square root of real roughness (0.25 include both the sqrt root of the conversion and sqrt for going from roughness to perceptualRoughness) +#else + // MM: came up with a surprisingly close approximation to what the #if 0'ed out code above does. + perceptualRoughness = perceptualRoughness * (1.7 - 0.7 * perceptualRoughness); +#endif + + return perceptualRoughness * UNITY_SPECCUBE_LOD_STEPS; +} + +// Ref: See "Moving Frostbite to PBR" Listing 22 +// This formulation is for GGX only (with smith joint visibility or regular) +float3 GetSpecularDominantDir(float3 N, float3 R, float roughness) +{ + float a = 1.0 - roughness; + float lerpFactor = a * (sqrt(a) + roughness); + // The result is not normalized as we fetch in a cubemap + return lerp(N, R, lerpFactor); +} + +//----------------------------------------------------------------------------- +// Anisotropic image based lighting +//----------------------------------------------------------------------------- +// To simulate the streching of highlight at grazing angle for IBL we shrink the roughness +// which allow to fake an anisotropic specular lobe. +// Ref: http://www.frostbite.com/2015/08/stochastic-screen-space-reflections/ - slide 84 +float AnisotropicStrechAtGrazingAngle(float roughness, float perceptualRoughness, float NdotV) +{ + return roughness * lerp(saturate(NdotV * 2.0), 1.0, perceptualRoughness); +} + +// ---------------------------------------------------------------------------- +// Importance sampling BSDF functions +// ---------------------------------------------------------------------------- + +void ImportanceSampleCosDir(float2 u, + float3 N, + float3 tangentX, + float3 tangentY, + out float3 L) +{ + // Cosine sampling - ref: http://www.rorydriscoll.com/2009/01/07/better-sampling/ + float cosTheta = sqrt(max(0.0, 1.0 - u.x)); + float sinTheta = sqrt(u.x); + float phi = TWO_PI * u.y; + + // Transform from spherical into cartesian + L = float3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + // Local to world + L = tangentX * L.x + tangentY * L.y + N * L.z; +} + +void ImportanceSampleGGXDir(float2 u, + float3 V, + float3 N, + float3 tangentX, + float3 tangentY, + float roughness, + out float3 H, + out float3 L) +{ + // GGX NDF sampling + float cosThetaH = sqrt((1.0 - u.x) / (1.0 + (roughness * roughness - 1.0) * u.x)); + float sinThetaH = sqrt(max(0.0, 1.0 - cosThetaH * cosThetaH)); + float phiH = TWO_PI * u.y; + + // Transform from spherical into cartesian + H = float3(sinThetaH * cos(phiH), sinThetaH * sin(phiH), cosThetaH); + // Local to world + H = tangentX * H.x + tangentY * H.y + N * H.z; + + // Convert sample from half angle to incident angle + L = 2.0 * dot(V, H) * H - V; +} + +// weightOverPdf return the weight (without the diffuseAlbedo term) over pdf. diffuseAlbedo term must be apply by the caller. +void ImportanceSampleLambert( + float2 u, + float3 N, + float3 tangentX, + float3 tangentY, + out float3 L, + out float NdotL, + out float weightOverPdf) +{ + ImportanceSampleCosDir(u, N, tangentX, tangentY, L); + + NdotL = saturate(dot(N, L)); + + // Importance sampling weight for each sample + // pdf = N.L / PI + // weight = fr * (N.L) with fr = diffuseAlbedo / PI + // weight over pdf is: + // weightOverPdf = (diffuseAlbedo / PI) * (N.L) / (N.L / PI) + // weightOverPdf = diffuseAlbedo + // diffuseAlbedo is apply outside the function + + weightOverPdf = 1.0; +} + +// weightOverPdf return the weight (without the Fresnel term) over pdf. Fresnel term must be apply by the caller. +void ImportanceSampleGGX( + float2 u, + float3 V, + float3 N, + float3 tangentX, + float3 tangentY, + float roughness, + float NdotV, + out float3 L, + out float VdotH, + out float NdotL, + out float weightOverPdf) +{ + float3 H; + ImportanceSampleGGXDir(u, V, N, tangentX, tangentY, roughness, H, L); + + float NdotH = saturate(dot(N, H)); + // Note: since L and V are symmetric around H, LdotH == VdotH + VdotH = saturate(dot(V, H)); + NdotL = saturate(dot(N, L)); + + // Importance sampling weight for each sample + // pdf = D(H) * (N.H) / (4 * (L.H)) + // weight = fr * (N.L) with fr = F(H) * G(V, L) * D(H) / (4 * (N.L) * (N.V)) + // weight over pdf is: + // weightOverPdf = F(H) * G(V, L) * (L.H) / ((N.H) * (N.V)) + // weightOverPdf = F(H) * 4 * (N.L) * V(V, L) * (L.H) / (N.H) with V(V, L) = G(V, L) / (4 * (N.L) * (N.V)) + // Remind (L.H) == (V.H) + // F is apply outside the function + + float Vis = V_SmithJointGGX(NdotL, NdotV, roughness); + weightOverPdf = 4.0 * Vis * NdotL * VdotH / NdotH; +} + +// ---------------------------------------------------------------------------- +// Pre-integration +// ---------------------------------------------------------------------------- + +// Ref: Listing 18 in "Moving Frostbite to PBR" + https://knarkowicz.wordpress.com/2014/12/27/analytical-dfg-term-for-ibl/ +float4 IntegrateGGXAndDisneyFGD(float3 V, float3 N, float roughness, uint sampleCount) +{ + float NdotV = saturate(dot(N, V)); + float4 acc = float4(0.0, 0.0, 0.0, 0.0); + // Add some jittering on Hammersley2d + float2 randNum = InitRandom(V.xy * 0.5 + 0.5); + + float3 tangentX, tangentY; + GetLocalFrame(N, tangentX, tangentY); + + for (uint i = 0; i < sampleCount; ++i) + { + float2 u = Hammersley2d(i, sampleCount); + u = frac(u + randNum + 0.5); + + float VdotH; + float NdotL; + float weightOverPdf; + + float3 L; // Unused + ImportanceSampleGGX(u, V, N, tangentX, tangentY, roughness, NdotV, + L, VdotH, NdotL, weightOverPdf); + + if (NdotL > 0.0) + { + // Integral is + // 1 / NumSample * \int[ L * fr * (N.L) / pdf ] with pdf = D(H) * (N.H) / (4 * (L.H)) and fr = F(H) * G(V, L) * D(H) / (4 * (N.L) * (N.V)) + // This is split in two part: + // A) \int[ L * (N.L) ] + // B) \int[ F(H) * 4 * (N.L) * V(V, L) * (L.H) / (N.H) ] with V(V, L) = G(V, L) / (4 * (N.L) * (N.V)) + // = \int[ F(H) * weightOverPdf ] + + // Recombine at runtime with: ( f0 * weightOverPdf * (1 - Fc) + f90 * weightOverPdf * Fc ) with Fc =(1 - V.H)^5 + float Fc = pow(1.0 - VdotH, 5.0); + acc.x += (1.0 - Fc) * weightOverPdf; + acc.y += Fc * weightOverPdf; + } + + // for Disney we still use a Cosine importance sampling, true Disney importance sampling imply a look up table + ImportanceSampleLambert(u, N, tangentX, tangentY, L, NdotL, weightOverPdf); + + if (NdotL > 0.0) + { + float3 H = normalize(L + V); + float LdotH = dot(L, H); + float disneyDiffuse = DisneyDiffuse(NdotV, NdotL, LdotH, RoughnessToPerceptualRoughness(roughness)); + + acc.z += disneyDiffuse * weightOverPdf; + } + } + + return acc / sampleCount; +} + +// Ref: Listing 19 in "Moving Frostbite to PBR" +float4 IntegrateLD( UNITY_ARGS_TEXCUBE(tex), + float3 V, + float3 N, + float roughness, + float mipmapcount, + float invOmegaP, + uint sampleCount, + bool prefilter = true) // static bool +{ + float3 acc = float3(0.0, 0.0, 0.0); + float accWeight = 0; + + float2 randNum = InitRandom(V.xy * 0.5 + 0.5); + + float3 tangentX, tangentY; + GetLocalFrame(N, tangentX, tangentY); + + for (uint i = 0; i < sampleCount; ++i) + { + float2 u = Hammersley2d(i, sampleCount); + u = frac(u + randNum + 0.5); + + float3 H; + float3 L; + ImportanceSampleGGXDir(u, V, N, tangentX, tangentY, roughness, H, L); + + float NdotL = saturate(dot(N,L)); + + float mipLevel; + + if (!prefilter) // BRDF importance sampling + { + mipLevel = 0.0; + } + else // Prefiltered BRDF importance sampling + { + float NdotH = saturate(dot(N, H)); + // Note: since L and V are symmetric around H, LdotH == VdotH + float LdotH = saturate(dot(L, H)); + + // Use pre - filtered importance sampling (i.e use lower mipmap + // level for fetching sample with low probability in order + // to reduce the variance ). + // ( Reference : GPU Gem3: http://http.developer.nvidia.com/GPUGems3/gpugems3_ch20.html) + // + // Since we pre - integrate the result for normal direction , + // N == V and then NdotH == LdotH . This is why the BRDF pdf + // can be simplifed from : + // pdf = D * NdotH /(4* LdotH ) to pdf = D / 4; + // + // - OmegaS : Solid angle associated to a sample + // - OmegaP : Solid angle associated to a pixel of the cubemap + + float pdf = D_GGXDividePI(NdotH, roughness) * NdotH / (4.0 * LdotH); + float omegaS = 1.0 / (sampleCount * pdf); // Solid angle associated to a sample + // invOmegaP is precomputed on CPU and provide as a parameter of the function + // float omegaP = FOUR_PI / (6.0f * cubemapWidth * cubemapWidth); // Solid angle associated to a pixel of the cubemap + // Clamp is not necessary as the hardware will do it. + // mipLevel = clamp(0.5f * log2(omegaS * invOmegaP), 0, mipmapcount); + mipLevel = 0.5 * log2(omegaS * invOmegaP); // Clamp is not necessary as the hardware will do it. + } + + if (NdotL > 0.0f) + { + float3 val = UNITY_SAMPLE_TEXCUBE_LOD(tex, L, mipLevel).rgb; + + // See p63 equation (53) of moving Frostbite to PBR v2 for the extra NdotL here (both in weight and value) + acc += val * NdotL; + accWeight += NdotL; + } + } + + return float4(acc * (1.0 / accWeight), 1.0); +} + +#endif // UNITY_IMAGE_BASED_LIGHTING_INCLUDED diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/ImageBasedLighting.hlsl.meta b/Assets/ScriptableRenderLoop/ShaderLibrary/ImageBasedLighting.hlsl.meta new file mode 100644 index 00000000000..618129258b1 --- /dev/null +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/ImageBasedLighting.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ae4dc0bfd9fc0b544a109513ba841d30 +timeCreated: 1476117021 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/Packing.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/Packing.hlsl index 922b168bc32..31b11177068 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/Packing.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/Packing.hlsl @@ -1,61 +1,122 @@ #ifndef UNITY_PACKING_INCLUDED #define UNITY_PACKING_INCLUDED -#include "Common.hlsl" - //----------------------------------------------------------------------------- // Normal packing //----------------------------------------------------------------------------- float3 PackNormalCartesian(float3 n) { - return n * 0.5 + 0.5; + return n * 0.5 + 0.5; } float3 UnpackNormalCartesian(float3 n) { - return normalize(n * 2.0 - 1.0); + return normalize(n * 2.0 - 1.0); } float3 PackNormalMaxComponent(float3 n) { - // TODO: use max3 - return (n / max(abs(n.x), max(abs(n.y), abs(n.z)))) * 0.5 + 0.5; + // TODO: use max3 + return (n / max(abs(n.x), max(abs(n.y), abs(n.z)))) * 0.5 + 0.5; } float3 UnpackNormalMaxComponent(float3 n) { - return normalize(n * 2.0 - 1.0); + return normalize(n * 2.0 - 1.0); } // Ref: http://jcgt.org/published/0003/02/01/paper.pdf // Encode with Oct, this function work with any size of output // return float between [-1, 1] -float2 PackNormalOctEncode(float3 v) +float2 PackNormalOctEncode(float3 n) +{ + float l1norm = abs(n.x) + abs(n.y) + abs(n.z); + float2 res0 = n.xy * (1.0 / l1norm); + + float2 val = 1.0 - abs(res0.yx); + return (n.zz < float2(0.0, 0.0) ? (res0 >= 0.0 ? val : -val) : res0); +} + +float3 UnpackNormalOctEncode(float2 f) +{ + float3 n = float3(f.x, f.y, 1.0 - abs(f.x) - abs(f.y)); + + float2 val = 1.0 - abs(n.yx); + n.xy = (n.zz < float2(0.0, 0.0) ? (n.xy >= 0.0 ? val : -val) : n.xy); + + return normalize(n); +} + +float3 UnpackNormalAG(float4 packedNormal) +{ + float3 normal; + normal.xy = packedNormal.wy * 2.0 - 1.0; + normal.z = sqrt(1.0 - saturate(dot(normal.xy, normal.xy))); + return normal; +} + +// Unpack normal as DXT5nm (1, y, 0, x) or BC5 (x, y, 0, 1) +float3 UnpackNormalmapRGorAG(float4 packedNormal) { - float l1norm = abs(v.x) + abs(v.y) + abs(v.z); - float2 res0 = v.xy * (1.0f / l1norm); + // This do the trick + packedNormal.x *= packedNormal.w; - float2 val = 1.0f - abs(res0.yx); - return (v.zz < float2(0.0f, 0.0f) ? (res0 >= 0.0f ? val : -val) : res0); + float3 normal; + normal.xy = packedNormal.xy * 2.0 - 1.0; + normal.z = sqrt(1.0 - saturate(dot(normal.xy, normal.xy))); + return normal; } -float3 UnpackNormalOctEncode(float x, float y) +//----------------------------------------------------------------------------- +// Quaternion packing +//----------------------------------------------------------------------------- + +// Ref: https://cedec.cesa.or.jp/2015/session/ENG/14698.html The Rendering Materials of Far Cry 4 + +/* +// This is GCN intrinsic +uint FindBiggestComponent(float4 q) { - float3 v = float3(x, y, 1.0f - abs(x) - abs(y)); + uint xyzIndex = CubeMapFaceID(q.x, q.y, q.z) * 0.5f; + uint wIndex = 3; - float2 val = 1.0f - abs(v.yx); - v.xy = (v.zz < float2(0.0f, 0.0f) ? (v.xy >= 0.0f ? val : -val) : v.xy); + bool wBiggest = abs(q.w) > max3(abs(q.x), qbs(q.y), qbs(q.z)); - return normalize(v); + return wBiggest ? wIndex : xyzIndex; } -float3 UnpackNormalDXT5nm (float4 packednormal) +// Pack a quaternion into a 10:10:10:2 +float4 PackQuat(float4 quat) { - float3 normal; - normal.xy = packednormal.wy * 2 - 1; - normal.z = sqrt(1 - saturate(dot(normal.xy, normal.xy))); - return normal; + uint index = FindBiggestComponent(quat); + + if (index == 0) quat = quat.yzwx; + if (index == 1) quat = quat.xzwy; + if (index == 2) quat = quat.xywz; + + float4 packedQuat; + packedQuat.xyz = quat.xyz * sign(quat.w) * sqrt(0.5) + 0.5; + packedQuat.w = index / 3.0; + + return packedQuat; +} +*/ + +// Unpack a quaternion from a 10:10:10:2 +float4 UnpackQuat(float4 packedQuat) +{ + uint index = (uint)(packedQuat.w * 3.0); + + float4 quat; + quat.xyz = packedQuat.xyz * sqrt(2.0) - (1.0 / sqrt(2.0)); + quat.w = sqrt(1.0 - saturate(dot(quat.xyz, quat.xyz))); + + if (index == 0) quat = quat.wxyz; + if (index == 1) quat = quat.xwyz; + if (index == 2) quat = quat.xywz; + + return quat; } //----------------------------------------------------------------------------- @@ -64,22 +125,83 @@ float3 UnpackNormalDXT5nm (float4 packednormal) float Pack2Byte(float2 inputs) { - float2 temp = inputs * float2(255.0, 255.0); - temp.x *= 256.0; - temp = round(temp); - float combined = temp.x + temp.y; - return combined * (1.0 / 65535.0); + float2 temp = inputs * float2(255.0, 255.0); + temp.x *= 256.0; + temp = round(temp); + float combined = temp.x + temp.y; + return combined * (1.0 / 65535.0); } float2 Unpack2Byte(float inputs) { - float temp = round(inputs * 65535.0); - float ipart; - float fpart = modf(temp / 256.0, ipart); - float2 result = float2(ipart, round(256.0 * fpart)); - return result * (1.0 / float2(255.0, 255.0)); + float temp = round(inputs * 65535.0); + float ipart; + float fpart = modf(temp / 256.0, ipart); + float2 result = float2(ipart, round(256.0 * fpart)); + return result * (1.0 / float2(255.0, 255.0)); } -//----------------------------------------------------------------------------- +// Encode a float in [0..1] and an int in [0..maxi - 1] as a float [0..1] to be store in log2(precision) bit +// maxi must be a power of two and define the number of bit dedicated 0..1 to the int part (log2(maxi)) +// Example: precision is 256.0, maxi is 2, i is [0..1] encode on 1 bit. f is [0..1] encode on 7 bit. +// Example: precision is 256.0, maxi is 4, i is [0..3] encode on 2 bit. f is [0..1] encode on 6 bit. +// Example: precision is 256.0, maxi is 8, i is [0..7] encode on 3 bit. f is [0..1] encode on 5 bit. +// ... +// Example: precision is 1024.0, maxi is 8, i is [0..7] encode on 3 bit. f is [0..1] encode on 7 bit. +//... +float PackFloatInt(float f, int i, float maxi, float precision) +{ + // Constant + float precisionMinusOne = precision - 1.0; + float t1 = ((precision / maxi) - 1.0) / precisionMinusOne; + float t2 = (precision / maxi) / precisionMinusOne; + + return t1 * f + t2 * float(i); +} + +void UnpackFloatInt(float val, float maxi, float precision, out float f, out int i) +{ + // Constant + float precisionMinusOne = precision - 1.0; + float t1 = ((precision / maxi) - 1.0) / precisionMinusOne; + float t2 = (precision / maxi) / precisionMinusOne; + + // extract integer part + i = int(val / t2); + // Now that we have i, solve formula in PackFloatInt for f + //f = (val - t2 * float(i)) / t1 => convert in mads form + f = (-t2 * float(i) + val) / t1; +} + +// Define various variante for ease of read +float PackFloatInt8bit(float f, int i, float maxi) +{ + return PackFloatInt(f, i, maxi, 255.0); +} + +float UnpackFloatInt8bit(float val, float maxi, out float f, out int i) +{ + UnpackFloatInt(val, maxi, 255.0, f, i); +} + +float PackFloatInt10bit(float f, int i, float maxi) +{ + return PackFloatInt(f, i, maxi, 1024.0); +} + +float UnpackFloatInt10bit(float val, float maxi, out float f, out int i) +{ + UnpackFloatInt(val, maxi, 1024.0, f, i); +} + +float PackFloatInt16bit(float f, int i, float maxi) +{ + return PackFloatInt(f, i, maxi, 65536.0); +} + +float UnpackFloatInt16bit(float val, float maxi, out float f, out int i) +{ + UnpackFloatInt(val, maxi, 65536.0, f, i); +} #endif // UNITY_PACKING_INCLUDED diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/QuaternionMath.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/QuaternionMath.hlsl index 8e1d00981f4..24495068097 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/QuaternionMath.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/QuaternionMath.hlsl @@ -1,6 +1,32 @@ #ifndef UNITY_QUATERNIONMATH_INCLUDED #define UNITY_QUATERNIONMATH_INCLUDED -#include "Common.hlsl" +// Ref: https://cedec.cesa.or.jp/2015/session/ENG/14698.html The Rendering Materials of Far Cry 4 + +float4 TangentSpaceToQuat(float3 tagent, float3 bitangent, float3 normal) +{ + float4 quat; + quat.x = normal.y - bitangent.z; + quat.y = tangent.z - normal.x; + quat.z = bitangent.x - tangent.y; + quat.w = 1.0 + tangent.x + bitangent.y + normal.z; + + return normalize(quat); +} + +void QuatToTangentSpace(float4 quaterion, out float3 tangent, out float3 bitangent, out float3 normal) +{ + tangent = float3(1.0, 0.0, 0.0) + + float3(-2.0, 2.0, 2.0) * quat.y * quat.yxw + + float3(-2.0, -2.0, 2.0) * quat.z * quaternion.zwx; + + bitangent = float3(0.0, 1.0, 0.0) + + float3(2.0, -2.0, 2.0) * quat.z * quat.wzy + + float3(2.0, -2.0, -2.0) * quat.x * quaternion.yxw; + + normal = float3(0.0, 0.0, 1.0) + + float3(2.0, 2.0, -2.0) * quat.x * quat.zwx + + float3(-2.0, 2.0, -2.0) * quat.y * quaternion.wzy; +} #endif // UNITY_QUATERNIONMATH_INCLUDED diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/SHMath.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/SHMath.hlsl index bda58710505..4a1b58d9303 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/SHMath.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/SHMath.hlsl @@ -1,6 +1,4 @@ #ifndef UNITY_SHMATH_INCLUDED #define UNITY_SHMATH_INCLUDED -#include "Common.hlsl" - #endif // UNITY_SHMATH_INCLUDED diff --git a/Assets/ScriptableRenderLoop/ShaderLibrary/Sampling.hlsl b/Assets/ScriptableRenderLoop/ShaderLibrary/Sampling.hlsl index b136c577ac3..956d8d7d8fd 100644 --- a/Assets/ScriptableRenderLoop/ShaderLibrary/Sampling.hlsl +++ b/Assets/ScriptableRenderLoop/ShaderLibrary/Sampling.hlsl @@ -1,6 +1,195 @@ #ifndef UNITY_SAMPLING_INCLUDED #define UNITY_SAMPLING_INCLUDED -#include "Common.hlsl" +//----------------------------------------------------------------------------- +// Sample generator +//----------------------------------------------------------------------------- + +// Ref: http://holger.dammertz.org/stuff/notes_HammersleyOnHemisphere.html +uint ReverseBits32(uint bits) +{ +#if 0 // Shader model 5 + return reversebits(bits); +#else + bits = (bits << 16) | (bits >> 16); + bits = ((bits & 0x00ff00ff) << 8) | ((bits & 0xff00ff00) >> 8); + bits = ((bits & 0x0f0f0f0f) << 4) | ((bits & 0xf0f0f0f0) >> 4); + bits = ((bits & 0x33333333) << 2) | ((bits & 0xcccccccc) >> 2); + bits = ((bits & 0x55555555) << 1) | ((bits & 0xaaaaaaaa) >> 1); + return bits; +#endif +} + +float RadicalInverse_VdC(uint bits) +{ + return float(ReverseBits32(bits)) * 2.3283064365386963e-10; // 0x100000000 +} + +float2 Hammersley2d(uint i, uint maxSampleCount) +{ + return float2(float(i) / float(maxSampleCount), RadicalInverse_VdC(i)); +} + +float Hash(uint s) +{ + s = s ^ 2747636419u; + s = s * 2654435769u; + s = s ^ (s >> 16); + s = s * 2654435769u; + s = s ^ (s >> 16); + s = s * 2654435769u; + return float(s) / 4294967295.0; +} + +float2 InitRandom(float2 input) +{ + float2 r; + r.x = Hash(uint(input.x * 4294967295.0)); + r.y = Hash(uint(input.y * 4294967295.0)); + + return r; +} + +//----------------------------------------------------------------------------- +// Sampling function +// Reference : http://www.cs.virginia.edu/~jdl/bib/globillum/mis/shirley96.pdf + PBRT +// Caution: Our light point backward (-Z), these sampling function follow this convention +//----------------------------------------------------------------------------- + +float3 UniformSampleSphere(float u1, float u2) +{ + float phi = TWO_PI * u2; + float cosTheta = 1.0 - 2.0 * u1; + float sinTheta = sqrt(max(0.0, 1.0 - cosTheta * cosTheta)); + + return float3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); // Light point backward (-Z) +} + +float3 UniformSampleHemisphere(float u1, float u2) +{ + float phi = TWO_PI * u2; + float cosTheta = u1; + float sinTheta = sqrt(max(0.0, 1.0 - cosTheta * cosTheta)); + + return float3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); // Light point backward (-Z) +} + +float3 UniformSampleDisk(float u1, float u2) +{ + float r = sqrt(u1); + float phi = TWO_PI * u2; + + return float3(r * cos(phi), r * sin(phi), 0); // Generate in XY plane as light point backward (-Z) +} + +void SampleSphere( float2 u, + float4x4 localToWorld, + float radius, + out float lightPdf, + out float3 P, + out float3 Ns) +{ + float u1 = u.x; + float u2 = u.y; + + Ns = UniformSampleSphere(u1, u2); + + // Transform from unit sphere to world space + P = radius * Ns + localToWorld[3].xyz; + + // pdf is inverse of area + lightPdf = 1.0 / (FOUR_PI * radius * radius); +} + +void SampleHemisphere( float2 u, + float4x4 localToWorld, + float radius, + out float lightPdf, + out float3 P, + out float3 Ns) +{ + float u1 = u.x; + float u2 = u.y; + + // Random point at hemisphere surface + Ns = -UniformSampleHemisphere(u1, u2); // We want the y down hemisphere + P = radius * Ns; + + // Transform to world space + P = mul(float4(P, 1.0), localToWorld).xyz; + Ns = mul(Ns, (float3x3)(localToWorld)); + + // pdf is inverse of area + lightPdf = 1.0 / (TWO_PI * radius * radius); +} + +// Note: The cylinder has no end caps (i.e. no disk on the side) +void SampleCylinder(float2 u, + float4x4 localToWorld, + float radius, + float width, + out float lightPdf, + out float3 P, + out float3 Ns) +{ + float u1 = u.x; + float u2 = u.y; + + // Random point at cylinder surface + float t = (u1 - 0.5) * width; + float theta = 2.0 * PI * u2; + float cosTheta = cos(theta); + float sinTheta = sin(theta); + + // Cylinder are align on the right axis + P = float3(t, radius * cosTheta, radius * sinTheta); + Ns = normalize(float3(0.0, cosTheta, sinTheta)); + + // Transform to world space + P = mul(float4(P, 1.0), localToWorld).xyz; + Ns = mul(Ns, (float3x3)(localToWorld)); + + // pdf is inverse of area + lightPdf = 1.0 / (TWO_PI * radius * width); +} + +void SampleRectangle( float2 u, + float4x4 localToWorld, + float width, + float height, + out float lightPdf, + out float3 P, + out float3 Ns) +{ + // Random point at rectangle surface + P = float3((u.x - 0.5) * width, (u.y - 0.5) * height, 0); + Ns = float3(0, 0, -1); // Light point backward (-Z) + + // Transform to world space + P = mul(float4(P, 1.0), localToWorld).xyz; + Ns = mul(Ns, (float3x3)(localToWorld)); + + // pdf is inverse of area + lightPdf = 1.0 / (width * height); +} + +void SampleDisk(float2 u, + float4x4 localToWorld, + float radius, + out float lightPdf, + out float3 P, + out float3 Ns) +{ + // Random point at disk surface + P = UniformSampleDisk(u.x, u.y) * radius; + Ns = float3(0.0, 0.0, -1.0); // Light point backward (-Z) + + // Transform to world space + P = mul(float4(P, 1.0), localToWorld).xyz; + Ns = mul(Ns, (float3x3)(localToWorld)); + + // pdf is inverse of area + lightPdf = 1.0 / (PI * radius * radius); +} #endif // UNITY_SAMPLING_INCLUDED diff --git a/Assets/ScriptableRenderLoop/Tests.meta b/Assets/ScriptableRenderLoop/Tests.meta new file mode 100644 index 00000000000..c622c4ab229 --- /dev/null +++ b/Assets/ScriptableRenderLoop/Tests.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7641c43fc081f6d46b70eee4b602efcc +folderAsset: yes +timeCreated: 1474997398 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/Tests/RenderLoopWrapper.cs b/Assets/ScriptableRenderLoop/Tests/RenderLoopWrapper.cs new file mode 100644 index 00000000000..1ad7f6b3d51 --- /dev/null +++ b/Assets/ScriptableRenderLoop/Tests/RenderLoopWrapper.cs @@ -0,0 +1,29 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Experimental.ScriptableRenderLoop; +using UnityEngine.Experimental.Rendering; + +[ExecuteInEditMode] +public class RenderLoopWrapper : MonoBehaviour +{ + public delegate void Callback(RenderLoopWrapper wrapper, Camera[] cameras, RenderLoop renderLoop); + + public Callback callback; + + void OnEnable() + { + RenderLoop.renderLoopDelegate += Render; + } + + void OnDisable() + { + RenderLoop.renderLoopDelegate -= Render; + } + + bool Render(Camera[] cameras, RenderLoop loop) + { + callback(this, cameras, loop); + return true; + } +} diff --git a/Assets/ScriptableRenderLoop/Tests/RenderLoopWrapper.cs.meta b/Assets/ScriptableRenderLoop/Tests/RenderLoopWrapper.cs.meta new file mode 100644 index 00000000000..0b00fc165d9 --- /dev/null +++ b/Assets/ScriptableRenderLoop/Tests/RenderLoopWrapper.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 636306177ff5b4d4baaeed2249249f1b +timeCreated: 1475087186 +licenseType: Pro +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/common/ShaderBase.cs b/Assets/ScriptableRenderLoop/common/ShaderBase.cs deleted file mode 100644 index 135e016e983..00000000000 --- a/Assets/ScriptableRenderLoop/common/ShaderBase.cs +++ /dev/null @@ -1,42 +0,0 @@ -#if !__HLSL - -using UnityEngine; - - -public struct Vec2 -{ - public static implicit operator Vec2(Vector2 v) { return new Vec2(v.x, v.y); } - public Vec2(Vec2 v) { x = v.x; y = v.y; } - public Vec2(float fX, float fY) { x = fX; y = fY; } - - public float x, y; -}; - -public struct Vec3 -{ - public static implicit operator Vec3(Vector3 v) { return new Vec3(v.x, v.y, v.z); } - public static implicit operator Vec3(Vector4 v) { return new Vec3(v.x, v.y, v.z); } - public Vec3(Vec3 v) { x = v.x; y = v.y; z = v.z; } - public Vec3(float fX, float fY, float fZ) { x = fX; y = fY; z = fZ; } - - public float x, y, z; -}; - -public struct Vec4 -{ - public static implicit operator Vec4(Vector4 v) { return new Vec4(v.x, v.y, v.z, v.w); } - public static implicit operator Vec4(Vector3 v) { return new Vec4(v.x, v.y, v.z, 1.0f); } - public Vec4(Vec4 v) { x = v.x; y = v.y; z = v.z; w = v.w; } - public Vec4(float fX, float fY, float fZ, float fW) { x = fX; y = fY; z = fZ; w = fW; } - - public float x, y, z, w; -}; - -public struct Mat44 -{ - public Mat44( Matrix4x4 m ) { c0 = new Vec4(m.GetColumn(0)); c1 = new Vec4(m.GetColumn(1)); c2 = new Vec4(m.GetColumn(2)); c3 = new Vec4(m.GetColumn(3)); } - - public Vec4 c0, c1, c2, c3; -}; - -#endif \ No newline at end of file diff --git a/Assets/ScriptableRenderLoop/common/ShaderBase.h b/Assets/ScriptableRenderLoop/common/ShaderBase.h index e154aef2299..a60b963ef38 100644 --- a/Assets/ScriptableRenderLoop/common/ShaderBase.h +++ b/Assets/ScriptableRenderLoop/common/ShaderBase.h @@ -2,21 +2,25 @@ #define __SHADERBASE_H__ -#define __HLSL 1 +#define __HLSL 1 #define public -#define Vec2 float2 -#define Vec3 float3 -#define Vec4 float4 -#define Mat44 float4x4 -#define unistruct cbuffer -#define hbool bool +#define unistruct cbuffer +#define hbool bool -#define _CB_REGSLOT(x) : register(x) -#define _QALIGN(x) : packoffset(c0); +#define _CB_REGSLOT(x) : register(x) +#define _QALIGN(x) : packoffset(c0); +float FetchDepth(Texture2D depthTexture, uint2 pixCoord) +{ + return 1 - depthTexture.Load(uint3(pixCoord.xy, 0)).x; +} +float FetchDepthMSAA(Texture2DMS depthTexture, uint2 pixCoord, uint sampleIdx) +{ + return 1 - depthTexture.Load(uint3(pixCoord.xy, 0), sampleIdx).x; +} -#endif \ No newline at end of file +#endif diff --git a/Assets/ScriptableRenderLoop/common/SkyboxHelper.cs b/Assets/ScriptableRenderLoop/common/SkyboxHelper.cs index e93497284eb..c5b32c95687 100644 --- a/Assets/ScriptableRenderLoop/common/SkyboxHelper.cs +++ b/Assets/ScriptableRenderLoop/common/SkyboxHelper.cs @@ -1,273 +1,273 @@ -using System.Collections; using System.Collections.Generic; using UnityEngine.Rendering; +using UnityEngine.Experimental.Rendering; using UnityEngine; public class SkyboxHelper { - public SkyboxHelper() - { - } - - const int NumFullSubdivisions = 3; // 3 subdivs == 2048 triangles - const int NumHorizonSubdivisions = 2; - - public void CreateMesh() - { - Vector3[] vertData = new Vector3[8 * 3]; - for (int i = 0; i < 8 * 3; i++) - { - vertData[i] = octaVerts[i]; - } - - // Regular subdivisions - for (int i = 0; i < NumFullSubdivisions; i++) - { - Vector3[] srcData = vertData.Clone() as Vector3[]; - List verts = new List(); - - for (int k = 0; k < srcData.Length; k += 3) - { - Subdivide(verts, srcData[k], srcData[k + 1], srcData[k + 2]); - } - vertData = verts.ToArray(); - } - - // Horizon subdivisions - float horizonLimit = 1.0f; - for (int i = 0; i < NumHorizonSubdivisions; i++) - { - Vector3[] srcData = vertData.Clone() as Vector3[]; - List verts = new List(); - - horizonLimit *= 0.5f; // First iteration limit to y < +-0.5, next one 0.25 etc. - for (int k = 0; k < srcData.Length; k += 3) - { - float maxAbsY = Mathf.Max(Mathf.Abs(srcData[k].y), Mathf.Abs(srcData[k + 1].y), Mathf.Abs(srcData[k + 2].y)); - if (maxAbsY > horizonLimit) - { - // Pass through existing triangle - verts.Add(srcData[k]); - verts.Add(srcData[k + 1]); - verts.Add(srcData[k + 2]); - } - else - { - SubdivideYOnly(verts, srcData[k], srcData[k + 1], srcData[k + 2]); - } - } - vertData = verts.ToArray(); - } - - // Write out the mesh - int vertexCount = vertData.Length; - var triangles = new int[vertexCount]; - for (int i = 0; i < vertexCount; i++) - { - triangles[i] = i; - } - - _mesh = new Mesh(); - _mesh.vertices = vertData; - _mesh.triangles = triangles; - } - - public UnityEngine.Mesh mesh - { - get { return _mesh; } - } - - public void Draw(RenderLoop loop, Camera camera) - { - if (camera.clearFlags != CameraClearFlags.Skybox) - { - return; - } - - CommandBuffer cmd = new CommandBuffer(); - cmd.name = "Skybox"; - - Material mat = RenderSettings.skybox; - - if (mat == null) - { - return; - } - - bool looksLikeSixSidedShader = true; - looksLikeSixSidedShader &= (mat.passCount == 6); // should have six passes - //looksLikeSixSidedShader &= !mat.GetShader()->GetShaderLabShader()->HasLightingPasses(); - - if (looksLikeSixSidedShader) - { - Debug.LogWarning("Six sided skybox not yet supported."); - } - else - { - if (mesh == null) - { - CreateMesh(); - } - - float dist = camera.farClipPlane * 10.0f; - - Matrix4x4 world = Matrix4x4.TRS(camera.transform.position, Quaternion.identity, new Vector3(dist, dist, dist)); - - Matrix4x4 skyboxProj = SkyboxHelper.GetProjectionMatrix(camera); - cmd.SetProjectionAndViewMatrices(skyboxProj, camera.worldToCameraMatrix); - cmd.DrawMesh(mesh, world, mat); - - cmd.SetProjectionAndViewMatrices(camera.projectionMatrix, camera.worldToCameraMatrix); - } - - loop.ExecuteCommandBuffer(cmd); - cmd.Dispose(); - } - - static public Matrix4x4 GetProjectionMatrix(Camera camera) - { - Matrix4x4 skyboxProj = Matrix4x4.Perspective(camera.fieldOfView, camera.aspect, camera.nearClipPlane, camera.farClipPlane); - - float nearPlane = camera.nearClipPlane * 0.01f; - skyboxProj = AdjustDepthRange(skyboxProj, camera.nearClipPlane, nearPlane, camera.farClipPlane); - return MakeProjectionInfinite(skyboxProj, nearPlane); - } - - static Matrix4x4 MakeProjectionInfinite(Matrix4x4 m, float nearPlane) - { - const float epsilon = 1e-6f; - - Matrix4x4 r = m; - r[2, 2] = -1.0f + epsilon; - r[2, 3] = (-2.0f + epsilon) * nearPlane; - r[3, 2] = -1.0f; - return r; - } - - static Matrix4x4 AdjustDepthRange(Matrix4x4 mat, float origNear, float newNear, float newFar) - { - float x = mat[0, 0]; - float y = mat[1, 1]; - float w = mat[0, 2]; - float z = mat[1, 2]; - - float r = ((2.0f * origNear) / x) * ((w + 1) * 0.5f); - float t = ((2.0f * origNear) / y) * ((z + 1) * 0.5f); - float l = ((2.0f * origNear) / x) * (((w + 1) * 0.5f) - 1); - float b = ((2.0f * origNear) / y) * (((z + 1) * 0.5f) - 1); - - float ratio = (newNear / origNear); - - r *= ratio; - t *= ratio; - l *= ratio; - b *= ratio; - - Matrix4x4 ret = new Matrix4x4(); - - ret[0, 0] = (2.0f * newNear) / (r - l); ret[0, 1] = 0; ret[0, 2] = (r + l) / (r - l); ret[0, 3] = 0; - ret[1, 0] = 0; ret[1, 1] = (2.0f * newNear) / (t - b); ret[1, 2] = (t + b) / (t - b); ret[1, 3] = 0; - ret[2, 0] = 0; ret[2, 1] = 0; ret[2, 2] = -(newFar + newNear) / (newFar - newNear); ret[2, 3] = -(2.0f * newFar * newNear) / (newFar - newNear); - ret[3, 0] = 0; ret[3, 1] = 0; ret[3, 2] = -1.0f; ret[3, 3] = 0; - - return ret; - } - - // Octahedron vertices - Vector3[] octaVerts = - { - new Vector3(0.0f, 1.0f, 0.0f), new Vector3(0.0f, 0.0f, -1.0f), new Vector3(1.0f, 0.0f, 0.0f), - new Vector3(0.0f, 1.0f, 0.0f), new Vector3(1.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), - new Vector3(0.0f, 1.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(-1.0f, 0.0f, 0.0f), - new Vector3(0.0f, 1.0f, 0.0f), new Vector3(-1.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, -1.0f), - new Vector3(0.0f, -1.0f, 0.0f), new Vector3(1.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, -1.0f), - new Vector3(0.0f, -1.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(1.0f, 0.0f, 0.0f), - new Vector3(0.0f, -1.0f, 0.0f), new Vector3(-1.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), - new Vector3(0.0f, -1.0f, 0.0f), new Vector3(0.0f, 0.0f, -1.0f), new Vector3(-1.0f, 0.0f, 0.0f), - }; - - Vector3 SubDivVert(Vector3 v1, Vector3 v2) - { - return Vector3.Normalize(v1 + v2); - } - - void Subdivide(List dest, Vector3 v1, Vector3 v2, Vector3 v3) - { - Vector3 v12 = SubDivVert(v1, v2); - Vector3 v23 = SubDivVert(v2, v3); - Vector3 v13 = SubDivVert(v1, v3); - - dest.Add(v1); - dest.Add(v12); - dest.Add(v13); - dest.Add(v12); - dest.Add(v2); - dest.Add(v23); - dest.Add(v23); - dest.Add(v13); - dest.Add(v12); - dest.Add(v3); - dest.Add(v13); - dest.Add(v23); - } - - void SubdivideYOnly(List dest, Vector3 v1, Vector3 v2, Vector3 v3) - { - // Find out which vertex is furthest out from the others on the y axis - - float d12 = Mathf.Abs(v2.y - v1.y); - float d23 = Mathf.Abs(v2.y - v3.y); - float d31 = Mathf.Abs(v3.y - v1.y); - - Vector3 top, va, vb; - - if (d12 < d23 && d12 < d31) - { - top = v3; - va = v1; - vb = v2; - } - else if (d23 < d12 && d23 < d31) - { - top = v1; - va = v2; - vb = v3; - } - else - { - top = v2; - va = v3; - vb = v1; - } - - Vector3 v12 = SubDivVert(top, va); - Vector3 v13 = SubDivVert(top, vb); - - dest.Add(top); - dest.Add(v12); - dest.Add(v13); - - // A bit of extra logic to prevent triangle slivers: choose the shorter of (13->va), (12->vb) as triangle base - if ((v13 - va).sqrMagnitude > (v12 - vb).sqrMagnitude) - { - dest.Add(v12); - dest.Add(va); - dest.Add(vb); - dest.Add(v13); - dest.Add(v12); - dest.Add(vb); - } - else - { - dest.Add(v13); - dest.Add(v12); - dest.Add(va); - dest.Add(v13); - dest.Add(va); - dest.Add(vb); - } - - } - - Mesh _mesh; + public SkyboxHelper() + { + } + + const int k_NumFullSubdivisions = 3; // 3 subdivs == 2048 triangles + const int k_NumHorizonSubdivisions = 2; + + public void CreateMesh() + { + var vertData = new Vector3[8 * 3]; + for (int i = 0; i < 8 * 3; i++) + { + vertData[i] = m_OctaVerts[i]; + } + + // Regular subdivisions + for (int i = 0; i < k_NumFullSubdivisions; i++) + { + var srcData = vertData.Clone() as Vector3[]; + var verts = new List(); + + for (int k = 0; k < srcData.Length; k += 3) + { + Subdivide(verts, srcData[k], srcData[k + 1], srcData[k + 2]); + } + vertData = verts.ToArray(); + } + + // Horizon subdivisions + var horizonLimit = 1.0f; + for (int i = 0; i < k_NumHorizonSubdivisions; i++) + { + var srcData = vertData.Clone() as Vector3[]; + var verts = new List(); + + horizonLimit *= 0.5f; // First iteration limit to y < +-0.5, next one 0.25 etc. + for (int k = 0; k < srcData.Length; k += 3) + { + var maxAbsY = Mathf.Max(Mathf.Abs(srcData[k].y), Mathf.Abs(srcData[k + 1].y), Mathf.Abs(srcData[k + 2].y)); + if (maxAbsY > horizonLimit) + { + // Pass through existing triangle + verts.Add(srcData[k]); + verts.Add(srcData[k + 1]); + verts.Add(srcData[k + 2]); + } + else + { + SubdivideYOnly(verts, srcData[k], srcData[k + 1], srcData[k + 2]); + } + } + vertData = verts.ToArray(); + } + + // Write out the mesh + var vertexCount = vertData.Length; + var triangles = new int[vertexCount]; + for (int i = 0; i < vertexCount; i++) + { + triangles[i] = i; + } + + m_Mesh = new Mesh + { + vertices = vertData, + triangles = triangles + }; + } + + public UnityEngine.Mesh mesh + { + get { return m_Mesh; } + } + + public void Draw(RenderLoop loop, Camera camera) + { + if (camera.clearFlags != CameraClearFlags.Skybox) + { + return; + } + + var mat = RenderSettings.skybox; + + if (mat == null) + { + return; + } + + var cmd = new CommandBuffer { name = "Skybox" }; + + var looksLikeSixSidedShader = true; + looksLikeSixSidedShader &= (mat.passCount == 6); // should have six passes + //looksLikeSixSidedShader &= !mat.GetShader()->GetShaderLabShader()->HasLightingPasses(); + + if (looksLikeSixSidedShader) + { + Debug.LogWarning("Six sided skybox not yet supported."); + } + else + { + if (mesh == null) + { + CreateMesh(); + } + + var dist = camera.farClipPlane * 10.0f; + + var world = Matrix4x4.TRS(camera.transform.position, Quaternion.identity, new Vector3(dist, dist, dist)); + + var skyboxProj = SkyboxHelper.GetProjectionMatrix(camera); + cmd.SetProjectionAndViewMatrices(skyboxProj, camera.worldToCameraMatrix); + cmd.DrawMesh(mesh, world, mat); + + cmd.SetProjectionAndViewMatrices(camera.projectionMatrix, camera.worldToCameraMatrix); + } + + loop.ExecuteCommandBuffer(cmd); + cmd.Dispose(); + } + + public static Matrix4x4 GetProjectionMatrix(Camera camera) + { + var skyboxProj = Matrix4x4.Perspective(camera.fieldOfView, camera.aspect, camera.nearClipPlane, camera.farClipPlane); + + var nearPlane = camera.nearClipPlane * 0.01f; + skyboxProj = AdjustDepthRange(skyboxProj, camera.nearClipPlane, nearPlane, camera.farClipPlane); + return MakeProjectionInfinite(skyboxProj, nearPlane); + } + + static Matrix4x4 MakeProjectionInfinite(Matrix4x4 m, float nearPlane) + { + const float epsilon = 1e-6f; + + var r = m; + r[2, 2] = -1.0f + epsilon; + r[2, 3] = (-2.0f + epsilon) * nearPlane; + r[3, 2] = -1.0f; + return r; + } + + static Matrix4x4 AdjustDepthRange(Matrix4x4 mat, float origNear, float newNear, float newFar) + { + var x = mat[0, 0]; + var y = mat[1, 1]; + var w = mat[0, 2]; + var z = mat[1, 2]; + + var r = ((2.0f * origNear) / x) * ((w + 1) * 0.5f); + var t = ((2.0f * origNear) / y) * ((z + 1) * 0.5f); + var l = ((2.0f * origNear) / x) * (((w + 1) * 0.5f) - 1); + var b = ((2.0f * origNear) / y) * (((z + 1) * 0.5f) - 1); + + var ratio = (newNear / origNear); + + r *= ratio; + t *= ratio; + l *= ratio; + b *= ratio; + + var ret = new Matrix4x4(); + + ret[0, 0] = (2.0f * newNear) / (r - l); ret[0, 1] = 0; ret[0, 2] = (r + l) / (r - l); ret[0, 3] = 0; + ret[1, 0] = 0; ret[1, 1] = (2.0f * newNear) / (t - b); ret[1, 2] = (t + b) / (t - b); ret[1, 3] = 0; + ret[2, 0] = 0; ret[2, 1] = 0; ret[2, 2] = -(newFar + newNear) / (newFar - newNear); ret[2, 3] = -(2.0f * newFar * newNear) / (newFar - newNear); + ret[3, 0] = 0; ret[3, 1] = 0; ret[3, 2] = -1.0f; ret[3, 3] = 0; + + return ret; + } + + // Octahedron vertices + readonly Vector3[] m_OctaVerts = + { + new Vector3(0.0f, 1.0f, 0.0f), new Vector3(0.0f, 0.0f, -1.0f), new Vector3(1.0f, 0.0f, 0.0f), + new Vector3(0.0f, 1.0f, 0.0f), new Vector3(1.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), + new Vector3(0.0f, 1.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(-1.0f, 0.0f, 0.0f), + new Vector3(0.0f, 1.0f, 0.0f), new Vector3(-1.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, -1.0f), + new Vector3(0.0f, -1.0f, 0.0f), new Vector3(1.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, -1.0f), + new Vector3(0.0f, -1.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), new Vector3(1.0f, 0.0f, 0.0f), + new Vector3(0.0f, -1.0f, 0.0f), new Vector3(-1.0f, 0.0f, 0.0f), new Vector3(0.0f, 0.0f, 1.0f), + new Vector3(0.0f, -1.0f, 0.0f), new Vector3(0.0f, 0.0f, -1.0f), new Vector3(-1.0f, 0.0f, 0.0f), + }; + + Vector3 SubDivVert(Vector3 v1, Vector3 v2) + { + return Vector3.Normalize(v1 + v2); + } + + void Subdivide(ICollection dest, Vector3 v1, Vector3 v2, Vector3 v3) + { + var v12 = SubDivVert(v1, v2); + var v23 = SubDivVert(v2, v3); + var v13 = SubDivVert(v1, v3); + + dest.Add(v1); + dest.Add(v12); + dest.Add(v13); + dest.Add(v12); + dest.Add(v2); + dest.Add(v23); + dest.Add(v23); + dest.Add(v13); + dest.Add(v12); + dest.Add(v3); + dest.Add(v13); + dest.Add(v23); + } + + void SubdivideYOnly(ICollection dest, Vector3 v1, Vector3 v2, Vector3 v3) + { + // Find out which vertex is furthest out from the others on the y axis + + var d12 = Mathf.Abs(v2.y - v1.y); + var d23 = Mathf.Abs(v2.y - v3.y); + var d31 = Mathf.Abs(v3.y - v1.y); + + Vector3 top, va, vb; + + if (d12 < d23 && d12 < d31) + { + top = v3; + va = v1; + vb = v2; + } + else if (d23 < d12 && d23 < d31) + { + top = v1; + va = v2; + vb = v3; + } + else + { + top = v2; + va = v3; + vb = v1; + } + + var v12 = SubDivVert(top, va); + var v13 = SubDivVert(top, vb); + + dest.Add(top); + dest.Add(v12); + dest.Add(v13); + + // A bit of extra logic to prevent triangle slivers: choose the shorter of (13->va), (12->vb) as triangle base + if ((v13 - va).sqrMagnitude > (v12 - vb).sqrMagnitude) + { + dest.Add(v12); + dest.Add(va); + dest.Add(vb); + dest.Add(v13); + dest.Add(v12); + dest.Add(vb); + } + else + { + dest.Add(v13); + dest.Add(v12); + dest.Add(va); + dest.Add(v13); + dest.Add(va); + dest.Add(vb); + } + } + + Mesh m_Mesh; } diff --git a/Assets/ScriptableRenderLoop/common/TextureCache.cs b/Assets/ScriptableRenderLoop/common/TextureCache.cs index 72faf668281..e5d1e30c41f 100644 --- a/Assets/ScriptableRenderLoop/common/TextureCache.cs +++ b/Assets/ScriptableRenderLoop/common/TextureCache.cs @@ -3,326 +3,333 @@ public class TextureCache2D : TextureCache { - private Texture2DArray cache; - - public override void TransferToSlice(int sliceIndex, Texture texture) - { - bool mismatch = (cache.width != texture.width) || (cache.height != texture.height); - - if (texture is Texture2D) - { - mismatch |= (cache.format != (texture as Texture2D).format); - } - - if (mismatch) - { - Debug.LogErrorFormat(texture, "Texture size or format of \"{0}\" doesn't match renderloop settings (should be {1}x{2} {3})", - texture.name, cache.width, cache.height, cache.format); - return; - } - - Graphics.CopyTexture(texture, 0, cache, sliceIndex); - } - - public override Texture GetTexCache() - { - return cache; - } - - public bool AllocTextureArray(int numTextures, int width, int height, TextureFormat format, bool isMipMapped) - { - bool res = AllocTextureArray(numTextures); - m_numMipLevels = GetNumMips(width, height); - - cache = new Texture2DArray(width, height, numTextures, format, isMipMapped); - cache.hideFlags = HideFlags.HideAndDontSave; - cache.wrapMode = TextureWrapMode.Clamp; - - return res; - } - - public void Release() - { - Texture.DestroyImmediate(cache); // do I need this? - } + private Texture2DArray m_Cache; + + public override void TransferToSlice(int sliceIndex, Texture texture) + { + var mismatch = (m_Cache.width != texture.width) || (m_Cache.height != texture.height); + + if (texture is Texture2D) + { + mismatch |= (m_Cache.format != (texture as Texture2D).format); + } + + if (mismatch) + { + Debug.LogErrorFormat(texture, "Texture size or format of \"{0}\" doesn't match renderloop settings (should be {1}x{2} {3})", + texture.name, m_Cache.width, m_Cache.height, m_Cache.format); + return; + } + + Graphics.CopyTexture(texture, 0, m_Cache, sliceIndex); + } + + public override Texture GetTexCache() + { + return m_Cache; + } + + public bool AllocTextureArray(int numTextures, int width, int height, TextureFormat format, bool isMipMapped) + { + var res = AllocTextureArray(numTextures); + m_NumMipLevels = GetNumMips(width, height); + + m_Cache = new Texture2DArray(width, height, numTextures, format, isMipMapped) + { + hideFlags = HideFlags.HideAndDontSave, + wrapMode = TextureWrapMode.Clamp + }; + + return res; + } + + public void Release() + { + Texture.DestroyImmediate(m_Cache); // do I need this? + } } public class TextureCacheCubemap : TextureCache { - private CubemapArray cache; - - public override void TransferToSlice(int sliceIndex, Texture texture) - { - bool mismatch = (cache.width != texture.width) || (cache.height != texture.height); - - if (texture is Cubemap) - { - mismatch |= (cache.format != (texture as Cubemap).format); - } - - if (mismatch) - { - Debug.LogErrorFormat(texture, "Texture size or format of \"{0}\" doesn't match renderloop settings (should be {1}x{2} {3})", - texture.name, cache.width, cache.height, cache.format); - return; - } - - for (int f = 0; f < 6; f++) - Graphics.CopyTexture(texture, f, cache, 6 * sliceIndex + f); - } - - public override Texture GetTexCache() - { - return cache; - } - - public bool AllocTextureArray(int numCubeMaps, int width, TextureFormat format, bool isMipMapped) - { - bool res = AllocTextureArray(6 * numCubeMaps); - m_numMipLevels = GetNumMips(width, width); - - cache = new CubemapArray(width, numCubeMaps, format, isMipMapped); - cache.hideFlags = HideFlags.HideAndDontSave; - cache.wrapMode = TextureWrapMode.Clamp; - - return res; - } - - public void Release() - { - Texture.DestroyImmediate(cache); // do I need this? - } + private CubemapArray m_Cache; + + public override void TransferToSlice(int sliceIndex, Texture texture) + { + var mismatch = (m_Cache.width != texture.width) || (m_Cache.height != texture.height); + + if (texture is Cubemap) + { + mismatch |= (m_Cache.format != (texture as Cubemap).format); + } + + if (mismatch) + { + Debug.LogErrorFormat(texture, "Texture size or format of \"{0}\" doesn't match renderloop settings (should be {1}x{2} {3})", + texture.name, m_Cache.width, m_Cache.height, m_Cache.format); + return; + } + + for (int f = 0; f < 6; f++) + Graphics.CopyTexture(texture, f, m_Cache, 6 * sliceIndex + f); + } + + public override Texture GetTexCache() + { + return m_Cache; + } + + public bool AllocTextureArray(int numCubeMaps, int width, TextureFormat format, bool isMipMapped) + { + var res = AllocTextureArray(6 * numCubeMaps); + m_NumMipLevels = GetNumMips(width, width); + + m_Cache = new CubemapArray(width, numCubeMaps, format, isMipMapped) + { + hideFlags = HideFlags.HideAndDontSave, + wrapMode = TextureWrapMode.Clamp, + filterMode = FilterMode.Trilinear, + anisoLevel = 0 // It is important to set 0 here, else unity force anisotropy filtering + }; + + return res; + } + + public void Release() + { + Texture.DestroyImmediate(m_Cache); // do I need this? + } } -abstract public class TextureCache : Object +public abstract class TextureCache : Object { - protected int m_numMipLevels; + protected int m_NumMipLevels; - public static int ms_GlobalTextureCacheVersion = 0; - public int m_TextureCacheVersion = 0; + static int s_GlobalTextureCacheVersion = 0; + int m_TextureCacheVersion = 0; #if UNITY_EDITOR - internal class AssetReloader : UnityEditor.AssetPostprocessor - { - void OnPostprocessTexture(Texture texture) - { - ms_GlobalTextureCacheVersion++; - } - } - private AssetReloader m_assetReloader; + internal class AssetReloader : UnityEditor.AssetPostprocessor + { + void OnPostprocessTexture(Texture texture) + { + s_GlobalTextureCacheVersion++; + } + } #endif - private struct SSliceEntry - { - public uint TexID; - public uint CountLRU; - }; - - private int m_numTextures; - private int[] m_SortedIdxArray; - private SSliceEntry[] m_SliceArray; - - Dictionary m_locatorInSliceArray; - - private static uint g_MaxFrameCount = unchecked((uint)(-1)); - private static uint g_InvalidTexID = (uint)0; - - public int FetchSlice(Texture texture) - { - uint TexID = (uint)texture.GetInstanceID(); - - //assert(TexID!=g_InvalidTexID); - if (TexID == g_InvalidTexID) return 0; - - bool bSwapSlice = false; - bool bFoundAvailOrExistingSlice = false; - int sliceIndex = -1; - - // search for existing copy - if (m_locatorInSliceArray.ContainsKey(TexID)) - { - if (m_TextureCacheVersion != ms_GlobalTextureCacheVersion) - { - m_locatorInSliceArray.Remove(TexID); - m_TextureCacheVersion++; - Debug.Assert(m_TextureCacheVersion <= ms_GlobalTextureCacheVersion); - } - else - { - sliceIndex = m_locatorInSliceArray[TexID]; - bFoundAvailOrExistingSlice = true; - } - //assert(m_SliceArray[sliceIndex].TexID==TexID); - } - - // If no existing copy found in the array - if (!bFoundAvailOrExistingSlice) - { - // look for first non zero entry. Will by the least recently used entry - // since the array was pre-sorted (in linear time) in NewFrame() - bool bFound = false; - int j = 0, idx = 0; - while ((!bFound) && j < m_numTextures) - { - idx = m_SortedIdxArray[j]; - if (m_SliceArray[idx].CountLRU == 0) ++j; // if entry already snagged by a new texture in this frame then ++j - else bFound = true; - } - - if (bFound) - { - // if we are replacing an existing entry delete it from m_locatorInSliceArray. - if (m_SliceArray[idx].TexID != g_InvalidTexID) - { - m_locatorInSliceArray.Remove(m_SliceArray[idx].TexID); - } - - m_locatorInSliceArray.Add(TexID, idx); - m_SliceArray[idx].TexID = TexID; - - sliceIndex = idx; - bFoundAvailOrExistingSlice = true; - bSwapSlice = true; - } - } - - - // wrap up - //assert(bFoundAvailOrExistingSlice); - if (bFoundAvailOrExistingSlice) - { - m_SliceArray[sliceIndex].CountLRU = 0; // mark slice as in use this frame - - if (bSwapSlice) // if this was a miss - { - // transfer new slice to sliceIndex from source texture - TransferToSlice(sliceIndex, texture); - } - } - - return sliceIndex; - } - - public void NewFrame() - { - int numNonZeros = 0; - int[] tmpBuffer = new int[m_numTextures]; - for (int i = 0; i < m_numTextures; i++) - { - tmpBuffer[i] = m_SortedIdxArray[i]; // copy buffer - if (m_SliceArray[m_SortedIdxArray[i]].CountLRU != 0) ++numNonZeros; - } - int nonZerosBase = 0, zerosBase = 0; - for (int i = 0; i < m_numTextures; i++) - { - if (m_SliceArray[tmpBuffer[i]].CountLRU == 0) - { - m_SortedIdxArray[zerosBase + numNonZeros] = tmpBuffer[i]; - ++zerosBase; - } - else - { - m_SortedIdxArray[nonZerosBase] = tmpBuffer[i]; - ++nonZerosBase; - } - } - - for (int i = 0; i < m_numTextures; i++) - { - if (m_SliceArray[i].CountLRU < g_MaxFrameCount) ++m_SliceArray[i].CountLRU; // next frame - } - - //for(int q=1; q=m_SliceArray[m_SortedIdxArray[q]].CountLRU); - } - - public TextureCache() - { - m_numTextures = 0; - m_numMipLevels = 0; - } - - public virtual void TransferToSlice(int sliceIndex, Texture texture) - { - } - - public virtual Texture GetTexCache() - { - return null; - } - - protected bool AllocTextureArray(int numTextures) - { - if (numTextures > 0) - { - m_SliceArray = new SSliceEntry[numTextures]; - m_SortedIdxArray = new int[numTextures]; - m_locatorInSliceArray = new Dictionary(); - - m_numTextures = numTextures; - for (int i = 0; i < m_numTextures; i++) - { - m_SliceArray[i].CountLRU = g_MaxFrameCount; // never used before - m_SliceArray[i].TexID = g_InvalidTexID; - m_SortedIdxArray[i] = i; - } - } - - //return m_SliceArray != NULL && m_SortedIdxArray != NULL && numTextures > 0; - return numTextures > 0; - } - - // should not really be used in general. Assuming lights are culled properly entries will automatically be replaced efficiently. - public void RemoveEntryFromSlice(Texture texture) - { - uint TexID = (uint)texture.GetInstanceID(); - - //assert(TexID!=g_InvalidTexID); - if (TexID == g_InvalidTexID) return; - - // search for existing copy - if (m_locatorInSliceArray.ContainsKey(TexID)) - { - int sliceIndex = m_locatorInSliceArray[TexID]; - - //assert(m_SliceArray[sliceIndex].TexID==TexID); - - // locate entry sorted by uCountLRU in m_pSortedIdxArray - bool bFoundIdxSortLRU = false; - int i = 0; - while ((!bFoundIdxSortLRU) && i < m_numTextures) - { - if (m_SortedIdxArray[i] == sliceIndex) bFoundIdxSortLRU = true; - else ++i; - } - - if (bFoundIdxSortLRU) - { - // relocate sliceIndex to front of m_pSortedIdxArray since uCountLRU will be set to maximum. - for (int j = 0; j < i; j++) { m_SortedIdxArray[j + 1] = m_SortedIdxArray[j]; } - m_SortedIdxArray[0] = sliceIndex; - - // delete from m_locatorInSliceArray and m_pSliceArray. - m_locatorInSliceArray.Remove(TexID); - m_SliceArray[sliceIndex].CountLRU = g_MaxFrameCount; // never used before - m_SliceArray[sliceIndex].TexID = g_InvalidTexID; - } - } - - } - - protected int GetNumMips(int width, int height) - { - return GetNumMips(width > height ? width : height); - } - - protected int GetNumMips(int dim) - { - uint uDim = (uint)dim; - int iNumMips = 0; - while (uDim > 0) - { ++iNumMips; uDim >>= 1; } - return iNumMips; - } + private struct SSliceEntry + { + public uint texId; + public uint countLRU; + }; + + private int m_NumTextures; + private int[] m_SortedIdxArray; + private SSliceEntry[] m_SliceArray; + + Dictionary m_LocatorInSliceArray; + + private static uint g_MaxFrameCount = unchecked((uint)(-1)); + private static uint g_InvalidTexID = (uint)0; + + public int FetchSlice(Texture texture) + { + var texId = (uint)texture.GetInstanceID(); + + //assert(TexID!=g_InvalidTexID); + if (texId == g_InvalidTexID) return 0; + + var bSwapSlice = false; + var bFoundAvailOrExistingSlice = false; + var sliceIndex = -1; + + // search for existing copy + if (m_LocatorInSliceArray.ContainsKey(texId)) + { + if (m_TextureCacheVersion != s_GlobalTextureCacheVersion) + { + m_LocatorInSliceArray.Remove(texId); + m_TextureCacheVersion++; + Debug.Assert(m_TextureCacheVersion <= s_GlobalTextureCacheVersion); + } + else + { + sliceIndex = m_LocatorInSliceArray[texId]; + bFoundAvailOrExistingSlice = true; + } + //assert(m_SliceArray[sliceIndex].TexID==TexID); + } + + // If no existing copy found in the array + if (!bFoundAvailOrExistingSlice) + { + // look for first non zero entry. Will by the least recently used entry + // since the array was pre-sorted (in linear time) in NewFrame() + var bFound = false; + int j = 0, idx = 0; + while ((!bFound) && j < m_NumTextures) + { + idx = m_SortedIdxArray[j]; + if (m_SliceArray[idx].countLRU == 0) ++j; // if entry already snagged by a new texture in this frame then ++j + else bFound = true; + } + + if (bFound) + { + // if we are replacing an existing entry delete it from m_locatorInSliceArray. + if (m_SliceArray[idx].texId != g_InvalidTexID) + { + m_LocatorInSliceArray.Remove(m_SliceArray[idx].texId); + } + + m_LocatorInSliceArray.Add(texId, idx); + m_SliceArray[idx].texId = texId; + + sliceIndex = idx; + bFoundAvailOrExistingSlice = true; + bSwapSlice = true; + } + } + + + // wrap up + //assert(bFoundAvailOrExistingSlice); + if (bFoundAvailOrExistingSlice) + { + m_SliceArray[sliceIndex].countLRU = 0; // mark slice as in use this frame + + if (bSwapSlice) // if this was a miss + { + // transfer new slice to sliceIndex from source texture + TransferToSlice(sliceIndex, texture); + } + } + + return sliceIndex; + } + + public void NewFrame() + { + var numNonZeros = 0; + var tmpBuffer = new int[m_NumTextures]; + for (int i = 0; i < m_NumTextures; i++) + { + tmpBuffer[i] = m_SortedIdxArray[i]; // copy buffer + if (m_SliceArray[m_SortedIdxArray[i]].countLRU != 0) ++numNonZeros; + } + int nonZerosBase = 0, zerosBase = 0; + for (int i = 0; i < m_NumTextures; i++) + { + if (m_SliceArray[tmpBuffer[i]].countLRU == 0) + { + m_SortedIdxArray[zerosBase + numNonZeros] = tmpBuffer[i]; + ++zerosBase; + } + else + { + m_SortedIdxArray[nonZerosBase] = tmpBuffer[i]; + ++nonZerosBase; + } + } + + for (int i = 0; i < m_NumTextures; i++) + { + if (m_SliceArray[i].countLRU < g_MaxFrameCount) ++m_SliceArray[i].countLRU; // next frame + } + + //for(int q=1; q=m_SliceArray[m_SortedIdxArray[q]].CountLRU); + } + + protected TextureCache() + { + m_NumTextures = 0; + m_NumMipLevels = 0; + } + + public virtual void TransferToSlice(int sliceIndex, Texture texture) + { + } + + public virtual Texture GetTexCache() + { + return null; + } + + protected bool AllocTextureArray(int numTextures) + { + if (numTextures > 0) + { + m_SliceArray = new SSliceEntry[numTextures]; + m_SortedIdxArray = new int[numTextures]; + m_LocatorInSliceArray = new Dictionary(); + + m_NumTextures = numTextures; + for (int i = 0; i < m_NumTextures; i++) + { + m_SliceArray[i].countLRU = g_MaxFrameCount; // never used before + m_SliceArray[i].texId = g_InvalidTexID; + m_SortedIdxArray[i] = i; + } + } + + //return m_SliceArray != NULL && m_SortedIdxArray != NULL && numTextures > 0; + return numTextures > 0; + } + + // should not really be used in general. Assuming lights are culled properly entries will automatically be replaced efficiently. + public void RemoveEntryFromSlice(Texture texture) + { + var texId = (uint)texture.GetInstanceID(); + + //assert(TexID!=g_InvalidTexID); + if (texId == g_InvalidTexID) return; + + // search for existing copy + if (!m_LocatorInSliceArray.ContainsKey(texId)) + return; + + var sliceIndex = m_LocatorInSliceArray[texId]; + + //assert(m_SliceArray[sliceIndex].TexID==TexID); + + // locate entry sorted by uCountLRU in m_pSortedIdxArray + var foundIdxSortLRU = false; + var i = 0; + while ((!foundIdxSortLRU) && i < m_NumTextures) + { + if (m_SortedIdxArray[i] == sliceIndex) foundIdxSortLRU = true; + else ++i; + } + + if (!foundIdxSortLRU) + return; + + // relocate sliceIndex to front of m_pSortedIdxArray since uCountLRU will be set to maximum. + for (int j = 0; j < i; j++) + { + m_SortedIdxArray[j + 1] = m_SortedIdxArray[j]; + } + m_SortedIdxArray[0] = sliceIndex; + + // delete from m_locatorInSliceArray and m_pSliceArray. + m_LocatorInSliceArray.Remove(texId); + m_SliceArray[sliceIndex].countLRU = g_MaxFrameCount; // never used before + m_SliceArray[sliceIndex].texId = g_InvalidTexID; + } + + protected int GetNumMips(int width, int height) + { + return GetNumMips(width > height ? width : height); + } + + protected int GetNumMips(int dim) + { + var uDim = (uint)dim; + var iNumMips = 0; + while (uDim > 0) + { ++iNumMips; uDim >>= 1; } + return iNumMips; + } } diff --git a/Assets/ScriptableRenderLoop/common/TextureSettings.cs b/Assets/ScriptableRenderLoop/common/TextureSettings.cs index 6b6ca21b33c..ddc6aa3b995 100644 --- a/Assets/ScriptableRenderLoop/common/TextureSettings.cs +++ b/Assets/ScriptableRenderLoop/common/TextureSettings.cs @@ -1,24 +1,19 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; - [System.Serializable] public struct TextureSettings { - public uint spotCookieSize; - public uint pointCookieSize; - public uint reflectionCubemapSize; + public uint spotCookieSize; + public uint pointCookieSize; + public uint reflectionCubemapSize; - static public TextureSettings Default - { - get - { - TextureSettings settings; - settings.spotCookieSize = 128; - settings.pointCookieSize = 512; - settings.reflectionCubemapSize = 64; - return settings; - } - } + public static TextureSettings Default + { + get + { + TextureSettings settings; + settings.spotCookieSize = 128; + settings.pointCookieSize = 512; + settings.reflectionCubemapSize = 128; + return settings; + } + } } diff --git a/Assets/ScriptableRenderLoop/fptl/ClusteredUtils.h b/Assets/ScriptableRenderLoop/fptl/ClusteredUtils.h new file mode 100644 index 00000000000..828c21e40f3 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/ClusteredUtils.h @@ -0,0 +1,90 @@ +#ifndef __CLUSTEREDUTILS_H__ +#define __CLUSTEREDUTILS_H__ + +#ifndef FLT_EPSILON + #define FLT_EPSILON 1.192092896e-07f +#endif + +float GetScaleFromBase(float base) +{ + const float C = (float)(1 << g_iLog2NumClusters); + const float geomSeries = (1.0 - pow(base, C)) / (1 - base); // geometric series: sum_k=0^{C-1} base^k + return geomSeries / (g_fFarPlane - g_fNearPlane); +} + +int SnapToClusterIdxFlex(float z_in, float suggestedBase, bool logBasePerTile) +{ +#ifdef LEFT_HAND_COORDINATES + float z = z_in; +#else + float z = -z_in; +#endif + + float userscale = g_fClustScale; + if (logBasePerTile) + userscale = GetScaleFromBase(suggestedBase); + + // using the inverse of the geometric series + const float dist = max(0, z - g_fNearPlane); + return (int)clamp(log2(dist * userscale * (suggestedBase - 1.0f) + 1) / log2(suggestedBase), 0.0, (float)((1 << g_iLog2NumClusters) - 1)); +} + +int SnapToClusterIdx(float z_in, float suggestedBase) +{ +#ifdef ENABLE_DEPTH_TEXTURE_BACKPLANE + bool logBasePerTile = true; // resolved compile time +#else + bool logBasePerTile = false; +#endif + + return SnapToClusterIdxFlex(z_in, suggestedBase, logBasePerTile); +} + +float ClusterIdxToZFlex(int k, float suggestedBase, bool logBasePerTile) +{ + float res; + + float userscale = g_fClustScale; + if (logBasePerTile) + userscale = GetScaleFromBase(suggestedBase); + + float dist = (pow(suggestedBase, (float)k) - 1.0) / (userscale * (suggestedBase - 1.0f)); + res = dist + g_fNearPlane; + +#ifdef LEFT_HAND_COORDINATES + return res; +#else + return -res; +#endif +} + +float ClusterIdxToZ(int k, float suggestedBase) +{ +#ifdef ENABLE_DEPTH_TEXTURE_BACKPLANE + bool logBasePerTile = true; // resolved compile time +#else + bool logBasePerTile = false; +#endif + + return ClusterIdxToZFlex(k, suggestedBase, logBasePerTile); +} + +// generate a log-base value such that half of the clusters are consumed from near plane to max. opaque depth of tile. +float SuggestLogBase50(float tileFarPlane) +{ + const float C = (float)(1 << g_iLog2NumClusters); + float normDist = clamp((tileFarPlane - g_fNearPlane) / (g_fFarPlane - g_fNearPlane), FLT_EPSILON, 1.0); + float suggested_base = pow((1.0 + sqrt(max(0.0, 1.0 - 4.0 * normDist * (1.0 - normDist)))) / (2.0 * normDist), 2.0 / C); // + return max(g_fClustBase, suggested_base); +} + +// generate a log-base value such that (approximately) a quarter of the clusters are consumed from near plane to max. opaque depth of tile. +float SuggestLogBase25(float tileFarPlane) +{ + const float C = (float)(1 << g_iLog2NumClusters); + float normDist = clamp((tileFarPlane - g_fNearPlane) / (g_fFarPlane - g_fNearPlane), FLT_EPSILON, 1.0); + float suggested_base = pow((1 / 2.3) * max(0.0, (0.8 / normDist) - 1), 4.0 / (C * 2)); // approximate inverse of d*x^4 + (-x) + (1-d) = 0 - d is normalized distance + return max(g_fClustBase, suggested_base); +} + +#endif diff --git a/Assets/ScriptableRenderLoop/fptl/ClusteredUtils.h.meta b/Assets/ScriptableRenderLoop/fptl/ClusteredUtils.h.meta new file mode 100644 index 00000000000..178b77e70ea --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/ClusteredUtils.h.meta @@ -0,0 +1,20 @@ +fileFormatVersion: 2 +guid: cbef1fe8de4d82246b1f88d4dcc90833 +timeCreated: 1475179985 +licenseType: Pro +PluginImporter: + serializedVersion: 1 + iconMap: {} + executionOrder: {} + isPreloaded: 0 + platformData: + Any: + enabled: 1 + settings: {} + Editor: + enabled: 0 + settings: + DefaultValueInitialized: true + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/FinalPass.shader b/Assets/ScriptableRenderLoop/fptl/FinalPass.shader index 3ab5f038e40..6435368f44b 100644 --- a/Assets/ScriptableRenderLoop/fptl/FinalPass.shader +++ b/Assets/ScriptableRenderLoop/fptl/FinalPass.shader @@ -1,54 +1,48 @@ -// Final compositing pass, just does gamma conversion for now. +// Final compositing pass, just does gamma conversion for now. -Shader "Hidden/FinalPass" +Shader "Hidden/FinalPass" { - Properties { _MainTex ("Texture", any) = "" {} } - SubShader { - Pass { - ZTest Always Cull Off ZWrite Off - - CGPROGRAM - #pragma vertex vert - #pragma fragment frag - #pragma target 2.0 - #pragma multi_compile __ UNITY_COLORSPACE_GAMMA - - #include "UnityCG.cginc" - - sampler2D _MainTex; - uniform float4 _MainTex_ST; - - struct appdata_t { - float4 vertex : POSITION; - float2 texcoord : TEXCOORD0; - }; - - struct v2f { - float4 vertex : SV_POSITION; - float2 texcoord : TEXCOORD0; - }; - - v2f vert (appdata_t v) - { - v2f o; - o.vertex = UnityObjectToClipPos(v.vertex); - o.texcoord = TRANSFORM_TEX(v.texcoord.xy, _MainTex); - return o; - } - - fixed4 frag (v2f i) : SV_Target - { - float4 c = tex2D(_MainTex, i.texcoord); - - #if defined(UNITY_COLORSPACE_GAMMA) - return c; - #else - return float4(pow(c.xyz,1/2.2), c.w); - #endif - } - ENDCG - - } - } - Fallback Off + Properties { _MainTex ("Texture", any) = "" {} } + SubShader { + Pass { + ZTest Always Cull Off ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #pragma target 2.0 + #pragma multi_compile __ UNITY_COLORSPACE_GAMMA + + #include "UnityCG.cginc" + + sampler2D _MainTex; + uniform float4 _MainTex_ST; + + struct appdata_t { + float4 vertex : POSITION; + float2 texcoord : TEXCOORD0; + }; + + struct v2f { + float4 vertex : SV_POSITION; + float2 texcoord : TEXCOORD0; + }; + + v2f vert (appdata_t v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.texcoord = TRANSFORM_TEX(v.texcoord.xy, _MainTex); + return o; + } + + fixed4 frag (v2f i) : SV_Target + { + return tex2D(_MainTex, i.texcoord); + } + ENDCG + + } + } + Fallback Off } diff --git a/Assets/ScriptableRenderLoop/fptl/FptlLighting.cs b/Assets/ScriptableRenderLoop/fptl/FptlLighting.cs index f5d13c279d6..75982ff8a49 100644 --- a/Assets/ScriptableRenderLoop/fptl/FptlLighting.cs +++ b/Assets/ScriptableRenderLoop/fptl/FptlLighting.cs @@ -1,822 +1,1116 @@ -using UnityEngine; using UnityEngine.Rendering; +using UnityEngine.Experimental.Rendering; using System; -using System.Collections; using System.Collections.Generic; -namespace UnityEngine.ScriptableRenderLoop +namespace UnityEngine.Experimental.ScriptableRenderLoop { - [ExecuteInEditMode] - public class FptlLighting : ScriptableRenderLoop - { - + [ExecuteInEditMode] + public class FptlLighting : ScriptableRenderLoop + { #if UNITY_EDITOR - [UnityEditor.MenuItem("Renderloop/CreateRenderLoopFPTL")] - static void CreateRenderLoopFPTL() - { - var instance = ScriptableObject.CreateInstance(); - UnityEditor.AssetDatabase.CreateAsset(instance, "Assets/renderloopfptl.asset"); - //AssetDatabase.CreateAsset(instance, "Assets/ScriptableRenderLoop/fptl/renderloopfptl.asset"); - } -#endif - - [SerializeField] - ShadowSettings m_ShadowSettings = ShadowSettings.Default; - ShadowRenderPass m_ShadowPass; - - [SerializeField] - TextureSettings m_TextureSettings = TextureSettings.Default; - - public Shader m_DeferredShader; - public Shader m_DeferredReflectionShader; - public Shader m_FinalPassShader; - - public ComputeShader m_BuildScreenAABBShader; - public ComputeShader m_BuildPerTileLightListShader; - - private Material m_DeferredMaterial; - private Material m_DeferredReflectionMaterial; - static private int kGBufferAlbedo; - static private int kGBufferSpecRough; - static private int kGBufferNormal; - static private int kGBufferEmission; - static private int kGBufferZ; - static private int kCameraTarget; - static private int kCameraDepthTexture; - - static private int kGenAABBKernel; - static private int kGenListPerTileKernel; - static private ComputeBuffer m_lightDataBuffer; - static private ComputeBuffer m_convexBoundsBuffer; - static private ComputeBuffer m_aabbBoundsBuffer; - static private ComputeBuffer lightList; - static private ComputeBuffer m_dirLightList; - - Matrix4x4[] g_matWorldToShadow = new Matrix4x4[MAX_LIGHTS * MAX_SHADOWMAP_PER_LIGHTS]; - Vector4[] g_vDirShadowSplitSpheres = new Vector4[MAX_DIRECTIONAL_SPLIT]; - Vector4[] g_vShadow3x3PCFTerms = new Vector4[4]; - - public const int gMaxNumLights = 1024; - public const int gMaxNumDirLights = 2; - public const float gFltMax = 3.402823466e+38F; - - const int MAX_LIGHTS = 10; - const int MAX_SHADOWMAP_PER_LIGHTS = 6; - const int MAX_DIRECTIONAL_SPLIT = 4; - // Directional lights become spotlights at a far distance. This is the distance we pull back to set the spotlight origin. - const float DIRECTIONAL_LIGHT_PULLBACK_DISTANCE = 10000.0f; - - [NonSerialized] - private int m_nWarnedTooManyLights = 0; - - private TextureCache2D m_cookieTexArray; - private TextureCacheCubemap m_cubeCookieTexArray; - private TextureCacheCubemap m_cubeReflTexArray; - - private SkyboxHelper m_skyboxHelper; - - private Material m_blitMaterial; - - void OnEnable() - { - Rebuild(); - } - - void OnValidate() - { - Rebuild(); - } - - void ClearComputeBuffers() - { - if (m_aabbBoundsBuffer != null) - m_aabbBoundsBuffer.Release(); - - if (m_convexBoundsBuffer != null) - m_convexBoundsBuffer.Release(); - - if (m_lightDataBuffer != null) - m_lightDataBuffer.Release(); - - if (lightList != null) - lightList.Release(); - - if (m_dirLightList != null) - m_dirLightList.Release(); - } - - void Rebuild() - { - ClearComputeBuffers(); - - kGBufferAlbedo = Shader.PropertyToID("_CameraGBufferTexture0"); - kGBufferSpecRough = Shader.PropertyToID("_CameraGBufferTexture1"); - kGBufferNormal = Shader.PropertyToID("_CameraGBufferTexture2"); - kGBufferEmission = Shader.PropertyToID("_CameraGBufferTexture3"); - kGBufferZ = Shader.PropertyToID("_CameraGBufferZ"); // used while rendering into G-buffer+ - kCameraDepthTexture = Shader.PropertyToID("_CameraDepthTexture"); // copy of that for later sampling in shaders - kCameraTarget = Shader.PropertyToID("_CameraTarget"); - - // RenderLoop.renderLoopDelegate += ExecuteRenderLoop; - //var deferredShader = GraphicsSettings.GetCustomShader (BuiltinShaderType.DeferredShading); - var deferredShader = m_DeferredShader; - var deferredReflectionShader = m_DeferredReflectionShader; - - m_DeferredMaterial = new Material(deferredShader); - m_DeferredReflectionMaterial = new Material(deferredReflectionShader); - m_DeferredMaterial.hideFlags = HideFlags.HideAndDontSave; - m_DeferredReflectionMaterial.hideFlags = HideFlags.HideAndDontSave; - - kGenAABBKernel = m_BuildScreenAABBShader.FindKernel("ScreenBoundsAABB"); - kGenListPerTileKernel = m_BuildPerTileLightListShader.FindKernel("TileLightListGen"); - m_aabbBoundsBuffer = new ComputeBuffer(2 * gMaxNumLights, 3 * sizeof(float)); - m_convexBoundsBuffer = new ComputeBuffer(gMaxNumLights, System.Runtime.InteropServices.Marshal.SizeOf(typeof(SFiniteLightBound))); - m_lightDataBuffer = new ComputeBuffer(gMaxNumLights, System.Runtime.InteropServices.Marshal.SizeOf(typeof(SFiniteLightData))); - m_dirLightList = new ComputeBuffer(gMaxNumDirLights, System.Runtime.InteropServices.Marshal.SizeOf(typeof(DirectionalLight))); - - lightList = new ComputeBuffer(LightDefinitions.NR_LIGHT_MODELS * 1024 * 1024, sizeof(uint)); // enough list memory for a 4k x 4k display - - m_BuildScreenAABBShader.SetBuffer(kGenAABBKernel, "g_data", m_convexBoundsBuffer); - //m_BuildScreenAABBShader.SetBuffer(kGenAABBKernel, "g_vBoundsBuffer", m_aabbBoundsBuffer); - m_DeferredMaterial.SetBuffer("g_vLightData", m_lightDataBuffer); - m_DeferredMaterial.SetBuffer("g_dirLightData", m_dirLightList); - m_DeferredReflectionMaterial.SetBuffer("g_vLightData", m_lightDataBuffer); - - m_BuildPerTileLightListShader.SetBuffer(kGenListPerTileKernel, "g_vBoundsBuffer", m_aabbBoundsBuffer); - m_BuildPerTileLightListShader.SetBuffer(kGenListPerTileKernel, "g_vLightData", m_lightDataBuffer); - - m_cookieTexArray = new TextureCache2D(); - m_cubeCookieTexArray = new TextureCacheCubemap(); - m_cubeReflTexArray = new TextureCacheCubemap(); - m_cookieTexArray.AllocTextureArray(8, (int)m_TextureSettings.spotCookieSize, (int)m_TextureSettings.spotCookieSize, TextureFormat.RGBA32, true); - m_cubeCookieTexArray.AllocTextureArray(4, (int)m_TextureSettings.pointCookieSize, TextureFormat.RGBA32, true); - m_cubeReflTexArray.AllocTextureArray(64, (int)m_TextureSettings.reflectionCubemapSize, TextureFormat.BC6H, true); - - m_DeferredMaterial.SetTexture("_spotCookieTextures", m_cookieTexArray.GetTexCache()); - m_DeferredMaterial.SetTexture("_pointCookieTextures", m_cubeCookieTexArray.GetTexCache()); - m_DeferredReflectionMaterial.SetTexture("_reflCubeTextures", m_cubeReflTexArray.GetTexCache()); - - g_matWorldToShadow = new Matrix4x4[MAX_LIGHTS * MAX_SHADOWMAP_PER_LIGHTS]; - g_vDirShadowSplitSpheres = new Vector4[MAX_DIRECTIONAL_SPLIT]; - g_vShadow3x3PCFTerms = new Vector4[4]; - m_ShadowPass = new ShadowRenderPass(m_ShadowSettings); - - m_skyboxHelper = new SkyboxHelper(); - m_skyboxHelper.CreateMesh(); - - m_blitMaterial = new Material(m_FinalPassShader); - m_blitMaterial.hideFlags = HideFlags.HideAndDontSave; - } - - void OnDisable() - { - // RenderLoop.renderLoopDelegate -= ExecuteRenderLoop; - if (m_DeferredMaterial) DestroyImmediate(m_DeferredMaterial); - if (m_DeferredReflectionMaterial) DestroyImmediate(m_DeferredReflectionMaterial); - if (m_blitMaterial) DestroyImmediate(m_blitMaterial); - - m_cookieTexArray.Release(); - m_cubeCookieTexArray.Release(); - m_cubeReflTexArray.Release(); - - m_aabbBoundsBuffer.Release(); - m_convexBoundsBuffer.Release(); - m_lightDataBuffer.Release(); - lightList.Release(); - m_dirLightList.Release(); - } - - static void SetupGBuffer(CommandBuffer cmd) - { - var format10 = RenderTextureFormat.ARGB32; - if (SystemInfo.SupportsRenderTextureFormat(RenderTextureFormat.ARGB2101010)) - format10 = RenderTextureFormat.ARGB2101010; - //@TODO: GetGraphicsCaps().buggyMRTSRGBWriteFlag - cmd.GetTemporaryRT(kGBufferAlbedo, -1, -1, 0, FilterMode.Point, RenderTextureFormat.DefaultHDR, RenderTextureReadWrite.Default); - cmd.GetTemporaryRT(kGBufferSpecRough, -1, -1, 0, FilterMode.Point, RenderTextureFormat.DefaultHDR, RenderTextureReadWrite.Default); - cmd.GetTemporaryRT(kGBufferNormal, -1, -1, 0, FilterMode.Point, format10, RenderTextureReadWrite.Linear); - cmd.GetTemporaryRT(kGBufferEmission, -1, -1, 0, FilterMode.Point, format10, RenderTextureReadWrite.Linear); //@TODO: HDR - cmd.GetTemporaryRT(kGBufferZ, -1, -1, 24, FilterMode.Point, RenderTextureFormat.Depth); - cmd.GetTemporaryRT(kCameraDepthTexture, -1, -1, 24, FilterMode.Point, RenderTextureFormat.Depth); - - cmd.GetTemporaryRT(kCameraTarget, -1, -1, 0, FilterMode.Point, RenderTextureFormat.DefaultHDR, RenderTextureReadWrite.Default); - - var colorMRTs = new RenderTargetIdentifier[4] { kGBufferAlbedo, kGBufferSpecRough, kGBufferNormal, kGBufferEmission }; - cmd.SetRenderTarget(colorMRTs, new RenderTargetIdentifier(kGBufferZ)); - cmd.ClearRenderTarget(true, true, new Color(0, 0, 0, 0)); - - //@TODO: render VR occlusion mesh - } - - static void RenderGBuffer(CullResults cull, Camera camera, RenderLoop loop) - { - // setup GBuffer for rendering - var cmd = new CommandBuffer(); - cmd.name = "Create G-Buffer"; - SetupGBuffer(cmd); - loop.ExecuteCommandBuffer(cmd); - cmd.Dispose(); - - // render opaque objects using Deferred pass - DrawRendererSettings settings = new DrawRendererSettings(cull, camera, new ShaderPassName("Deferred")); - settings.sorting.sortOptions = SortOptions.SortByMaterialThenMesh; - settings.inputCullingOptions.SetQueuesOpaque(); - loop.DrawRenderers(ref settings); - - } - - static void CopyDepthAfterGBuffer(RenderLoop loop) - { - var cmd = new CommandBuffer(); - cmd.name = "Copy depth"; - cmd.CopyTexture(new RenderTargetIdentifier(kGBufferZ), new RenderTargetIdentifier(kCameraDepthTexture)); - loop.ExecuteCommandBuffer(cmd); - cmd.Dispose(); - } - - void DoTiledDeferredLighting(Camera camera, RenderLoop loop, Matrix4x4 viewToWorld, Matrix4x4 scrProj, Matrix4x4 incScrProj, ComputeBuffer lightList) - { - m_DeferredMaterial.SetBuffer("g_vLightList", lightList); - m_DeferredReflectionMaterial.SetBuffer("g_vLightList", lightList); - - m_DeferredMaterial.SetBuffer("g_vLightData", m_lightDataBuffer); - m_DeferredReflectionMaterial.SetBuffer("g_vLightData", m_lightDataBuffer); - - m_DeferredMaterial.SetBuffer("g_dirLightData", m_dirLightList); - var cmd = new CommandBuffer(); - cmd.name = "DoTiledDeferredLighting"; - - //cmd.SetRenderTarget(new RenderTargetIdentifier(kGBufferEmission), new RenderTargetIdentifier(kGBufferZ)); - - cmd.SetGlobalMatrix("g_mViewToWorld", viewToWorld); - cmd.SetGlobalMatrix("g_mWorldToView", viewToWorld.inverse); - cmd.SetGlobalMatrix("g_mScrProjection", scrProj); - cmd.SetGlobalMatrix("g_mInvScrProjection", incScrProj); - - // Shadow constants - cmd.SetGlobalMatrixArray("g_matWorldToShadow", g_matWorldToShadow); - cmd.SetGlobalVectorArray("g_vDirShadowSplitSpheres", g_vDirShadowSplitSpheres); - cmd.SetGlobalVector("g_vShadow3x3PCFTerms0", g_vShadow3x3PCFTerms[0]); - cmd.SetGlobalVector("g_vShadow3x3PCFTerms1", g_vShadow3x3PCFTerms[1]); - cmd.SetGlobalVector("g_vShadow3x3PCFTerms2", g_vShadow3x3PCFTerms[2]); - cmd.SetGlobalVector("g_vShadow3x3PCFTerms3", g_vShadow3x3PCFTerms[3]); - - //cmd.Blit (kGBufferNormal, (RenderTexture)null); // debug: display normals - - cmd.Blit(kGBufferEmission, kCameraTarget, m_DeferredMaterial, 0); - cmd.Blit(kGBufferEmission, kCameraTarget, m_DeferredReflectionMaterial, 0); - - // Set the intermediate target for compositing (skybox, etc) - cmd.SetRenderTarget(new RenderTargetIdentifier(kCameraTarget), new RenderTargetIdentifier(kCameraDepthTexture)); - - loop.ExecuteCommandBuffer(cmd); - cmd.Dispose(); - } - - void SetMatrixCS(CommandBuffer cmd, ComputeShader shadercs, string name, Matrix4x4 mat) - { - float[] data = new float[16]; - - for (int c = 0; c < 4; c++) - for (int r = 0; r < 4; r++) - data[4 * c + r] = mat[r, c]; - - cmd.SetComputeFloatParams(shadercs, name, data); - } - - void UpdateDirectionalLights(Camera camera, ActiveLight[] activeLights) - { - int dirLightCount = 0; - List lights = new List(); - Matrix4x4 worldToView = camera.worldToCameraMatrix; - - for (int nLight = 0; nLight < activeLights.Length; nLight++) - { - ActiveLight light = activeLights[nLight]; - if (light.lightType == LightType.Directional) - { - Debug.Assert(dirLightCount < gMaxNumDirLights, "Too many directional lights."); - - DirectionalLight l = new DirectionalLight(); - - Matrix4x4 lightToWorld = light.localToWorld; - - Vector3 lightDir = lightToWorld.GetColumn(2); // Z axis in world space - - // represents a left hand coordinate system in world space - Vector3 vx = lightToWorld.GetColumn(0); // X axis in world space - Vector3 vy = lightToWorld.GetColumn(1); // Y axis in world space - Vector3 vz = lightDir; // Z axis in world space - - vx = worldToView.MultiplyVector(vx); - vy = worldToView.MultiplyVector(vy); - vz = worldToView.MultiplyVector(vz); - - l.uShadowLightIndex = (light.light.shadows != LightShadows.None) ? (uint)nLight : 0xffffffff; - - l.vLaxisX = vx; - l.vLaxisY = vy; - l.vLaxisZ = vz; - - l.vCol = new Vec3(light.finalColor.r, light.finalColor.g, light.finalColor.b); - l.fLightIntensity = light.light.intensity; - - lights.Add(l); - dirLightCount++; - } - } - m_dirLightList.SetData(lights.ToArray()); - m_DeferredMaterial.SetInt("g_nDirLights", dirLightCount); - } - - void UpdateShadowConstants(ActiveLight[] activeLights, ref ShadowOutput shadow) - { - int nNumLightsIncludingTooMany = 0; - - int g_nNumLights = 0; - - Vector4[] g_vLightShadowIndex_vLightParams = new Vector4[MAX_LIGHTS]; - Vector4[] g_vLightFalloffParams = new Vector4[MAX_LIGHTS]; - - for (int nLight = 0; nLight < activeLights.Length; nLight++) - { - nNumLightsIncludingTooMany++; - if (nNumLightsIncludingTooMany > MAX_LIGHTS) - continue; - - ActiveLight light = activeLights[nLight]; - LightType lightType = light.lightType; - Vector3 position = light.light.transform.position; - Vector3 lightDir = light.light.transform.forward.normalized; - - // Setup shadow data arrays - bool hasShadows = shadow.GetShadowSliceCountLightIndex(nLight) != 0; - - if (lightType == LightType.Directional) - { - g_vLightShadowIndex_vLightParams[g_nNumLights] = new Vector4(0, 0, 1, 1); - g_vLightFalloffParams[g_nNumLights] = new Vector4(0.0f, 0.0f, float.MaxValue, (float)lightType); - - if (hasShadows) - { - for (int s = 0; s < MAX_DIRECTIONAL_SPLIT; ++s) - { - g_vDirShadowSplitSpheres[s] = shadow.directionalShadowSplitSphereSqr[s]; - } - } - } - else if (lightType == LightType.Point) - { - g_vLightShadowIndex_vLightParams[g_nNumLights] = new Vector4(0, 0, 1, 1); - g_vLightFalloffParams[g_nNumLights] = new Vector4(1.0f, 0.0f, light.range * light.range, (float)lightType); - } - else if (lightType == LightType.Spot) - { - g_vLightShadowIndex_vLightParams[g_nNumLights] = new Vector4(0, 0, 1, 1); - g_vLightFalloffParams[g_nNumLights] = new Vector4(1.0f, 0.0f, light.range * light.range, (float)lightType); - } - - if (hasShadows) - { - // Enable shadows - g_vLightShadowIndex_vLightParams[g_nNumLights].x = 1; - for (int s = 0; s < shadow.GetShadowSliceCountLightIndex(nLight); ++s) - { - int shadowSliceIndex = shadow.GetShadowSliceIndex(nLight, s); - g_matWorldToShadow[g_nNumLights * MAX_SHADOWMAP_PER_LIGHTS + s] = shadow.shadowSlices[shadowSliceIndex].shadowTransform.transpose; - } - } - - g_nNumLights++; - } - - // Warn if too many lights found - if (nNumLightsIncludingTooMany > MAX_LIGHTS) - { - if (nNumLightsIncludingTooMany > m_nWarnedTooManyLights) - { - Debug.LogError("ERROR! Found " + nNumLightsIncludingTooMany + " runtime lights! Valve renderer supports up to " + MAX_LIGHTS + - " active runtime lights at a time!\nDisabling " + (nNumLightsIncludingTooMany - MAX_LIGHTS) + " runtime light" + - ((nNumLightsIncludingTooMany - MAX_LIGHTS) > 1 ? "s" : "") + "!\n"); - } - m_nWarnedTooManyLights = nNumLightsIncludingTooMany; - } - else - { - if (m_nWarnedTooManyLights > 0) - { - m_nWarnedTooManyLights = 0; - Debug.Log("SUCCESS! Found " + nNumLightsIncludingTooMany + " runtime lights which is within the supported number of lights, " + MAX_LIGHTS + ".\n\n"); - } - } - - // PCF 3x3 Shadows - float flTexelEpsilonX = 1.0f / m_ShadowSettings.shadowAtlasWidth; - float flTexelEpsilonY = 1.0f / m_ShadowSettings.shadowAtlasHeight; - g_vShadow3x3PCFTerms[0] = new Vector4(20.0f / 267.0f, 33.0f / 267.0f, 55.0f / 267.0f, 0.0f); - g_vShadow3x3PCFTerms[1] = new Vector4(flTexelEpsilonX, flTexelEpsilonY, -flTexelEpsilonX, -flTexelEpsilonY); - g_vShadow3x3PCFTerms[2] = new Vector4(flTexelEpsilonX, flTexelEpsilonY, 0.0f, 0.0f); - g_vShadow3x3PCFTerms[3] = new Vector4(-flTexelEpsilonX, -flTexelEpsilonY, 0.0f, 0.0f); - } - - int GenerateSourceLightBuffers(Camera camera, CullResults inputs) - { - ReflectionProbe[] probes = Object.FindObjectsOfType(); - - int numLights = inputs.culledLights.Length; - int numProbes = probes.Length; - int numVolumes = numLights + numProbes; - - - SFiniteLightData[] lightData = new SFiniteLightData[numVolumes]; - SFiniteLightBound[] boundData = new SFiniteLightBound[numVolumes]; - Matrix4x4 worldToView = camera.worldToCameraMatrix; - - int i = 0; - uint shadowLightIndex = 0; - foreach (var cl in inputs.culledLights) - { - float range = cl.range; - - Matrix4x4 lightToWorld = cl.localToWorld; - //Matrix4x4 worldToLight = l.worldToLocal; - - Vector3 lightPos = lightToWorld.GetColumn(3); - - boundData[i].vBoxAxisX = new Vec3(1, 0, 0); - boundData[i].vBoxAxisY = new Vec3(0, 1, 0); - boundData[i].vBoxAxisZ = new Vec3(0, 0, 1); - boundData[i].vScaleXY = new Vec2(1.0f, 1.0f); - boundData[i].fRadius = range; - - lightData[i].flags = 0; - lightData[i].fRecipRange = 1.0f / range; - lightData[i].vCol = new Vec3(cl.finalColor.r, cl.finalColor.g, cl.finalColor.b); - lightData[i].iSliceIndex = 0; - lightData[i].uLightModel = (uint)LightDefinitions.DIRECT_LIGHT; - lightData[i].uShadowLightIndex = shadowLightIndex; - shadowLightIndex++; - - bool bHasCookie = cl.light.cookie != null; - bool bHasShadow = cl.light.shadows != LightShadows.None; - - if (cl.lightType == LightType.Spot) - { - bool bIsCircularSpot = !bHasCookie; - if (!bIsCircularSpot) // square spots always have cookie - { - lightData[i].iSliceIndex = m_cookieTexArray.FetchSlice(cl.light.cookie); - } - - Vector3 lightDir = lightToWorld.GetColumn(2); // Z axis in world space - - // represents a left hand coordinate system in world space - Vector3 vx = lightToWorld.GetColumn(0); // X axis in world space - Vector3 vy = lightToWorld.GetColumn(1); // Y axis in world space - Vector3 vz = lightDir; // Z axis in world space - - // transform to camera space (becomes a left hand coordinate frame in Unity since Determinant(worldToView)<0) - vx = worldToView.MultiplyVector(vx); - vy = worldToView.MultiplyVector(vy); - vz = worldToView.MultiplyVector(vz); - - - const float pi = 3.1415926535897932384626433832795f; - const float degToRad = (float)(pi / 180.0); - const float radToDeg = (float)(180.0 / pi); - - - //float sa = cl.GetSpotAngle(); // total field of view from left to right side - float sa = radToDeg * (2 * Mathf.Acos(1.0f / cl.invCosHalfSpotAngle)); // spot angle doesn't exist in the structure so reversing it for now. - - - float cs = Mathf.Cos(0.5f * sa * degToRad); - float si = Mathf.Sin(0.5f * sa * degToRad); - float ta = cs > 0.0f ? (si / cs) : gFltMax; - - float cota = si > 0.0f ? (cs / si) : gFltMax; - - //const float cotasa = l.GetCotanHalfSpotAngle(); - - // apply nonuniform scale to OBB of spot light - bool bSqueeze = sa < 0.7f * 90.0f; // arb heuristic - float fS = bSqueeze ? ta : si; - boundData[i].vCen = worldToView.MultiplyPoint(lightPos + ((0.5f * range) * lightDir)); // use mid point of the spot as the center of the bounding volume for building screen-space AABB for tiled lighting. - - lightData[i].vLaxisX = vx; - lightData[i].vLaxisY = vy; - lightData[i].vLaxisZ = vz; - - // scale axis to match box or base of pyramid - boundData[i].vBoxAxisX = (fS * range) * vx; - boundData[i].vBoxAxisY = (fS * range) * vy; - boundData[i].vBoxAxisZ = (0.5f * range) * vz; - - // generate bounding sphere radius - float fAltDx = si; - float fAltDy = cs; - fAltDy = fAltDy - 0.5f; - //if(fAltDy<0) fAltDy=-fAltDy; - - fAltDx *= range; fAltDy *= range; - - float fAltDist = Mathf.Sqrt(fAltDy * fAltDy + (bIsCircularSpot ? 1.0f : 2.0f) * fAltDx * fAltDx); - boundData[i].fRadius = fAltDist > (0.5f * range) ? fAltDist : (0.5f * range); // will always pick fAltDist - boundData[i].vScaleXY = bSqueeze ? new Vec2(0.01f, 0.01f) : new Vec2(1.0f, 1.0f); - - // fill up ldata - lightData[i].uLightType = (uint)LightDefinitions.SPOT_LIGHT; - lightData[i].vLpos = worldToView.MultiplyPoint(lightPos); - lightData[i].fSphRadiusSq = range * range; - lightData[i].fPenumbra = cs; - lightData[i].cotan = cota; - lightData[i].flags |= (bIsCircularSpot ? LightDefinitions.IS_CIRCULAR_SPOT_SHAPE : 0); - - lightData[i].flags |= (bHasCookie ? LightDefinitions.HAS_COOKIE_TEXTURE : 0); - lightData[i].flags |= (bHasShadow ? LightDefinitions.HAS_SHADOW : 0); - } - else if (cl.lightType == LightType.Point) - { - if (bHasCookie) - { - lightData[i].iSliceIndex = m_cubeCookieTexArray.FetchSlice(cl.light.cookie); - } - - boundData[i].vCen = worldToView.MultiplyPoint(lightPos); - boundData[i].vBoxAxisX = new Vec3(range, 0, 0); - boundData[i].vBoxAxisY = new Vec3(0, range, 0); - boundData[i].vBoxAxisZ = new Vec3(0, 0, -range); // transform to camera space (becomes a left hand coordinate frame in Unity since Determinant(worldToView)<0) - boundData[i].vScaleXY = new Vec2(1.0f, 1.0f); - boundData[i].fRadius = range; - - // represents a left hand coordinate system in world space since det(worldToView)<0 - Matrix4x4 lightToView = worldToView * lightToWorld; - Vector3 vx = lightToView.GetColumn(0); - Vector3 vy = lightToView.GetColumn(1); - Vector3 vz = lightToView.GetColumn(2); - - // fill up ldata - lightData[i].uLightType = (uint)LightDefinitions.SPHERE_LIGHT; - lightData[i].vLpos = boundData[i].vCen; - lightData[i].fSphRadiusSq = range * range; - - lightData[i].vLaxisX = vx; - lightData[i].vLaxisY = vy; - lightData[i].vLaxisZ = vz; - - lightData[i].flags |= (bHasCookie ? LightDefinitions.HAS_COOKIE_TEXTURE : 0); - lightData[i].flags |= (bHasShadow ? LightDefinitions.HAS_SHADOW : 0); - } - else - { - //Assert(false); - } - - // next light - if (cl.lightType == LightType.Spot || cl.lightType == LightType.Point) - ++i; - } - - - // probe.m_BlendDistance - // Vector3f extents = 0.5*Abs(probe.m_BoxSize); - // C center of rendered refl box <-- GetComponent (Transform).GetPosition() + m_BoxOffset; - // cube map capture point: GetComponent (Transform).GetPosition() - // shader parameter min and max are C+/-(extents+blendDistance) - - int numProbesOut = 0; - foreach (var rl in probes) - { - Texture cubemap = rl.mode == ReflectionProbeMode.Custom ? rl.customBakedTexture : rl.bakedTexture; - if (cubemap != null) // always a box for now - { - i = numProbesOut + numLights; - - lightData[i].flags = 0; - - Bounds bnds = rl.bounds; - Vector3 boxOffset = rl.center; // reflection volume offset relative to cube map capture point - float blendDistance = rl.blendDistance; - float imp = rl.importance; - - Matrix4x4 mat = rl.transform.localToWorldMatrix; - Vector3 cubeCapturePos = mat.GetColumn(3); // cube map capture position in world space - - - // implicit in CalculateHDRDecodeValues() --> float ints = rl.intensity; - bool boxProj = rl.boxProjection; - Vector4 decodeVals = rl.CalculateHDRDecodeValues(); - - // C is reflection volume center in world space (NOT same as cube map capture point) - Vector3 e = bnds.extents; // 0.5f * Vector3.Max(-boxSizes[p], boxSizes[p]); - //Vector3 C = bnds.center; // P + boxOffset; - Vector3 C = mat.MultiplyPoint(boxOffset); // same as commented out line above when rot is identity - - //Vector3 posForShaderParam = bnds.center - boxOffset; // gives same as rl.GetComponent().position; - Vector3 posForShaderParam = cubeCapturePos; // same as commented out line above when rot is identity - Vector3 combinedExtent = e + new Vector3(blendDistance, blendDistance, blendDistance); - - Vector3 vx = mat.GetColumn(0); - Vector3 vy = mat.GetColumn(1); - Vector3 vz = mat.GetColumn(2); + [UnityEditor.MenuItem("Renderloop/CreateRenderLoopFPTL")] + static void CreateRenderLoopFPTL() + { + var instance = ScriptableObject.CreateInstance(); + UnityEditor.AssetDatabase.CreateAsset(instance, "Assets/renderloopfptl.asset"); + //AssetDatabase.CreateAsset(instance, "Assets/ScriptableRenderLoop/fptl/renderloopfptl.asset"); + } - // transform to camera space (becomes a left hand coordinate frame in Unity since Determinant(worldToView)<0) - vx = worldToView.MultiplyVector(vx); - vy = worldToView.MultiplyVector(vy); - vz = worldToView.MultiplyVector(vz); - - Vector3 Cw = worldToView.MultiplyPoint(C); - - if (boxProj) lightData[i].flags |= LightDefinitions.IS_BOX_PROJECTED; - - lightData[i].vLpos = Cw; - lightData[i].vLaxisX = vx; - lightData[i].vLaxisY = vy; - lightData[i].vLaxisZ = vz; - lightData[i].vLocalCubeCapturePoint = -boxOffset; - lightData[i].fProbeBlendDistance = blendDistance; - - lightData[i].fLightIntensity = decodeVals.x; - lightData[i].fDecodeExp = decodeVals.y; - - lightData[i].iSliceIndex = m_cubeReflTexArray.FetchSlice(cubemap); - - Vector3 delta = combinedExtent - e; - lightData[i].vBoxInnerDist = e; - lightData[i].vBoxInvRange = new Vec3(1.0f / delta.x, 1.0f / delta.y, 1.0f / delta.z); - - boundData[i].vCen = Cw; - boundData[i].vBoxAxisX = combinedExtent.x * vx; - boundData[i].vBoxAxisY = combinedExtent.y * vy; - boundData[i].vBoxAxisZ = combinedExtent.z * vz; - boundData[i].vScaleXY = new Vec2(1.0f, 1.0f); - boundData[i].fRadius = combinedExtent.magnitude; - - // fill up ldata - lightData[i].uLightType = (uint)LightDefinitions.BOX_LIGHT; - lightData[i].uLightModel = (uint)LightDefinitions.REFLECTION_LIGHT; - - ++numProbesOut; - } - } - - - m_convexBoundsBuffer.SetData(boundData); - m_lightDataBuffer.SetData(lightData); - - - return numLights + numProbesOut; - } - - /* public override void Render(Camera[] cameras, RenderLoop renderLoop) - { - foreach (var camera in cameras) - { - CullResults cullResults; - CullingParameters cullingParams; - if (!CullResults.GetCullingParameters(camera, out cullingParams)) - continue; - - m_ShadowPass.UpdateCullingParameters(ref cullingParams); - - cullResults = CullResults.Cull(ref cullingParams, renderLoop); - - ShadowOutput shadows; - m_ShadowPass.Render(renderLoop, cullResults, out shadows); - - renderLoop.SetupCameraProperties(camera); - - UpdateLightConstants(cullResults.culledLights, ref shadows); +#endif + + [SerializeField] + ShadowSettings m_ShadowSettings = ShadowSettings.Default; + ShadowRenderPass m_ShadowPass; + + [SerializeField] + TextureSettings m_TextureSettings = TextureSettings.Default; + + public Shader deferredShader; + public Shader deferredReflectionShader; + public Shader finalPassShader; + + public ComputeShader buildScreenAABBShader; + public ComputeShader buildPerTileLightListShader; // FPTL + + public ComputeShader buildPerVoxelLightListShader; // clustered + + private Material m_DeferredMaterial; + private Material m_DeferredReflectionMaterial; + private static int s_GBufferAlbedo; + private static int s_GBufferSpecRough; + private static int s_GBufferNormal; + private static int s_GBufferEmission; + private static int s_GBufferZ; + private static int s_CameraTarget; + private static int s_CameraDepthTexture; + + private static int s_GenAABBKernel; + private static int s_GenListPerTileKernel; + private static int s_GenListPerVoxelKernel; + private static int s_ClearVoxelAtomicKernel; + private static ComputeBuffer s_LightDataBuffer; + private static ComputeBuffer s_ConvexBoundsBuffer; + private static ComputeBuffer s_AABBBoundsBuffer; + private static ComputeBuffer s_LightList; + private static ComputeBuffer s_DirLightList; + + // clustered light list specific buffers and data begin + public bool enableClustered = false; + const bool k_UseDepthBuffer = true;// // only has an impact when EnableClustered is true (requires a depth-prepass) + const bool disableFptlWhenClustered = false; // still useful on opaques + const int k_Log2NumClusters = 6; // accepted range is from 0 to 6. NumClusters is 1< visibleLights) + { + var dirLightCount = 0; + var lights = new List(); + var worldToView = camera.worldToCameraMatrix; + + for (int nLight = 0; nLight < visibleLights.Count; nLight++) + { + var light = visibleLights[nLight]; + if (light.lightType == LightType.Directional) + { + Debug.Assert(dirLightCount < MaxNumDirLights, "Too many directional lights."); + + var l = new DirectionalLight(); + + var lightToWorld = light.localToWorld; + + Vector3 lightDir = lightToWorld.GetColumn(2); // Z axis in world space + + // represents a left hand coordinate system in world space + Vector3 vx = lightToWorld.GetColumn(0); // X axis in world space + Vector3 vy = lightToWorld.GetColumn(1); // Y axis in world space + var vz = lightDir; // Z axis in world space + + vx = worldToView.MultiplyVector(vx); + vy = worldToView.MultiplyVector(vy); + vz = worldToView.MultiplyVector(vz); + + l.shadowLightIndex = (light.light.shadows != LightShadows.None) ? (uint)nLight : 0xffffffff; + + l.lightAxisX = vx; + l.lightAxisY = vy; + l.lightAxisZ = vz; + + l.color.Set(light.finalColor.r, light.finalColor.g, light.finalColor.b); + l.intensity = light.light.intensity; + + lights.Add(l); + dirLightCount++; + } + } + s_DirLightList.SetData(lights.ToArray()); + + return dirLightCount; + } + + void UpdateShadowConstants(IList visibleLights, ref ShadowOutput shadow) + { + var nNumLightsIncludingTooMany = 0; + + var numLights = 0; + + var lightShadowIndex_LightParams = new Vector4[k_MaxLights]; + var lightFalloffParams = new Vector4[k_MaxLights]; + + for (int nLight = 0; nLight < visibleLights.Count; nLight++) + { + nNumLightsIncludingTooMany++; + if (nNumLightsIncludingTooMany > k_MaxLights) + continue; + + var light = visibleLights[nLight]; + var lightType = light.lightType; + var position = light.light.transform.position; + var lightDir = light.light.transform.forward.normalized; + + // Setup shadow data arrays + var hasShadows = shadow.GetShadowSliceCountLightIndex(nLight) != 0; + + if (lightType == LightType.Directional) + { + lightShadowIndex_LightParams[numLights] = new Vector4(0, 0, 1, 1); + lightFalloffParams[numLights] = new Vector4(0.0f, 0.0f, float.MaxValue, (float)lightType); + + if (hasShadows) + { + for (int s = 0; s < k_MaxDirectionalSplit; ++s) + { + m_DirShadowSplitSpheres[s] = shadow.directionalShadowSplitSphereSqr[s]; + } + } + } + else if (lightType == LightType.Point) + { + lightShadowIndex_LightParams[numLights] = new Vector4(0, 0, 1, 1); + lightFalloffParams[numLights] = new Vector4(1.0f, 0.0f, light.range * light.range, (float)lightType); + } + else if (lightType == LightType.Spot) + { + lightShadowIndex_LightParams[numLights] = new Vector4(0, 0, 1, 1); + lightFalloffParams[numLights] = new Vector4(1.0f, 0.0f, light.range * light.range, (float)lightType); + } + + if (hasShadows) + { + // Enable shadows + lightShadowIndex_LightParams[numLights].x = 1; + for (int s = 0; s < shadow.GetShadowSliceCountLightIndex(nLight); ++s) + { + var shadowSliceIndex = shadow.GetShadowSliceIndex(nLight, s); + m_MatWorldToShadow[numLights * k_MaxShadowmapPerLights + s] = shadow.shadowSlices[shadowSliceIndex].shadowTransform.transpose; + } + } + + numLights++; + } + + // Warn if too many lights found + if (nNumLightsIncludingTooMany > k_MaxLights) + { + if (nNumLightsIncludingTooMany > m_WarnedTooManyLights) + { + Debug.LogError("ERROR! Found " + nNumLightsIncludingTooMany + " runtime lights! Valve renderer supports up to " + k_MaxLights + + " active runtime lights at a time!\nDisabling " + (nNumLightsIncludingTooMany - k_MaxLights) + " runtime light" + + ((nNumLightsIncludingTooMany - k_MaxLights) > 1 ? "s" : "") + "!\n"); + } + m_WarnedTooManyLights = nNumLightsIncludingTooMany; + } + else + { + if (m_WarnedTooManyLights > 0) + { + m_WarnedTooManyLights = 0; + Debug.Log("SUCCESS! Found " + nNumLightsIncludingTooMany + " runtime lights which is within the supported number of lights, " + k_MaxLights + ".\n\n"); + } + } + + // PCF 3x3 Shadows + var flTexelEpsilonX = 1.0f / m_ShadowSettings.shadowAtlasWidth; + var flTexelEpsilonY = 1.0f / m_ShadowSettings.shadowAtlasHeight; + m_Shadow3X3PCFTerms[0] = new Vector4(20.0f / 267.0f, 33.0f / 267.0f, 55.0f / 267.0f, 0.0f); + m_Shadow3X3PCFTerms[1] = new Vector4(flTexelEpsilonX, flTexelEpsilonY, -flTexelEpsilonX, -flTexelEpsilonY); + m_Shadow3X3PCFTerms[2] = new Vector4(flTexelEpsilonX, flTexelEpsilonY, 0.0f, 0.0f); + m_Shadow3X3PCFTerms[3] = new Vector4(-flTexelEpsilonX, -flTexelEpsilonY, 0.0f, 0.0f); + } + + int GenerateSourceLightBuffers(Camera camera, CullResults inputs) + { + var probes = inputs.visibleReflectionProbes; + //ReflectionProbe[] probes = Object.FindObjectsOfType(); + + var numModels = (int)LightDefinitions.NR_LIGHT_MODELS; + var numVolTypes = (int)LightDefinitions.MAX_TYPES; + var numEntries = new int[numModels,numVolTypes]; + var offsets = new int[numModels,numVolTypes]; + var numEntries2nd = new int[numModels,numVolTypes]; + + // first pass. Figure out how much we have of each and establish offsets + foreach (var cl in inputs.visibleLights) + { + var volType = cl.lightType==LightType.Spot ? LightDefinitions.SPOT_LIGHT : (cl.lightType==LightType.Point ? LightDefinitions.SPHERE_LIGHT : -1); + if(volType>=0) ++numEntries[LightDefinitions.DIRECT_LIGHT,volType]; + } + + foreach (var rl in probes) + { + var volType = LightDefinitions.BOX_LIGHT; // always a box for now + if(rl.texture!=null) ++numEntries[LightDefinitions.REFLECTION_LIGHT,volType]; + } + + // add decals here too similar to the above + + // establish offsets + for(var m=0; m 0.0f ? (si / cs) : FltMax; - // Post effects - }*/ + var cota = si > 0.0f ? (cs / si) : FltMax; - public override void Render(Camera[] cameras, RenderLoop renderLoop) - { - foreach (var camera in cameras) - { - CullResults cullResults; - CullingParameters cullingParams; - if (!CullResults.GetCullingParameters(camera, out cullingParams)) - continue; + //const float cotasa = l.GetCotanHalfSpotAngle(); - m_ShadowPass.UpdateCullingParameters(ref cullingParams); + // apply nonuniform scale to OBB of spot light + var squeeze = true;//sa < 0.7f * 90.0f; // arb heuristic + var fS = squeeze ? ta : si; + bound.center = worldToView.MultiplyPoint(lightPos + ((0.5f * range) * lightDir)); // use mid point of the spot as the center of the bounding volume for building screen-space AABB for tiled lighting. - cullResults = CullResults.Cull(ref cullingParams, renderLoop); - ExecuteRenderLoop(camera, cullResults, renderLoop); - } + light.lightAxisX = vx; + light.lightAxisY = vy; + light.lightAxisZ = vz; - renderLoop.Submit(); - } + // scale axis to match box or base of pyramid + bound.boxAxisX = (fS * range) * vx; + bound.boxAxisY = (fS * range) * vy; + bound.boxAxisZ = (0.5f * range) * vz; - void FinalPass(RenderLoop loop) - { - CommandBuffer cmd = new CommandBuffer(); - cmd.name = "FinalPass"; - cmd.Blit(kCameraTarget, BuiltinRenderTextureType.CameraTarget, m_blitMaterial, 0); - loop.ExecuteCommandBuffer(cmd); - cmd.Dispose(); - } + // generate bounding sphere radius + var fAltDx = si; + var fAltDy = cs; + fAltDy = fAltDy - 0.5f; + //if(fAltDy<0) fAltDy=-fAltDy; - void ExecuteRenderLoop(Camera camera, CullResults cullResults, RenderLoop loop) - { - // do anything we need to do upon a new frame. - NewFrame(); + fAltDx *= range; fAltDy *= range; - ShadowOutput shadows; - m_ShadowPass.Render(loop, cullResults, out shadows); + var altDist = Mathf.Sqrt(fAltDy * fAltDy + (isCircularSpot ? 1.0f : 2.0f) * fAltDx * fAltDx); + bound.radius = altDist > (0.5f * range) ? altDist : (0.5f * range); // will always pick fAltDist + bound.scaleXY = squeeze ? new Vector2(0.01f, 0.01f) : new Vector2(1.0f, 1.0f); - //m_DeferredMaterial.SetInt("_SrcBlend", camera.hdr ? (int)BlendMode.One : (int)BlendMode.DstColor); - //m_DeferredMaterial.SetInt("_DstBlend", camera.hdr ? (int)BlendMode.One : (int)BlendMode.Zero); - //m_DeferredReflectionMaterial.SetInt("_SrcBlend", camera.hdr ? (int)BlendMode.One : (int)BlendMode.DstColor); - //m_DeferredReflectionMaterial.SetInt("_DstBlend", camera.hdr ? (int)BlendMode.One : (int)BlendMode.Zero); - loop.SetupCameraProperties(camera); + // fill up ldata + light.lightType = (uint)LightDefinitions.SPOT_LIGHT; + light.lightPos = worldToView.MultiplyPoint(lightPos); + light.radiusSq = range * range; + light.penumbra = cs; + light.cotan = cota; + light.flags |= (isCircularSpot ? LightDefinitions.IS_CIRCULAR_SPOT_SHAPE : 0); - UpdateShadowConstants(cullResults.culledLights, ref shadows); + light.flags |= (bHasCookie ? LightDefinitions.HAS_COOKIE_TEXTURE : 0); + light.flags |= (bHasShadow ? LightDefinitions.HAS_SHADOW : 0); - RenderGBuffer(cullResults, camera, loop); + int i = LightDefinitions.DIRECT_LIGHT, j = LightDefinitions.SPOT_LIGHT; + idxOut = numEntries2nd[i,j] + offsets[i,j]; ++numEntries2nd[i,j]; + } + else if (cl.lightType == LightType.Point) + { + if (bHasCookie) + { + light.sliceIndex = m_CubeCookieTexArray.FetchSlice(cl.light.cookie); + } + + bound.center = worldToView.MultiplyPoint(lightPos); + bound.boxAxisX.Set(range, 0, 0); + bound.boxAxisY.Set(0, range, 0); + bound.boxAxisZ.Set(0, 0, -range); // transform to camera space (becomes a left hand coordinate frame in Unity since Determinant(worldToView)<0) + bound.scaleXY.Set(1.0f, 1.0f); + bound.radius = range; - //@TODO: render forward-only objects into depth buffer - CopyDepthAfterGBuffer(loop); - //@TODO: render reflection probes + // represents a left hand coordinate system in world space since det(worldToView)<0 + var lightToView = worldToView * lightToWorld; + Vector3 vx = lightToView.GetColumn(0); + Vector3 vy = lightToView.GetColumn(1); + Vector3 vz = lightToView.GetColumn(2); + + // fill up ldata + light.lightType = (uint)LightDefinitions.SPHERE_LIGHT; + light.lightPos = bound.center; + light.radiusSq = range * range; + + light.lightAxisX = vx; + light.lightAxisY = vy; + light.lightAxisZ = vz; + + light.flags |= (bHasCookie ? LightDefinitions.HAS_COOKIE_TEXTURE : 0); + light.flags |= (bHasShadow ? LightDefinitions.HAS_SHADOW : 0); + + int i = LightDefinitions.DIRECT_LIGHT, j = LightDefinitions.SPHERE_LIGHT; + idxOut = numEntries2nd[i,j] + offsets[i,j]; ++numEntries2nd[i,j]; + } + else + { + //Assert(false); + } + + // next light + if (cl.lightType == LightType.Spot || cl.lightType == LightType.Point) + { + boundData[idxOut] = bound; + lightData[idxOut] = light; + } + } + var numLightsOut = offsets[LightDefinitions.DIRECT_LIGHT, numVolTypes-1] + numEntries[LightDefinitions.DIRECT_LIGHT, numVolTypes-1]; + + // probe.m_BlendDistance + // Vector3f extents = 0.5*Abs(probe.m_BoxSize); + // C center of rendered refl box <-- GetComponent (Transform).GetPosition() + m_BoxOffset; + // cube map capture point: GetComponent (Transform).GetPosition() + // shader parameter min and max are C+/-(extents+blendDistance) + foreach (var rl in probes) + { + var cubemap = rl.texture; + + // always a box for now + if (cubemap == null) + continue; + + var bndData = new SFiniteLightBound(); + var lgtData = new SFiniteLightData(); + + var idxOut = 0; + lgtData.flags = 0; + + var bnds = rl.bounds; + var boxOffset = rl.center; // reflection volume offset relative to cube map capture point + var blendDistance = rl.blendDistance; + float imp = rl.importance; + + var mat = rl.localToWorld; + //Matrix4x4 mat = rl.transform.localToWorldMatrix; + Vector3 cubeCapturePos = mat.GetColumn(3); // cube map capture position in world space + + + // implicit in CalculateHDRDecodeValues() --> float ints = rl.intensity; + var boxProj = (rl.boxProjection != 0); + var decodeVals = rl.hdr; + //Vector4 decodeVals = rl.CalculateHDRDecodeValues(); + + // C is reflection volume center in world space (NOT same as cube map capture point) + var e = bnds.extents; // 0.5f * Vector3.Max(-boxSizes[p], boxSizes[p]); + //Vector3 C = bnds.center; // P + boxOffset; + var C = mat.MultiplyPoint(boxOffset); // same as commented out line above when rot is identity + + //Vector3 posForShaderParam = bnds.center - boxOffset; // gives same as rl.GetComponent().position; + var posForShaderParam = cubeCapturePos; // same as commented out line above when rot is identity + var combinedExtent = e + new Vector3(blendDistance, blendDistance, blendDistance); + + Vector3 vx = mat.GetColumn(0); + Vector3 vy = mat.GetColumn(1); + Vector3 vz = mat.GetColumn(2); + + // transform to camera space (becomes a left hand coordinate frame in Unity since Determinant(worldToView)<0) + vx = worldToView.MultiplyVector(vx); + vy = worldToView.MultiplyVector(vy); + vz = worldToView.MultiplyVector(vz); + + var Cw = worldToView.MultiplyPoint(C); + + if (boxProj) lgtData.flags |= LightDefinitions.IS_BOX_PROJECTED; + + lgtData.lightPos = Cw; + lgtData.lightAxisX = vx; + lgtData.lightAxisY = vy; + lgtData.lightAxisZ = vz; + lgtData.localCubeCapturePoint = -boxOffset; + lgtData.probeBlendDistance = blendDistance; + + lgtData.lightIntensity = decodeVals.x; + lgtData.decodeExp = decodeVals.y; + + lgtData.sliceIndex = m_CubeReflTexArray.FetchSlice(cubemap); + + var delta = combinedExtent - e; + lgtData.boxInnerDist = e; + lgtData.boxInvRange.Set(1.0f / delta.x, 1.0f / delta.y, 1.0f / delta.z); + + bndData.center = Cw; + bndData.boxAxisX = combinedExtent.x * vx; + bndData.boxAxisY = combinedExtent.y * vy; + bndData.boxAxisZ = combinedExtent.z * vz; + bndData.scaleXY.Set(1.0f, 1.0f); + bndData.radius = combinedExtent.magnitude; + + // fill up ldata + lgtData.lightType = (uint)LightDefinitions.BOX_LIGHT; + lgtData.lightModel = (uint)LightDefinitions.REFLECTION_LIGHT; + + + int i = LightDefinitions.REFLECTION_LIGHT, j = LightDefinitions.BOX_LIGHT; + idxOut = numEntries2nd[i,j] + offsets[i,j]; ++numEntries2nd[i,j]; + boundData[idxOut] = bndData; + lightData[idxOut] = lgtData; + } + + var numProbesOut = offsets[LightDefinitions.REFLECTION_LIGHT, numVolTypes-1] + numEntries[LightDefinitions.REFLECTION_LIGHT, numVolTypes-1]; + for(var m=0; m 0 && s_HeightOnRecord > 0) + ReleaseResolutionDependentBuffers(); + + AllocResolutionDependentBuffers(curWidth, curHeight); + + // update recorded window resolution + s_WidthOnRecord = curWidth; + s_HeightOnRecord = curHeight; + } + } + + void ReleaseResolutionDependentBuffers() + { + if (s_LightList != null) + s_LightList.Release(); + + if (enableClustered) + { + if (s_PerVoxelLightLists != null) + s_PerVoxelLightLists.Release(); + + if (s_PerVoxelOffset != null) + s_PerVoxelOffset.Release(); + + if (k_UseDepthBuffer && s_PerTileLogBaseTweak != null) + s_PerTileLogBaseTweak.Release(); + } + } + + int NumLightIndicesPerClusteredTile() + { + return 8 * (1 << k_Log2NumClusters); // total footprint for all layers of the tile (measured in light index entries) + } + + void AllocResolutionDependentBuffers(int width, int height) + { + var nrTilesX = (width + 15) / 16; + var nrTilesY = (height + 15) / 16; + var nrTiles = nrTilesX * nrTilesY; + const int capacityUShortsPerTile = 32; + const int dwordsPerTile = (capacityUShortsPerTile + 1) >> 1; // room for 31 lights and a nrLights value. + + s_LightList = new ComputeBuffer(LightDefinitions.NR_LIGHT_MODELS * dwordsPerTile * nrTiles, sizeof(uint)); // enough list memory for a 4k x 4k display + + if (enableClustered) + { + s_PerVoxelOffset = new ComputeBuffer(LightDefinitions.NR_LIGHT_MODELS * (1 << k_Log2NumClusters) * nrTiles, sizeof(uint)); + s_PerVoxelLightLists = new ComputeBuffer(NumLightIndicesPerClusteredTile() * nrTiles, sizeof(uint)); + + if (k_UseDepthBuffer) + { + s_PerTileLogBaseTweak = new ComputeBuffer(nrTiles, sizeof(float)); + } + } + } + + void VoxelLightListGeneration(CommandBuffer cmd, Camera camera, int numLights, Matrix4x4 projscr, Matrix4x4 invProjscr) + { + // clear atomic offset index + cmd.SetComputeBufferParam(buildPerVoxelLightListShader, s_ClearVoxelAtomicKernel, "g_LayeredSingleIdxBuffer", s_GlobalLightListAtomic); + cmd.DispatchCompute(buildPerVoxelLightListShader, s_ClearVoxelAtomicKernel, 1, 1, 1); + + cmd.SetComputeIntParam(buildPerVoxelLightListShader, "g_iNrVisibLights", numLights); + SetMatrixCS(cmd, buildPerVoxelLightListShader, "g_mScrProjection", projscr); + SetMatrixCS(cmd, buildPerVoxelLightListShader, "g_mInvScrProjection", invProjscr); + + cmd.SetComputeIntParam(buildPerVoxelLightListShader, "g_iLog2NumClusters", k_Log2NumClusters); + + //Vector4 v2_near = invProjscr * new Vector4(0.0f, 0.0f, 0.0f, 1.0f); + //Vector4 v2_far = invProjscr * new Vector4(0.0f, 0.0f, 1.0f, 1.0f); + //float nearPlane2 = -(v2_near.z/v2_near.w); + //float farPlane2 = -(v2_far.z/v2_far.w); + var nearPlane = camera.nearClipPlane; + var farPlane = camera.farClipPlane; + cmd.SetComputeFloatParam(buildPerVoxelLightListShader, "g_fNearPlane", nearPlane); + cmd.SetComputeFloatParam(buildPerVoxelLightListShader, "g_fFarPlane", farPlane); + + const float C = (float)(1 << k_Log2NumClusters); + var geomSeries = (1.0 - Mathf.Pow(k_ClustLogBase, C)) / (1 - k_ClustLogBase); // geometric series: sum_k=0^{C-1} base^k + m_ClustScale = (float)(geomSeries / (farPlane - nearPlane)); + + cmd.SetComputeFloatParam(buildPerVoxelLightListShader, "g_fClustScale", m_ClustScale); + cmd.SetComputeFloatParam(buildPerVoxelLightListShader, "g_fClustBase", k_ClustLogBase); + + cmd.SetComputeTextureParam(buildPerVoxelLightListShader, s_GenListPerVoxelKernel, "g_depth_tex", new RenderTargetIdentifier(s_CameraDepthTexture)); + cmd.SetComputeBufferParam(buildPerVoxelLightListShader, s_GenListPerVoxelKernel, "g_vLayeredLightList", s_PerVoxelLightLists); + cmd.SetComputeBufferParam(buildPerVoxelLightListShader, s_GenListPerVoxelKernel, "g_LayeredOffset", s_PerVoxelOffset); + cmd.SetComputeBufferParam(buildPerVoxelLightListShader, s_GenListPerVoxelKernel, "g_LayeredSingleIdxBuffer", s_GlobalLightListAtomic); + + if (k_UseDepthBuffer) + { + cmd.SetComputeBufferParam(buildPerVoxelLightListShader, s_GenListPerVoxelKernel, "g_logBaseBuffer", s_PerTileLogBaseTweak); + } + + var numTilesX = (camera.pixelWidth + 15) / 16; + var numTilesY = (camera.pixelHeight + 15) / 16; + cmd.DispatchCompute(buildPerVoxelLightListShader, s_GenListPerVoxelKernel, numTilesX, numTilesY, 1); + } + + void PushGlobalParams(Camera camera, RenderLoop loop, Matrix4x4 viewToWorld, Matrix4x4 scrProj, Matrix4x4 incScrProj, int numDirLights) + { + var cmd = new CommandBuffer { name = "Push Global Parameters" }; + + cmd.SetGlobalFloat("g_widthRT", (float)camera.pixelWidth); + cmd.SetGlobalFloat("g_heightRT", (float)camera.pixelHeight); + + cmd.SetGlobalMatrix("g_mViewToWorld", viewToWorld); + cmd.SetGlobalMatrix("g_mWorldToView", viewToWorld.inverse); + cmd.SetGlobalMatrix("g_mScrProjection", scrProj); + cmd.SetGlobalMatrix("g_mInvScrProjection", incScrProj); + + cmd.SetGlobalBuffer("g_vLightData", s_LightDataBuffer); + + cmd.SetGlobalTexture("_spotCookieTextures", m_CookieTexArray.GetTexCache()); + cmd.SetGlobalTexture("_pointCookieTextures", m_CubeCookieTexArray.GetTexCache()); + cmd.SetGlobalTexture("_reflCubeTextures", m_CubeReflTexArray.GetTexCache()); + + var topCube = ReflectionProbe.GetDefaultCubemapIBL(); + var defdecode = ReflectionProbe.CalculateHDRDecodeValuesForDefaultTexture(); + cmd.SetGlobalTexture("_reflRootCubeTexture", topCube); + cmd.SetGlobalFloat("_reflRootHdrDecodeMult", defdecode.x); + cmd.SetGlobalFloat("_reflRootHdrDecodeExp", defdecode.y); + + if (enableClustered) + { + cmd.SetGlobalFloat("g_fClustScale", m_ClustScale); + cmd.SetGlobalFloat("g_fClustBase", k_ClustLogBase); + cmd.SetGlobalFloat("g_fNearPlane", camera.nearClipPlane); + cmd.SetGlobalFloat("g_fFarPlane", camera.farClipPlane); + cmd.SetGlobalFloat("g_iLog2NumClusters", k_Log2NumClusters); + + + cmd.SetGlobalFloat("g_isLogBaseBufferEnabled", k_UseDepthBuffer ? 1 : 0); + + cmd.SetGlobalBuffer("g_vLayeredOffsetsBuffer", s_PerVoxelOffset); + if (k_UseDepthBuffer) + { + cmd.SetGlobalBuffer("g_logBaseBuffer", s_PerTileLogBaseTweak); + } + } + + cmd.SetGlobalFloat("g_nNumDirLights", numDirLights); + cmd.SetGlobalBuffer("g_dirLightData", s_DirLightList); + + // Shadow constants + cmd.SetGlobalMatrixArray("g_matWorldToShadow", m_MatWorldToShadow); + cmd.SetGlobalVectorArray("g_vDirShadowSplitSpheres", m_DirShadowSplitSpheres); + cmd.SetGlobalVector("g_vShadow3x3PCFTerms0", m_Shadow3X3PCFTerms[0]); + cmd.SetGlobalVector("g_vShadow3x3PCFTerms1", m_Shadow3X3PCFTerms[1]); + cmd.SetGlobalVector("g_vShadow3x3PCFTerms2", m_Shadow3X3PCFTerms[2]); + cmd.SetGlobalVector("g_vShadow3x3PCFTerms3", m_Shadow3X3PCFTerms[3]); + + loop.ExecuteCommandBuffer(cmd); + cmd.Dispose(); + } + } } diff --git a/Assets/ScriptableRenderLoop/fptl/Internal-DeferredReflections.shader b/Assets/ScriptableRenderLoop/fptl/Internal-DeferredReflections.shader index 9d909490c91..1e5ff14fad1 100644 --- a/Assets/ScriptableRenderLoop/fptl/Internal-DeferredReflections.shader +++ b/Assets/ScriptableRenderLoop/fptl/Internal-DeferredReflections.shader @@ -1,333 +1,140 @@ Shader "Hidden/Internal-TiledReflections" { Properties { - _LightTexture0 ("", any) = "" {} - _ShadowMapTexture ("", any) = "" {} - _SrcBlend ("", Float) = 1 - _DstBlend ("", Float) = 1 + _LightTexture0 ("", any) = "" {} + _ShadowMapTexture ("", any) = "" {} + _SrcBlend ("", Float) = 1 + _DstBlend ("", Float) = 1 } SubShader { -Pass +Pass { - ZWrite Off - ZTest Always - Cull Off - //Blend Off - Blend [_SrcBlend] [_DstBlend] - + ZWrite Off + ZTest Always + Cull Off + //Blend Off + Blend [_SrcBlend] [_DstBlend] + CGPROGRAM #pragma target 5.0 #pragma vertex vert #pragma fragment frag -#include "UnityCG.cginc" -#include "UnityStandardBRDF.cginc" -#include "UnityStandardUtils.cginc" -#include "UnityPBSLighting.cginc" +#pragma multi_compile USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST + +#include "UnityLightingCommon.cginc" +float3 EvalIndirectSpecular(UnityLight light, UnityIndirect ind); -#include "..\common\ShaderBase.h" -#include "LightDefinitions.cs" +// uses the optimized single layered light list for opaques only + +#ifdef USE_FPTL_LIGHTLIST + #define OPAQUES_ONLY +#endif +#include "TiledReflectionTemplate.hlsl" -uniform float4x4 g_mViewToWorld; -uniform float4x4 g_mWorldToView; -uniform float4x4 g_mInvScrProjection; -uniform float4x4 g_mScrProjection; Texture2D _CameraDepthTexture; Texture2D _CameraGBufferTexture0; Texture2D _CameraGBufferTexture1; Texture2D _CameraGBufferTexture2; -UNITY_DECLARE_TEXCUBEARRAY(_reflCubeTextures); - -StructuredBuffer g_vLightList; -StructuredBuffer g_vLightData; - - -float GetLinearDepth(float zDptBufSpace) // 0 is near 1 is far -{ - float3 vP = float3(0.0f,0.0f,zDptBufSpace); - float4 v4Pres = mul(g_mInvScrProjection, float4(vP,1.0)); - return v4Pres.z / v4Pres.w; -} - - -float3 GetViewPosFromLinDepth(float2 v2ScrPos, float fLinDepth) -{ - float fSx = g_mScrProjection[0].x; - //float fCx = g_mScrProjection[2].x; - float fCx = g_mScrProjection[0].z; - float fSy = g_mScrProjection[1].y; - //float fCy = g_mScrProjection[2].y; - float fCy = g_mScrProjection[1].z; - -#ifdef LEFT_HAND_COORDINATES - return fLinDepth*float3( ((v2ScrPos.x-fCx)/fSx), ((v2ScrPos.y-fCy)/fSy), 1.0 ); -#else - return fLinDepth*float3( -((v2ScrPos.x+fCx)/fSx), -((v2ScrPos.y+fCy)/fSy), 1.0 ); -#endif -} - -uint FetchLightCount(const uint tileOffs) -{ - return g_vLightList[ 16*tileOffs + 0]&0xffff; -} - -uint FetchIndex(const uint tileOffs, const uint l) -{ - const uint l1 = l+1; - return (g_vLightList[ 16*tileOffs + (l1>>1)]>>((l1&1)*16))&0xffff; -} -float3 ExecuteReflectionProbes(uint2 pixCoord, const uint offs); -float3 OverlayHeatMap(uint uNumLights, float3 c); +float3 ExecuteReflectionProbes(uint2 pixCoord, uint start, uint numLights, float linDepth); struct v2f { - float4 vertex : SV_POSITION; - float2 texcoord : TEXCOORD0; + float4 vertex : SV_POSITION; + float2 texcoord : TEXCOORD0; }; v2f vert (float4 vertex : POSITION, float2 texcoord : TEXCOORD0) { - v2f o; - o.vertex = UnityObjectToClipPos(vertex); - o.texcoord = texcoord.xy; - return o; + v2f o; + o.vertex = UnityObjectToClipPos(vertex); + o.texcoord = texcoord.xy; + return o; } -half4 frag (v2f i) : SV_Target -{ - uint2 pixCoord = ((uint2) i.vertex.xy); - - uint iWidth; - uint iHeight; - _CameraDepthTexture.GetDimensions(iWidth, iHeight); - uint nrTilesX = (iWidth+15)/16; - uint nrTilesY = (iHeight+15)/16; - - uint2 tileIDX = pixCoord / 16; - - const int offs = tileIDX.y*nrTilesX+tileIDX.x + nrTilesX*nrTilesY; // offset to where the reflection probes are - - - float3 c = ExecuteReflectionProbes(pixCoord, offs); - //c = OverlayHeatMap(FetchLightCount(offs), c); - - return float4(c,1.0); -} struct StandardData { - float3 specularColor; - float3 diffuseColor; - float3 normalWorld; - float smoothness; - float occlusion; + float3 specularColor; + float3 diffuseColor; + float3 normalWorld; + float smoothness; + float occlusion; }; -StandardData UnityStandardDataFromGbuffer(float4 gbuffer0, float4 gbuffer1, float4 gbuffer2) +struct LocalDataBRDF { - StandardData data; - - data.normalWorld = normalize(2*gbuffer2.xyz-1); - data.smoothness = gbuffer1.a; - data.diffuseColor = gbuffer0.xyz; data.specularColor = gbuffer1.xyz; - data.occlusion = gbuffer0.a; + StandardData gbuf; - return data; -} - -half3 distanceFromAABB(half3 p, half3 aabbMin, half3 aabbMax) -{ - return max(max(p - aabbMax, aabbMin - p), half3(0.0, 0.0, 0.0)); -} + // extras + float oneMinusReflectivity; + float3 Vworld; +}; -half3 Unity_GlossyEnvironment (UNITY_ARGS_TEXCUBEARRAY(tex), int sliceIndex, half4 hdr, Unity_GlossyEnvironmentData glossIn); +static LocalDataBRDF g_localParams; -float3 ExecuteReflectionProbes(uint2 pixCoord, const uint offs) +StandardData UnityStandardDataFromGbuffer(float4 gbuffer0, float4 gbuffer1, float4 gbuffer2) { - float3 v3ScrPos = float3(pixCoord.x+0.5, pixCoord.y+0.5, FetchDepth(_CameraDepthTexture, pixCoord.xy).x); - float linDepth = GetLinearDepth(v3ScrPos.z); - float3 vP = GetViewPosFromLinDepth(v3ScrPos.xy, linDepth); - float3 worldPos = mul(g_mViewToWorld, float4(vP.xyz,1.0)).xyz; //unity_CameraToWorld - - float3 vWSpaceVDir = normalize(mul((float3x3) g_mViewToWorld, -vP).xyz); //unity_CameraToWorld - - float4 gbuffer0 = _CameraGBufferTexture0.Load( uint3(pixCoord.xy, 0) ); - float4 gbuffer1 = _CameraGBufferTexture1.Load( uint3(pixCoord.xy, 0) ); - float4 gbuffer2 = _CameraGBufferTexture2.Load( uint3(pixCoord.xy, 0) ); - - StandardData data = UnityStandardDataFromGbuffer(gbuffer0, gbuffer1, gbuffer2); - - float oneMinusReflectivity = 1.0 - SpecularStrength(data.specularColor.rgb); - float3 worldNormalRefl = reflect(-vWSpaceVDir, data.normalWorld); + StandardData data; - float3 vspaceRefl = mul((float3x3) g_mWorldToView, worldNormalRefl).xyz; + data.normalWorld = normalize(2*gbuffer2.xyz-1); + data.smoothness = gbuffer1.a; + data.diffuseColor = gbuffer0.xyz; data.specularColor = gbuffer1.xyz; + data.occlusion = gbuffer0.a; - - UnityLight light; - light.color = 0; - light.dir = 0; - - float3 ints = 0; - - const uint uNrLights = FetchLightCount(offs); - - uint l=0; - - // we need this outer loop for when we cannot assume a wavefront is 64 wide - // since in this case we cannot assume the lights will remain sorted by type - // during processing in lightlist_cs.hlsl -#if !defined(XBONE) && !defined(PLAYSTATION4) - while(l11 ? float4(1.0,1.0,1.0,1.0) : kRadarColors[nColorIndex]; - - return lerp(c, pow(col.xyz, 2.2), 0.3*col.w); + StandardData data = g_localParams.gbuf; + + return data.occlusion * UNITY_BRDF_PBS(0, data.specularColor, g_localParams.oneMinusReflectivity, data.smoothness, data.normalWorld, g_localParams.Vworld, light, ind).rgb; } -half3 Unity_GlossyEnvironment (UNITY_ARGS_TEXCUBEARRAY(tex), int sliceIndex, half4 hdr, Unity_GlossyEnvironmentData glossIn) +half4 frag (v2f i) : SV_Target { -#if UNITY_GLOSS_MATCHES_MARMOSET_TOOLBAG2 && (SHADER_TARGET >= 30) - // TODO: remove pow, store cubemap mips differently - half perceptualRoughness = pow(glossIn.perceptualRoughness, 3.0/4.0); -#else - half perceptualRoughness = glossIn.roughness; // MM: switched to this -#endif - //perceptualRoughness = sqrt(sqrt(2/(64.0+2))); // spec power to the square root of real roughness + uint2 pixCoord = ((uint2) i.vertex.xy); -#if 0 - float m = perceptualRoughness*perceptualRoughness; // m is the real roughness parameter - const float fEps = 1.192092896e-07F; // smallest such that 1.0+FLT_EPSILON != 1.0 (+1e-4h is NOT good here. is visibly very wrong) - float n = (2.0/max(fEps, m*m))-2.0; // remap to spec power. See eq. 21 in --> https://dl.dropboxusercontent.com/u/55891920/papers/mm_brdf.pdf + float zbufDpth = FetchDepth(_CameraDepthTexture, pixCoord.xy).x; + float linDepth = GetLinearDepth(zbufDpth); - n /= 4; // remap from n_dot_h formulatino to n_dot_r. See section "Pre-convolved Cube Maps vs Path Tracers" --> https://s3.amazonaws.com/docs.knaldtech.com/knald/1.0.0/lys_power_drops.html + float3 vP = GetViewPosFromLinDepth(i.vertex.xy, linDepth); + float3 vPw = mul(g_mViewToWorld, float4(vP, 1)).xyz; + float3 Vworld = normalize(mul((float3x3) g_mViewToWorld, -vP).xyz); //unity_CameraToWorld - perceptualRoughness = pow( 2/(n+2), 0.25); // remap back to square root of real roughness -#else - // MM: came up with a surprisingly close approximation to what the #if 0'ed out code above does. - perceptualRoughness = perceptualRoughness*(1.7 - 0.7*perceptualRoughness); -#endif + float4 gbuffer0 = _CameraGBufferTexture0.Load( uint3(pixCoord.xy, 0) ); + float4 gbuffer1 = _CameraGBufferTexture1.Load( uint3(pixCoord.xy, 0) ); + float4 gbuffer2 = _CameraGBufferTexture2.Load( uint3(pixCoord.xy, 0) ); + StandardData data = UnityStandardDataFromGbuffer(gbuffer0, gbuffer1, gbuffer2); + g_localParams.gbuf = data; + g_localParams.oneMinusReflectivity = 1.0 - SpecularStrength(data.specularColor.rgb); + g_localParams.Vworld = Vworld; - half mip = perceptualRoughness * UNITY_SPECCUBE_LOD_STEPS; - half4 rgbm = UNITY_SAMPLE_TEXCUBEARRAY_LOD(tex, float4(glossIn.reflUVW.xyz, sliceIndex), mip); + uint numReflectionsProcessed = 0; + float3 c = ExecuteReflectionList(numReflectionsProcessed, pixCoord, vP, data.normalWorld, Vworld, data.smoothness); - //return rgbm.xyz; - return DecodeHDR_NoLinearSupportInSM2 (rgbm, hdr); + //c = OverlayHeatMap(numLightsProcessed, c); + return float4(c,1.0); } -ENDCG +ENDCG } } diff --git a/Assets/ScriptableRenderLoop/fptl/Internal-DeferredShading.shader b/Assets/ScriptableRenderLoop/fptl/Internal-DeferredShading.shader index 5745166f047..a2e8075c8d1 100644 --- a/Assets/ScriptableRenderLoop/fptl/Internal-DeferredShading.shader +++ b/Assets/ScriptableRenderLoop/fptl/Internal-DeferredShading.shader @@ -1,458 +1,135 @@ Shader "Hidden/Internal-Obscurity" { Properties { - _LightTexture0 ("", any) = "" {} - _ShadowMapTexture ("", any) = "" {} - _SrcBlend ("", Float) = 1 - _DstBlend ("", Float) = 1 + _LightTexture0 ("", any) = "" {} + _ShadowMapTexture ("", any) = "" {} + _SrcBlend ("", Float) = 1 + _DstBlend ("", Float) = 1 } SubShader { -Pass +Pass { - ZWrite Off - ZTest Always - Cull Off - Blend Off - //Blend [_SrcBlend] [_DstBlend] - + ZWrite Off + ZTest Always + Cull Off + Blend Off + //Blend [_SrcBlend] [_DstBlend] + CGPROGRAM #pragma target 5.0 #pragma vertex vert #pragma fragment frag -#include "UnityCG.cginc" -#include "UnityStandardBRDF.cginc" -#include "UnityStandardUtils.cginc" -#include "UnityPBSLighting.cginc" - -#include "..\common\ShaderBase.h" -#include "LightDefinitions.cs" - - +#pragma multi_compile USE_FPTL_LIGHTLIST USE_CLUSTERED_LIGHTLIST -uniform float4x4 g_mViewToWorld; -uniform float4x4 g_mInvScrProjection; -uniform float4x4 g_mScrProjection; -uniform uint g_nDirLights; +#include "UnityLightingCommon.cginc" -//--------------------------------------------------------------------------------------------------------------------------------------------------------- -// TODO: clean up.. -va -#define MAX_SHADOW_LIGHTS 10 -#define MAX_SHADOWMAP_PER_LIGHT 6 -#define MAX_DIRECTIONAL_SPLIT 4 +float3 EvalMaterial(UnityLight light, UnityIndirect ind); -#define CUBEMAPFACE_POSITIVE_X 0 -#define CUBEMAPFACE_NEGATIVE_X 1 -#define CUBEMAPFACE_POSITIVE_Y 2 -#define CUBEMAPFACE_NEGATIVE_Y 3 -#define CUBEMAPFACE_POSITIVE_Z 4 -#define CUBEMAPFACE_NEGATIVE_Z 5 +// uses the optimized single layered light list for opaques only -CBUFFER_START(ShadowLightData) - -float4 g_vShadow3x3PCFTerms0; -float4 g_vShadow3x3PCFTerms1; -float4 g_vShadow3x3PCFTerms2; -float4 g_vShadow3x3PCFTerms3; - -float4 g_vDirShadowSplitSpheres[MAX_DIRECTIONAL_SPLIT]; -float4x4 g_matWorldToShadow[MAX_SHADOW_LIGHTS * MAX_SHADOWMAP_PER_LIGHT]; +#ifdef USE_FPTL_LIGHTLIST + #define OPAQUES_ONLY +#endif -CBUFFER_END -//--------------------------------------------------------------------------------------------------------------------------------------------------------- +#include "TiledLightingTemplate.hlsl" Texture2D _CameraDepthTexture; Texture2D _CameraGBufferTexture0; Texture2D _CameraGBufferTexture1; Texture2D _CameraGBufferTexture2; -//UNITY_DECLARE_TEX2D(_LightTextureB0); -sampler2D _LightTextureB0; -UNITY_DECLARE_TEX2DARRAY(_spotCookieTextures); -UNITY_DECLARE_TEXCUBEARRAY(_pointCookieTextures); - -StructuredBuffer g_vLightList; -StructuredBuffer g_vLightData; -StructuredBuffer g_dirLightData; - - - -float GetLinearDepth(float zDptBufSpace) // 0 is near 1 is far -{ - float3 vP = float3(0.0f,0.0f,zDptBufSpace); - float4 v4Pres = mul(g_mInvScrProjection, float4(vP,1.0)); - return v4Pres.z / v4Pres.w; -} - - -float3 GetViewPosFromLinDepth(float2 v2ScrPos, float fLinDepth) -{ - float fSx = g_mScrProjection[0].x; - //float fCx = g_mScrProjection[2].x; - float fCx = g_mScrProjection[0].z; - float fSy = g_mScrProjection[1].y; - //float fCy = g_mScrProjection[2].y; - float fCy = g_mScrProjection[1].z; - -#ifdef LEFT_HAND_COORDINATES - return fLinDepth*float3( ((v2ScrPos.x-fCx)/fSx), ((v2ScrPos.y-fCy)/fSy), 1.0 ); -#else - return fLinDepth*float3( -((v2ScrPos.x+fCx)/fSx), -((v2ScrPos.y+fCy)/fSy), 1.0 ); -#endif -} - -uint FetchLightCount(const uint tileOffs) -{ - return g_vLightList[ 16*tileOffs + 0]&0xffff; -} - -uint FetchIndex(const uint tileOffs, const uint l) -{ - const uint l1 = l+1; - return (g_vLightList[ 16*tileOffs + (l1>>1)]>>((l1&1)*16))&0xffff; -} - -float3 ExecuteLightList(uint2 pixCoord, const uint offs); -float3 OverlayHeatMap(uint uNumLights, float3 c); - -#define VALVE_DECLARE_SHADOWMAP( tex ) Texture2D tex; SamplerComparisonState sampler##tex -#define VALVE_SAMPLE_SHADOW( tex, coord ) tex.SampleCmpLevelZero( sampler##tex, (coord).xy, (coord).z ) - -VALVE_DECLARE_SHADOWMAP(g_tShadowBuffer); - -float ComputeShadow_PCF_3x3_Gaussian(float3 vPositionWs, float4x4 matWorldToShadow) -{ - float4 vPositionTextureSpace = mul(float4(vPositionWs.xyz, 1.0), matWorldToShadow); - vPositionTextureSpace.xyz /= vPositionTextureSpace.w; - - float2 shadowMapCenter = vPositionTextureSpace.xy; - - if ((shadowMapCenter.x < 0.0f) || (shadowMapCenter.x > 1.0f) || (shadowMapCenter.y < 0.0f) || (shadowMapCenter.y > 1.0f)) - return 1.0f; - - float objDepth = saturate(257.0 / 256.0 - vPositionTextureSpace.z); - - float4 v20Taps; - v20Taps.x = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xy, objDepth)).x; // 1 1 - v20Taps.y = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zy, objDepth)).x; // -1 1 - v20Taps.z = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xw, objDepth)).x; // 1 -1 - v20Taps.w = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zw, objDepth)).x; // -1 -1 - float flSum = dot(v20Taps.xyzw, float4(0.25, 0.25, 0.25, 0.25)); - if ((flSum == 0.0) || (flSum == 1.0)) - return flSum; - flSum *= g_vShadow3x3PCFTerms0.x * 4.0; +Texture2D _CameraGBufferTexture3; - float4 v33Taps; - v33Taps.x = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.xz, objDepth)).x; // 1 0 - v33Taps.y = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.xz, objDepth)).x; // -1 0 - v33Taps.z = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.zy, objDepth)).x; // 0 -1 - v33Taps.w = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.zy, objDepth)).x; // 0 1 - flSum += dot(v33Taps.xyzw, g_vShadow3x3PCFTerms0.yyyy); - - flSum += VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy, objDepth)).x * g_vShadow3x3PCFTerms0.z; - - return flSum; -} - -//--------------------------------------------------------------------------------------------------------------------------------------------------------- -/** -* Gets the cascade weights based on the world position of the fragment and the positions of the split spheres for each cascade. -* Returns an invalid split index if past shadowDistance (ie 4 is invalid for cascade) -*/ -float GetSplitSphereIndexForDirshadows(float3 wpos) -{ - float3 fromCenter0 = wpos.xyz - g_vDirShadowSplitSpheres[0].xyz; - float3 fromCenter1 = wpos.xyz - g_vDirShadowSplitSpheres[1].xyz; - float3 fromCenter2 = wpos.xyz - g_vDirShadowSplitSpheres[2].xyz; - float3 fromCenter3 = wpos.xyz - g_vDirShadowSplitSpheres[3].xyz; - float4 distances2 = float4(dot(fromCenter0, fromCenter0), dot(fromCenter1, fromCenter1), dot(fromCenter2, fromCenter2), dot(fromCenter3, fromCenter3)); - - float4 vDirShadowSplitSphereSqRadii; - vDirShadowSplitSphereSqRadii.x = g_vDirShadowSplitSpheres[0].w; - vDirShadowSplitSphereSqRadii.y = g_vDirShadowSplitSpheres[1].w; - vDirShadowSplitSphereSqRadii.z = g_vDirShadowSplitSpheres[2].w; - vDirShadowSplitSphereSqRadii.w = g_vDirShadowSplitSpheres[3].w; - fixed4 weights = float4(distances2 < vDirShadowSplitSphereSqRadii); - weights.yzw = saturate(weights.yzw - weights.xyz); - return 4 - dot(weights, float4(4, 3, 2, 1)); -} - -float SampleShadow(uint type, float3 vPositionWs, float3 vPositionToLightDirWs, uint lightIndex) -{ - float flShadowScalar = 1.0; - int shadowSplitIndex = 0; - - if (type == DIRECTIONAL_LIGHT) - { - shadowSplitIndex = GetSplitSphereIndexForDirshadows(vPositionWs); - } - - else if (type == SPHERE_LIGHT) - { - float3 absPos = abs(vPositionToLightDirWs); - shadowSplitIndex = (vPositionToLightDirWs.z > 0) ? CUBEMAPFACE_NEGATIVE_Z : CUBEMAPFACE_POSITIVE_Z; - if (absPos.x > absPos.y) - { - if (absPos.x > absPos.z) - { - shadowSplitIndex = (vPositionToLightDirWs.x > 0) ? CUBEMAPFACE_NEGATIVE_X : CUBEMAPFACE_POSITIVE_X; - } - } - else - { - if (absPos.y > absPos.z) - { - shadowSplitIndex = (vPositionToLightDirWs.y > 0) ? CUBEMAPFACE_NEGATIVE_Y : CUBEMAPFACE_POSITIVE_Y; - } - } - } - - flShadowScalar = ComputeShadow_PCF_3x3_Gaussian(vPositionWs.xyz, g_matWorldToShadow[lightIndex * MAX_SHADOWMAP_PER_LIGHT + shadowSplitIndex]); - return flShadowScalar; -} struct v2f { - float4 vertex : SV_POSITION; - float2 texcoord : TEXCOORD0; + float4 vertex : SV_POSITION; + float2 texcoord : TEXCOORD0; }; v2f vert (float4 vertex : POSITION, float2 texcoord : TEXCOORD0) { - v2f o; - o.vertex = UnityObjectToClipPos(vertex); - o.texcoord = texcoord.xy; - return o; -} - -half4 frag (v2f i) : SV_Target -{ - uint2 pixCoord = ((uint2) i.vertex.xy); - - uint iWidth; - uint iHeight; - _CameraDepthTexture.GetDimensions(iWidth, iHeight); - uint nrTilesX = (iWidth+15)/16; - uint nrTilesY = (iHeight+15)/16; - - uint2 tileIDX = pixCoord / 16; - - const int offs = tileIDX.y*nrTilesX+tileIDX.x; - - float3 c = ExecuteLightList(pixCoord, offs); - //c = OverlayHeatMap(FetchLightCount(offs), c); - return float4(c,1.0); + v2f o; + o.vertex = UnityObjectToClipPos(vertex); + o.texcoord = texcoord.xy; + return o; } struct StandardData { - float3 specularColor; - float3 diffuseColor; - float3 normalWorld; - float smoothness; + float3 specularColor; + float3 diffuseColor; + float3 normalWorld; + float smoothness; + float3 emission; }; -StandardData UnityStandardDataFromGbuffer(float4 gbuffer0, float4 gbuffer1, float4 gbuffer2) +struct LocalDataBRDF { - StandardData data; + StandardData gbuf; - data.normalWorld = normalize(2*gbuffer2.xyz-1); - data.smoothness = gbuffer1.a; - data.diffuseColor = gbuffer0.xyz; data.specularColor = gbuffer1.xyz; - float ao = gbuffer0.a; + // extras + float oneMinusReflectivity; + float3 Vworld; +}; - return data; -} +static LocalDataBRDF g_localParams; -float3 ExecuteLightList(uint2 pixCoord, const uint offs) +StandardData UnityStandardDataFromGbuffer(float4 gbuffer0, float4 gbuffer1, float4 gbuffer2, float4 gbuffer3) { - float3 v3ScrPos = float3(pixCoord.x+0.5, pixCoord.y+0.5, FetchDepth(_CameraDepthTexture, pixCoord.xy).x); - float linDepth = GetLinearDepth(v3ScrPos.z); - float3 vP = GetViewPosFromLinDepth(v3ScrPos.xy, linDepth); - - float3 vWSpaceVDir = normalize(mul((float3x3) g_mViewToWorld, -vP).xyz); //unity_CameraToWorld + StandardData data; - float4 gbuffer0 = _CameraGBufferTexture0.Load( uint3(pixCoord.xy, 0) ); - float4 gbuffer1 = _CameraGBufferTexture1.Load( uint3(pixCoord.xy, 0) ); - float4 gbuffer2 = _CameraGBufferTexture2.Load( uint3(pixCoord.xy, 0) ); + data.normalWorld = normalize(2*gbuffer2.xyz-1); + data.smoothness = gbuffer1.a; + data.diffuseColor = gbuffer0.xyz; data.specularColor = gbuffer1.xyz; + float ao = gbuffer0.a; + data.emission = gbuffer3.xyz; - StandardData data = UnityStandardDataFromGbuffer(gbuffer0, gbuffer1, gbuffer2); - - - float oneMinusReflectivity = 1.0 - SpecularStrength(data.specularColor.rgb); - - UnityIndirect ind; - UNITY_INITIALIZE_OUTPUT(UnityIndirect, ind); - ind.diffuse = 0; - ind.specular = 0; + return data; +} - float3 ints = 0; +float3 EvalMaterial(UnityLight light, UnityIndirect ind) +{ + StandardData data = g_localParams.gbuf; + return UNITY_BRDF_PBS(data.diffuseColor, data.specularColor, g_localParams.oneMinusReflectivity, data.smoothness, data.normalWorld, g_localParams.Vworld, light, ind); +} - const uint uNrLights = FetchLightCount(offs); - - uint l=0; - float3 vPositionWs = mul(g_mViewToWorld, float4(vP, 1)); +half4 frag (v2f i) : SV_Target +{ + uint2 pixCoord = ((uint2) i.vertex.xy); - for (int i = 0; i < g_nDirLights; i++) - { - DirectionalLight lightData = g_dirLightData[i]; - float atten = 1; + float zbufDpth = FetchDepth(_CameraDepthTexture, pixCoord.xy).x; + float linDepth = GetLinearDepth(zbufDpth); - [branch] - if (lightData.uShadowLightIndex != 0xffffffff) - { - float shadowScalar = SampleShadow(DIRECTIONAL_LIGHT, vPositionWs, 0, lightData.uShadowLightIndex); - atten *= shadowScalar; - } + float3 vP = GetViewPosFromLinDepth(i.vertex.xy, linDepth); + float3 vPw = mul(g_mViewToWorld, float4(vP, 1)).xyz; + float3 Vworld = normalize(mul((float3x3) g_mViewToWorld, -vP).xyz); //unity_CameraToWorld - UnityLight light; - light.color.xyz = lightData.vCol.xyz * atten; - light.dir.xyz = mul((float3x3) g_mViewToWorld, -lightData.vLaxisZ).xyz; + float4 gbuffer0 = _CameraGBufferTexture0.Load( uint3(pixCoord.xy, 0) ); + float4 gbuffer1 = _CameraGBufferTexture1.Load( uint3(pixCoord.xy, 0) ); + float4 gbuffer2 = _CameraGBufferTexture2.Load( uint3(pixCoord.xy, 0) ); + float4 gbuffer3 = _CameraGBufferTexture3.Load( uint3(pixCoord.xy, 0) ); - ints += UNITY_BRDF_PBS(data.diffuseColor, data.specularColor, oneMinusReflectivity, data.smoothness, data.normalWorld, vWSpaceVDir, light, ind); - } + StandardData data = UnityStandardDataFromGbuffer(gbuffer0, gbuffer1, gbuffer2, gbuffer3); - // we need this outer loop for when we cannot assume a wavefront is 64 wide - // since in this case we cannot assume the lights will remain sorted by type - // during processing in lightlist_cs.hlsl -#if !defined(XBONE) && !defined(PLAYSTATION4) - while(l0.0); // finally apply this to the dist att. - - const bool bHasShadow = (lgtDat.flags&HAS_SHADOW)!=0; - [branch]if(bHasShadow) - { - float shadowScalar = SampleShadow(SPOT_LIGHT, vPositionWs, 0, lgtDat.uShadowLightIndex); - atten *= shadowScalar; - } - - UnityLight light; - light.color.xyz = lgtDat.vCol.xyz*atten*angularAtt.xyz; - light.dir.xyz = mul((float3x3) g_mViewToWorld, vL).xyz; //unity_CameraToWorld - - ints += UNITY_BRDF_PBS (data.diffuseColor, data.specularColor, oneMinusReflectivity, data.smoothness, data.normalWorld, vWSpaceVDir, light, ind); - - ++l; uIndex = l=MAX_TYPES) ++l; - if(uLgtType!=SPOT_LIGHT && uLgtType!=SPHERE_LIGHT) ++l; -#endif - } + g_localParams.gbuf = data; + g_localParams.oneMinusReflectivity = 1.0 - SpecularStrength(data.specularColor.rgb); + g_localParams.Vworld = Vworld; - return ints; -} + uint numLightsProcessed = 0; + float3 c = data.emission + ExecuteLightList(numLightsProcessed, pixCoord, vP, vPw, Vworld); -float3 OverlayHeatMap(uint uNumLights, float3 c) -{ - ///////////////////////////////////////////////////////////////////// - // - const float4 kRadarColors[12] = - { - float4(0.0,0.0,0.0,0.0), // black - float4(0.0,0.0,0.6,0.5), // dark blue - float4(0.0,0.0,0.9,0.5), // blue - float4(0.0,0.6,0.9,0.5), // light blue - float4(0.0,0.9,0.9,0.5), // cyan - float4(0.0,0.9,0.6,0.5), // blueish green - float4(0.0,0.9,0.0,0.5), // green - float4(0.6,0.9,0.0,0.5), // yellowish green - float4(0.9,0.9,0.0,0.5), // yellow - float4(0.9,0.6,0.0,0.5), // orange - float4(0.9,0.0,0.0,0.5), // red - float4(1.0,0.0,0.0,0.9) // strong red - }; - - float fMaxNrLightsPerTile = 24; - - - - int nColorIndex = uNumLights==0 ? 0 : (1 + (int) floor(10 * (log2((float)uNumLights) / log2(fMaxNrLightsPerTile))) ); - nColorIndex = nColorIndex<0 ? 0 : nColorIndex; - float4 col = nColorIndex>11 ? float4(1.0,1.0,1.0,1.0) : kRadarColors[nColorIndex]; - - return lerp(c, pow(col.xyz, 2.2), 0.3*col.w); + //c = OverlayHeatMap(numLightsProcessed, c); + return float4(c,1.0); } -ENDCG +ENDCG } } diff --git a/Assets/ScriptableRenderLoop/fptl/LightDefinitions.cs b/Assets/ScriptableRenderLoop/fptl/LightDefinitions.cs index afa417a6e38..d7b03b5a492 100644 --- a/Assets/ScriptableRenderLoop/fptl/LightDefinitions.cs +++ b/Assets/ScriptableRenderLoop/fptl/LightDefinitions.cs @@ -1,70 +1,70 @@ -//#define LEFT_HAND_COORDINATES - +using UnityEngine; +using UnityEngine.Experimental.ScriptableRenderLoop; +[GenerateHLSL] public struct SFiniteLightData { - // setup constant buffer - public float fPenumbra; - public int flags; - public uint uLightType; - public uint uLightModel; // DIRECT_LIGHT=0, REFLECTION_LIGHT=1 - - public Vec3 vLpos; - public float fLightIntensity; - - public Vec3 vLaxisX; - public float fRecipRange; - - public Vec3 vLaxisY; - public float fSphRadiusSq; - - public Vec3 vLaxisZ; // spot +Z axis + // setup constant buffer + public float penumbra; + public int flags; + public uint lightType; + public uint lightModel; // DIRECT_LIGHT=0, REFLECTION_LIGHT=1 + + public Vector3 lightPos; + public float lightIntensity; + + public Vector3 lightAxisX; + public float recipRange; + + public Vector3 lightAxisY; + public float radiusSq; + + public Vector3 lightAxisZ; // spot +Z axis public float cotan; - - public Vec3 vCol; - public int iSliceIndex; - public Vec3 vBoxInnerDist; - public float fDecodeExp; + public Vector3 color; + public int sliceIndex; + + public Vector3 boxInnerDist; + public float decodeExp; - public Vec3 vBoxInvRange; - public uint uShadowLightIndex; + public Vector3 boxInvRange; + public uint shadowLightIndex; - public Vec3 vLocalCubeCapturePoint; - public float fProbeBlendDistance; - + public Vector3 localCubeCapturePoint; + public float probeBlendDistance; }; +[GenerateHLSL] public struct SFiniteLightBound { - public Vec3 vBoxAxisX; - public Vec3 vBoxAxisY; - public Vec3 vBoxAxisZ; - public Vec3 vCen; // a center in camera space inside the bounding volume of the light source. - public Vec2 vScaleXY; - public float fRadius; + public Vector3 boxAxisX; + public Vector3 boxAxisY; + public Vector3 boxAxisZ; + public Vector3 center; // a center in camera space inside the bounding volume of the light source. + public Vector2 scaleXY; + public float radius; }; +[GenerateHLSL] public struct DirectionalLight { - public Vec3 vCol; - public float fLightIntensity; + public Vector3 color; + public float intensity; - public Vec3 vLaxisX; - public uint uShadowLightIndex; + public Vector3 lightAxisX; + public uint shadowLightIndex; - public Vec3 vLaxisY; - public float fPad0; + public Vector3 lightAxisY; + public float pad0; - public Vec3 vLaxisZ; - public float fPad1; + public Vector3 lightAxisZ; + public float pad1; }; -#if !__HLSL +[GenerateHLSL] public class LightDefinitions { -#endif - public static int MAX_NR_LIGHTS_PER_CAMERA = 1024; public static float VIEWPORT_SCALE_Z = 1.0f; @@ -81,23 +81,10 @@ public class LightDefinitions public static int SPOT_LIGHT = 0; public static int SPHERE_LIGHT = 1; public static int BOX_LIGHT = 2; - public static int DIRECTIONAL_LIGHT = 3; + public static int DIRECTIONAL_LIGHT = 3; - // direct lights and reflection probes for now - public static int NR_LIGHT_MODELS = 2; + // direct lights and reflection probes for now + public static int NR_LIGHT_MODELS = 2; public static int DIRECT_LIGHT = 0; public static int REFLECTION_LIGHT = 1; - -#if !__HLSL } -#endif - - -#if __HLSL - -float FetchDepth(Texture2D depthTexture, uint2 pixCoord) -{ - return 1-depthTexture.Load( uint3(pixCoord.xy, 0) ).x; -} - -#endif \ No newline at end of file diff --git a/Assets/ScriptableRenderLoop/fptl/LightDefinitions.cs.hlsl b/Assets/ScriptableRenderLoop/fptl/LightDefinitions.cs.hlsl new file mode 100644 index 00000000000..45cfa5044c2 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/LightDefinitions.cs.hlsl @@ -0,0 +1,223 @@ +// +// This file was automatically generated from Assets/ScriptableRenderLoop/fptl/LightDefinitions.cs. Please don't edit by hand. +// + +// +// LightDefinitions: static fields +// +#define MAX_NR_LIGHTS_PER_CAMERA (1024) +#define VIEWPORT_SCALE_Z (1) +#define IS_CIRCULAR_SPOT_SHAPE (1) +#define HAS_COOKIE_TEXTURE (2) +#define IS_BOX_PROJECTED (4) +#define HAS_SHADOW (8) +#define MAX_TYPES (3) +#define SPOT_LIGHT (0) +#define SPHERE_LIGHT (1) +#define BOX_LIGHT (2) +#define DIRECTIONAL_LIGHT (3) +#define NR_LIGHT_MODELS (2) +#define DIRECT_LIGHT (0) +#define REFLECTION_LIGHT (1) + +// Generated from SFiniteLightData +// PackingRules = Exact +struct SFiniteLightData +{ + float penumbra; + int flags; + uint lightType; + uint lightModel; + float3 lightPos; + float lightIntensity; + float3 lightAxisX; + float recipRange; + float3 lightAxisY; + float radiusSq; + float3 lightAxisZ; + float cotan; + float3 color; + int sliceIndex; + float3 boxInnerDist; + float decodeExp; + float3 boxInvRange; + uint shadowLightIndex; + float3 localCubeCapturePoint; + float probeBlendDistance; +}; + +// Generated from SFiniteLightBound +// PackingRules = Exact +struct SFiniteLightBound +{ + float3 boxAxisX; + float3 boxAxisY; + float3 boxAxisZ; + float3 center; + float2 scaleXY; + float radius; +}; + +// Generated from DirectionalLight +// PackingRules = Exact +struct DirectionalLight +{ + float3 color; + float intensity; + float3 lightAxisX; + uint shadowLightIndex; + float3 lightAxisY; + float pad0; + float3 lightAxisZ; + float pad1; +}; + +// +// Accessors for SFiniteLightData +// +float GetPenumbra(SFiniteLightData value) +{ + return value.penumbra; +} +int GetFlags(SFiniteLightData value) +{ + return value.flags; +} +uint GetLightType(SFiniteLightData value) +{ + return value.lightType; +} +uint GetLightModel(SFiniteLightData value) +{ + return value.lightModel; +} +float3 GetLightPos(SFiniteLightData value) +{ + return value.lightPos; +} +float GetLightIntensity(SFiniteLightData value) +{ + return value.lightIntensity; +} +float3 GetLightAxisX(SFiniteLightData value) +{ + return value.lightAxisX; +} +float GetRecipRange(SFiniteLightData value) +{ + return value.recipRange; +} +float3 GetLightAxisY(SFiniteLightData value) +{ + return value.lightAxisY; +} +float GetRadiusSq(SFiniteLightData value) +{ + return value.radiusSq; +} +float3 GetLightAxisZ(SFiniteLightData value) +{ + return value.lightAxisZ; +} +float GetCotan(SFiniteLightData value) +{ + return value.cotan; +} +float3 GetColor(SFiniteLightData value) +{ + return value.color; +} +int GetSliceIndex(SFiniteLightData value) +{ + return value.sliceIndex; +} +float3 GetBoxInnerDist(SFiniteLightData value) +{ + return value.boxInnerDist; +} +float GetDecodeExp(SFiniteLightData value) +{ + return value.decodeExp; +} +float3 GetBoxInvRange(SFiniteLightData value) +{ + return value.boxInvRange; +} +uint GetShadowLightIndex(SFiniteLightData value) +{ + return value.shadowLightIndex; +} +float3 GetLocalCubeCapturePoint(SFiniteLightData value) +{ + return value.localCubeCapturePoint; +} +float GetProbeBlendDistance(SFiniteLightData value) +{ + return value.probeBlendDistance; +} + +// +// Accessors for SFiniteLightBound +// +float3 GetBoxAxisX(SFiniteLightBound value) +{ + return value.boxAxisX; +} +float3 GetBoxAxisY(SFiniteLightBound value) +{ + return value.boxAxisY; +} +float3 GetBoxAxisZ(SFiniteLightBound value) +{ + return value.boxAxisZ; +} +float3 GetCenter(SFiniteLightBound value) +{ + return value.center; +} +float2 GetScaleXY(SFiniteLightBound value) +{ + return value.scaleXY; +} +float GetRadius(SFiniteLightBound value) +{ + return value.radius; +} + +// +// Accessors for DirectionalLight +// +float3 GetColor(DirectionalLight value) +{ + return value.color; +} +float GetIntensity(DirectionalLight value) +{ + return value.intensity; +} +float3 GetLightAxisX(DirectionalLight value) +{ + return value.lightAxisX; +} +uint GetShadowLightIndex(DirectionalLight value) +{ + return value.shadowLightIndex; +} +float3 GetLightAxisY(DirectionalLight value) +{ + return value.lightAxisY; +} +float GetPad0(DirectionalLight value) +{ + return value.pad0; +} +float3 GetLightAxisZ(DirectionalLight value) +{ + return value.lightAxisZ; +} +float GetPad1(DirectionalLight value) +{ + return value.pad1; +} + + diff --git a/Assets/ScriptableRenderLoop/fptl/LightDefinitions.cs.hlsl.meta b/Assets/ScriptableRenderLoop/fptl/LightDefinitions.cs.hlsl.meta new file mode 100644 index 00000000000..fd409e3ef93 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/LightDefinitions.cs.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 70f1451131ffdfa4798fd3c62bd0ec51 +timeCreated: 1475179983 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/LightingTemplate.hlsl b/Assets/ScriptableRenderLoop/fptl/LightingTemplate.hlsl new file mode 100644 index 00000000000..232ccac16bd --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/LightingTemplate.hlsl @@ -0,0 +1,277 @@ +#ifndef __LIGHTINGTEMPLATE_H__ +#define __LIGHTINGTEMPLATE_H__ + + +#include "UnityCG.cginc" +#include "UnityStandardBRDF.cginc" +#include "UnityStandardUtils.cginc" +#include "UnityPBSLighting.cginc" + + +uniform uint g_nNumDirLights; + +//--------------------------------------------------------------------------------------------------------------------------------------------------------- +// TODO: clean up.. -va +#define MAX_SHADOW_LIGHTS 10 +#define MAX_SHADOWMAP_PER_LIGHT 6 +#define MAX_DIRECTIONAL_SPLIT 4 + +#define CUBEMAPFACE_POSITIVE_X 0 +#define CUBEMAPFACE_NEGATIVE_X 1 +#define CUBEMAPFACE_POSITIVE_Y 2 +#define CUBEMAPFACE_NEGATIVE_Y 3 +#define CUBEMAPFACE_POSITIVE_Z 4 +#define CUBEMAPFACE_NEGATIVE_Z 5 + +CBUFFER_START(ShadowLightData) + +float4 g_vShadow3x3PCFTerms0; +float4 g_vShadow3x3PCFTerms1; +float4 g_vShadow3x3PCFTerms2; +float4 g_vShadow3x3PCFTerms3; + +float4 g_vDirShadowSplitSpheres[MAX_DIRECTIONAL_SPLIT]; +float4x4 g_matWorldToShadow[MAX_SHADOW_LIGHTS * MAX_SHADOWMAP_PER_LIGHT]; + +CBUFFER_END +//--------------------------------------------------------------------------------------------------------------------------------------------------------- + + +//UNITY_DECLARE_TEX2D(_LightTextureB0); +sampler2D _LightTextureB0; +UNITY_DECLARE_TEX2DARRAY(_spotCookieTextures); +UNITY_DECLARE_TEXCUBEARRAY(_pointCookieTextures); + +StructuredBuffer g_dirLightData; + + +#define VALVE_DECLARE_SHADOWMAP( tex ) Texture2D tex; SamplerComparisonState sampler##tex +#define VALVE_SAMPLE_SHADOW( tex, coord ) tex.SampleCmpLevelZero( sampler##tex, (coord).xy, (coord).z ) + +VALVE_DECLARE_SHADOWMAP(g_tShadowBuffer); + +float ComputeShadow_PCF_3x3_Gaussian(float3 vPositionWs, float4x4 matWorldToShadow) +{ + float4 vPositionTextureSpace = mul(float4(vPositionWs.xyz, 1.0), matWorldToShadow); + vPositionTextureSpace.xyz /= vPositionTextureSpace.w; + + float2 shadowMapCenter = vPositionTextureSpace.xy; + + if ((shadowMapCenter.x < 0.0f) || (shadowMapCenter.x > 1.0f) || (shadowMapCenter.y < 0.0f) || (shadowMapCenter.y > 1.0f)) + return 1.0f; + + float objDepth = saturate(257.0 / 256.0 - vPositionTextureSpace.z); + + float4 v20Taps; + v20Taps.x = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xy, objDepth)).x; // 1 1 + v20Taps.y = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zy, objDepth)).x; // -1 1 + v20Taps.z = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.xw, objDepth)).x; // 1 -1 + v20Taps.w = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms1.zw, objDepth)).x; // -1 -1 + float flSum = dot(v20Taps.xyzw, float4(0.25, 0.25, 0.25, 0.25)); + if ((flSum == 0.0) || (flSum == 1.0)) + return flSum; + flSum *= g_vShadow3x3PCFTerms0.x * 4.0; + + float4 v33Taps; + v33Taps.x = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.xz, objDepth)).x; // 1 0 + v33Taps.y = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.xz, objDepth)).x; // -1 0 + v33Taps.z = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms3.zy, objDepth)).x; // 0 -1 + v33Taps.w = VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy + g_vShadow3x3PCFTerms2.zy, objDepth)).x; // 0 1 + flSum += dot(v33Taps.xyzw, g_vShadow3x3PCFTerms0.yyyy); + + flSum += VALVE_SAMPLE_SHADOW(g_tShadowBuffer, float3(shadowMapCenter.xy, objDepth)).x * g_vShadow3x3PCFTerms0.z; + + return flSum; +} + +//--------------------------------------------------------------------------------------------------------------------------------------------------------- +/** +* Gets the cascade weights based on the world position of the fragment and the positions of the split spheres for each cascade. +* Returns an invalid split index if past shadowDistance (ie 4 is invalid for cascade) +*/ +float GetSplitSphereIndexForDirshadows(float3 wpos) +{ + float3 fromCenter0 = wpos.xyz - g_vDirShadowSplitSpheres[0].xyz; + float3 fromCenter1 = wpos.xyz - g_vDirShadowSplitSpheres[1].xyz; + float3 fromCenter2 = wpos.xyz - g_vDirShadowSplitSpheres[2].xyz; + float3 fromCenter3 = wpos.xyz - g_vDirShadowSplitSpheres[3].xyz; + float4 distances2 = float4(dot(fromCenter0, fromCenter0), dot(fromCenter1, fromCenter1), dot(fromCenter2, fromCenter2), dot(fromCenter3, fromCenter3)); + + float4 vDirShadowSplitSphereSqRadii; + vDirShadowSplitSphereSqRadii.x = g_vDirShadowSplitSpheres[0].w; + vDirShadowSplitSphereSqRadii.y = g_vDirShadowSplitSpheres[1].w; + vDirShadowSplitSphereSqRadii.z = g_vDirShadowSplitSpheres[2].w; + vDirShadowSplitSphereSqRadii.w = g_vDirShadowSplitSpheres[3].w; + fixed4 weights = float4(distances2 < vDirShadowSplitSphereSqRadii); + weights.yzw = saturate(weights.yzw - weights.xyz); + return 4 - dot(weights, float4(4, 3, 2, 1)); +} + +float SampleShadow(uint type, float3 vPositionWs, float3 vPositionToLightDirWs, uint lightIndex) +{ + float flShadowScalar = 1.0; + int shadowSplitIndex = 0; + + if (type == DIRECTIONAL_LIGHT) + { + shadowSplitIndex = GetSplitSphereIndexForDirshadows(vPositionWs); + } + + else if (type == SPHERE_LIGHT) + { + float3 absPos = abs(vPositionToLightDirWs); + shadowSplitIndex = (vPositionToLightDirWs.z > 0) ? CUBEMAPFACE_NEGATIVE_Z : CUBEMAPFACE_POSITIVE_Z; + if (absPos.x > absPos.y) + { + if (absPos.x > absPos.z) + { + shadowSplitIndex = (vPositionToLightDirWs.x > 0) ? CUBEMAPFACE_NEGATIVE_X : CUBEMAPFACE_POSITIVE_X; + } + } + else + { + if (absPos.y > absPos.z) + { + shadowSplitIndex = (vPositionToLightDirWs.y > 0) ? CUBEMAPFACE_NEGATIVE_Y : CUBEMAPFACE_POSITIVE_Y; + } + } + } + + flShadowScalar = ComputeShadow_PCF_3x3_Gaussian(vPositionWs.xyz, g_matWorldToShadow[lightIndex * MAX_SHADOWMAP_PER_LIGHT + shadowSplitIndex]); + return flShadowScalar; +} + + +float3 ExecuteLightList(uint start, uint numLights, float3 vP, float3 vPw, float3 Vworld) +{ + UnityIndirect ind; + UNITY_INITIALIZE_OUTPUT(UnityIndirect, ind); + ind.diffuse = 0; + ind.specular = 0; + + + float3 ints = 0; + + for (int i = 0; i < g_nNumDirLights; i++) + { + DirectionalLight lightData = g_dirLightData[i]; + float atten = 1; + + [branch] + if (lightData.shadowLightIndex != 0xffffffff) + { + float shadowScalar = SampleShadow(DIRECTIONAL_LIGHT, vPw, 0, lightData.shadowLightIndex); + atten *= shadowScalar; + } + + UnityLight light; + light.color.xyz = lightData.color.xyz * atten; + light.dir.xyz = mul((float3x3) g_mViewToWorld, -lightData.lightAxisZ).xyz; + + ints += EvalMaterial(light, ind); + } + + uint l=0; + // don't need the outer loop since the lights are sorted by volume type + //while(l0) + { + uint uIndex = l0.0); // finally apply this to the dist att. + + const bool bHasShadow = (lgtDat.flags&HAS_SHADOW)!=0; + [branch]if(bHasShadow) + { + float shadowScalar = SampleShadow(SPOT_LIGHT, vPw, 0, lgtDat.shadowLightIndex); + atten *= shadowScalar; + } + + UnityLight light; + light.color.xyz = lgtDat.color.xyz*atten*angularAtt.xyz; + light.dir.xyz = mul((float3x3) g_mViewToWorld, vL).xyz; //unity_CameraToWorld + + ints += EvalMaterial(light, ind); + + ++l; uIndex = l11 ? float4(1.0,1.0,1.0,1.0) : kRadarColors[nColorIndex]; + + return lerp(c, pow(col.xyz, 2.2), 0.3*col.w); +} + + + +#endif diff --git a/Assets/ScriptableRenderLoop/fptl/LightingUtils.hlsl.meta b/Assets/ScriptableRenderLoop/fptl/LightingUtils.hlsl.meta new file mode 100644 index 00000000000..1fbde467593 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/LightingUtils.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 0f0336214df2a1845afb1ce1b72075f5 +timeCreated: 1476376272 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/ReflectionTemplate.hlsl b/Assets/ScriptableRenderLoop/fptl/ReflectionTemplate.hlsl new file mode 100644 index 00000000000..4050d1d051d --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/ReflectionTemplate.hlsl @@ -0,0 +1,165 @@ +#ifndef __REFLECTIONTEMPLATE_H__ +#define __REFLECTIONTEMPLATE_H__ + +#include "UnityCG.cginc" +#include "UnityStandardBRDF.cginc" +#include "UnityStandardUtils.cginc" +#include "UnityPBSLighting.cginc" + + +UNITY_DECLARE_TEXCUBEARRAY(_reflCubeTextures); +UNITY_DECLARE_TEXCUBE(_reflRootCubeTexture); +//uniform int _reflRootSliceIndex; +uniform float _reflRootHdrDecodeMult; +uniform float _reflRootHdrDecodeExp; + + +half3 Unity_GlossyEnvironment (UNITY_ARGS_TEXCUBEARRAY(tex), int sliceIndex, half4 hdr, Unity_GlossyEnvironmentData glossIn); + +half3 distanceFromAABB(half3 p, half3 aabbMin, half3 aabbMax) +{ + return max(max(p - aabbMax, aabbMin - p), half3(0.0, 0.0, 0.0)); +} + + +float3 ExecuteReflectionList(uint start, uint numReflProbes, float3 vP, float3 vNw, float3 Vworld, float smoothness) +{ + float3 worldNormalRefl = reflect(-Vworld, vNw); + + float3 vspaceRefl = mul((float3x3) g_mWorldToView, worldNormalRefl).xyz; + + float percRoughness = SmoothnessToPerceptualRoughness(smoothness); + + UnityLight light; + light.color = 0; + light.dir = 0; + + float3 ints = 0; + + // root ibl begin + { + Unity_GlossyEnvironmentData g; + g.roughness = percRoughness; + g.reflUVW = worldNormalRefl; + + half3 env0 = Unity_GlossyEnvironment(UNITY_PASS_TEXCUBE(_reflRootCubeTexture), float4(_reflRootHdrDecodeMult, _reflRootHdrDecodeExp, 0.0, 0.0), g); + //half3 env0 = Unity_GlossyEnvironment(UNITY_PASS_TEXCUBEARRAY(_reflCubeTextures), _reflRootSliceIndex, float4(_reflRootHdrDecodeMult, _reflRootHdrDecodeExp, 0.0, 0.0), g); + + UnityIndirect ind; + ind.diffuse = 0; + ind.specular = env0;// * data.occlusion; + ints = EvalIndirectSpecular(light, ind); + } + // root ibl end + + uint l=0; + // don't need the outer loop since the probes are sorted by volume type (currently one type in fact) + //while(l0) + { + uint uIndex = l= 30) + // TODO: remove pow, store cubemap mips differently + half perceptualRoughness = pow(glossIn.roughness, 3.0/4.0); +#else + half perceptualRoughness = glossIn.roughness; // MM: switched to this +#endif + //perceptualRoughness = sqrt(sqrt(2/(64.0+2))); // spec power to the square root of real roughness + +#if 0 + float m = perceptualRoughness*perceptualRoughness; // m is the real roughness parameter + const float fEps = 1.192092896e-07F; // smallest such that 1.0+FLT_EPSILON != 1.0 (+1e-4h is NOT good here. is visibly very wrong) + float n = (2.0/max(fEps, m*m))-2.0; // remap to spec power. See eq. 21 in --> https://dl.dropboxusercontent.com/u/55891920/papers/mm_brdf.pdf + + n /= 4; // remap from n_dot_h formulatino to n_dot_r. See section "Pre-convolved Cube Maps vs Path Tracers" --> https://s3.amazonaws.com/docs.knaldtech.com/knald/1.0.0/lys_power_drops.html + + perceptualRoughness = pow( 2/(n+2), 0.25); // remap back to square root of real roughness +#else + // MM: came up with a surprisingly close approximation to what the #if 0'ed out code above does. + perceptualRoughness = perceptualRoughness*(1.7 - 0.7*perceptualRoughness); +#endif + + + + half mip = perceptualRoughness * UNITY_SPECCUBE_LOD_STEPS; + half4 rgbm = UNITY_SAMPLE_TEXCUBEARRAY_LOD(tex, float4(glossIn.reflUVW.xyz, sliceIndex), mip); + + return DecodeHDR(rgbm, hdr); +} + + + + +#endif diff --git a/Assets/ScriptableRenderLoop/fptl/ReflectionTemplate.hlsl.meta b/Assets/ScriptableRenderLoop/fptl/ReflectionTemplate.hlsl.meta new file mode 100644 index 00000000000..18e3e1545a1 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/ReflectionTemplate.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 7e1ced85dc3e259469da295c01d95ecd +timeCreated: 1476168722 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingTemplate.hlsl b/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingTemplate.hlsl new file mode 100644 index 00000000000..9701fa2e5d1 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingTemplate.hlsl @@ -0,0 +1,19 @@ +#ifndef __REGULARFORWARDLIGHTINGTEMPLATE_H__ +#define __REGULARFORWARDLIGHTINGTEMPLATE_H__ + + +#include "RegularForwardLightingUtils.hlsl" +#include "LightingTemplate.hlsl" + + +float3 ExecuteLightList(out uint numLightsProcessed, uint2 pixCoord, float3 vP, float3 vPw, float3 Vworld) +{ + uint start = 0, numLights = 0; + GetCountAndStart(start, numLights, DIRECT_LIGHT); + + numLightsProcessed = numLights; // mainly for debugging/heat maps + return ExecuteLightList(start, numLights, vP, vPw, Vworld); +} + + +#endif diff --git a/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingTemplate.hlsl.meta b/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingTemplate.hlsl.meta new file mode 100644 index 00000000000..0bb4c6f6594 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingTemplate.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: addc185d48decc34d9bf21cb3a4ea28c +timeCreated: 1476774180 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingUtils.hlsl b/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingUtils.hlsl new file mode 100644 index 00000000000..b6a504ffc7d --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingUtils.hlsl @@ -0,0 +1,25 @@ +#ifndef __REGULARFORWARDLIGHTINGUTILS_H__ +#define __REGULARFORWARDLIGHTINGUTILS_H__ + + +#include "LightingUtils.hlsl" + + +StructuredBuffer g_vLightData; +StructuredBuffer g_vLightListMeshInst; // build on CPU if in use. direct lights first, then reflection probes. + +uniform int g_numLights; +uniform int g_numReflectionProbes; + +void GetCountAndStart(out uint start, out uint nrLights, uint model) +{ + start = model==REFLECTION_LIGHT ? g_numLights : 0; // offset by numLights entries + nrLights = model==REFLECTION_LIGHT ? g_numReflectionProbes : g_numLights; +} + +uint FetchIndex(const uint start, const uint l) +{ + return g_vLightListMeshInst[start+l]; +} + +#endif \ No newline at end of file diff --git a/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingUtils.hlsl.meta b/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingUtils.hlsl.meta new file mode 100644 index 00000000000..d1b8b11aba9 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/RegularForwardLightingUtils.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 13dff6ea8f6c55743a3cbb841066cc27 +timeCreated: 1476774180 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/RegularForwardReflectionTemplate.hlsl b/Assets/ScriptableRenderLoop/fptl/RegularForwardReflectionTemplate.hlsl new file mode 100644 index 00000000000..b9593acec28 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/RegularForwardReflectionTemplate.hlsl @@ -0,0 +1,18 @@ +#ifndef __REGULARFORWARDREFLECTIONTEMPLATE_H__ +#define __REGULARFORWARDREFLECTIONTEMPLATE_H__ + + +#include "RegularForwardLightingUtils.hlsl" +#include "ReflectionTemplate.hlsl" + + +float3 ExecuteReflectionList(out uint numReflectionProbesProcessed, uint2 pixCoord, float3 vP, float3 vNw, float3 Vworld, float smoothness) +{ + uint start = 0, numReflectionProbes = 0; + GetCountAndStart(start, numReflectionProbes, REFLECTION_LIGHT); + + numReflectionProbesProcessed = numReflectionProbes; // mainly for debugging/heat maps + return ExecuteReflectionList(start, numReflectionProbes, vP, vNw, Vworld, smoothness); +} + +#endif diff --git a/Assets/ScriptableRenderLoop/fptl/RegularForwardReflectionTemplate.hlsl.meta b/Assets/ScriptableRenderLoop/fptl/RegularForwardReflectionTemplate.hlsl.meta new file mode 100644 index 00000000000..0b41812b24b --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/RegularForwardReflectionTemplate.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 61d33edab0cf72c4e881ea8c05dcd596 +timeCreated: 1476774180 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/StandardTest.shader b/Assets/ScriptableRenderLoop/fptl/StandardTest.shader new file mode 100644 index 00000000000..9b9656c3538 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/StandardTest.shader @@ -0,0 +1,172 @@ +Shader "Experim/StdShader" +{ + Properties + { + _Color("Color", Color) = (1,1,1,1) + _MainTex("Albedo", 2D) = "white" {} + + _Cutoff("Alpha Cutoff", Range(0.0, 1.0)) = 0.5 + + _Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5 + _GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0 + [Enum(Metallic Alpha,0,Albedo Alpha,1)] _SmoothnessTextureChannel ("Smoothness texture channel", Float) = 0 + + [Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0 + _MetallicGlossMap("Metallic", 2D) = "white" {} + + [ToggleOff] _SpecularHighlights("Specular Highlights", Float) = 1.0 + [ToggleOff] _GlossyReflections("Glossy Reflections", Float) = 1.0 + + _BumpScale("Scale", Float) = 1.0 + _BumpMap("Normal Map", 2D) = "bump" {} + + _Parallax ("Height Scale", Range (0.005, 0.08)) = 0.02 + _ParallaxMap ("Height Map", 2D) = "black" {} + + _OcclusionStrength("Strength", Range(0.0, 1.0)) = 1.0 + _OcclusionMap("Occlusion", 2D) = "white" {} + + _EmissionColor("Color", Color) = (0,0,0) + _EmissionMap("Emission", 2D) = "white" {} + + _DetailMask("Detail Mask", 2D) = "white" {} + + _DetailAlbedoMap("Detail Albedo x2", 2D) = "grey" {} + _DetailNormalMapScale("Scale", Float) = 1.0 + _DetailNormalMap("Normal Map", 2D) = "bump" {} + + [Enum(UV0,0,UV1,1)] _UVSec ("UV Set for secondary textures", Float) = 0 + + + // Blending state + [HideInInspector] _Mode ("__mode", Float) = 0.0 + [HideInInspector] _SrcBlend ("__src", Float) = 1.0 + [HideInInspector] _DstBlend ("__dst", Float) = 0.0 + [HideInInspector] _ZWrite ("__zw", Float) = 1.0 + } + + CGINCLUDE + #define UNITY_SETUP_BRDF_INPUT MetallicSetup + ENDCG + + SubShader + { + Tags { "RenderType" = "Opaque" "PerformanceChecks" = "False" } + LOD 300 + + + // ------------------------------------------------------------------ + // Forward pass + Pass + { + Name "FORWARD" + Tags { "LightMode" = "ForwardSinglePass" } + + Blend [_SrcBlend] [_DstBlend] + ZWrite [_ZWrite] + + CGPROGRAM + #pragma target 5.0 + + // ------------------------------------- + + #pragma shader_feature _NORMALMAP + #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON + #pragma shader_feature _EMISSION + #pragma shader_feature _METALLICGLOSSMAP + #pragma shader_feature ___ _DETAIL_MULX2 + #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF + #pragma shader_feature _ _GLOSSYREFLECTIONS_OFF + #pragma shader_feature _PARALLAXMAP + + #pragma multi_compile LIGHTMAP_OFF LIGHTMAP_ON + #pragma multi_compile DIRLIGHTMAP_OFF DIRLIGHTMAP_COMBINED DIRLIGHTMAP_SEPARATE + #pragma multi_compile DYNAMICLIGHTMAP_OFF DYNAMICLIGHTMAP_ON + #pragma multi_compile_fog + + #pragma vertex vertForward + #pragma fragment fragForward + + #include "UnityStandardForwardNew.cginc" + + + ENDCG + } + + // ------------------------------------------------------------------ + // Depth Only + Pass + { + Name "DEPTHONLY" + Tags { "LightMode" = "DepthOnly" } + + Blend [_SrcBlend] [_DstBlend] + //ZWrite [_ZWrite] + ZWrite On ZTest LEqual + + CGPROGRAM + #pragma target 5.0 + + // TODO: figure out what's needed here wrt. alpha test etc. + + #pragma shader_feature _NORMALMAP + #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON + #pragma shader_feature _EMISSION + #pragma shader_feature _METALLICGLOSSMAP + #pragma shader_feature ___ _DETAIL_MULX2 + #pragma shader_feature _ _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + #pragma shader_feature _ _SPECULARHIGHLIGHTS_OFF + #pragma shader_feature _ _GLOSSYREFLECTIONS_OFF + #pragma shader_feature _PARALLAXMAP + + #pragma multi_compile LIGHTMAP_OFF LIGHTMAP_ON + #pragma multi_compile DIRLIGHTMAP_OFF DIRLIGHTMAP_COMBINED DIRLIGHTMAP_SEPARATE + #pragma multi_compile DYNAMICLIGHTMAP_OFF DYNAMICLIGHTMAP_ON + #pragma multi_compile_fog + #pragma multi_compile TILED_FORWARD REGULAR_FORWARD + + #pragma vertex vertForward + #pragma fragment fragNoLight + + #include "UnityStandardForwardNew.cginc" + + + ENDCG + } + + + // ------------------------------------------------------------------ + // Shadow rendering pass + Pass { + Name "ShadowCaster" + Tags { "LightMode" = "ShadowCaster" } + + ZWrite On ZTest LEqual + + CGPROGRAM + #pragma target 5.0 + + // ------------------------------------- + + + #pragma shader_feature _ _ALPHATEST_ON _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON + #pragma shader_feature _METALLICGLOSSMAP + #pragma multi_compile_shadowcaster + + #pragma vertex vertShadowCaster + #pragma fragment fragShadowCaster + + #include "UnityStandardShadow.cginc" + + ENDCG + } + // ------------------------------------------------------------------ + // Deferred pass + + } + + + FallBack "VertexLit" + CustomEditor "StandardShaderGUI" +} diff --git a/Assets/ScriptableRenderLoop/fptl/StandardTest.shader.meta b/Assets/ScriptableRenderLoop/fptl/StandardTest.shader.meta new file mode 100644 index 00000000000..84a30d957f9 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/StandardTest.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8f28d6dbfdba66d4dbae80224aca5669 +timeCreated: 1476168726 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/TiledLightingTemplate.hlsl b/Assets/ScriptableRenderLoop/fptl/TiledLightingTemplate.hlsl new file mode 100644 index 00000000000..e4227dc6d84 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/TiledLightingTemplate.hlsl @@ -0,0 +1,23 @@ +#ifndef __TILEDLIGHTINGTEMPLATE_H__ +#define __TILEDLIGHTINGTEMPLATE_H__ + + +#include "TiledLightingUtils.hlsl" +#include "LightingTemplate.hlsl" + + + +float3 ExecuteLightList(out uint numLightsProcessed, uint2 pixCoord, float3 vP, float3 vPw, float3 Vworld) +{ + uint nrTilesX = (g_widthRT+15)/16; uint nrTilesY = (g_heightRT+15)/16; + uint2 tileIDX = pixCoord / 16; + + uint start = 0, numLights = 0; + GetCountAndStart(start, numLights, tileIDX, nrTilesX, nrTilesY, vP.z, DIRECT_LIGHT); + + numLightsProcessed = numLights; // mainly for debugging/heat maps + return ExecuteLightList(start, numLights, vP, vPw, Vworld); +} + + +#endif diff --git a/Assets/ScriptableRenderLoop/fptl/TiledLightingTemplate.hlsl.meta b/Assets/ScriptableRenderLoop/fptl/TiledLightingTemplate.hlsl.meta new file mode 100644 index 00000000000..c882561c0e5 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/TiledLightingTemplate.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b25f3fae508f5c04f8f15d77515e4a23 +timeCreated: 1476168722 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/TiledLightingUtils.hlsl b/Assets/ScriptableRenderLoop/fptl/TiledLightingUtils.hlsl new file mode 100644 index 00000000000..84e251120ee --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/TiledLightingUtils.hlsl @@ -0,0 +1,88 @@ +#ifndef __TILEDLIGHTINGUTILS_H__ +#define __TILEDLIGHTINGUTILS_H__ + + +#include "LightingUtils.hlsl" + + +StructuredBuffer g_vLightData; +StructuredBuffer g_vLightListGlobal; + +void GetCountAndStartOpaque(out uint uStart, out uint uNrLights, uint2 tileIDX, int nrTilesX, int nrTilesY, float linDepth, uint model) +{ + const int tileOffs = (tileIDX.y+model*nrTilesY)*nrTilesX+tileIDX.x; + + uNrLights = g_vLightListGlobal[ 16*tileOffs + 0]&0xffff; + uStart = tileOffs; +} + +uint FetchIndexOpaque(const uint tileOffs, const uint l) +{ + const uint l1 = l+1; + return (g_vLightListGlobal[ 16*tileOffs + (l1>>1)]>>((l1&1)*16))&0xffff; +} + +#ifdef OPAQUES_ONLY + +void GetCountAndStart(out uint uStart, out uint uNrLights, uint2 tileIDX, int nrTilesX, int nrTilesY, float linDepth, uint model) +{ + GetCountAndStartOpaque(uStart, uNrLights, tileIDX, nrTilesX, nrTilesY, linDepth, model); +} + +uint FetchIndex(const uint tileOffs, const uint l) +{ + return FetchIndexOpaque(tileOffs, l); +} + +#else + +uniform float g_fClustScale; +uniform float g_fClustBase; +uniform float g_fNearPlane; +uniform float g_fFarPlane; +//uniform int g_iLog2NumClusters; // numClusters = (1< g_vLayeredOffsetsBuffer; +Buffer g_logBaseBuffer; + +uniform uint g_isLogBaseBufferEnabled; +uniform uint g_isOpaquesOnlyEnabled; + +void GetCountAndStart(out uint uStart, out uint uNrLights, uint2 tileIDX, int nrTilesX, int nrTilesY, float linDepth, uint model) +{ + if(g_isOpaquesOnlyEnabled) + { + GetCountAndStartOpaque(uStart, uNrLights, tileIDX, nrTilesX, nrTilesY, linDepth, model); + } + else + { + float logBase = g_fClustBase; + if(g_isLogBaseBufferEnabled) + logBase = g_logBaseBuffer[tileIDX.y*nrTilesX + tileIDX.x]; + + int clustIdx = SnapToClusterIdxFlex(linDepth, logBase, g_isLogBaseBufferEnabled!=0); + + int nrClusters = (1<>27)&31; + } +} + +uint FetchIndex(const uint tileOffs, const uint l) +{ + if(g_isOpaquesOnlyEnabled) + return FetchIndexOpaque(tileOffs, l); + else + return g_vLightListGlobal[ tileOffs+l ]; +} + +#endif + + + +#endif diff --git a/Assets/ScriptableRenderLoop/fptl/TiledLightingUtils.hlsl.meta b/Assets/ScriptableRenderLoop/fptl/TiledLightingUtils.hlsl.meta new file mode 100644 index 00000000000..644bce4155b --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/TiledLightingUtils.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 25c458a8106d44444bea6b074b79cfdf +timeCreated: 1476168722 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/TiledReflectionTemplate.hlsl b/Assets/ScriptableRenderLoop/fptl/TiledReflectionTemplate.hlsl new file mode 100644 index 00000000000..8784287f2fd --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/TiledReflectionTemplate.hlsl @@ -0,0 +1,23 @@ +#ifndef __TILEDREFLECTIONTEMPLATE_H__ +#define __TILEDREFLECTIONTEMPLATE_H__ + + +#include "TiledLightingUtils.hlsl" +#include "ReflectionTemplate.hlsl" + + + +float3 ExecuteReflectionList(out uint numReflectionProbesProcessed, uint2 pixCoord, float3 vP, float3 vNw, float3 Vworld, float smoothness) +{ + uint nrTilesX = (g_widthRT+15)/16; uint nrTilesY = (g_heightRT+15)/16; + uint2 tileIDX = pixCoord / 16; + + uint start = 0, numReflectionProbes = 0; + GetCountAndStart(start, numReflectionProbes, tileIDX, nrTilesX, nrTilesY, vP.z, REFLECTION_LIGHT); + + numReflectionProbesProcessed = numReflectionProbes; // mainly for debugging/heat maps + return ExecuteReflectionList(start, numReflectionProbes, vP, vNw, Vworld, smoothness); +} + + +#endif diff --git a/Assets/ScriptableRenderLoop/fptl/TiledReflectionTemplate.hlsl.meta b/Assets/ScriptableRenderLoop/fptl/TiledReflectionTemplate.hlsl.meta new file mode 100644 index 00000000000..9bce4e7c48c --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/TiledReflectionTemplate.hlsl.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: a9b744e06937f8d4ca633dfa63e357b4 +timeCreated: 1476168722 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/UnityStandardForwardNew.cginc b/Assets/ScriptableRenderLoop/fptl/UnityStandardForwardNew.cginc new file mode 100644 index 00000000000..8946675a0b9 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/UnityStandardForwardNew.cginc @@ -0,0 +1,154 @@ +#ifndef UNITY_STANDARD_FORWARDNEW_INCLUDED +#define UNITY_STANDARD_FORWARDNEW_INCLUDED + + +// NOTE: had to split shadow functions into separate file, +// otherwise compiler gives trouble with LIGHTING_COORDS macro (in UnityStandardCore.cginc) + +#include "UnityStandardConfig.cginc" +#include "UnityStandardCore.cginc" + +struct VertexOutputForwardNew +{ + float4 pos : SV_POSITION; + float4 tex : TEXCOORD0; + half4 ambientOrLightmapUV : TEXCOORD1; // SH or Lightmap UV + half4 tangentToWorldAndParallax[3] : TEXCOORD2; // [3x3:tangentToWorld | 1x3:empty] + + LIGHTING_COORDS(5,6) + UNITY_FOG_COORDS(7) + + UNITY_VERTEX_OUTPUT_STEREO +}; + + + +VertexOutputForwardNew vertForward(VertexInput v) +{ + UNITY_SETUP_INSTANCE_ID(v); + VertexOutputForwardNew o; + UNITY_INITIALIZE_OUTPUT(VertexOutputForwardNew, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + float4 posWorld = mul(unity_ObjectToWorld, v.vertex); + o.pos = UnityObjectToClipPos(v.vertex); + + o.tex = TexCoords(v); + + float3 normalWorld = UnityObjectToWorldNormal(v.normal); + #ifdef _TANGENT_TO_WORLD + float4 tangentWorld = float4(UnityObjectToWorldDir(v.tangent.xyz), v.tangent.w); + + float3x3 tangentToWorld = CreateTangentToWorldPerVertex(normalWorld, tangentWorld.xyz, tangentWorld.w); + o.tangentToWorldAndParallax[0].xyz = tangentToWorld[0]; + o.tangentToWorldAndParallax[1].xyz = tangentToWorld[1]; + o.tangentToWorldAndParallax[2].xyz = tangentToWorld[2]; + #else + o.tangentToWorldAndParallax[0].xyz = 0; + o.tangentToWorldAndParallax[1].xyz = 0; + o.tangentToWorldAndParallax[2].xyz = normalWorld; + #endif + + o.ambientOrLightmapUV = VertexGIForward(v, posWorld, normalWorld); + + UNITY_TRANSFER_FOG(o,o.pos); + + return o; +} + +#include "LightingUtils.hlsl" + +static FragmentCommonData gdata; +static float occlusion; + +half4 fragNoLight(VertexOutputForwardNew i) : SV_Target +{ + float linZ = GetLinearZFromSVPosW(i.pos.w); // matching script side where camera space is right handed. + float3 vP = GetViewPosFromLinDepth(i.pos.xy, linZ); + float3 vPw = mul(g_mViewToWorld, float4(vP,1.0)).xyz; + float3 Vworld = normalize(mul((float3x3) g_mViewToWorld, -vP).xyz); // not same as unity_CameraToWorld + +#ifdef _PARALLAXMAP + half3 tangent = i.tangentToWorldAndParallax[0].xyz; + half3 bitangent = i.tangentToWorldAndParallax[1].xyz; + half3 normal = i.tangentToWorldAndParallax[2].xyz; + float3 vDirForParallax = float3( dot(tangent, Vworld), dot(bitangent, Vworld), dot(normal, Vworld)); +#else + float3 vDirForParallax = Vworld; +#endif + gdata = FragmentSetup(i.tex, -Vworld, vDirForParallax, i.tangentToWorldAndParallax, vPw); // eyeVec = -Vworld + + return OutputForward (float4(0.0,0.0,0.0,1.0), gdata.alpha); // figure out some alpha test stuff +} + + + + +float3 EvalMaterial(UnityLight light, UnityIndirect ind) +{ + return UNITY_BRDF_PBS(gdata.diffColor, gdata.specColor, gdata.oneMinusReflectivity, gdata.smoothness, gdata.normalWorld, -gdata.eyeVec, light, ind); +} + +float3 EvalIndirectSpecular(UnityLight light, UnityIndirect ind) +{ + return occlusion * UNITY_BRDF_PBS(gdata.diffColor, gdata.specColor, gdata.oneMinusReflectivity, gdata.smoothness, gdata.normalWorld, -gdata.eyeVec, light, ind); +} + + +#ifdef REGULAR_FORWARD + +#include "RegularForwardLightingTemplate.hlsl" +#include "RegularForwardReflectionTemplate.hlsl" + +#else + +#include "TiledLightingTemplate.hlsl" +#include "TiledReflectionTemplate.hlsl" + +#endif + + +half4 fragForward(VertexOutputForwardNew i) : SV_Target +{ + float linZ = GetLinearZFromSVPosW(i.pos.w); // matching script side where camera space is right handed. + float3 vP = GetViewPosFromLinDepth(i.pos.xy, linZ); + float3 vPw = mul(g_mViewToWorld, float4(vP,1.0)).xyz; + float3 Vworld = normalize(mul((float3x3) g_mViewToWorld, -vP).xyz); // not same as unity_CameraToWorld + +#ifdef _PARALLAXMAP + half3 tangent = i.tangentToWorldAndParallax[0].xyz; + half3 bitangent = i.tangentToWorldAndParallax[1].xyz; + half3 normal = i.tangentToWorldAndParallax[2].xyz; + float3 vDirForParallax = float3( dot(tangent, Vworld), dot(bitangent, Vworld), dot(normal, Vworld)); +#else + float3 vDirForParallax = Vworld; +#endif + gdata = FragmentSetup(i.tex, -Vworld, vDirForParallax, i.tangentToWorldAndParallax, vPw); // eyeVec = -Vworld + + + uint2 pixCoord = ((uint2) i.pos.xy); + + float atten = 1.0; + occlusion = Occlusion(i.tex.xy); + UnityGI gi = FragmentGI (gdata, occlusion, i.ambientOrLightmapUV, atten, DummyLight(), false); + + uint numLightsProcessed = 0, numReflectionsProcessed = 0; + float3 res = 0; + + // direct light contributions + res += ExecuteLightList(numLightsProcessed, pixCoord, vP, vPw, Vworld); + + // specular GI + res += ExecuteReflectionList(numReflectionsProcessed, pixCoord, vP, gdata.normalWorld, Vworld, gdata.smoothness); + + // diffuse GI + res += UNITY_BRDF_PBS (gdata.diffColor, gdata.specColor, gdata.oneMinusReflectivity, gdata.smoothness, gdata.normalWorld, -gdata.eyeVec, gi.light, gi.indirect).xyz; + res += UNITY_BRDF_GI (gdata.diffColor, gdata.specColor, gdata.oneMinusReflectivity, gdata.smoothness, gdata.normalWorld, -gdata.eyeVec, occlusion, gi); + + //res = OverlayHeatMap(numLightsProcessed, res); + + //UNITY_APPLY_FOG(i.fogCoord, res); + return OutputForward (float4(res,1.0), gdata.alpha); +} + +#endif diff --git a/Assets/ScriptableRenderLoop/fptl/UnityStandardForwardNew.cginc.meta b/Assets/ScriptableRenderLoop/fptl/UnityStandardForwardNew.cginc.meta new file mode 100644 index 00000000000..2f4fe8a86a9 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/UnityStandardForwardNew.cginc.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: c185aa276c9670d4381a830ece205577 +timeCreated: 1476168722 +licenseType: Pro +ShaderImporter: + defaultTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/lightlistbuild-clustered.compute b/Assets/ScriptableRenderLoop/fptl/lightlistbuild-clustered.compute index 20fee6b7ebe..5a4773bc49f 100644 --- a/Assets/ScriptableRenderLoop/fptl/lightlistbuild-clustered.compute +++ b/Assets/ScriptableRenderLoop/fptl/lightlistbuild-clustered.compute @@ -1,7 +1,11 @@ -#pragma kernel TileLightListGen +#pragma kernel TileLightListGen_NoDepthRT LIGHTLISTGEN=TileLightListGen_NoDepthRT +#pragma kernel TileLightListGen_DepthRT LIGHTLISTGEN=TileLightListGen_DepthRT ENABLE_DEPTH_TEXTURE_BACKPLANE +#pragma kernel TileLightListGen_DepthRT_MSAA LIGHTLISTGEN=TileLightListGen_DepthRT_MSAA ENABLE_DEPTH_TEXTURE_BACKPLANE MSAA_ENABLED +#pragma kernel ClearAtomic + #include "..\common\ShaderBase.h" -#include "LightDefinitions.cs" +#include "LightDefinitions.cs.hlsl" //#define EXACT_EDGE_TESTS #define PERFORM_SPHERICAL_INTERSECTION_TESTS @@ -17,9 +21,11 @@ uniform float g_fNearPlane; uniform float g_fFarPlane; uniform int g_iLog2NumClusters; // numClusters = (1< g_depth_tex : register( t0 ); +Texture2DMS g_depth_tex : register( t0 ); #else Texture2D g_depth_tex : register( t0 ); #endif @@ -36,7 +42,7 @@ RWBuffer g_LayeredOffset : register( u1 ); RWBuffer g_LayeredSingleIdxBuffer : register( u2 ); #ifdef ENABLE_DEPTH_TEXTURE_BACKPLANE -RWBuffer g_fModulUserscale : register( u3 ); +RWBuffer g_logBaseBuffer : register( u3 ); #endif @@ -62,44 +68,6 @@ groupshared uint lightOffsSph; #endif -int SnapToClusterIdx(float z_in, float fModulUserScale) -{ -#ifndef LEFT_HAND_COORDINATES - float z = -z_in; -#else - float z = z_in; -#endif - - float userscale = g_fClustScale; -#ifdef ENABLE_DEPTH_TEXTURE_BACKPLANE - userscale *= fModulUserScale; -#endif - - // using the inverse of the geometric series - const float dist = max(0, z-g_fNearPlane); - return (int) clamp( log2(dist*userscale*(g_fClustBase-1.0f) + 1) / log2(g_fClustBase), 0.0, (float) ((1<>1]>>(16*(l&1)))&0xffff; - bool bIsHit = ((val>>0)&0xff)<=k && k<=((val>>8)&0xff); + bool bIsHit = ((val>>0)&0xff)<=((uint) k) && ((uint) k)<=((val>>8)&0xff); if(bIsHit) { #ifdef CONV_HULL_TEST_ENABLED - float depthAtNearZ = ClusterIdxToZ(k, fModulUserScale); - float depthAtFarZ = ClusterIdxToZ(k+1, fModulUserScale); + float depthAtNearZ = ClusterIdxToZ(k, suggestedBase); + float depthAtFarZ = ClusterIdxToZ(k+1, suggestedBase); for(int p=0; p<6; p++) { @@ -183,19 +151,24 @@ bool CheckIntersection(int l, int k, uint2 viTilLL, uint2 viTilUR, float fModulU bool CheckIntersectionBasic(int l, int k) { unsigned int val = (clusterIdxs[l>>1]>>(16*(l&1)))&0xffff; - return ((val>>0)&0xff)<=k && k<=((val>>8)&0xff); + return ((val>>0)&0xff)<=((uint) k) && ((uint) k)<=((val>>8)&0xff); } [numthreads(NR_THREADS, 1, 1)] -void TileLightListGen(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupID) +void LIGHTLISTGEN(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupID) { uint2 tileIDX = u3GroupID.xy; uint t=threadID; uint iWidth; uint iHeight; +#ifdef MSAA_ENABLED + uint iNumSamplesMSAA; + g_depth_tex.GetDimensions(iWidth, iHeight, iNumSamplesMSAA); +#else g_depth_tex.GetDimensions(iWidth, iHeight); +#endif uint nrTilesX = (iWidth+15)/16; uint nrTilesY = (iHeight+15)/16; @@ -225,7 +198,7 @@ void TileLightListGen(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupI { uint2 uPixCrd = min( uint2(viTilLL.x+(idx&0xf), viTilLL.y+(idx>>4)), uint2(iWidth-1, iHeight-1) ); #ifdef MSAA_ENABLED - for(int i=0; ivTileLL.xy) && all(vMi.xyzvTileLL.xy) && all(vMi.xy0.0 ? ((g_fFarPlane-g_fNearPlane)/fDenom) : 1.0; // readjust to new range. + float suggestedBase = SuggestLogBase50(fTileFarPlane); #else float fTileFarPlane = g_fFarPlane; - float fModulUserScale = 1.0; + float suggestedBase = g_fClustBase; #endif @@ -308,15 +276,17 @@ void TileLightListGen(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupI #endif //////////// cell specific code - for(int l=(int) t; l<((iNrCoarseLights+1)>>1); l += NR_THREADS) { - const int l0 = coarseList[2*l+0], l1 = coarseList[min(2*l+1,iNrCoarseLights)]; - const unsigned int clustIdxMi0 = (const unsigned int) min(255,SnapToClusterIdx(GetLinearDepth(g_vBoundsBuffer[l0].z), fModulUserScale)); - const unsigned int clustIdxMa0 = (const unsigned int) min(255,SnapToClusterIdx(GetLinearDepth(g_vBoundsBuffer[l0+g_iNrVisibLights].z), fModulUserScale)); - const unsigned int clustIdxMi1 = (const unsigned int) min(255,SnapToClusterIdx(GetLinearDepth(g_vBoundsBuffer[l1].z), fModulUserScale)); - const unsigned int clustIdxMa1 = (const unsigned int) min(255,SnapToClusterIdx(GetLinearDepth(g_vBoundsBuffer[l1+g_iNrVisibLights].z), fModulUserScale)); + for(int l=(int) t; l<((iNrCoarseLights+1)>>1); l += NR_THREADS) + { + const int l0 = coarseList[2*l+0], l1 = coarseList[min(2*l+1,iNrCoarseLights)]; + const unsigned int clustIdxMi0 = (const unsigned int) min(255,SnapToClusterIdx(GetLinearDepth(g_vBoundsBuffer[l0].z), suggestedBase)); + const unsigned int clustIdxMa0 = (const unsigned int) min(255,SnapToClusterIdx(GetLinearDepth(g_vBoundsBuffer[l0+g_iNrVisibLights].z), suggestedBase)); + const unsigned int clustIdxMi1 = (const unsigned int) min(255,SnapToClusterIdx(GetLinearDepth(g_vBoundsBuffer[l1].z), suggestedBase)); + const unsigned int clustIdxMa1 = (const unsigned int) min(255,SnapToClusterIdx(GetLinearDepth(g_vBoundsBuffer[l1+g_iNrVisibLights].z), suggestedBase)); - clusterIdxs[l] = (clustIdxMa1<<24) | (clustIdxMi1<<16) | (clustIdxMa0<<8) | (clustIdxMi0<<0); + clusterIdxs[l] = (clustIdxMa1<<24) | (clustIdxMi1<<16) | (clustIdxMa0<<8) | (clustIdxMi0<<0); + } } #if !defined(XBONE) && !defined(PLAYSTATION4) @@ -344,7 +314,7 @@ void TileLightListGen(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupI InterlockedAdd(g_LayeredSingleIdxBuffer[0], iSpaceAvail, start); // alloc list memory } - int modelListCount[2]={0,0}; // direct light count and reflection lights + int modelListCount[NR_LIGHT_MODELS]={0,0}; // direct light count and reflection lights uint offs = start; for(int ll=0; ll0.0001 ? (maxZdir.z/len) : len; // since len>=(maxZdir.z/len) we can use len as an approximate value when len<=epsilon float fOffs = scalarProj*fRad; @@ -518,17 +487,17 @@ int SphericalIntersectionTests(uint threadID, int iNrCoarseLights, float2 screen #endif #ifdef LEFT_HAND_COORDINATES - fRad = fRad + (vCen.z+fOffs)*worldDistAtDepthOne; + fRad = fRad + (center.z+fOffs)*worldDistAtDepthOne; #else - fRad = fRad + (vCen.z-fOffs)*worldDistAtDepthOne; + fRad = fRad + (center.z-fOffs)*worldDistAtDepthOne; #endif float a = dot(V,V); - float CdotV = dot(vCen,V); - float c = dot(vCen,vCen) - fRad*fRad; + float CdotV = dot(center,V); + float c = dot(center,center) - fRad*fRad; float fDescDivFour = CdotV*CdotV - a*c; - if(!(c<0 || (fDescDivFour>0 && CdotV>0))) // if ray hit bounding sphere + if(!(c<0 || (fDescDivFour>0 && CdotV>0))) // if ray misses bounding sphere coarseList[l]=0xffffffff; } @@ -560,14 +529,14 @@ int SphericalIntersectionTests(uint threadID, int iNrCoarseLights, float2 screen #ifdef EXACT_EDGE_TESTS -float3 GetHullVertex(const float3 vBoxX, const float3 vBoxY, const float3 vBoxZ, const float3 vCen, const float2 vScaleXZ, const int p) +float3 GetHullVertex(const float3 boxX, const float3 boxY, const float3 boxZ, const float3 center, const float2 scaleXY, const int p) { - const bool bIsTopVertex = (p&2)!=0; - float3 vScales = float3( ((p&1)!=0 ? 1.0f : (-1.0f))*(bIsTopVertex ? vScaleXZ.x : 1.0), (p&2)!=0 ? 1.0f : (-1.0f), ((p&4)!=0 ? 1.0f : (-1.0f))*(bIsTopVertex ? vScaleXZ.y : 1.0) ); - return (vScales.x*vBoxX + vScales.y*vBoxY + vScales.z*vBoxZ) + vCen; + const bool bIsTopVertex = (p&4)!=0; + float3 vScales = float3( ((p&1)!=0 ? 1.0f : (-1.0f))*(bIsTopVertex ? scaleXY.x : 1.0), ((p&2)!=0 ? 1.0f : (-1.0f))*(bIsTopVertex ? scaleXY.y : 1.0), (p&4)!=0 ? 1.0f : (-1.0f) ); + return (vScales.x*boxX + vScales.y*boxY + vScales.z*boxZ) + center; } -void GetHullEdge(out int idx_twin, out float3 vP0, out float3 vE0, const int e0, const float3 vBoxX, const float3 vBoxY, const float3 vBoxZ, const float3 vCen, const float2 vScaleXZ) +void GetHullEdge(out int idx0, out int idx_twin, out float3 vP0, out float3 vE0, const int e0, const float3 boxX, const float3 boxY, const float3 boxZ, const float3 center, const float2 scaleXY) { int iAxis = e0>>2; int iSwizzle = e0&0x3; @@ -577,9 +546,10 @@ void GetHullEdge(out int idx_twin, out float3 vP0, out float3 vE0, const int e0, const int i1 = i0 + (1<>1) ? Vec3(1,0,0) : Vec3(0,1,0))); + vE0 = iSection==0 ? vP0 : (((iSwizzle&0x2)==0 ? 1.0f : (-1.0f))*((iSwizzle&0x1)==(iSwizzle>>1) ? float3(1,0,0) : float3(0,1,0))); } int CullByExactEdgeTests(uint threadID, int iNrCoarseLights, uint2 viTilLL, uint2 viTilUR, float fTileFarPlane) @@ -622,24 +592,24 @@ int CullByExactEdgeTests(uint threadID, int iNrCoarseLights, uint2 viTilLL, uint GroupMemoryBarrierWithGroupSync(); #endif const int idxCoarse = coarseList[l]; - [branch]if(g_vLightData[idxCoarse].uLightType!=SPHERE_LIGHT) // don't bother doing edge tests for sphere lights since these have camera aligned bboxes. + [branch]if(g_vLightData[idxCoarse].lightType!=SPHERE_LIGHT) // don't bother doing edge tests for sphere lights since these have camera aligned bboxes. { SFiniteLightBound lgtDat = g_data[idxCoarse]; - const float3 vBoxX = lgtDat.vBoxAxisX.xyz; - const float3 vBoxY = lgtDat.vBoxAxisY.xyz; - const float3 vBoxZ = lgtDat.vBoxAxisZ.xyz; - const float3 vCen = lgtDat.vCen.xyz; - const float2 vScaleXZ = lgtDat.vScaleXZ; + const float3 boxX = lgtDat.boxAxisX.xyz; + const float3 boxY = lgtDat.boxAxisY.xyz; + const float3 boxZ = -lgtDat.boxAxisZ.xyz; // flip an axis to make it right handed since Determinant(worldToView)<0 + const float3 center = lgtDat.center.xyz; + const float2 scaleXY = lgtDat.scaleXY; for(int i=threadID; i0) ++positive; else if(fSignDist<0) ++negative; } @@ -684,4 +655,12 @@ int CullByExactEdgeTests(uint threadID, int iNrCoarseLights, uint2 viTilLL, uint #endif return lightOffs2; } -#endif \ No newline at end of file +#endif + + + +[numthreads(1, 1, 1)] +void ClearAtomic(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupID) +{ + g_LayeredSingleIdxBuffer[0]=0; +} \ No newline at end of file diff --git a/Assets/ScriptableRenderLoop/fptl/lightlistbuild-clustered.compute.meta b/Assets/ScriptableRenderLoop/fptl/lightlistbuild-clustered.compute.meta new file mode 100644 index 00000000000..ba9840dc7f6 --- /dev/null +++ b/Assets/ScriptableRenderLoop/fptl/lightlistbuild-clustered.compute.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 4c2d6eb0553e2514bba3ea9a85d8c53c +timeCreated: 1475075348 +licenseType: Pro +ComputeShaderImporter: + currentAPIMask: 4 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/ScriptableRenderLoop/fptl/lightlistbuild.compute b/Assets/ScriptableRenderLoop/fptl/lightlistbuild.compute index 62ded4cd6ee..945d1a801f9 100644 --- a/Assets/ScriptableRenderLoop/fptl/lightlistbuild.compute +++ b/Assets/ScriptableRenderLoop/fptl/lightlistbuild.compute @@ -1,12 +1,17 @@ +// The implementation is based on the demo on "fine pruned tiled lighting" published in GPU Pro 7. +// https://github.com/wolfgangfengel/GPU-Pro-7 + #pragma kernel TileLightListGen #include "..\common\ShaderBase.h" -#include "LightDefinitions.cs" +#include "LightDefinitions.cs.hlsl" #define FINE_PRUNING_ENABLED +#define PERFORM_SPHERICAL_INTERSECTION_TESTS uniform int g_iNrVisibLights; +uniform uint2 g_viDimensions; uniform float4x4 g_mInvScrProjection; uniform float4x4 g_mScrProjection; @@ -14,6 +19,7 @@ uniform float4x4 g_mScrProjection; Texture2D g_depth_tex : register( t0 ); StructuredBuffer g_vBoundsBuffer : register( t1 ); StructuredBuffer g_vLightData : register( t2 ); +StructuredBuffer g_data : register( t3 ); #define NR_THREADS 64 @@ -37,7 +43,11 @@ groupshared uint ldsDoesLightIntersect[2]; #endif groupshared int ldsNrLightsFinal; -groupshared int ldsModelListCount[2]; // since NR_LIGHT_MODELS is 2 +groupshared int ldsModelListCount[NR_LIGHT_MODELS]; // since NR_LIGHT_MODELS is 2 + +#ifdef PERFORM_SPHERICAL_INTERSECTION_TESTS +groupshared uint lightOffsSph; +#endif //float GetLinearDepth(float3 vP) @@ -68,8 +78,20 @@ float3 GetViewPosFromLinDepth(float2 v2ScrPos, float fLinDepth) #endif } +float GetOnePixDiagWorldDistAtDepthOne() +{ + float fSx = g_mScrProjection[0].x; + float fSy = g_mScrProjection[1].y; + + return length( float2(1.0/fSx,1.0/fSy) ); +} + void sortLightList(int localThreadID, int n); +#ifdef PERFORM_SPHERICAL_INTERSECTION_TESTS +int SphericalIntersectionTests(uint threadID, int iNrCoarseLights, float2 screenCoordinate); +#endif + [numthreads(NR_THREADS, 1, 1)] void TileLightListGen(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupID) @@ -80,9 +102,8 @@ void TileLightListGen(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupI if(t>4)), uint2(iWidth-1, iHeight-1) ); - const float fDpth = FetchDepth(g_depth_tex, uCrd); - if(fDpth>4)), uint2(iWidth-1, iHeight-1) ); + const float fDepth = FetchDepth(g_depth_tex, uCrd); + vLinDepths[i] = GetLinearDepth(fDepth); + if(fDepth>4)), uint2(iWidth-1, iHeight-1) ); - float3 v3ScrPos = float3(uCrd.x+0.5, uCrd.y+0.5, FetchDepth(g_depth_tex, uCrd)); - vLinDepths[i] = GetLinearDepth(v3ScrPos.z); - } - uint uLightsFlags[2] = {0,0}; int l=0; - // we need this outer loop for when we cannot assume a wavefront is 64 wide - // since in this case we cannot assume the lights will remain sorted by type -#if !defined(XBONE) && !defined(PLAYSTATION4) + // need this outer loop even on xb1 and ps4 since direct lights and + // reflection lights are kept in separate regions. while(l float2(distSq, fDist2D*lgtDat.cotan) ) ) uVal = 1; + if( all( float2(lightData.radiusSq, fSclProj) > float2(distSq, fDist2D*lightData.cotan) ) ) uVal = 1; } uLightsFlags[l<32 ? 0 : 1] |= (uVal<<(l&31)); ++l; idxCoarse = ldistSq) uVal = 1; + if(lightData.radiusSq>distSq) uVal = 1; } uLightsFlags[l<32 ? 0 : 1] |= (uVal<<(l&31)); ++l; idxCoarse = l=MAX_TYPES) ++l; -#endif } InterlockedOr(ldsDoesLightIntersect[0], uLightsFlags[0]); @@ -305,7 +324,7 @@ void TileLightListGen(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupI int nrLightsCombinedList = ldsNrLightsFinal float3(distSq, sqrt(distSqB)*lgtDat.fPenumbra, 0.0) ) ) uVal = 1; +//if( all( float3(lightData.radiusSq, fSclProj, fSclProj) > float3(distSq, sqrt(distSqB)*lightData.fPenumbra, 0.0) ) ) uVal = 1; // previous new version //float fDist2DSqr = bIsSpotDisc ? dot(V,V) : (maC*maC); -//if( all( float3(lgtDat.fSphRadiusSq, (fSclProj*fSclProj), fSclProj) > float3(distSq, fDist2DSqr*cotaSqr, fSpotNearPlane) ) ) uVal = 1; +//if( all( float3(lightData.radiusSq, (fSclProj*fSclProj), fSclProj) > float3(distSq, fDist2DSqr*cotaSqr, fSpotNearPlane) ) ) uVal = 1; #if 0 void merge(int l, int m, int r); @@ -432,7 +451,7 @@ void sortLightList(int localThreadID, int length) const int N = (const int) LimitPow2AndClamp((unsigned int) length, MAX_NR_COARSE_ENTRIES); // N is 1 when length is zero but will still not enter first for-loop // bitonic sort can only handle arrays with a power of two length. Fill remaining entries with greater than possible index. - for(int t=length+localThreadID; t0.0001 ? (maxZdir.z/len) : len; // since len>=(maxZdir.z/len) we can use len as an approximate value when len<=epsilon + float fOffs = scalarProj*fRad; +#else + float fOffs = fRad; // more false positives due to larger radius but works too +#endif + +#ifdef LEFT_HAND_COORDINATES + fRad = fRad + (center.z+fOffs)*worldDistAtDepthOne; +#else + fRad = fRad + (center.z-fOffs)*worldDistAtDepthOne; +#endif + + float a = dot(V,V); + float CdotV = dot(center,V); + float c = dot(center,center) - fRad*fRad; + + float fDescDivFour = CdotV*CdotV - a*c; + if(c<0 || (fDescDivFour>0 && CdotV>0)) // if ray hit bounding sphere + { + unsigned int uIndex; + InterlockedAdd(lightOffsSph, 1, uIndex); + coarseList[uIndex]=prunedList[l]; // read from the original copy of coarseList which is backed up in prunedList + } + } + +#if !defined(XBONE) && !defined(PLAYSTATION4) + GroupMemoryBarrierWithGroupSync(); +#endif + + return lightOffsSph; +} #endif \ No newline at end of file diff --git a/Assets/ScriptableRenderLoop/fptl/renderloopfptl.asset b/Assets/ScriptableRenderLoop/fptl/renderloopfptl.asset index 01de74f448b..b0c4de19789 100644 --- a/Assets/ScriptableRenderLoop/fptl/renderloopfptl.asset +++ b/Assets/ScriptableRenderLoop/fptl/renderloopfptl.asset @@ -20,13 +20,16 @@ MonoBehaviour: directionalLightCascades: {x: 0.05, y: 0.2, z: 0.3} m_TextureSettings: spotCookieSize: 512 - pointCookieSize: 256 + pointCookieSize: 128 reflectionCubemapSize: 128 - m_DeferredShader: {fileID: 4800000, guid: 1c102a89f3460254a8c413dbdcd63a2a, type: 3} - m_DeferredReflectionShader: {fileID: 4800000, guid: 3899e06d641c2cb4cbff794df0da536b, + deferredShader: {fileID: 4800000, guid: 1c102a89f3460254a8c413dbdcd63a2a, type: 3} + deferredReflectionShader: {fileID: 4800000, guid: 3899e06d641c2cb4cbff794df0da536b, type: 3} - m_FinalPassShader: {fileID: 4800000, guid: b0988b3639dcc0e4a9f62ae7f85660ce, type: 3} - m_BuildScreenAABBShader: {fileID: 7200000, guid: e7a739144e735934b89a42a4b9d9e23c, + finalPassShader: {fileID: 4800000, guid: 5590f54ad211f594da4e687b698f2258, type: 3} + buildScreenAABBShader: {fileID: 7200000, guid: e7a739144e735934b89a42a4b9d9e23c, type: 3} - m_BuildPerTileLightListShader: {fileID: 7200000, guid: f54ef7cb596a714488693ef9cdaf63fb, + buildPerTileLightListShader: {fileID: 7200000, guid: f54ef7cb596a714488693ef9cdaf63fb, type: 3} + buildPerVoxelLightListShader: {fileID: 7200000, guid: 4c2d6eb0553e2514bba3ea9a85d8c53c, + type: 3} + EnableClustered: 0 diff --git a/Assets/ScriptableRenderLoop/fptl/scrbound.compute b/Assets/ScriptableRenderLoop/fptl/scrbound.compute index e585de005a4..1b8e5b4f399 100644 --- a/Assets/ScriptableRenderLoop/fptl/scrbound.compute +++ b/Assets/ScriptableRenderLoop/fptl/scrbound.compute @@ -1,7 +1,10 @@ +// The implementation is based on the demo on "fine pruned tiled lighting" published in GPU Pro 7. +// https://github.com/wolfgangfengel/GPU-Pro-7 + #pragma kernel ScreenBoundsAABB #include "..\common\ShaderBase.h" -#include "LightDefinitions.cs" +#include "LightDefinitions.cs.hlsl" uniform int g_iNrVisibLights; uniform float4x4 g_mInvProjection; @@ -34,8 +37,8 @@ groupshared unsigned int clipFlags[48]; unsigned int GetClip(const float4 P); int ClipAgainstPlane(const int iSrcIndex, const int iNrSrcVerts, const int subLigt, const int p); void CalcBound(out bool2 bIsMinValid, out bool2 bIsMaxValid, out float2 vMin, out float2 vMax, float4x4 InvProjection, float3 pos_view_space, float r); -void GetQuad(out float3 p0, out float3 p1, out float3 p2, out float3 p3, const float3 vBoxX, const float3 vBoxY, const float3 vBoxZ, const float3 vCen, const float2 vScaleXY, const int sideIndex); -void GetPlane(out float3 p0, out float3 vN, const float3 vBoxX, const float3 vBoxY, const float3 vBoxZ, const float3 vCen, const float2 vScaleXY, const int sideIndex); +void GetQuad(out float3 p0, out float3 p1, out float3 p2, out float3 p3, const float3 boxX, const float3 boxY, const float3 boxZ, const float3 center, const float2 scaleXY, const int sideIndex); +void GetPlane(out float3 p0, out float3 vN, const float3 boxX, const float3 boxY, const float3 boxZ, const float3 center, const float2 scaleXY, const int sideIndex); [numthreads(NR_THREADS, 1, 1)] @@ -53,18 +56,18 @@ void ScreenBoundsAABB(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupI SFiniteLightBound lgtDat = g_data[lgtIndex]; - const float3 vBoxX = lgtDat.vBoxAxisX.xyz; - const float3 vBoxY = lgtDat.vBoxAxisY.xyz; - const float3 vBoxZ = -lgtDat.vBoxAxisZ.xyz; // flip an axis to make it right handed since Determinant(worldToView)<0 - const float3 vCen = lgtDat.vCen.xyz; - const float fRadius = lgtDat.fRadius; - const float2 vScaleXY = lgtDat.vScaleXY; + const float3 boxX = lgtDat.boxAxisX.xyz; + const float3 boxY = lgtDat.boxAxisY.xyz; + const float3 boxZ = -lgtDat.boxAxisZ.xyz; // flip an axis to make it right handed since Determinant(worldToView)<0 + const float3 center = lgtDat.center.xyz; + const float radius = lgtDat.radius; + const float2 scaleXY = lgtDat.scaleXY; { if(sideIndex<6 && lgtIndex<(int) g_iNrVisibLights) // mask 2 out of 8 threads { float3 q0, q1, q2, q3; - GetQuad(q0, q1, q2, q3, vBoxX, vBoxY, vBoxZ, vCen, vScaleXY, sideIndex); + GetQuad(q0, q1, q2, q3, boxX, boxY, boxZ, center, scaleXY, sideIndex); const float4 vP0 = mul(g_mProjection, float4(q0, 1)); @@ -166,7 +169,7 @@ void ScreenBoundsAABB(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupI for(f=0; f<6; f++) { float3 q0, q1, q2, q3; - GetQuad(q0, q1, q2, q3, vBoxX, vBoxY, vBoxZ, vCen, vScaleXY, f); + GetQuad(q0, q1, q2, q3, boxX, boxY, boxZ, center, scaleXY, f); // 4 vertices to a quad of the convex hull in post projection space const float4 vP0 = mul(g_mProjection, float4(q0, 1)); @@ -235,7 +238,7 @@ void ScreenBoundsAABB(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupI for(f=0; f<6; f++) { float3 vP0, vN; - GetPlane(vP0, vN, vBoxX, vBoxY, vBoxZ, vCen, vScaleXY, f); + GetPlane(vP0, vN, boxX, boxY, boxZ, center, scaleXY, f); for(i=0; i<8; i++) { @@ -273,37 +276,37 @@ void ScreenBoundsAABB(uint threadID : SV_GroupIndex, uint3 u3GroupID : SV_GroupI } else { - //if((vCen.z+fRadius)<0.0) - if( length(vCen)>fRadius) + //if((center.z+radius)<0.0) + if( length(center)>radius) { float2 vMi, vMa; bool2 bMi, bMa; - CalcBound(bMi, bMa, vMi, vMa, g_mInvProjection, vCen, fRadius); + CalcBound(bMi, bMa, vMi, vMa, g_mInvProjection, center, radius); vMin.xy = bMi ? max(vMin.xy, vMi) : vMin.xy; vMax.xy = bMa ? min(vMax.xy, vMa) : vMax.xy; } #ifdef LEFT_HAND_COORDINATES - if((vCen.z-fRadius)>0.0) + if((center.z-radius)>0.0) { - float4 vPosF = mul(g_mProjection, float4(0,0,vCen.z-fRadius,1)); + float4 vPosF = mul(g_mProjection, float4(0,0,center.z-radius,1)); vMin.z = max(vMin.z, vPosF.z/vPosF.w); } - if((vCen.z+fRadius)>0.0) + if((center.z+radius)>0.0) { - float4 vPosB = mul(g_mProjection, float4(0,0,vCen.z+fRadius,1)); + float4 vPosB = mul(g_mProjection, float4(0,0,center.z+radius,1)); vMax.z = min(vMax.z, vPosB.z/vPosB.w); } #else - if((vCen.z+fRadius)<0.0) + if((center.z+radius)<0.0) { - float4 vPosF = mul(g_mProjection, float4(0,0,vCen.z+fRadius,1)); + float4 vPosF = mul(g_mProjection, float4(0,0,center.z+radius,1)); vMin.z = max(vMin.z, vPosF.z/vPosF.w); } - if((vCen.z-fRadius)<0.0) + if((center.z-radius)<0.0) { - float4 vPosB = mul(g_mProjection, float4(0,0,vCen.z-fRadius,1)); + float4 vPosB = mul(g_mProjection, float4(0,0,center.z-radius,1)); vMax.z = min(vMax.z, vPosB.z/vPosB.w); } #endif @@ -402,52 +405,52 @@ float4 GenNewVert(const float4 vVisib, const float4 vInvisib, const int p) return vNew; } -void GetQuad(out float3 p0, out float3 p1, out float3 p2, out float3 p3, const float3 vBoxX, const float3 vBoxY, const float3 vBoxZ, const float3 vCen, const float2 vScaleXY, const int sideIndex) +void GetQuad(out float3 p0, out float3 p1, out float3 p2, out float3 p3, const float3 boxX, const float3 boxY, const float3 boxZ, const float3 center, const float2 scaleXY, const int sideIndex) { const int iAbsSide = (sideIndex == 0 || sideIndex == 1) ? 0 : ((sideIndex == 2 || sideIndex == 3) ? 1 : 2); const float fS = (sideIndex & 1) != 0 ? 1 : (-1); - float3 vA = fS*(iAbsSide == 0 ? vBoxX : (iAbsSide == 1 ? (-vBoxY) : vBoxZ)); - float3 vB = fS*(iAbsSide == 0 ? (-vBoxY) : (iAbsSide == 1 ? (-vBoxX) : (-vBoxY))); - float3 vC = iAbsSide == 0 ? vBoxZ : (iAbsSide == 1 ? vBoxZ : (-vBoxX)); + float3 vA = fS*(iAbsSide == 0 ? boxX : (iAbsSide == 1 ? (-boxY) : boxZ)); + float3 vB = fS*(iAbsSide == 0 ? (-boxY) : (iAbsSide == 1 ? (-boxX) : (-boxY))); + float3 vC = iAbsSide == 0 ? boxZ : (iAbsSide == 1 ? boxZ : (-boxX)); bool bIsTopQuad = iAbsSide == 2 && (sideIndex & 1) != 0; // in this case all 4 verts get scaled. bool bIsSideQuad = (iAbsSide == 0 || iAbsSide == 1); // if side quad only two verts get scaled (impacts q1 and q2) - if (bIsTopQuad) { vB *= vScaleXY.y; vC *= vScaleXY.x; } + if (bIsTopQuad) { vB *= scaleXY.y; vC *= scaleXY.x; } float3 vA2 = vA; float3 vB2 = vB; - if (bIsSideQuad) { vA2 *= (iAbsSide == 0 ? vScaleXY.x : vScaleXY.y); vB2 *= (iAbsSide == 0 ? vScaleXY.y : vScaleXY.x); } + if (bIsSideQuad) { vA2 *= (iAbsSide == 0 ? scaleXY.x : scaleXY.y); vB2 *= (iAbsSide == 0 ? scaleXY.y : scaleXY.x); } // delivered counterclockwise in right hand space and clockwise in left hand space - p0 = vCen + (vA + vB - vC); // vCen + vA is center of face when vScaleXY is 1.0 - p1 = vCen + (vA - vB - vC); - p2 = vCen + (vA2 - vB2 + vC); - p3 = vCen + (vA2 + vB2 + vC); + p0 = center + (vA + vB - vC); // center + vA is center of face when scaleXY is 1.0 + p1 = center + (vA - vB - vC); + p2 = center + (vA2 - vB2 + vC); + p3 = center + (vA2 + vB2 + vC); } -void GetPlane(out float3 p0, out float3 vN, const float3 vBoxX, const float3 vBoxY, const float3 vBoxZ, const float3 vCen, const float2 vScaleXY, const int sideIndex) +void GetPlane(out float3 p0, out float3 vN, const float3 boxX, const float3 boxY, const float3 boxZ, const float3 center, const float2 scaleXY, const int sideIndex) { const int iAbsSide = (sideIndex == 0 || sideIndex == 1) ? 0 : ((sideIndex == 2 || sideIndex == 3) ? 1 : 2); const float fS = (sideIndex & 1) != 0 ? 1 : (-1); - float3 vA = fS*(iAbsSide == 0 ? vBoxX : (iAbsSide == 1 ? (-vBoxY) : vBoxZ)); - float3 vB = fS*(iAbsSide == 0 ? (-vBoxY) : (iAbsSide == 1 ? (-vBoxX) : (-vBoxY))); - float3 vC = iAbsSide == 0 ? vBoxZ : (iAbsSide == 1 ? vBoxZ : (-vBoxX)); + float3 vA = fS*(iAbsSide == 0 ? boxX : (iAbsSide == 1 ? (-boxY) : boxZ)); + float3 vB = fS*(iAbsSide == 0 ? (-boxY) : (iAbsSide == 1 ? (-boxX) : (-boxY))); + float3 vC = iAbsSide == 0 ? boxZ : (iAbsSide == 1 ? boxZ : (-boxX)); bool bIsTopQuad = iAbsSide == 2 && (sideIndex & 1) != 0; // in this case all 4 verts get scaled. bool bIsSideQuad = (iAbsSide == 0 || iAbsSide == 1); // if side quad only two verts get scaled (impacts q1 and q2) - if (bIsTopQuad) { vB *= vScaleXY.y; vC *= vScaleXY.x; } + if (bIsTopQuad) { vB *= scaleXY.y; vC *= scaleXY.x; } float3 vA2 = vA; float3 vB2 = vB; - if (bIsSideQuad) { vA2 *= (iAbsSide == 0 ? vScaleXY.x : vScaleXY.y); vB2 *= (iAbsSide == 0 ? vScaleXY.y : vScaleXY.x); } + if (bIsSideQuad) { vA2 *= (iAbsSide == 0 ? scaleXY.x : scaleXY.y); vB2 *= (iAbsSide == 0 ? scaleXY.y : scaleXY.x); } - p0 = vCen + (vA + vB - vC); // vCen + vA is center of face when vScaleXY is 1.0 + p0 = center + (vA + vB - vC); // center + vA is center of face when scaleXY is 1.0 float3 vNout = cross( vB2, 0.5*(vA-vA2) - vC ); #ifdef LEFT_HAND_COORDINATES @@ -480,7 +483,7 @@ float4 EvalPlanePair(float2 posXY_in, float r) res.w = (-r-res.z*posXY.x) / posXY.y; // rotate back by 90 degrees - res = bMustFlip ? Vec4(res.y, -res.x, res.w, -res.z) : res; + res = bMustFlip ? float4(res.y, -res.x, res.w, -res.z) : res; return res; } diff --git a/Assets/ShaderGenerator/CSharpToHLSL.cs b/Assets/ShaderGenerator/CSharpToHLSL.cs index 3803aa5f4ac..ca6cfda1389 100644 --- a/Assets/ShaderGenerator/CSharpToHLSL.cs +++ b/Assets/ShaderGenerator/CSharpToHLSL.cs @@ -1,4 +1,3 @@ -using System; using ICSharpCode.NRefactory; using ICSharpCode.NRefactory.Visitors; using ICSharpCode.NRefactory.Ast; @@ -8,319 +7,313 @@ using System.Reflection; using UnityEditor; -namespace UnityEngine.ScriptableRenderLoop +namespace UnityEngine.Experimental.ScriptableRenderLoop { - public class CSharpToHLSL - { - public static bool GenerateHLSL(System.Type type, GenerateHLSL attribute, out string shaderSource) - { - List errors; - return GenerateHLSL(type, attribute, out shaderSource, out errors); - } - - public static bool GenerateHLSL(System.Type type, GenerateHLSL attribute, out string shaderSource, out List errors) - { - ShaderTypeGenerator gen = new ShaderTypeGenerator(type, attribute); - bool success = gen.Generate(); - - if (success) - { - shaderSource = gen.Emit(); - } - else - { - shaderSource = null; - } - - errors = gen.errors; - return success; - } - - public static void GenerateAll() - { - m_typeName = new Dictionary(); - - // Iterate over assemblyList, discover all applicable types with fully qualified names - var assemblyList = AssemblyEnumerator.EnumerateReferencedAssemblies(Assembly.GetCallingAssembly()); - - foreach (var assembly in assemblyList) - { - Type[] types = assembly.GetExportedTypes(); - - foreach (var type in types) - { - object[] attributes = type.GetCustomAttributes(true); - - foreach (var attr in attributes) - { - if (attr is GenerateHLSL) - { - Type parent = type.DeclaringType; - if (parent != null) - { - Debug.LogError("The GenerateHLSL attribute not supported on nested classes (" + type.FullName + "), skipping."); - } - else - { - ShaderTypeGenerator gen; - if (m_typeName.TryGetValue(type.FullName, out gen)) - { - Debug.LogError("Duplicate typename with the GenerateHLSL attribute detected: " + type.FullName + - " declared in both " + gen.type.Assembly.FullName + " and " + type.Assembly.FullName + ". Skipping the second instance."); - } - m_typeName[type.FullName] = new ShaderTypeGenerator(type, attr as GenerateHLSL); - } - } - } - } - } - - - // Now that we have extracted all the typenames that we care about, parse all .cs files in all asset - // paths and figure out in which files those types are actually declared. - m_sourceGenerators = new Dictionary>(); - - var assetPaths = AssetDatabase.GetAllAssetPaths().Where(s => s.EndsWith(".cs")).ToList(); - foreach (var assetPath in assetPaths) - { - LoadTypes(assetPath); - } - - // Finally, write out the generated code - foreach (var it in m_sourceGenerators) - { - string fileName = it.Key + ".hlsl"; - bool skipFile = false; - foreach (var gen in it.Value) - { - if (!gen.Generate()) - { - // Error reporting will be done by the generator. Skip this file. - gen.PrintErrors(); - skipFile = true; - break; ; - } - } - - if (!skipFile) - { - using (System.IO.StreamWriter writer = File.CreateText(fileName)) - { - writer.WriteLine("//"); - writer.WriteLine("// This file was automatically generated from " + it.Key + ". Please don't edit by hand."); - writer.WriteLine("//"); - writer.WriteLine(); - - foreach (var gen in it.Value) - { - if (gen.hasStatics) - { - writer.WriteLine(gen.EmitDefines()); - } - } - - foreach (var gen in it.Value) - { - if (gen.hasFields) - { - writer.WriteLine(gen.EmitTypeDecl()); - } - } - - foreach (var gen in it.Value) - { - if (gen.hasFields) - { - writer.WriteLine(gen.EmitAccessors()); - } - } - - writer.WriteLine(); - } - } - } - } - - static Dictionary m_typeName; - - static void LoadTypes(string fileName) - { - using (var parser = ParserFactory.CreateParser(fileName)) - { - // @TODO any standard preprocessor symbols we need? - - /*var uniqueSymbols = new HashSet(definedSymbols.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); - foreach (var symbol in uniqueSymbols) - { - parser.Lexer.ConditionalCompilationSymbols.Add(symbol, string.Empty); - }*/ - parser.Lexer.EvaluateConditionalCompilation = true; - - parser.Parse(); - try - { - var visitor = new NamespaceVisitor(); - VisitorData data = new VisitorData(); - data.m_typeName = m_typeName; - parser.CompilationUnit.AcceptVisitor(visitor, data); - - if (data.generators.Count > 0) - m_sourceGenerators[fileName] = data.generators; - - } - catch - { - // does NRefactory throw anything we can handle here? - throw; - } - } - } - - static Dictionary> m_sourceGenerators; - - class VisitorData - { - public VisitorData() - { - currentNamespaces = new Stack(); - currentClasses = new Stack(); - generators = new List(); - } - - public string GetTypePrefix() - { - string fullNamespace = string.Empty; - - string separator = ""; - foreach (string ns in currentClasses) - { - fullNamespace = ns + "+" + fullNamespace; - } - - foreach (string ns in currentNamespaces) - { - if (fullNamespace == string.Empty) - { - separator = "."; - fullNamespace = ns; - } - else - fullNamespace = ns + "." + fullNamespace; - } - - string name = ""; - if (fullNamespace != string.Empty) - { - name = fullNamespace + separator + name; - } - return name; - } - - public Stack currentNamespaces; - public Stack currentClasses; - public List generators; - public Dictionary m_typeName; - } - - class NamespaceVisitor : AbstractAstVisitor - { - public override object VisitNamespaceDeclaration(ICSharpCode.NRefactory.Ast.NamespaceDeclaration namespaceDeclaration, object data) - { - VisitorData visitorData = (VisitorData)data; - visitorData.currentNamespaces.Push(namespaceDeclaration.Name); - namespaceDeclaration.AcceptChildren(this, visitorData); - visitorData.currentNamespaces.Pop(); - - return null; - } - - public override object VisitTypeDeclaration(TypeDeclaration typeDeclaration, object data) - { - // Structured types only - if (typeDeclaration.Type == ClassType.Class || typeDeclaration.Type == ClassType.Struct) - { - VisitorData visitorData = (VisitorData)data; - - string name = visitorData.GetTypePrefix() + typeDeclaration.Name; - - ShaderTypeGenerator gen; - if (visitorData.m_typeName.TryGetValue(name, out gen)) - { - visitorData.generators.Add(gen); - } - - visitorData.currentClasses.Push(typeDeclaration.Name); - typeDeclaration.AcceptChildren(this, visitorData); - visitorData.currentClasses.Pop(); - } - - return null; - } - } - } - - // Helper class to recursively enumerate assemblies referenced by the calling assembly, including unloaded ones - static class AssemblyEnumerator - { - public static List EnumerateReferencedAssemblies(Assembly assembly) - { - Dictionary assemblies = assembly.GetReferencedAssembliesRecursive(); - assemblies[GetName(assembly.FullName)] = assembly; - return assemblies.Values.ToList(); - } - - public static Dictionary GetReferencedAssembliesRecursive(this Assembly assembly) - { - assemblies = new Dictionary(); - InternalGetDependentAssembliesRecursive(assembly); - - // Skip assemblies from GAC (@TODO: any reason we'd want to include them?) - var keysToRemove = assemblies.Values.Where( - o => o.GlobalAssemblyCache == true).ToList(); - - foreach (var k in keysToRemove) - { - assemblies.Remove(GetName(k.FullName)); - } - - return assemblies; - } - - private static void InternalGetDependentAssembliesRecursive(Assembly assembly) - { - // Load assemblies with newest versions first. - var referencedAssemblies = assembly.GetReferencedAssemblies() - .OrderByDescending(o => o.Version); - - foreach (var r in referencedAssemblies) - { - if (String.IsNullOrEmpty(assembly.FullName)) - { - continue; - } - - if (assemblies.ContainsKey(GetName(r.FullName)) == false) - { - try - { - // Ensure that the assembly is loaded - var a = Assembly.Load(r.FullName); - assemblies[GetName(a.FullName)] = a; - InternalGetDependentAssembliesRecursive(a); - } - catch - { - // Missing dll, ignore. - } - } - } - } - - static string GetName(string name) - { - return name.Split(',')[0]; - } - - static Dictionary assemblies; - } -}; \ No newline at end of file + public class CSharpToHLSL + { + public static bool GenerateHLSL(System.Type type, GenerateHLSL attribute, out string shaderSource) + { + List errors; + return GenerateHLSL(type, attribute, out shaderSource, out errors); + } + + public static bool GenerateHLSL(System.Type type, GenerateHLSL attribute, out string shaderSource, out List errors) + { + ShaderTypeGenerator gen = new ShaderTypeGenerator(type, attribute); + bool success = gen.Generate(); + + if (success) + { + shaderSource = gen.Emit(); + } + else + { + shaderSource = null; + } + + errors = gen.errors; + return success; + } + + public static void GenerateAll() + { + s_TypeName = new Dictionary(); + + // Iterate over assemblyList, discover all applicable types with fully qualified names + var assemblyList = AssemblyEnumerator.EnumerateReferencedAssemblies(Assembly.GetCallingAssembly()); + + foreach (var assembly in assemblyList) + { + var types = assembly.GetExportedTypes(); + + foreach (var type in types) + { + var attributes = type.GetCustomAttributes(true); + + foreach (var attr in attributes) + { + if (attr is GenerateHLSL) + { + var parent = type.DeclaringType; + if (parent != null) + { + Debug.LogError("The GenerateHLSL attribute not supported on nested classes (" + type.FullName + "), skipping."); + } + else + { + ShaderTypeGenerator gen; + if (s_TypeName.TryGetValue(type.FullName, out gen)) + { + Debug.LogError("Duplicate typename with the GenerateHLSL attribute detected: " + type.FullName + + " declared in both " + gen.type.Assembly.FullName + " and " + type.Assembly.FullName + ". Skipping the second instance."); + } + s_TypeName[type.FullName] = new ShaderTypeGenerator(type, attr as GenerateHLSL); + } + } + } + } + } + + + // Now that we have extracted all the typenames that we care about, parse all .cs files in all asset + // paths and figure out in which files those types are actually declared. + s_SourceGenerators = new Dictionary>(); + + var assetPaths = AssetDatabase.GetAllAssetPaths().Where(s => s.EndsWith(".cs")).ToList(); + foreach (var assetPath in assetPaths) + { + LoadTypes(assetPath); + } + + // Finally, write out the generated code + foreach (var it in s_SourceGenerators) + { + string fileName = it.Key + ".hlsl"; + bool skipFile = false; + foreach (var gen in it.Value) + { + if (!gen.Generate()) + { + // Error reporting will be done by the generator. Skip this file. + gen.PrintErrors(); + skipFile = true; + break; + } + } + + if (skipFile) + continue; + + using (var writer = File.CreateText(fileName)) + { + writer.Write("//\n"); + writer.Write("// This file was automatically generated from " + it.Key + ". Please don't edit by hand.\n"); + writer.Write("//\n\n"); + + foreach (var gen in it.Value) + { + if (gen.hasStatics) + { + writer.Write(gen.EmitDefines() + "\n"); + } + } + + foreach (var gen in it.Value) + { + if (gen.hasFields) + { + writer.Write(gen.EmitTypeDecl() + "\n"); + } + } + + foreach (var gen in it.Value) + { + if (gen.hasFields && gen.needAccessors) + { + writer.Write(gen.EmitAccessors() + "\n"); + } + } + + writer.Write("\n"); + } + } + } + + static Dictionary s_TypeName; + + static void LoadTypes(string fileName) + { + using (var parser = ParserFactory.CreateParser(fileName)) + { + // @TODO any standard preprocessor symbols we need? + + /*var uniqueSymbols = new HashSet(definedSymbols.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries)); + foreach (var symbol in uniqueSymbols) + { + parser.Lexer.ConditionalCompilationSymbols.Add(symbol, string.Empty); + }*/ + parser.Lexer.EvaluateConditionalCompilation = true; + + parser.Parse(); + try + { + var visitor = new NamespaceVisitor(); + var data = new VisitorData { typeName = s_TypeName }; + parser.CompilationUnit.AcceptVisitor(visitor, data); + + if (data.generators.Count > 0) + s_SourceGenerators[fileName] = data.generators; + } + catch + { + // does NRefactory throw anything we can handle here? + throw; + } + } + } + + static Dictionary> s_SourceGenerators; + + class VisitorData + { + public VisitorData() + { + currentNamespaces = new Stack(); + currentClasses = new Stack(); + generators = new List(); + } + + public string GetTypePrefix() + { + var fullNamespace = string.Empty; + + var separator = ""; + + fullNamespace = currentClasses.Aggregate(fullNamespace, (current, ns) => ns + "+" + current); + foreach (var ns in currentNamespaces) + { + if (fullNamespace == string.Empty) + { + separator = "."; + fullNamespace = ns; + } + else + fullNamespace = ns + "." + fullNamespace; + } + + var name = ""; + if (fullNamespace != string.Empty) + { + name = fullNamespace + separator + name; + } + return name; + } + + public readonly Stack currentNamespaces; + public readonly Stack currentClasses; + public readonly List generators; + public Dictionary typeName; + } + + class NamespaceVisitor : AbstractAstVisitor + { + public override object VisitNamespaceDeclaration(ICSharpCode.NRefactory.Ast.NamespaceDeclaration namespaceDeclaration, object data) + { + var visitorData = (VisitorData)data; + visitorData.currentNamespaces.Push(namespaceDeclaration.Name); + namespaceDeclaration.AcceptChildren(this, visitorData); + visitorData.currentNamespaces.Pop(); + + return null; + } + + public override object VisitTypeDeclaration(TypeDeclaration typeDeclaration, object data) + { + // Structured types only + if (typeDeclaration.Type == ClassType.Class || typeDeclaration.Type == ClassType.Struct || typeDeclaration.Type == ClassType.Enum) + { + var visitorData = (VisitorData)data; + + var name = visitorData.GetTypePrefix() + typeDeclaration.Name; + + ShaderTypeGenerator gen; + if (visitorData.typeName.TryGetValue(name, out gen)) + { + visitorData.generators.Add(gen); + } + + visitorData.currentClasses.Push(typeDeclaration.Name); + typeDeclaration.AcceptChildren(this, visitorData); + visitorData.currentClasses.Pop(); + } + + return null; + } + } + } + + // Helper class to recursively enumerate assemblies referenced by the calling assembly, including unloaded ones + static class AssemblyEnumerator + { + public static List EnumerateReferencedAssemblies(Assembly assembly) + { + Dictionary referenced = assembly.GetReferencedAssembliesRecursive(); + referenced[GetName(assembly.FullName)] = assembly; + return referenced.Values.ToList(); + } + + public static Dictionary GetReferencedAssembliesRecursive(this Assembly assembly) + { + s_Assemblies = new Dictionary(); + InternalGetDependentAssembliesRecursive(assembly); + + // Skip assemblies from GAC (@TODO: any reason we'd want to include them?) + var keysToRemove = s_Assemblies.Values.Where( + o => o.GlobalAssemblyCache == true).ToList(); + + foreach (var k in keysToRemove) + { + s_Assemblies.Remove(GetName(k.FullName)); + } + + return s_Assemblies; + } + + private static void InternalGetDependentAssembliesRecursive(Assembly assembly) + { + // Load assemblies with newest versions first. + var referencedAssemblies = assembly.GetReferencedAssemblies() + .OrderByDescending(o => o.Version); + + foreach (var r in referencedAssemblies) + { + if (string.IsNullOrEmpty(assembly.FullName)) + { + continue; + } + + if (s_Assemblies.ContainsKey(GetName(r.FullName))) + continue; + + try + { + // Ensure that the assembly is loaded + var a = Assembly.Load(r.FullName); + s_Assemblies[GetName(a.FullName)] = a; + InternalGetDependentAssembliesRecursive(a); + } + catch + { + // Missing dll, ignore. + } + } + } + + static string GetName(string name) + { + return name.Split(',')[0]; + } + + static Dictionary s_Assemblies; + } +} diff --git a/Assets/ShaderGenerator/ICSharpCode.NRefactory.dll b/Assets/ShaderGenerator/ICSharpCode.NRefactory.dll new file mode 100644 index 00000000000..3bc96a5b38a Binary files /dev/null and b/Assets/ShaderGenerator/ICSharpCode.NRefactory.dll differ diff --git a/Assets/ShaderGenerator/ShaderGeneratorMenu.cs b/Assets/ShaderGenerator/ShaderGeneratorMenu.cs index 6a3178224c1..042becb3eaa 100644 --- a/Assets/ShaderGenerator/ShaderGeneratorMenu.cs +++ b/Assets/ShaderGenerator/ShaderGeneratorMenu.cs @@ -1,19 +1,11 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Reflection; -using System.Runtime.InteropServices; -using UnityEngine; -using UnityEditor; - -namespace UnityEngine.ScriptableRenderLoop +namespace UnityEngine.Experimental.ScriptableRenderLoop { - public class ShaderGeneratorMenu - { - [UnityEditor.MenuItem("Renderloop/Generate Shader Includes")] - static void GenerateShaderIncludes() - { - CSharpToHLSL.GenerateAll(); - } - } + public class ShaderGeneratorMenu + { + [UnityEditor.MenuItem("Renderloop/Generate Shader Includes")] + static void GenerateShaderIncludes() + { + CSharpToHLSL.GenerateAll(); + } + } } diff --git a/Assets/ShaderGenerator/ShaderTypeGeneration.cs b/Assets/ShaderGenerator/ShaderTypeGeneration.cs index 597458e3061..5742c7538e7 100644 --- a/Assets/ShaderGenerator/ShaderTypeGeneration.cs +++ b/Assets/ShaderGenerator/ShaderTypeGeneration.cs @@ -1,516 +1,575 @@ using System; -using System.Collections; using System.Collections.Generic; using System.Reflection; -using UnityEngine; -using ICSharpCode.NRefactory; -using ICSharpCode.NRefactory.Visitors; -namespace UnityEngine.ScriptableRenderLoop +namespace UnityEngine.Experimental.ScriptableRenderLoop { - public enum PackingRules - { - Exact, - Aggressive - }; - - [AttributeUsage(AttributeTargets.Struct | AttributeTargets.Class)] - public class GenerateHLSL : System.Attribute - { - public PackingRules packingRules; - public GenerateHLSL(PackingRules rules = PackingRules.Exact) - { - packingRules = rules; - } - } - - internal class ShaderTypeGenerator - { - public ShaderTypeGenerator(Type type, GenerateHLSL attr) - { - this.type = type; - this.attr = attr; - } - - enum PrimitiveType - { - Float, Int, UInt - }; - - static string PrimitiveToString(PrimitiveType type, int rows, int cols) - { - string text = ""; - switch (type) - { - case PrimitiveType.Float: - text = "float"; - break; - case PrimitiveType.Int: - text = "int"; - break; - case PrimitiveType.UInt: - text = "uint"; - break; - } - - if (rows > 1) - { - text += rows.ToString(); - if (cols > 1) - { - text += "x" + cols.ToString(); - } - } - - return text; - } - - class Accessor - { - public Accessor(PrimitiveType type, string name, int rows, int cols) - { - this.name = name; - this.fullType = PrimitiveToString(type, rows, cols); - field = name; - } - - Accessor(string name, string swizzle, string field, string fullType) - { - this.name = name; - this.field = field; - this.fullType = fullType; - } - - public string name; - public string field; - public string fullType; - }; - - class ShaderFieldInfo : ICloneable - { - public ShaderFieldInfo(PrimitiveType type, string name, int rows, int cols) - { - this.type = type; - this.name = originalName = name; - this.rows = rows; - this.cols = cols; - this.comment = ""; - swizzleOffset = 0; - packed = false; - accessor = new Accessor(type, name, rows, cols); - } - public ShaderFieldInfo(PrimitiveType type, string name, int rows, int cols, string comment) - { - this.type = type; - this.name = originalName = name; - this.rows = rows; - this.cols = cols; - this.comment = comment; - swizzleOffset = 0; - packed = false; - accessor = new Accessor(type, name, rows, cols); - } - - public string typeString - { - get { return PrimitiveToString(type, rows, cols); } - } - - public string DeclString() - { - return PrimitiveToString(type, rows, cols) + " " + name; - } - - public override string ToString() - { - string text = DeclString() + ";"; - if (comment.Length > 0) - { - text += " // " + comment; - } - return text; - } - - public int elementCount - { - get { return rows * cols; } - } - - public object Clone() - { - ShaderFieldInfo info = new ShaderFieldInfo(type, name, rows, cols, comment); - info.swizzleOffset = swizzleOffset; - info.packed = packed; - info.accessor = accessor; - return info; - } - - public PrimitiveType type; - public string name; - public string originalName; - public string comment; - public int rows; - public int cols; - public int swizzleOffset; - public bool packed; - public Accessor accessor; - }; - - void Error(string error) - { - if (errors == null) - { - errors = new List(); - } - errors.Add("Failed to generate shader type for " + type.ToString() + ": " + error); - } - - public void PrintErrors() - { - if (errors != null) - { - foreach (var e in errors) - { - Debug.LogError(e); - } - } - } - - void EmitPrimitiveType(PrimitiveType type, int elements, string name, string comment, List fields) - { - fields.Add(new ShaderFieldInfo(type, name, elements, 1, comment)); - } - - void EmitMatrixType(PrimitiveType type, int rows, int cols, string name, string comment, List fields) - { - fields.Add(new ShaderFieldInfo(type, name, rows, cols, comment)); - } - - bool ExtractComplex(FieldInfo field, List shaderFields) - { - List floatFields = new List(); - List intFields = new List(); - List uintFields = new List(); - string[] descs = new string[4] { "x: ", "y: ", "z: ", "w: " }; - int numFields = 0; - - string fieldName = "'" + field.FieldType.Name + " " + field.Name + "'"; - - foreach (FieldInfo subField in field.FieldType.GetFields()) - { - if (subField.IsStatic) - continue; - - if (!subField.FieldType.IsPrimitive) - { - Error("'" + fieldName + "' can not be packed into a register, since it contains a non-primitive field type '" + subField.FieldType + "'"); - return false; - } - if (subField.FieldType == typeof(float)) - floatFields.Add(subField); - else if (subField.FieldType == typeof(int)) - intFields.Add(subField); - else if (subField.FieldType == typeof(uint)) - uintFields.Add(subField); - else - { - Error("'" + fieldName + "' can not be packed into a register, since it contains an unsupported field type '" + subField.FieldType + "'"); - return false; - } - - if (numFields == 4) - { - Error("'" + fieldName + "' can not be packed into a register because it contains more than 4 fields."); - return false; - } - - descs[numFields] += subField.Name + " "; - numFields++; - } - Array.Resize(ref descs, numFields); - - string comment = string.Concat(descs); - string mismatchErrorMsg = "'" + fieldName + "' can not be packed into a single register because it contains mixed basic types."; - - if (floatFields.Count > 0) - { - if (intFields.Count + uintFields.Count > 0) - { - Error(mismatchErrorMsg); - return false; - } - EmitPrimitiveType(PrimitiveType.Float, floatFields.Count, field.Name, comment, shaderFields); - } - else if (intFields.Count > 0) - { - if (floatFields.Count + uintFields.Count > 0) - { - Error(mismatchErrorMsg); - return false; - } - EmitPrimitiveType(PrimitiveType.Int, intFields.Count, field.Name, "", shaderFields); - } - else if (uintFields.Count > 0) - { - if (floatFields.Count + intFields.Count > 0) - { - Error(mismatchErrorMsg); - return false; - } - EmitPrimitiveType(PrimitiveType.UInt, uintFields.Count, field.Name, "", shaderFields); - } - else - { - // Empty struct. - } - - return true; - } - - enum MergeResult - { - Merged, - Full, - Failed - }; - - MergeResult PackFields(ShaderFieldInfo info, ref ShaderFieldInfo merged) - { - if (merged.elementCount % 4 == 0) - { - return MergeResult.Full; - } - - if (info.type != merged.type) - { - Error("can't merge '" + merged.DeclString() + "' and '" + info.DeclString() + "' into the same register because they have incompatible types. Consider reordering the fields so that adjacent fields have the same primitive type."); - return MergeResult.Failed; // incompatible types - } - - if (info.cols > 1 || merged.cols > 1) - { - Error("merging matrix types not yet supported ('" + merged.DeclString() + "' and '" + info.DeclString() + "'). Consider reordering the fields to place matrix-typed variables on four-component vector boundaries."); - return MergeResult.Failed; // don't merge matrix types - } - - if (info.rows + merged.rows > 4) - { - // @TODO: lift the restriction - Error("can't merge '" + merged.DeclString() + "' and '" + info.DeclString() + "' because then " + info.name + " would cross register boundary. Consider reordering the fields so that none of them cross four-component vector boundaries when packed."); - return MergeResult.Failed; // out of space - } - - merged.rows += info.rows; - merged.name += "_" + info.name; - return MergeResult.Merged; - } - - List Pack(List shaderFields) - { - List mergedFields = new List(); - - List.Enumerator e = shaderFields.GetEnumerator(); - - if (!e.MoveNext()) - { - // Empty shader struct definition. - return shaderFields; - } - - ShaderFieldInfo current = e.Current.Clone() as ShaderFieldInfo; - - while (e.MoveNext()) - { - while (true) - { - int offset = current.elementCount; - MergeResult result = PackFields(e.Current, ref current); - - if (result == MergeResult.Failed) - { - return null; - } - else if (result == MergeResult.Full) - { - break; - } - - // merge accessors - Accessor acc = current.accessor; - - acc.name = current.name; - e.Current.accessor = acc; - e.Current.swizzleOffset += offset; - - current.packed = e.Current.packed = true; - - if (!e.MoveNext()) - { - mergedFields.Add(current); - return mergedFields; - } - } - mergedFields.Add(current); - current = e.Current.Clone() as ShaderFieldInfo; - } - - return mergedFields; - } - - public string EmitTypeDecl() - { - string shaderText = string.Empty; - - shaderText += "// Generated from " + type.FullName + "\n"; - shaderText += "// PackingRules = " + attr.packingRules.ToString() + "\n"; - shaderText += "struct " + type.Name + "\n"; - shaderText += "{\n"; - foreach (ShaderFieldInfo shaderFieldInfo in packedFields) - { - shaderText += "\t" + shaderFieldInfo.ToString() + "\n"; - } - shaderText += "};\n"; - - return shaderText; - } - - public string EmitAccessors() - { - string shaderText = string.Empty; - - shaderText += "//\n"; - shaderText += "// Accessors for " + type.FullName + "\n"; - shaderText += "//\n"; - foreach (var shaderField in shaderFields) - { - Accessor acc = shaderField.accessor; - string accessorName = shaderField.originalName; - accessorName = "Get" + char.ToUpper(accessorName[0]) + accessorName.Substring(1); - - shaderText += shaderField.typeString + " " + accessorName + "(" + type.Name + " value)\n"; - shaderText += "{\n"; - - string swizzle = ""; - - // @TODO: support matrix type packing? - if (shaderField.cols == 1) // @TEMP - { - // don't emit redundant swizzles - if (shaderField.originalName != acc.name) - { - swizzle = "." + "xyzw".Substring(shaderField.swizzleOffset, shaderField.elementCount); - } - } - - shaderText += "\treturn value." + acc.name + swizzle + ";\n"; - shaderText += "}\n"; - } - - return shaderText; - } - - public string EmitDefines() - { - string shaderText = string.Empty; - - shaderText += "//\n"; - shaderText += "// " + type.FullName + ": static fields\n"; - shaderText += "//\n"; - foreach (var def in statics) - { - shaderText += "#define " + def.Key + " (" + def.Value + ")\n"; - } - - return shaderText; - } - - public string Emit() - { - return EmitDefines() + EmitTypeDecl() + EmitAccessors(); - } - - public bool Generate() - { - statics = new Dictionary(); - - FieldInfo[] fields = type.GetFields(); - shaderFields = new List(); - - foreach (var field in fields) - { - if (field.IsStatic) - { - if (field.FieldType.IsPrimitive) - { - statics[field.Name] = field.GetValue(null).ToString(); - } - continue; - } - - if (field.FieldType.IsPrimitive) - { - if (field.FieldType == typeof(float)) - EmitPrimitiveType(PrimitiveType.Float, 1, field.Name, "", shaderFields); - else if (field.FieldType == typeof(int)) - EmitPrimitiveType(PrimitiveType.Int, 1, field.Name, "", shaderFields); - else if (field.FieldType == typeof(uint)) - EmitPrimitiveType(PrimitiveType.UInt, 1, field.Name, "", shaderFields); - else - { - Error("unsupported field type '" + field.FieldType + "'"); - return false; - } - } - else - { - // handle special types, otherwise try parsing the struct - if (field.FieldType == typeof(Vector2)) - EmitPrimitiveType(PrimitiveType.Float, 2, field.Name, "", shaderFields); - else if (field.FieldType == typeof(Vector3)) - EmitPrimitiveType(PrimitiveType.Float, 3, field.Name, "", shaderFields); - else if (field.FieldType == typeof(Vector4)) - EmitPrimitiveType(PrimitiveType.Float, 4, field.Name, "", shaderFields); - else if (field.FieldType == typeof(Matrix4x4)) - EmitMatrixType(PrimitiveType.Float, 4, 4, field.Name, "", shaderFields); - else if (!ExtractComplex(field, shaderFields)) - { - // Error reporting done in ExtractComplex() - return false; - } - } - } - - packedFields = shaderFields; - if (attr.packingRules == PackingRules.Aggressive) - { - packedFields = Pack(shaderFields); - - if (packedFields == null) - { - return false; - } - } - - errors = null; - return true; - } - - public bool hasFields - { - get { return shaderFields.Count > 0; } - } - - public bool hasStatics - { - get { return statics.Count > 0; } - } - - public Type type; - public GenerateHLSL attr; - public List errors = null; - - Dictionary statics; - List shaderFields; - List packedFields; - } + public enum PackingRules + { + Exact, + Aggressive + }; + + [AttributeUsage(AttributeTargets.Struct | AttributeTargets.Class | AttributeTargets.Enum)] + public class GenerateHLSL : System.Attribute + { + public PackingRules packingRules; + public bool needAccessors; // Whether or not to generate the accessors + public bool needParamDefines; // Wheter or not to generate define for each parameters of the struc + public int paramDefinesStart; // Start of the generated define + public GenerateHLSL(PackingRules rules = PackingRules.Exact, bool needAccessors = true, bool needParamDefines = false, int paramDefinesStart = 1) + { + packingRules = rules; + this.needAccessors = needAccessors; + this.needParamDefines = needParamDefines; + this.paramDefinesStart = paramDefinesStart; + } + } + + [AttributeUsage(AttributeTargets.Field)] + public class SurfaceDataAttributes : System.Attribute + { + public string displayName; + public SurfaceDataAttributes(string displayName = "") + { + this.displayName = displayName; + } + } + + internal class ShaderTypeGenerator + { + public ShaderTypeGenerator(Type type, GenerateHLSL attr) + { + this.type = type; + this.attr = attr; + debugCounter = 0; + } + + enum PrimitiveType + { + Float, Int, UInt + }; + + static string PrimitiveToString(PrimitiveType type, int rows, int cols) + { + string text = ""; + switch (type) + { + case PrimitiveType.Float: + text = "float"; + break; + case PrimitiveType.Int: + text = "int"; + break; + case PrimitiveType.UInt: + text = "uint"; + break; + } + + if (rows > 1) + { + text += rows.ToString(); + if (cols > 1) + { + text += "x" + cols.ToString(); + } + } + + return text; + } + + class Accessor + { + public Accessor(PrimitiveType type, string name, int rows, int cols) + { + this.name = name; + this.fullType = PrimitiveToString(type, rows, cols); + field = name; + } + + Accessor(string name, string swizzle, string field, string fullType) + { + this.name = name; + this.field = field; + this.fullType = fullType; + } + + public string name; + public string field; + public string fullType; + }; + + class ShaderFieldInfo : ICloneable + { + public ShaderFieldInfo(PrimitiveType type, string name, int rows, int cols) + { + this.type = type; + this.name = originalName = name; + this.rows = rows; + this.cols = cols; + this.comment = ""; + swizzleOffset = 0; + packed = false; + accessor = new Accessor(type, name, rows, cols); + } + + public ShaderFieldInfo(PrimitiveType type, string name, int rows, int cols, string comment) + { + this.type = type; + this.name = originalName = name; + this.rows = rows; + this.cols = cols; + this.comment = comment; + swizzleOffset = 0; + packed = false; + accessor = new Accessor(type, name, rows, cols); + } + + public string typeString + { + get { return PrimitiveToString(type, rows, cols); } + } + + public string DeclString() + { + return PrimitiveToString(type, rows, cols) + " " + name; + } + + public override string ToString() + { + string text = DeclString() + ";"; + if (comment.Length > 0) + { + text += " // " + comment; + } + return text; + } + + public int elementCount + { + get { return rows * cols; } + } + + public object Clone() + { + ShaderFieldInfo info = new ShaderFieldInfo(type, name, rows, cols, comment); + info.swizzleOffset = swizzleOffset; + info.packed = packed; + info.accessor = accessor; + return info; + } + + public readonly PrimitiveType type; + public string name; + public readonly string originalName; + public readonly string comment; + public int rows; + public int cols; + public int swizzleOffset; + public bool packed; + public Accessor accessor; + }; + + void Error(string error) + { + if (errors == null) + { + errors = new List(); + } + errors.Add("Failed to generate shader type for " + type.ToString() + ": " + error); + } + + public void PrintErrors() + { + if (errors != null) + { + foreach (var e in errors) + { + Debug.LogError(e); + } + } + } + + void EmitPrimitiveType(PrimitiveType type, int elements, string name, string comment, List fields) + { + fields.Add(new ShaderFieldInfo(type, name, elements, 1, comment)); + } + + void EmitMatrixType(PrimitiveType type, int rows, int cols, string name, string comment, List fields) + { + fields.Add(new ShaderFieldInfo(type, name, rows, cols, comment)); + } + + bool ExtractComplex(FieldInfo field, List shaderFields) + { + var floatFields = new List(); + var intFields = new List(); + var uintFields = new List(); + var descs = new string[4] { "x: ", "y: ", "z: ", "w: " }; + int numFields = 0; + + string fieldName = "'" + field.FieldType.Name + " " + field.Name + "'"; + + foreach (var subField in field.FieldType.GetFields()) + { + if (subField.IsStatic) + continue; + + if (!subField.FieldType.IsPrimitive) + { + Error("'" + fieldName + "' can not be packed into a register, since it contains a non-primitive field type '" + subField.FieldType + "'"); + return false; + } + if (subField.FieldType == typeof(float)) + floatFields.Add(subField); + else if (subField.FieldType == typeof(int)) + intFields.Add(subField); + else if (subField.FieldType == typeof(uint)) + uintFields.Add(subField); + else + { + Error("'" + fieldName + "' can not be packed into a register, since it contains an unsupported field type '" + subField.FieldType + "'"); + return false; + } + + if (numFields == 4) + { + Error("'" + fieldName + "' can not be packed into a register because it contains more than 4 fields."); + return false; + } + + descs[numFields] += subField.Name + " "; + numFields++; + } + Array.Resize(ref descs, numFields); + + string comment = string.Concat(descs); + string mismatchErrorMsg = "'" + fieldName + "' can not be packed into a single register because it contains mixed basic types."; + + if (floatFields.Count > 0) + { + if (intFields.Count + uintFields.Count > 0) + { + Error(mismatchErrorMsg); + return false; + } + EmitPrimitiveType(PrimitiveType.Float, floatFields.Count, field.Name, comment, shaderFields); + } + else if (intFields.Count > 0) + { + if (floatFields.Count + uintFields.Count > 0) + { + Error(mismatchErrorMsg); + return false; + } + EmitPrimitiveType(PrimitiveType.Int, intFields.Count, field.Name, "", shaderFields); + } + else if (uintFields.Count > 0) + { + if (floatFields.Count + intFields.Count > 0) + { + Error(mismatchErrorMsg); + return false; + } + EmitPrimitiveType(PrimitiveType.UInt, uintFields.Count, field.Name, "", shaderFields); + } + else + { + // Empty struct. + } + + return true; + } + + enum MergeResult + { + Merged, + Full, + Failed + }; + + MergeResult PackFields(ShaderFieldInfo info, ref ShaderFieldInfo merged) + { + if (merged.elementCount % 4 == 0) + { + return MergeResult.Full; + } + + if (info.type != merged.type) + { + Error("can't merge '" + merged.DeclString() + "' and '" + info.DeclString() + "' into the same register because they have incompatible types. Consider reordering the fields so that adjacent fields have the same primitive type."); + return MergeResult.Failed; // incompatible types + } + + if (info.cols > 1 || merged.cols > 1) + { + Error("merging matrix types not yet supported ('" + merged.DeclString() + "' and '" + info.DeclString() + "'). Consider reordering the fields to place matrix-typed variables on four-component vector boundaries."); + return MergeResult.Failed; // don't merge matrix types + } + + if (info.rows + merged.rows > 4) + { + // @TODO: lift the restriction + Error("can't merge '" + merged.DeclString() + "' and '" + info.DeclString() + "' because then " + info.name + " would cross register boundary. Consider reordering the fields so that none of them cross four-component vector boundaries when packed."); + return MergeResult.Failed; // out of space + } + + merged.rows += info.rows; + merged.name += "_" + info.name; + return MergeResult.Merged; + } + + List Pack(List shaderFields) + { + List mergedFields = new List(); + + using (var e = shaderFields.GetEnumerator()) + { + if (!e.MoveNext()) + { + // Empty shader struct definition. + return shaderFields; + } + + ShaderFieldInfo current = e.Current.Clone() as ShaderFieldInfo; + + while (e.MoveNext()) + { + while (true) + { + int offset = current.elementCount; + var result = PackFields(e.Current, ref current); + + if (result == MergeResult.Failed) + { + return null; + } + else if (result == MergeResult.Full) + { + break; + } + + // merge accessors + var acc = current.accessor; + + acc.name = current.name; + e.Current.accessor = acc; + e.Current.swizzleOffset += offset; + + current.packed = e.Current.packed = true; + + if (!e.MoveNext()) + { + mergedFields.Add(current); + return mergedFields; + } + } + mergedFields.Add(current); + current = e.Current.Clone() as ShaderFieldInfo; + } + + } + return mergedFields; + } + + public string EmitTypeDecl() + { + string shaderText = string.Empty; + + shaderText += "// Generated from " + type.FullName + "\n"; + shaderText += "// PackingRules = " + attr.packingRules.ToString() + "\n"; + shaderText += "struct " + type.Name + "\n"; + shaderText += "{\n"; + foreach (var shaderFieldInfo in m_PackedFields) + { + shaderText += "\t" + shaderFieldInfo.ToString() + "\n"; + } + shaderText += "};\n"; + + return shaderText; + } + + public string EmitAccessors() + { + string shaderText = string.Empty; + + shaderText += "//\n"; + shaderText += "// Accessors for " + type.FullName + "\n"; + shaderText += "//\n"; + foreach (var shaderField in m_ShaderFields) + { + Accessor acc = shaderField.accessor; + string accessorName = shaderField.originalName; + accessorName = "Get" + char.ToUpper(accessorName[0]) + accessorName.Substring(1); + + shaderText += shaderField.typeString + " " + accessorName + "(" + type.Name + " value)\n"; + shaderText += "{\n"; + + string swizzle = ""; + + // @TODO: support matrix type packing? + if (shaderField.cols == 1) // @TEMP + { + // don't emit redundant swizzles + if (shaderField.originalName != acc.name) + { + swizzle = "." + "xyzw".Substring(shaderField.swizzleOffset, shaderField.elementCount); + } + } + + shaderText += "\treturn value." + acc.name + swizzle + ";\n"; + shaderText += "}\n"; + } + + return shaderText; + } + + public string EmitDefines() + { + string shaderText = string.Empty; + + shaderText += "//\n"; + shaderText += "// " + type.FullName + ": static fields\n"; + shaderText += "//\n"; + foreach (var def in m_Statics) + { + shaderText += "#define " + def.Key + " (" + def.Value + ")\n"; + } + + return shaderText; + } + + public string Emit() + { + return EmitDefines() + EmitTypeDecl() + EmitAccessors(); + } + + // This function is a helper to follow unity convertion + // when converting fooBar ro FOO_BAR + string InsertUnderscore(string name) + { + for (int i = 1; i < name.Length; i++) + { + if (char.IsLower(name[i - 1]) && char.IsUpper(name[i])) + { + // case switch, insert underscore + name = name.Insert(i, "_"); + } + } + + return name; + } + + public bool Generate() + { + m_Statics = new Dictionary(); + + FieldInfo[] fields = type.GetFields(); + m_ShaderFields = new List(); + + if (type.IsEnum) + { + foreach (var field in fields) + { + if (!field.IsSpecialName) + { + string name = field.Name; + name = InsertUnderscore(name); + m_Statics[(type.Name + "_" + name).ToUpper()] = field.GetRawConstantValue().ToString(); + } + } + errors = null; + return true; + } + + foreach (var field in fields) + { + if (field.IsStatic) + { + if (field.FieldType.IsPrimitive) + { + m_Statics[field.Name] = field.GetValue(null).ToString(); + } + continue; + } + + if (attr.needParamDefines) + { + string subNamespace = type.Namespace.Substring(type.Namespace.LastIndexOf((".")) + 1); + string name = InsertUnderscore(field.Name); + m_Statics[("DEBUGVIEW_" + subNamespace + "_" + type.Name + "_" + name).ToUpper()] = Convert.ToString(attr.paramDefinesStart + debugCounter++); + } + + if (field.FieldType.IsPrimitive) + { + if (field.FieldType == typeof(float)) + EmitPrimitiveType(PrimitiveType.Float, 1, field.Name, "", m_ShaderFields); + else if (field.FieldType == typeof(int)) + EmitPrimitiveType(PrimitiveType.Int, 1, field.Name, "", m_ShaderFields); + else if (field.FieldType == typeof(uint)) + EmitPrimitiveType(PrimitiveType.UInt, 1, field.Name, "", m_ShaderFields); + else + { + Error("unsupported field type '" + field.FieldType + "'"); + return false; + } + } + else + { + // handle special types, otherwise try parsing the struct + if (field.FieldType == typeof(Vector2)) + EmitPrimitiveType(PrimitiveType.Float, 2, field.Name, "", m_ShaderFields); + else if (field.FieldType == typeof(Vector3)) + EmitPrimitiveType(PrimitiveType.Float, 3, field.Name, "", m_ShaderFields); + else if (field.FieldType == typeof(Vector4)) + EmitPrimitiveType(PrimitiveType.Float, 4, field.Name, "", m_ShaderFields); + else if (field.FieldType == typeof(Matrix4x4)) + EmitMatrixType(PrimitiveType.Float, 4, 4, field.Name, "", m_ShaderFields); + else if (!ExtractComplex(field, m_ShaderFields)) + { + // Error reporting done in ExtractComplex() + return false; + } + } + } + + m_PackedFields = m_ShaderFields; + if (attr.packingRules == PackingRules.Aggressive) + { + m_PackedFields = Pack(m_ShaderFields); + + if (m_PackedFields == null) + { + return false; + } + } + + errors = null; + return true; + } + + public bool hasFields + { + get { return m_ShaderFields.Count > 0; } + } + + public bool hasStatics + { + get { return m_Statics.Count > 0; } + } + + public bool needAccessors + { + get { return attr.needAccessors; } + } + + public Type type; + public GenerateHLSL attr; + public int debugCounter; + public List errors = null; + + Dictionary m_Statics; + List m_ShaderFields; + List m_PackedFields; + } } diff --git a/Assets/TestScenes/FPTL/Materials/FwdMat.mat.meta b/Assets/TestScenes/FPTL/Materials/FwdMat.mat.meta new file mode 100644 index 00000000000..af6f8cd5359 --- /dev/null +++ b/Assets/TestScenes/FPTL/Materials/FwdMat.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 24e6a15bf9d2c0944b380d860a738528 +timeCreated: 1475863528 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/HDRenderLoopTest.unity b/Assets/TestScenes/HDTest/HDRenderLoopTest.unity new file mode 100644 index 00000000000..ce0145ea959 --- /dev/null +++ b/Assets/TestScenes/HDTest/HDRenderLoopTest.unity @@ -0,0 +1,2286 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 4 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_DirectLightInLightProbes: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 25 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1001 &159538337 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.x + value: -1.8938655 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.y + value: 0.60660255 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.z + value: 4.208341 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_RootOrder + value: 3 + objectReference: {fileID: 0} + - target: {fileID: 115764, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Name + value: rcgRock012_LODs (3) + objectReference: {fileID: 0} + - target: {fileID: 2374582, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 87c86082ee14fbd4b8426a8794f2060d, type: 2} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &191688570 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 400000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + propertyPath: m_LocalPosition.x + value: 3.461315 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + propertyPath: m_LocalPosition.y + value: 1.081 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + propertyPath: m_LocalPosition.z + value: 0.173 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + propertyPath: m_LocalRotation.x + value: -0.6687998 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + propertyPath: m_LocalRotation.y + value: -0.22957957 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + propertyPath: m_LocalRotation.z + value: 0.22957963 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + propertyPath: m_LocalRotation.w + value: 0.6687998 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + propertyPath: m_RootOrder + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: -52.108 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: -90.00001 + objectReference: {fileID: 0} + - target: {fileID: 400000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 90.00001 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 646b4ac0331f8e447bd20f06eba916a3, type: 3} + m_IsPrefabParent: 0 +--- !u!1 &336015812 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 336015816} + - component: {fileID: 336015815} + - component: {fileID: 336015814} + - component: {fileID: 336015813} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &336015813 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 336015812} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 9d65ced14251eb743ba9702a6f3c2ce8, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &336015814 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 336015812} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &336015815 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 336015812} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &336015816 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 336015812} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 24.13, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1546103598} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &559905034 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 559905038} + - component: {fileID: 559905037} + - component: {fileID: 559905036} + - component: {fileID: 559905035} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &559905035 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 559905034} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 6abcdf01974b58c45af2b04a9c0fdd13, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &559905036 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 559905034} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &559905037 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 559905034} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &559905038 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 559905034} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 933267878} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &580932146 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 580932147} + - component: {fileID: 580932149} + - component: {fileID: 580932148} + m_Layer: 0 + m_Name: Spotlight + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &580932147 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580932146} + m_LocalRotation: {x: 0.31429112, y: 0.005978446, z: -0.010438241, w: 0.94925046} + m_LocalPosition: {x: -0.50472116, y: 1.3631182, z: -3.6723824} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 37.039, y: 0, z: 0} +--- !u!114 &580932148 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580932146} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} + m_Name: + m_EditorClassIdentifier: + shadowResolution: 512 + innerSpotPercent: 49 +--- !u!108 &580932149 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 580932146} + m_Enabled: 1 + serializedVersion: 7 + m_Type: 0 + m_Color: {r: 0.9044118, g: 0.21945286, b: 0.21945286, a: 1} + m_Intensity: 5.15 + m_Range: 10 + m_SpotAngle: 67.1 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!1 &605581069 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 605581071} + - component: {fileID: 605581070} + m_Layer: 0 + m_Name: Directional light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &605581070 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 605581069} + m_Enabled: 1 + serializedVersion: 7 + m_Type: 1 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 0.25 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &605581071 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 605581069} + m_LocalRotation: {x: -0.15981111, y: 0.6031111, z: -0.31805873, w: -0.71383196} + m_LocalPosition: {x: -2.78, y: 0.88, z: -6.91} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 142.28, y: 106.256996, z: -160.70999} +--- !u!1 &609148480 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 609148484} + - component: {fileID: 609148483} + - component: {fileID: 609148482} + - component: {fileID: 609148481} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &609148481 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 609148480} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 53db393fa1a97b244b8f7e9d8f0bbdba, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &609148482 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 609148480} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &609148483 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 609148480} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &609148484 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 609148480} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 3.4166343, y: 1.4560829, z: -3.79} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &633911878 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 633911879} + - component: {fileID: 633911883} + - component: {fileID: 633911882} + - component: {fileID: 633911881} + - component: {fileID: 633911880} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &633911879 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 633911878} + m_LocalRotation: {x: -0, y: 0.9750333, z: -0.22205901, w: 0} + m_LocalPosition: {x: 23.67, y: 3.4, z: 6.22} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1247488470} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 25.66, y: 180, z: 0} +--- !u!81 &633911880 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 633911878} + m_Enabled: 1 +--- !u!92 &633911881 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 633911878} + m_Enabled: 1 +--- !u!124 &633911882 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 633911878} + m_Enabled: 1 +--- !u!20 &633911883 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 633911878} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 10 + field of view: 76.2 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1001 &653798720 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.x + value: 3.6074123 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.y + value: 0.60660255 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.z + value: 3.568 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 115764, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Name + value: rcgRock012_LODs (4) + objectReference: {fileID: 0} + - target: {fileID: 2374582, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 87c86082ee14fbd4b8426a8794f2060d, type: 2} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &744696321 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.x + value: 3.6074123 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.y + value: 0.032 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.z + value: 1.482 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_RootOrder + value: 14 + objectReference: {fileID: 0} + - target: {fileID: 115764, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Name + value: rcgRock012_LODs (6) + objectReference: {fileID: 0} + - target: {fileID: 2374582, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: c666d363b658c91468e5d881a9c5e051, type: 2} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + m_IsPrefabParent: 0 +--- !u!1001 &771937532 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.x + value: -0.49 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.y + value: 0.60660255 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.z + value: 0.67 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_RootOrder + value: 13 + objectReference: {fileID: 0} + - target: {fileID: 2374582, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: c666d363b658c91468e5d881a9c5e051, type: 2} + - target: {fileID: 115764, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Name + value: rcgRock012_LODs (5) + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &785457124 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 785457126} + - component: {fileID: 785457125} + m_Layer: 0 + m_Name: Point light (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &785457125 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 785457124} + m_Enabled: 1 + serializedVersion: 7 + m_Type: 2 + m_Color: {r: 0.3784602, g: 0.7352941, b: 0.4842799, a: 1} + m_Intensity: 8 + m_Range: 8.65 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &785457126 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 785457124} + m_LocalRotation: {x: -0.0034919123, y: 0.0089843245, z: -0.007998787, w: 0.99992156} + m_LocalPosition: {x: 4.38, y: 1.87, z: 6.11} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 18 + m_LocalEulerAnglesHint: {x: -0.39200002, y: 1.033, z: -0.92} +--- !u!1 &933267877 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 933267878} + m_Layer: 0 + m_Name: Test - ReflectionProbe -OBB + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &933267878 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 933267877} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -71.56, y: 0, z: 14.23} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1737318548} + - {fileID: 1035518233} + - {fileID: 559905038} + - {fileID: 2102536478} + m_Father: {fileID: 0} + m_RootOrder: 19 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &970745596 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 970745597} + - component: {fileID: 970745599} + - component: {fileID: 970745598} + m_Layer: 0 + m_Name: Spotlight (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &970745597 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 970745596} + m_LocalRotation: {x: 0.31429112, y: 0.005978446, z: -0.010438241, w: 0.94925046} + m_LocalPosition: {x: 3.576, y: 2.75, z: -3.662} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 37.039, y: 0, z: 0} +--- !u!114 &970745598 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 970745596} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} + m_Name: + m_EditorClassIdentifier: + shadowResolution: 512 + innerSpotPercent: 49 +--- !u!108 &970745599 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 970745596} + m_Enabled: 1 + serializedVersion: 7 + m_Type: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 8 + m_Range: 40.6 + m_SpotAngle: 80 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!1 &1035518232 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1035518233} + - component: {fileID: 1035518234} + m_Layer: 0 + m_Name: Reflection Probe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1035518233 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1035518232} + m_LocalRotation: {x: -0, y: 0.51840013, z: -0, w: 0.8551382} + m_LocalPosition: {x: -0.7599983, y: 1.8, z: -1.5999994} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 933267878} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 62.450005, z: 0} +--- !u!215 &1035518234 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1035518232} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 2 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 128 + m_UpdateFrequency: 0 + m_BoxSize: {x: 18.908352, y: 12.292334, z: 10} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 0 + m_HDR: 1 + m_BoxProjection: 1 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 8900000, guid: a6bda31e5e5c82a40b8e91ad0be087e8, + type: 3} +--- !u!1001 &1062558345 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1247488470} + m_Modifications: + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalPosition.x + value: 23.689999 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalPosition.y + value: 0.89 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalPosition.z + value: 0.37000084 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &1062558346 stripped +Transform: + m_PrefabParentObject: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, + type: 2} + m_PrefabInternal: {fileID: 1062558345} +--- !u!1 &1163258123 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1163258127} + - component: {fileID: 1163258126} + - component: {fileID: 1163258125} + - component: {fileID: 1163258124} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1163258124 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1163258123} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 9d65ced14251eb743ba9702a6f3c2ce8, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &1163258125 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1163258123} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1163258126 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1163258123} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1163258127 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1163258123} + 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: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1175446862 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1175446864} + - component: {fileID: 1175446863} + m_Layer: 0 + m_Name: Reflection Probe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!215 &1175446863 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1175446862} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 2 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 128 + m_UpdateFrequency: 0 + m_BoxSize: {x: 10, y: 10, z: 5} + m_BoxOffset: {x: -2.4527822, y: 0.115297556, z: -2.0854547} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 1 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 8900000, guid: a6bda31e5e5c82a40b8e91ad0be087e8, + type: 3} +--- !u!4 &1175446864 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1175446862} + m_LocalRotation: {x: 0.14233047, y: 0.35877672, z: -0.58332473, w: 0.71467024} + m_LocalPosition: {x: 22.001999, y: -0.38, z: 0.32000065} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1546103598} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 38.463, y: 26.286001, z: -69.130005} +--- !u!1 &1216278626 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1216278630} + - component: {fileID: 1216278629} + - component: {fileID: 1216278628} + - component: {fileID: 1216278627} + m_Layer: 0 + m_Name: Plane (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1216278627 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1216278626} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 93cc94b7b43bd594bb874af6b6cc4cd4, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &1216278628 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1216278626} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1216278629 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1216278626} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1216278630 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1216278626} + m_LocalRotation: {x: -0.7071068, y: 0, z: 0, w: 0.7071068} + m_LocalPosition: {x: 0.82856864, y: 2.573, z: -2.42} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: -90, y: 0, z: 0} +--- !u!1 &1220024533 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1220024535} + - component: {fileID: 1220024534} + m_Layer: 0 + m_Name: Point light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1220024534 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1220024533} + m_Enabled: 1 + serializedVersion: 7 + m_Type: 2 + m_Color: {r: 0.3784602, g: 0.7352941, b: 0.4842799, a: 1} + m_Intensity: 8 + m_Range: 6.01 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1220024535 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1220024533} + m_LocalRotation: {x: -0.0034919123, y: 0.0089843245, z: -0.007998787, w: 0.99992156} + m_LocalPosition: {x: 0.632, y: 1.453, z: 1.334} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: -0.39200002, y: 1.033, z: -0.92} +--- !u!1 &1247488469 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1247488470} + m_Layer: 0 + m_Name: Test - ReflectionProbe -OBB - regular + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1247488470 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1247488469} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -95.8, y: 0, z: -24.94} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1258713066} + - {fileID: 1586689953} + - {fileID: 1062558346} + - {fileID: 633911879} + m_Father: {fileID: 0} + m_RootOrder: 21 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1258713065 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1258713066} + - component: {fileID: 1258713069} + - component: {fileID: 1258713068} + - component: {fileID: 1258713067} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1258713066 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1258713065} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 24.13, y: 0, z: 0} + m_LocalScale: {x: 2, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1247488470} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1258713067 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1258713065} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 9d65ced14251eb743ba9702a6f3c2ce8, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &1258713068 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1258713065} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1258713069 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1258713065} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &1326720837 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.x + value: 3.7761242 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.y + value: 0.60660255 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.z + value: -0.95046043 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_RootOrder + value: 5 + objectReference: {fileID: 0} + - target: {fileID: 115764, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Name + value: rcgRock012_LODs (1) + objectReference: {fileID: 0} + - target: {fileID: 2374582, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 87c86082ee14fbd4b8426a8794f2060d, type: 2} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1546103597 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1546103598} + m_Layer: 0 + m_Name: Test - ReflectionProbe -OBB - Box offset + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1546103598 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1546103597} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -95.8, y: 0, z: -3.09} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 336015816} + - {fileID: 1175446864} + - {fileID: 1860830036} + - {fileID: 2050926016} + m_Father: {fileID: 0} + m_RootOrder: 20 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1586689952 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1586689953} + - component: {fileID: 1586689954} + m_Layer: 0 + m_Name: Reflection Probe + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1586689953 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1586689952} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 25.23, y: -0.38, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1247488470} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!215 &1586689954 +ReflectionProbe: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1586689952} + m_Enabled: 1 + serializedVersion: 2 + m_Type: 0 + m_Mode: 2 + m_RefreshMode: 0 + m_TimeSlicingMode: 0 + m_Resolution: 128 + m_UpdateFrequency: 0 + m_BoxSize: {x: 30, y: 10, z: 20} + m_BoxOffset: {x: 0, y: 0, z: 0} + m_NearClip: 0.3 + m_FarClip: 1000 + m_ShadowDistance: 100 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_IntensityMultiplier: 1 + m_BlendDistance: 1 + m_HDR: 1 + m_BoxProjection: 1 + m_RenderDynamicObjects: 0 + m_UseOcclusionCulling: 1 + m_Importance: 1 + m_CustomBakedTexture: {fileID: 8900000, guid: a6bda31e5e5c82a40b8e91ad0be087e8, + type: 3} +--- !u!1001 &1610483060 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.x + value: 1.7432984 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.y + value: 0.60660255 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.z + value: 1.9619157 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_RootOrder + value: 6 + objectReference: {fileID: 0} + - target: {fileID: 2374582, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 87c86082ee14fbd4b8426a8794f2060d, type: 2} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1614424510 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1614424514} + - component: {fileID: 1614424513} + - component: {fileID: 1614424512} + - component: {fileID: 1614424511} + m_Layer: 0 + m_Name: Plane (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!23 &1614424511 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1614424510} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: e6ed37b28beded942954d1569f452e39, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &1614424512 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1614424510} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1614424513 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1614424510} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1614424514 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1614424510} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 2.159, y: 1.27, z: -3.323} + m_LocalScale: {x: 0.2, y: 0.2, z: 0.2} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1737318547 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 933267878} + m_Modifications: + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalPosition.x + value: -0.43999863 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalPosition.y + value: 0.89 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalPosition.z + value: 0.37000084 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + m_IsPrefabParent: 0 +--- !u!4 &1737318548 stripped +Transform: + m_PrefabParentObject: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, + type: 2} + m_PrefabInternal: {fileID: 1737318547} +--- !u!1 &1828470159 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1828470164} + - component: {fileID: 1828470163} + - component: {fileID: 1828470162} + - component: {fileID: 1828470161} + - component: {fileID: 1828470160} + - component: {fileID: 1828470165} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1828470160 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1828470159} + m_Enabled: 1 +--- !u!124 &1828470161 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1828470159} + m_Enabled: 1 +--- !u!92 &1828470162 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1828470159} + m_Enabled: 1 +--- !u!20 &1828470163 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1828470159} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &1828470164 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1828470159} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 1, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &1828470165 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1828470159} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 92bb16b4ee20841929b24d6bd771738d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderLoop: {fileID: 11400000, guid: 2400b74f5ce370c4481e5dc417d03703, type: 2} +--- !u!1001 &1828950732 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.x + value: -0.9949498 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.y + value: 0.60660255 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalPosition.z + value: -1.6443993 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.y + value: -0.6805421 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalRotation.w + value: 0.732709 + objectReference: {fileID: 0} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_RootOrder + value: 4 + objectReference: {fileID: 0} + - target: {fileID: 115764, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Name + value: rcgRock012_LODs (2) + objectReference: {fileID: 0} + - target: {fileID: 2374582, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_Materials.Array.data[0] + value: + objectReference: {fileID: 2100000, guid: 87c86082ee14fbd4b8426a8794f2060d, type: 2} + - target: {fileID: 485392, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + propertyPath: m_LocalEulerAnglesHint.y + value: -85.772 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: e641a36bceddbf24a89656e94dafb3e5, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &1854618464 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1854618466} + - component: {fileID: 1854618465} + m_Layer: 0 + m_Name: Point light (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1854618465 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1854618464} + m_Enabled: 1 + serializedVersion: 7 + m_Type: 2 + m_Color: {r: 0.3784602, g: 0.7352941, b: 0.4842799, a: 1} + m_Intensity: 8 + m_Range: 6.01 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 0 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1854618466 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1854618464} + m_LocalRotation: {x: -0.0034919123, y: 0.0089843245, z: -0.007998787, w: 0.99992156} + m_LocalPosition: {x: 3.958, y: 1.411, z: 2.922} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: -0.39200002, y: 1.033, z: -0.92} +--- !u!4 &1860830036 stripped +Transform: + m_PrefabParentObject: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, + type: 2} + m_PrefabInternal: {fileID: 1889215922} +--- !u!1001 &1889215922 +Prefab: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 1546103598} + m_Modifications: + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalPosition.x + value: 23.689999 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalPosition.y + value: 0.89 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalPosition.z + value: 0.37000084 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_RootOrder + value: 2 + objectReference: {fileID: 0} + - target: {fileID: 4000010760374938, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + propertyPath: m_LocalScale.x + value: 1 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 100100000, guid: 1faa212e4ad88f04a81c5ed019001de5, type: 2} + m_IsPrefabParent: 0 +--- !u!1 &2050926015 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2050926016} + - component: {fileID: 2050926020} + - component: {fileID: 2050926019} + - component: {fileID: 2050926018} + - component: {fileID: 2050926017} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2050926016 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2050926015} + m_LocalRotation: {x: -0, y: 0.9750333, z: -0.22205901, w: 0} + m_LocalPosition: {x: 22.63, y: 3.4, z: 7.6} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1546103598} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 25.66, y: 180, z: 0} +--- !u!81 &2050926017 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2050926015} + m_Enabled: 1 +--- !u!92 &2050926018 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2050926015} + m_Enabled: 1 +--- !u!124 &2050926019 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2050926015} + m_Enabled: 1 +--- !u!20 &2050926020 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2050926015} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 10 + field of view: 51.48 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!1 &2102536477 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 2102536478} + - component: {fileID: 2102536482} + - component: {fileID: 2102536481} + - component: {fileID: 2102536480} + - component: {fileID: 2102536479} + m_Layer: 0 + m_Name: Camera + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &2102536478 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2102536477} + m_LocalRotation: {x: 0, y: 0.9750333, z: -0.22205901, w: 0} + m_LocalPosition: {x: -0.85, y: 3.659, z: 8.5} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 933267878} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 25.66, y: 180, z: 0} +--- !u!81 &2102536479 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2102536477} + m_Enabled: 1 +--- !u!92 &2102536480 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2102536477} + m_Enabled: 1 +--- !u!124 &2102536481 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2102536477} + m_Enabled: 1 +--- !u!20 &2102536482 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 2102536477} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 10 + field of view: 51.48 + orthographic: 0 + orthographic size: 5 + m_Depth: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/CommonMaterial.hlsl.meta b/Assets/TestScenes/HDTest/HDRenderLoopTest.unity.meta similarity index 63% rename from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/CommonMaterial.hlsl.meta rename to Assets/TestScenes/HDTest/HDRenderLoopTest.unity.meta index 65841fd105a..140f58feaed 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/CommonMaterial.hlsl.meta +++ b/Assets/TestScenes/HDTest/HDRenderLoopTest.unity.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 71aa77c8ecebcc942b7914328d88f7d1 -timeCreated: 1474465931 +guid: 0b16df2ba8fd0f244a826da853bc2d3b +timeCreated: 1475076282 licenseType: Pro DefaultImporter: userData: diff --git a/Assets/TestScenes/HDTest/JulienTest.unity b/Assets/TestScenes/HDTest/JulienTest.unity new file mode 100644 index 00000000000..84dcc21a372 --- /dev/null +++ b/Assets/TestScenes/HDTest/JulienTest.unity @@ -0,0 +1,1143 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0.18379468, g: 0.22912335, b: 0.3042184, a: 1} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + m_GIWorkflowMode: 0 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 1 + m_LightmapEditorSettings: + serializedVersion: 4 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_DirectLightInLightProbes: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_LightingDataAsset: {fileID: 0} + m_RuntimeCPUUsage: 50 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &124873432 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 124873433} + - component: {fileID: 124873436} + - component: {fileID: 124873435} + - component: {fileID: 124873434} + m_Layer: 0 + m_Name: Wall Green + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &124873433 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 124873432} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.48496014, y: 0.032776594, z: 2.5554304} + m_LocalScale: {x: 15.50667, y: 5.182779, z: 0.40650576} + m_Children: [] + m_Father: {fileID: 1027688891} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &124873434 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 124873432} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 2a49749e551c49a44acc0033cbbf7f22, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &124873435 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 124873432} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &124873436 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 124873432} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &399229766 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 399229767} + - component: {fileID: 399229770} + - component: {fileID: 399229769} + - component: {fileID: 399229768} + m_Layer: 0 + m_Name: Plane + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &399229767 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 399229766} + m_LocalRotation: {x: 0, y: 0, z: -0.7071068, w: 0.7071068} + m_LocalPosition: {x: 11.47, y: 0.99, z: -2.72} + m_LocalScale: {x: 0.7180612, y: 1, z: 2.3734639} + m_Children: [] + m_Father: {fileID: 1027688891} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -90} +--- !u!23 &399229768 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 399229766} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 6816da50441b49245843695729d8968c, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &399229769 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 399229766} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &399229770 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 399229766} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1027688890 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1027688891} + m_Layer: 0 + m_Name: HDRenderLoop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1027688891 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1027688890} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.093494415, y: 2.4372234, z: 46.93} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1197900220} + - {fileID: 1893534340} + - {fileID: 1330031309} + - {fileID: 124873433} + - {fileID: 399229767} + - {fileID: 1438296044} + m_Father: {fileID: 0} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1181847329 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1181847333} + - component: {fileID: 1181847332} + - component: {fileID: 1181847331} + - component: {fileID: 1181847330} + m_Layer: 0 + m_Name: Wall Red + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!23 &1181847330 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1181847329} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 0c2e44f39540bfe47bb4a89301913cb0, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1181847331 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1181847329} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1181847332 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1181847329} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1181847333 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1181847329} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.48496014, y: 0.032776594, z: -8.26457} + m_LocalScale: {x: 15.50667, y: 5.182779, z: 0.40650576} + m_Children: [] + m_Father: {fileID: 1271727142} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1192842089 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1192842093} + - component: {fileID: 1192842092} + - component: {fileID: 1192842091} + - component: {fileID: 1192842090} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!23 &1192842090 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1192842089} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 1971c044ea2fd954382f35c444500b9d, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1192842091 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1192842089} + 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 &1192842092 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1192842089} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1192842093 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1192842089} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.093494415, y: -2.4372234, z: -4.1745696} + m_LocalScale: {x: 2, y: 2, z: 2} + m_Children: [] + m_Father: {fileID: 1271727142} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1197900219 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1197900220} + - component: {fileID: 1197900223} + - component: {fileID: 1197900222} + - component: {fileID: 1197900221} + m_Layer: 0 + m_Name: Ground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &1197900220 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1197900219} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -2.4372234, z: -4.1745696} + m_LocalScale: {x: 4, y: 4, z: 4} + m_Children: [] + m_Father: {fileID: 1027688891} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1197900221 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1197900219} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 6abcdf01974b58c45af2b04a9c0fdd13, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &1197900222 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1197900219} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1197900223 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1197900219} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1237103361 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1237103365} + - component: {fileID: 1237103364} + - component: {fileID: 1237103363} + - component: {fileID: 1237103362} + m_Layer: 0 + m_Name: Ground + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!23 &1237103362 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1237103361} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 1971c044ea2fd954382f35c444500b9d, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &1237103363 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1237103361} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1237103364 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1237103361} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1237103365 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1237103361} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.093494415, y: -2.4372234, z: -4.1745696} + m_LocalScale: {x: 4, y: 4, z: 4} + m_Children: [] + m_Father: {fileID: 1271727142} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1271727141 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1271727142} + m_Layer: 0 + m_Name: StandardRenderLoop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1271727142 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1271727141} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.093494415, y: 2.4372234, z: 4.1745696} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 1237103365} + - {fileID: 1192842093} + - {fileID: 1181847333} + - {fileID: 1317825231} + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1317825227 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1317825231} + - component: {fileID: 1317825230} + - component: {fileID: 1317825229} + - component: {fileID: 1317825228} + m_Layer: 0 + m_Name: Wall Green + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!23 &1317825228 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1317825227} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: dd3ea841523c2fd49889e4ebb1859397, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1317825229 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1317825227} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1317825230 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1317825227} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!4 &1317825231 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1317825227} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.48496014, y: 0.032776594, z: 2.5554304} + m_LocalScale: {x: 15.50667, y: 5.182779, z: 0.40650576} + m_Children: [] + m_Father: {fileID: 1271727142} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1330031308 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1330031309} + - component: {fileID: 1330031312} + - component: {fileID: 1330031311} + - component: {fileID: 1330031310} + m_Layer: 0 + m_Name: Wall Red + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &1330031309 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1330031308} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.48496014, y: 0.032776594, z: -8.26457} + m_LocalScale: {x: 15.50667, y: 5.182779, z: 0.40650576} + m_Children: [] + m_Father: {fileID: 1027688891} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1330031310 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1330031308} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: c569253e641dc934db7c3595b31890da, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!65 &1330031311 +BoxCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1330031308} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!33 &1330031312 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1330031308} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1438296043 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1438296044} + - component: {fileID: 1438296047} + - component: {fileID: 1438296046} + - component: {fileID: 1438296045} + m_Layer: 0 + m_Name: Ground Layered + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &1438296044 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1438296043} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -47.2, y: -2.4372234, z: -4.174568} + m_LocalScale: {x: 4, y: 4, z: 4} + m_Children: [] + m_Father: {fileID: 1027688891} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1438296045 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1438296043} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 6e7fa39a7d1b15c4184c9f51d86eba22, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!64 &1438296046 +MeshCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1438296043} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Convex: 0 + m_InflateMesh: 0 + m_SkinWidth: 0.01 + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &1438296047 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1438296043} + m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1457550750 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1457550752} + - component: {fileID: 1457550751} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!108 &1457550751 +Light: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1457550750} + m_Enabled: 1 + serializedVersion: 7 + m_Type: 1 + m_Color: {r: 1, g: 0.95686275, b: 0.8392157, a: 1} + m_Intensity: 8 + m_Range: 10 + m_SpotAngle: 30 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_Lightmapping: 4 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!4 &1457550752 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1457550750} + m_LocalRotation: {x: 0.045570496, y: -0.4738639, z: 0.48278427, w: 0.73504806} + m_LocalPosition: {x: 0, y: 9.18, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 31.637001, y: 309.955, z: -308.473} +--- !u!1 &1879932837 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1879932842} + - component: {fileID: 1879932841} + - component: {fileID: 1879932840} + - component: {fileID: 1879932839} + - component: {fileID: 1879932838} + - component: {fileID: 1879932843} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &1879932838 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1879932837} + m_Enabled: 1 +--- !u!124 &1879932839 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1879932837} + m_Enabled: 1 +--- !u!92 &1879932840 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1879932837} + m_Enabled: 1 +--- !u!20 &1879932841 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1879932837} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &1879932842 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1879932837} + m_LocalRotation: {x: 0.07759436, y: -0.72047704, z: 0.08170084, w: 0.6842638} + m_LocalPosition: {x: 25.43, y: 9.08, z: 40.21} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 12.939001, y: -92.953, z: 0} +--- !u!114 &1879932843 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1879932837} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 92bb16b4ee20841929b24d6bd771738d, type: 3} + m_Name: + m_EditorClassIdentifier: + m_RenderLoop: {fileID: 11400000, guid: 2400b74f5ce370c4481e5dc417d03703, type: 2} + m_AssetVersion: 0 +--- !u!1 &1893534339 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1893534340} + - component: {fileID: 1893534343} + - component: {fileID: 1893534342} + - component: {fileID: 1893534341} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 4294967295 + m_IsActive: 1 +--- !u!4 &1893534340 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1893534339} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.093494415, y: 0.3, z: -4.1745696} + m_LocalScale: {x: 2, y: 2, z: 2} + m_Children: [] + m_Father: {fileID: 1027688891} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &1893534341 +MeshRenderer: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1893534339} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 6abcdf01974b58c45af2b04a9c0fdd13, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!135 &1893534342 +SphereCollider: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1893534339} + 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 &1893534343 +MeshFilter: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1893534339} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/DisneyGGX.hlsl.meta b/Assets/TestScenes/HDTest/JulienTest.unity.meta similarity index 63% rename from Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/DisneyGGX.hlsl.meta rename to Assets/TestScenes/HDTest/JulienTest.unity.meta index 22203a29822..1c9b61f2f3e 100644 --- a/Assets/ScriptableRenderLoop/HDRenderLoop/Shaders/Material/DisneyGGX.hlsl.meta +++ b/Assets/TestScenes/HDTest/JulienTest.unity.meta @@ -1,6 +1,6 @@ fileFormatVersion: 2 -guid: 3d0985c9290aa0847969ac858555e87a -timeCreated: 1474465931 +guid: 2f8109075b126c745a0b6a02aa1b07d6 +timeCreated: 1475571359 licenseType: Pro DefaultImporter: userData: diff --git a/Assets/TestScenes/HDTest/Leaf.meta b/Assets/TestScenes/HDTest/Leaf.meta new file mode 100644 index 00000000000..c35271c9650 --- /dev/null +++ b/Assets/TestScenes/HDTest/Leaf.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 01cfa4863006ad6499396fb0d4802c7e +folderAsset: yes +timeCreated: 1475755141 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf.meta b/Assets/TestScenes/HDTest/Leaf/GroundLeaf.meta new file mode 100644 index 00000000000..34d19cef4bc --- /dev/null +++ b/Assets/TestScenes/HDTest/Leaf/GroundLeaf.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 582c65a5691faa94183a3a24350b12e0 +folderAsset: yes +timeCreated: 1475755103 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf.FBX b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf.FBX new file mode 100644 index 00000000000..a7e8e65ad23 Binary files /dev/null and b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf.FBX differ diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf.FBX.meta b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf.FBX.meta new file mode 100644 index 00000000000..ccd2a29bbfc --- /dev/null +++ b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf.FBX.meta @@ -0,0 +1,78 @@ +fileFormatVersion: 2 +guid: 646b4ac0331f8e447bd20f06eba916a3 +timeCreated: 1460562588 +licenseType: Pro +ModelImporter: + serializedVersion: 19 + fileIDToRecycleName: + 100000: //RootNode + 400000: //RootNode + 2300000: //RootNode + 3300000: //RootNode + 4300000: LowLeaf + 9500000: //RootNode + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + resampleCurves: 1 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: 0.5 + animationPositionError: 0.5 + animationScaleError: 0.5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: [] + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + normalImportMode: 0 + tangentImportMode: 3 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: 0.5 + foreArmTwist: 0.5 + upperLegTwist: 0.5 + legTwist: 0.5 + armStretch: 0.05 + legStretch: 0.05 + feetSpacing: 0 + rootMotionBoneName: + rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1} + hasTranslationDoF: 0 + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 2 + humanoidOversampling: 1 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Albedo.tga b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Albedo.tga new file mode 100644 index 00000000000..8d2d5879a04 Binary files /dev/null and b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Albedo.tga differ diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Albedo.tga.meta b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Albedo.tga.meta new file mode 100644 index 00000000000..08fabb49f02 --- /dev/null +++ b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Albedo.tga.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 00447c5eeb984f54d92c80818840a36b +timeCreated: 1460562585 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + 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 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Normal.tga b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Normal.tga new file mode 100644 index 00000000000..4e6bd508a68 Binary files /dev/null and b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Normal.tga differ diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Normal.tga.meta b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Normal.tga.meta new file mode 100644 index 00000000000..c32ecb1c7cd --- /dev/null +++ b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Normal.tga.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: 0c3144d154991884c8aa53e7dc7893ff +timeCreated: 1460562586 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + 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 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Roughness.tga b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Roughness.tga new file mode 100644 index 00000000000..fba75b96df9 Binary files /dev/null and b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Roughness.tga differ diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Roughness.tga.meta b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Roughness.tga.meta new file mode 100644 index 00000000000..40186b9d0f5 --- /dev/null +++ b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/GroundLeaf_Roughness.tga.meta @@ -0,0 +1,57 @@ +fileFormatVersion: 2 +guid: b24f69ff4ace9194fb0d9eee4f5cf1a4 +timeCreated: 1460563486 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 3 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 7 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -3 + maxTextureSize: 2048 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + allowsAlphaSplitting: 0 + 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 + alphaIsTransparency: 0 + spriteTessellationDetail: -1 + textureType: 5 + buildTargetSettings: [] + spriteSheet: + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf/Materials.meta b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/Materials.meta new file mode 100644 index 00000000000..6342dc35746 --- /dev/null +++ b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2c1704719515c3749a1c4f99bde03b83 +folderAsset: yes +timeCreated: 1475755103 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf/Materials/GroundLeaf_Albedo.mat b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/Materials/GroundLeaf_Albedo.mat new file mode 100644 index 00000000000..2a7cf9b903c --- /dev/null +++ b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/Materials/GroundLeaf_Albedo.mat @@ -0,0 +1,239 @@ +%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: GroundLeaf_Albedo + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _DOUBLESIDED_LIGHTING_FLIP _EMISSION _MASKMAP _METALLICGLOSSMAP _NORMALMAP _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 2800000, guid: 00447c5eeb984f54d92c80818840a36b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 0c3144d154991884c8aa53e7dc7893ff, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 00447c5eeb984f54d92c80818840a36b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 2800000, guid: b24f69ff4ace9194fb0d9eee4f5cf1a4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 2800000, guid: b24f69ff4ace9194fb0d9eee4f5cf1a4, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 2800000, guid: 0c3144d154991884c8aa53e7dc7893ff, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 0 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 2 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 0.892 + - first: + name: _Glossiness + second: 0.507 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 1 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.5 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.5882353, g: 0.5882353, b: 0.5882353, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Leaf/GroundLeaf/Materials/GroundLeaf_Albedo.mat.meta b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/Materials/GroundLeaf_Albedo.mat.meta new file mode 100644 index 00000000000..2d648d23c6b --- /dev/null +++ b/Assets/TestScenes/HDTest/Leaf/GroundLeaf/Materials/GroundLeaf_Albedo.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6d35c0ba34dda264db86b7d5eeb657e5 +timeCreated: 1460562588 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials.meta new file mode 100644 index 00000000000..f1eccc0f57b --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: ccb92651889729a47b75ca7a17f3c235 +folderAsset: yes +timeCreated: 1475573242 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Blue_Alpha.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Blue_Alpha.mat new file mode 100644 index 00000000000..c46d0f9597d --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Blue_Alpha.mat @@ -0,0 +1,267 @@ +%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: Blue_Alpha + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _AmbientOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MettalicMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SmoothnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.187 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 0 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSided + second: 1 + - first: + name: _DoubleSidedLigthing + second: 1 + - first: + name: _DoubleSidedMode + second: 1 + - first: + name: _DstBlend + second: 10 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialID + second: 0 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.5 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 5 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 1 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 0 + m_Colors: + - first: + name: _BaseColor + second: {r: 0.3118512, g: 0.49926913, b: 0.75735295, a: 0.672} + - first: + name: _Color + second: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Blue_Alpha.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Blue_Alpha.mat.meta new file mode 100644 index 00000000000..e8ea0b4a105 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Blue_Alpha.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6816da50441b49245843695729d8968c +timeCreated: 1475573357 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/CubeTransparent.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/CubeTransparent.mat new file mode 100644 index 00000000000..3314ca69c0b --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/CubeTransparent.mat @@ -0,0 +1,240 @@ +%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: CubeTransparent + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 10 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.5 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 5 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 1 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 0 + m_Colors: + - first: + name: _BaseColor + second: {r: 0.9117647, g: 0.1273789, b: 0.1273789, a: 0.566} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/CubeTransparent.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/CubeTransparent.mat.meta new file mode 100644 index 00000000000..55e0ca684cf --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/CubeTransparent.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 53db393fa1a97b244b8f7e9d8f0bbdba +timeCreated: 1475760437 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Gray.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Gray.mat new file mode 100644 index 00000000000..42b2d0ea3dd --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Gray.mat @@ -0,0 +1,266 @@ +%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: Gray + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _AmbientOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MettalicMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SmoothnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSided + second: 1 + - first: + name: _DoubleSidedLigthing + second: 1 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialID + second: 0 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.5 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1} + - first: + name: _Color + second: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Gray.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Gray.mat.meta new file mode 100644 index 00000000000..11bef6db193 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Gray.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6abcdf01974b58c45af2b04a9c0fdd13 +timeCreated: 1475573357 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Green.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Green.mat new file mode 100644 index 00000000000..811bcb7dd67 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Green.mat @@ -0,0 +1,272 @@ +%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: Green + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _AmbientOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MettalicMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SmoothnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSided + second: 1 + - first: + name: _DoubleSidedLigthing + second: 1 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialID + second: 0 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.5 + - first: + name: _SmoothnessTextureChannel + second: 1 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 0, g: 1, b: 0, a: 1} + - first: + name: _Color + second: {r: 0, g: 1, b: 0, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Green.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Green.mat.meta new file mode 100644 index 00000000000..16fd7bc2ab9 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Green.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2a49749e551c49a44acc0033cbbf7f22 +timeCreated: 1475573341 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground.meta new file mode 100644 index 00000000000..5dca682c7eb --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 2296a518234988544bd7e781578b5555 +folderAsset: yes +timeCreated: 1476192536 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Ground_01_2x2.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Ground_01_2x2.mat new file mode 100644 index 00000000000..f95c12583e9 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Ground_01_2x2.mat @@ -0,0 +1,326 @@ +%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: Ground_01_2x2 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _MASKMAP _NORMALMAP _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _AO + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 2800000, guid: ded78b6c0a9afd94a8d528c2ec647f8f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailBlend + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DispTex + second: + m_Texture: {fileID: 2800000, guid: 9b4da9d589607fd41ad90c8cf780d4aa, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MSK + second: + m_Texture: {fileID: 2800000, guid: eddc784b66d317641bd2c3b078a694b1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: ded78b6c0a9afd94a8d528c2ec647f8f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 2800000, guid: eddc784b66d317641bd2c3b078a694b1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 2800000, guid: d896c388b98bb614ebe6bb48e0f56dcf, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMapDetail + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMapDetail2 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _Smoothness + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _Displacement + second: 0.056 + - first: + name: _DisplacementCenter + second: 0.696 + - first: + name: _DisplacementFar + second: 12 + - first: + name: _DisplacementNear + second: 0 + - first: + name: _DisplacementfalloffFar + second: 2 + - first: + name: _DisplacementfalloffNear + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalDetailMul + second: 1 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 1 + - first: + name: _SmoothnessMul + second: 0.288 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _Tess + second: 64 + - first: + name: _TessFar + second: 2 + - first: + name: _TessNear + second: 1 + - first: + name: _Tiling + second: 1 + - first: + name: _TilingDetail + second: 1 + - first: + name: _TilingDetail2 + second: 4 + - first: + name: _UVSec + second: 0 + - first: + name: _UseDisplacementfalloff + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _SpecColor + second: {r: 0.5, g: 0.5, b: 0.5, a: 0.5} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Ground_01_2x2.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Ground_01_2x2.mat.meta new file mode 100644 index 00000000000..b6740f228a3 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Ground_01_2x2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 01fa3be727161d249a81ad7065c15459 +timeCreated: 1475674849 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Needle_Moss_1x1.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Needle_Moss_1x1.mat new file mode 100644 index 00000000000..27421039382 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Needle_Moss_1x1.mat @@ -0,0 +1,287 @@ +%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: Needle_Moss_1x1 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _MASKMAP _NORMALMAP _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 2800000, guid: 9099cfe546c2a2c4bb7cc1f114c1985d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DispTex + second: + m_Texture: {fileID: 2800000, guid: abe37e776c6f4164ea0e794a3c201705, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MSK + second: + m_Texture: {fileID: 2800000, guid: 5b9c7f6055407ce41989dbb50fb6df10, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 9099cfe546c2a2c4bb7cc1f114c1985d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 2800000, guid: 5b9c7f6055407ce41989dbb50fb6df10, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 2800000, guid: 9f0707fef3f15394ab3aa08fd9b5def3, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMapDetail + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _Displacement + second: 0.016 + - first: + name: _DisplacementCenter + second: 0.5 + - first: + name: _DisplacementfalloffFar + second: 9.1 + - first: + name: _DisplacementfalloffNear + second: 4.7 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalDetailMul + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 1 + - first: + name: _SmoothnessMul + second: 1 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _Tess + second: 64 + - first: + name: _TessFar + second: 2 + - first: + name: _TessNear + second: 1 + - first: + name: _Tiling + second: 2 + - first: + name: _TilingDetail + second: 4 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Needle_Moss_1x1.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Needle_Moss_1x1.mat.meta new file mode 100644 index 00000000000..24ce6cc0e68 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Needle_Moss_1x1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3acf8f156d29e494e8cd196462d1a17c +timeCreated: 1475677400 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Sand_02_2x2_02.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Sand_02_2x2_02.mat new file mode 100644 index 00000000000..8f220194014 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Sand_02_2x2_02.mat @@ -0,0 +1,287 @@ +%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: Sand_02_2x2_02 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _MASKMAP _NORMALMAP _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 2800000, guid: 68b970ec01d028a40a3e68e6e684e8e3, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DispTex + second: + m_Texture: {fileID: 2800000, guid: 237bd6ccd5c8da74eb3b1230ab7504bb, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MSK + second: + m_Texture: {fileID: 2800000, guid: 2a19212b7194d8e45bf82f7b93422472, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: 5f06911e08c17364899c2103d373fb84, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 2800000, guid: d24c0ec78314b3c47bb17c0f918bff7d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 2800000, guid: d6b5108542e0e7547b9afe26c79f9460, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMapDetail + second: + m_Texture: {fileID: 2800000, guid: cd9a47c83c764a3409d22b74deb99200, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _Displacement + second: 0.025 + - first: + name: _DisplacementCenter + second: 0.49 + - first: + name: _DisplacementfalloffFar + second: 150 + - first: + name: _DisplacementfalloffNear + second: 30 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalDetailMul + second: 0.71 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 1 + - first: + name: _SmoothnessMul + second: 0.344 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _Tess + second: 32 + - first: + name: _TessFar + second: 2 + - first: + name: _TessNear + second: 1 + - first: + name: _Tiling + second: 1 + - first: + name: _TilingDetail + second: 40 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Sand_02_2x2_02.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Sand_02_2x2_02.mat.meta new file mode 100644 index 00000000000..8089a5c114b --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Sand_02_2x2_02.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 62b3c923bc540b94a803550e9927936a +timeCreated: 1475683138 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures.meta new file mode 100644 index 00000000000..91337e8147a --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 9459f176724510f469470c8b658c7029 +folderAsset: yes +timeCreated: 1476274963 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_BC.tga b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_BC.tga new file mode 100644 index 00000000000..a2184f99d11 Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_BC.tga differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_BC.tga.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_BC.tga.meta new file mode 100644 index 00000000000..f17eb50433b --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_BC.tga.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: ded78b6c0a9afd94a8d528c2ec647f8f +timeCreated: 1475674763 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_H.exr b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_H.exr new file mode 100644 index 00000000000..af65715a52e Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_H.exr differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_H.exr.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_H.exr.meta new file mode 100644 index 00000000000..6e0b5eaebbb --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_H.exr.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 9b4da9d589607fd41ad90c8cf780d4aa +timeCreated: 1475674753 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: 26 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + - buildTarget: PS4 + maxTextureSize: 2048 + textureFormat: 26 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_MSK.tga b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_MSK.tga new file mode 100644 index 00000000000..4793fb58bc1 Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_MSK.tga differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_MSK.tga.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_MSK.tga.meta new file mode 100644 index 00000000000..b24ebe7eebe --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_MSK.tga.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: eddc784b66d317641bd2c3b078a694b1 +timeCreated: 1475675441 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_N.tga b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_N.tga new file mode 100644 index 00000000000..0799e85d5e9 Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_N.tga differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_N.tga.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_N.tga.meta new file mode 100644 index 00000000000..2900aa120db --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Ground_01_2x2_N.tga.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: d896c388b98bb614ebe6bb48e0f56dcf +timeCreated: 1475674758 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_BC.tga b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_BC.tga new file mode 100644 index 00000000000..4dfb73eb957 Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_BC.tga differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_BC.tga.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_BC.tga.meta new file mode 100644 index 00000000000..987779185be --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_BC.tga.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 9099cfe546c2a2c4bb7cc1f114c1985d +timeCreated: 1475681782 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 4096 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 4096 + textureFormat: 25 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_H.tga b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_H.tga new file mode 100644 index 00000000000..2564a636fc3 Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_H.tga differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_H.tga.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_H.tga.meta new file mode 100644 index 00000000000..76ff7d55edc --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_H.tga.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: abe37e776c6f4164ea0e794a3c201705 +timeCreated: 1475677386 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 4096 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: 26 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + - buildTarget: PS4 + maxTextureSize: 2048 + textureFormat: 26 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_MSK.tga b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_MSK.tga new file mode 100644 index 00000000000..c87627a163f Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_MSK.tga differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_MSK.tga.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_MSK.tga.meta new file mode 100644 index 00000000000..6f6989bc93f --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_MSK.tga.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 5b9c7f6055407ce41989dbb50fb6df10 +timeCreated: 1475677374 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 4096 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 4096 + textureFormat: 25 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_N.tga b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_N.tga new file mode 100644 index 00000000000..f23ab03a14d Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_N.tga differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_N.tga.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_N.tga.meta new file mode 100644 index 00000000000..bd99a1d40a1 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Needle_Moss_1x1_N.tga.meta @@ -0,0 +1,76 @@ +fileFormatVersion: 2 +guid: 9f0707fef3f15394ab3aa08fd9b5def3 +timeCreated: 1475677385 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 4096 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 4096 + textureFormat: 25 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_BC.tga b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_BC.tga new file mode 100644 index 00000000000..25efb9fa6fa Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_BC.tga differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_BC.tga.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_BC.tga.meta new file mode 100644 index 00000000000..e4287d8110b --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_BC.tga.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: 68b970ec01d028a40a3e68e6e684e8e3 +timeCreated: 1475684920 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_H.exr b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_H.exr new file mode 100644 index 00000000000..cb63c54aa27 Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_H.exr differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_H.exr.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_H.exr.meta new file mode 100644 index 00000000000..65aa3eded99 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_H.exr.meta @@ -0,0 +1,84 @@ +fileFormatVersion: 2 +guid: 52aca467536876944a1cc1133173a8f1 +timeCreated: 1475684915 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: 26 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + - buildTarget: PS4 + maxTextureSize: 2048 + textureFormat: 26 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 1 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_MSK.tga b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_MSK.tga new file mode 100644 index 00000000000..a2b05947bc3 Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_MSK.tga differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_MSK.tga.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_MSK.tga.meta new file mode 100644 index 00000000000..62d05b0fe3e --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_MSK.tga.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: d24c0ec78314b3c47bb17c0f918bff7d +timeCreated: 1475684925 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_N.tga b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_N.tga new file mode 100644 index 00000000000..48653bbb35d Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_N.tga differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_N.tga.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_N.tga.meta new file mode 100644 index 00000000000..8b7425432f1 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Ground/Textures/Sand_02_2x2_02_N.tga.meta @@ -0,0 +1,68 @@ +fileFormatVersion: 2 +guid: d6b5108542e0e7547b9afe26c79f9460 +timeCreated: 1475684930 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -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: 0 + spriteTessellationDetail: -1 + textureType: 1 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 2 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/LayerMask.tga b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/LayerMask.tga new file mode 100644 index 00000000000..ea8549da50f Binary files /dev/null and b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/LayerMask.tga differ diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/LayerMask.tga.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/LayerMask.tga.meta new file mode 100644 index 00000000000..a61868540f3 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/LayerMask.tga.meta @@ -0,0 +1,108 @@ +fileFormatVersion: 2 +guid: 6b43fa9736beb354dba359b5d2ec3699 +timeCreated: 1476374214 +licenseType: Pro +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 4 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + sRGBTexture: 0 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + 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: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: 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: 0 + spriteTessellationDetail: -1 + textureType: 0 + textureShape: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + platformSettings: + - buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Standalone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: iPhone + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: tvOS + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: Windows Store Apps + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + - buildTarget: WebGL + maxTextureSize: 2048 + textureFormat: -1 + textureCompression: 0 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Layered.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Layered.mat new file mode 100644 index 00000000000..be422060c7b --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Layered.mat @@ -0,0 +1,474 @@ +%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: Layered + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _LAYEREDLIT_4_LAYER _LAYEREDLIT_4_LAYERS _LAYERMASKMAP _MASKMAP _NORMALMAP + _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap0 + second: + m_Texture: {fileID: 2800000, guid: ded78b6c0a9afd94a8d528c2ec647f8f, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap1 + second: + m_Texture: {fileID: 2800000, guid: 9099cfe546c2a2c4bb7cc1f114c1985d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap2 + second: + m_Texture: {fileID: 2800000, guid: 68b970ec01d028a40a3e68e6e684e8e3, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap3 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap0 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap1 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap2 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap3 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap0 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap1 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap2 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap3 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _LayerMaskMap + second: + m_Texture: {fileID: 2800000, guid: 6b43fa9736beb354dba359b5d2ec3699, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap0 + second: + m_Texture: {fileID: 2800000, guid: eddc784b66d317641bd2c3b078a694b1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap1 + second: + m_Texture: {fileID: 2800000, guid: 5b9c7f6055407ce41989dbb50fb6df10, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap2 + second: + m_Texture: {fileID: 2800000, guid: d24c0ec78314b3c47bb17c0f918bff7d, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap3 + second: + m_Texture: {fileID: 2800000, guid: eddc784b66d317641bd2c3b078a694b1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap0 + second: + m_Texture: {fileID: 2800000, guid: d896c388b98bb614ebe6bb48e0f56dcf, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap1 + second: + m_Texture: {fileID: 2800000, guid: 9f0707fef3f15394ab3aa08fd9b5def3, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap2 + second: + m_Texture: {fileID: 2800000, guid: d6b5108542e0e7547b9afe26c79f9460, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap3 + second: + m_Texture: {fileID: 2800000, guid: d896c388b98bb614ebe6bb48e0f56dcf, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap0 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap1 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap2 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap3 + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.122 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _EmissiveIntensity0 + second: 0 + - first: + name: _EmissiveIntensity1 + second: 0 + - first: + name: _EmissiveIntensity2 + second: 0 + - first: + name: _EmissiveIntensity3 + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightBias0 + second: 0 + - first: + name: _HeightBias1 + second: 0 + - first: + name: _HeightBias2 + second: 0 + - first: + name: _HeightBias3 + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _HeightScale0 + second: 1 + - first: + name: _HeightScale1 + second: 1 + - first: + name: _HeightScale2 + second: 1 + - first: + name: _HeightScale3 + second: 1 + - first: + name: _LayerCount + second: 4 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metalic0 + second: 0 + - first: + name: _Metalic1 + second: 0 + - first: + name: _Metalic2 + second: 0 + - first: + name: _Metalic3 + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.5 + - first: + name: _Smoothness0 + second: 1 + - first: + name: _Smoothness1 + second: 1 + - first: + name: _Smoothness2 + second: 1 + - first: + name: _Smoothness3 + second: 0.486 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _BaseColor0 + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _BaseColor1 + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _BaseColor2 + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _BaseColor3 + second: {r: 1, g: 0, b: 0, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor0 + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor1 + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor2 + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor3 + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Layered.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Layered.mat.meta new file mode 100644 index 00000000000..2b79e0b9d82 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Layered.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6e7fa39a7d1b15c4184c9f51d86eba22 +timeCreated: 1476275536 +licenseType: Pro +NativeFormatImporter: + userData: '{"GUIDArray":["01fa3be727161d249a81ad7065c15459","3acf8f156d29e494e8cd196462d1a17c","62b3c923bc540b94a803550e9927936a","c569253e641dc934db7c3595b31890da"]}' + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Red.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Red.mat new file mode 100644 index 00000000000..56ebb74bb1e --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Red.mat @@ -0,0 +1,266 @@ +%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: Red + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _MASKMAP _NORMALMAP _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _AmbientOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 2800000, guid: eddc784b66d317641bd2c3b078a694b1, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MettalicMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 2800000, guid: d896c388b98bb614ebe6bb48e0f56dcf, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SmoothnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSided + second: 1 + - first: + name: _DoubleSidedLigthing + second: 1 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialID + second: 0 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.486 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 0, b: 0, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Red.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Red.mat.meta new file mode 100644 index 00000000000..76f0b658732 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Red.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c569253e641dc934db7c3595b31890da +timeCreated: 1475573251 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Terrain.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Terrain.mat new file mode 100644 index 00000000000..e2a82df36f9 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Terrain.mat @@ -0,0 +1,263 @@ +%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: Terrain + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SmoothnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.5 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.5, g: 0.5, b: 0.5, a: 1} + - first: + name: _DiffuseColor + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _SpecColor + second: {r: 0.04, g: 0.04, b: 0.04, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Terrain.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Terrain.mat.meta new file mode 100644 index 00000000000..41b081974ec --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/Terrain.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9d65ced14251eb743ba9702a6f3c2ce8 +timeCreated: 1475076595 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-alpha.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-alpha.mat new file mode 100644 index 00000000000..27e0faabfd6 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-alpha.mat @@ -0,0 +1,315 @@ +%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: test-alpha + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHATEST_ON _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF _EMISSION + _NORMALMAP _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: 2450 + stringTagMap: + RenderType: TransparentCutout + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _AmbientOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 2800000, guid: 00447c5eeb984f54d92c80818840a36b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _CoatCoverageMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _CoatRoughnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseMap + second: + m_Texture: {fileID: 2800000, guid: d734753529ca78148a43944515a64bc5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MettalicMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 2800000, guid: 11f99173903c31f49b05339fc71c7919, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 2800000, guid: fe2ed6aee0b5acd42bc15ee53e939e03, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SmoothnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ThicknessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.166 + - first: + name: _AlphaCutoffEnable + second: 1 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CoatCoverage + second: 0 + - first: + name: _CoatRoughness + second: 0 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSided + second: 1 + - first: + name: _DoubleSidedLigthing + second: 1 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialID + second: 0 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.524 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceProfile + second: 0 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _Thickness + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _DiffuseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _SpecColor + second: {r: 0.04, g: 0.04, b: 0.04, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-alpha.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-alpha.mat.meta new file mode 100644 index 00000000000..c8a77a5e92a --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-alpha.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e6ed37b28beded942954d1569f452e39 +timeCreated: 1474299392 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-transparent.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-transparent.mat new file mode 100644 index 00000000000..db847354c7f --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-transparent.mat @@ -0,0 +1,315 @@ +%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: test-transparent + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: 3000 + stringTagMap: + RenderType: Transparent + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _AmbientOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 2800000, guid: d734753529ca78148a43944515a64bc5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _CoatCoverageMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _CoatRoughnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseMap + second: + m_Texture: {fileID: 2800000, guid: d734753529ca78148a43944515a64bc5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MettalicMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 2800000, guid: 11f99173903c31f49b05339fc71c7919, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 2800000, guid: fe2ed6aee0b5acd42bc15ee53e939e03, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SmoothnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ThicknessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CoatCoverage + second: 0 + - first: + name: _CoatRoughness + second: 0 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSided + second: 1 + - first: + name: _DoubleSidedLigthing + second: 1 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 10 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialID + second: 0 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.524 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 5 + - first: + name: _SubSurfaceProfile + second: 0 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 1 + - first: + name: _Thickness + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 0 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 0.397} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _DiffuseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _SpecColor + second: {r: 0.04, g: 0.04, b: 0.04, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-transparent.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-transparent.mat.meta new file mode 100644 index 00000000000..5f797bcbca8 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-transparent.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c666d363b658c91468e5d881a9c5e051 +timeCreated: 1474299392 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-twosidedLighting.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-twosidedLighting.mat new file mode 100644 index 00000000000..830928f11f5 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-twosidedLighting.mat @@ -0,0 +1,314 @@ +%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: test-twosidedLighting + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _DOUBLESIDED_LIGHTING_FLIP _EMISSION _NORMALMAP _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _AmbientOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 2800000, guid: d734753529ca78148a43944515a64bc5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _CoatCoverageMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _CoatRoughnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseMap + second: + m_Texture: {fileID: 2800000, guid: d734753529ca78148a43944515a64bc5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MettalicMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 2800000, guid: 11f99173903c31f49b05339fc71c7919, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 2800000, guid: fe2ed6aee0b5acd42bc15ee53e939e03, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SmoothnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ThicknessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.216 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CoatCoverage + second: 0 + - first: + name: _CoatRoughness + second: 0 + - first: + name: _CullMode + second: 0 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSided + second: 1 + - first: + name: _DoubleSidedLigthing + second: 1 + - first: + name: _DoubleSidedMode + second: 2 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialID + second: 0 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.524 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceProfile + second: 0 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _Thickness + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _DiffuseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _SpecColor + second: {r: 0.04, g: 0.04, b: 0.04, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-twosidedLighting.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-twosidedLighting.mat.meta new file mode 100644 index 00000000000..4624d98c9f1 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test-twosidedLighting.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 93cc94b7b43bd594bb874af6b6cc4cd4 +timeCreated: 1474299392 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test.mat new file mode 100644 index 00000000000..6c2551d4aee --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test.mat @@ -0,0 +1,314 @@ +%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: test + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _AmbientOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 2800000, guid: d734753529ca78148a43944515a64bc5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _CoatCoverageMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _CoatRoughnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseMap + second: + m_Texture: {fileID: 2800000, guid: d734753529ca78148a43944515a64bc5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MettalicMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 2800000, guid: 11f99173903c31f49b05339fc71c7919, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 2800000, guid: fe2ed6aee0b5acd42bc15ee53e939e03, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SmoothnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ThicknessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CoatCoverage + second: 0 + - first: + name: _CoatRoughness + second: 0 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSided + second: 1 + - first: + name: _DoubleSidedLigthing + second: 1 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialID + second: 0 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.524 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceProfile + second: 0 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _Thickness + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _DiffuseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _SpecColor + second: {r: 0.04, g: 0.04, b: 0.04, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/test.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test.mat.meta similarity index 100% rename from Assets/TestScenes/HDTest/Material/test.mat.meta rename to Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/test.mat.meta diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/unlitTest.mat b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/unlitTest.mat new file mode 100644 index 00000000000..13f21ac8624 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/unlitTest.mat @@ -0,0 +1,170 @@ +%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: unlitTest + m_Shader: {fileID: 4800000, guid: c4edd00ff2db5b24391a4fcb1762e459, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/unlitTest.mat.meta b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/unlitTest.mat.meta new file mode 100644 index 00000000000..cce9518c490 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/HDRenderLoopMaterials/unlitTest.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a1c297147b557ff4bb9d5e2059b70d67 +timeCreated: 1476887873 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/StandardShaderMaterials.meta b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials.meta new file mode 100644 index 00000000000..2cd8eb079d6 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d610e40fc7fbdd945984e2055dad78fb +folderAsset: yes +timeCreated: 1475572029 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Gray.mat b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Gray.mat new file mode 100644 index 00000000000..8646153e6b6 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Gray.mat @@ -0,0 +1,127 @@ +%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: Gray + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 0.5019608, g: 0.5019608, b: 0.5019608, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Gray.mat.meta b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Gray.mat.meta new file mode 100644 index 00000000000..2531eb92577 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Gray.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1971c044ea2fd954382f35c444500b9d +timeCreated: 1475572042 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Green.mat b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Green.mat new file mode 100644 index 00000000000..df0892a610d --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Green.mat @@ -0,0 +1,127 @@ +%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: Green + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 0, g: 1, b: 0, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Green.mat.meta b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Green.mat.meta new file mode 100644 index 00000000000..b3d02f24be6 --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Green.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dd3ea841523c2fd49889e4ebb1859397 +timeCreated: 1475571998 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Red.mat b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Red.mat new file mode 100644 index 00000000000..ccc9c2cd73f --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Red.mat @@ -0,0 +1,127 @@ +%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: Red + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 0, b: 0, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Red.mat.meta b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Red.mat.meta new file mode 100644 index 00000000000..db0095f4b4a --- /dev/null +++ b/Assets/TestScenes/HDTest/Material/StandardShaderMaterials/Red.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0c2e44f39540bfe47bb4a89301913cb0 +timeCreated: 1475571972 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Prefabs.meta b/Assets/TestScenes/HDTest/Prefabs.meta new file mode 100644 index 00000000000..06c403eeddd --- /dev/null +++ b/Assets/TestScenes/HDTest/Prefabs.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 8d408b30daaedb54388da1823c6214ae +folderAsset: yes +timeCreated: 1475076172 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Prefabs/rcgRock012_LODs.prefab b/Assets/TestScenes/HDTest/Prefabs/rcgRock012_LODs.prefab new file mode 100644 index 00000000000..d178a77d420 --- /dev/null +++ b/Assets/TestScenes/HDTest/Prefabs/rcgRock012_LODs.prefab @@ -0,0 +1,347 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &113748 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 428138} + - component: {fileID: 3387976} + - component: {fileID: 2374582} + m_Layer: 0 + m_Name: rcgRock012_LOD0 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &115764 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 485392} + - component: {fileID: 20503266} + m_Layer: 0 + m_Name: rcgRock012_LODs + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &157816 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 418428} + - component: {fileID: 3334430} + - component: {fileID: 2382124} + m_Layer: 0 + m_Name: rcgRock012_LOD1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &166140 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 476994} + - component: {fileID: 3378958} + - component: {fileID: 2329640} + m_Layer: 0 + m_Name: rcgRock012_LOD3 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &177882 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 468266} + - component: {fileID: 3379698} + - component: {fileID: 2337528} + m_Layer: 0 + m_Name: rcgRock012_LOD2 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &418428 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 157816} + 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: 485392} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &428138 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113748} + 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: 485392} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &468266 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177882} + 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: 485392} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &476994 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166140} + 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: 485392} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &485392 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115764} + 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: 428138} + - {fileID: 418428} + - {fileID: 468266} + - {fileID: 476994} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &2329640 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166140} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 99d28c6c2f1cc5b4b939070d73262b04, 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2337528 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177882} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 99d28c6c2f1cc5b4b939070d73262b04, 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2374582 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113748} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 99d28c6c2f1cc5b4b939070d73262b04, 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &2382124 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 157816} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 99d28c6c2f1cc5b4b939070d73262b04, 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_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &3334430 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 157816} + m_Mesh: {fileID: 4300002, guid: 05f56086cbfbdfc4db8b6f58fdb68b6c, type: 3} +--- !u!33 &3378958 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 166140} + m_Mesh: {fileID: 4300006, guid: 05f56086cbfbdfc4db8b6f58fdb68b6c, type: 3} +--- !u!33 &3379698 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 177882} + m_Mesh: {fileID: 4300004, guid: 05f56086cbfbdfc4db8b6f58fdb68b6c, type: 3} +--- !u!33 &3387976 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 113748} + m_Mesh: {fileID: 4300000, guid: 05f56086cbfbdfc4db8b6f58fdb68b6c, type: 3} +--- !u!205 &20503266 +LODGroup: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 115764} + serializedVersion: 2 + m_LocalReferencePoint: {x: 0.0012995601, y: 0.2162363, z: -0.17392564} + m_Size: 1.9511129 + m_FadeMode: 0 + m_AnimateCrossFading: 0 + m_LODs: + - screenRelativeHeight: 0.25 + fadeTransitionWidth: 0 + renderers: + - renderer: {fileID: 2374582} + - screenRelativeHeight: 0.125 + fadeTransitionWidth: 0 + renderers: + - renderer: {fileID: 2382124} + - screenRelativeHeight: 0.0625 + fadeTransitionWidth: 0 + renderers: + - renderer: {fileID: 2337528} + - screenRelativeHeight: 0.01 + fadeTransitionWidth: 0 + renderers: + - renderer: {fileID: 2329640} + m_Enabled: 1 +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 115764} + m_IsPrefabParent: 1 diff --git a/Assets/TestScenes/HDTest/Prefabs/rcgRock012_LODs.prefab.meta b/Assets/TestScenes/HDTest/Prefabs/rcgRock012_LODs.prefab.meta new file mode 100644 index 00000000000..4f3456b3c4b --- /dev/null +++ b/Assets/TestScenes/HDTest/Prefabs/rcgRock012_LODs.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e641a36bceddbf24a89656e94dafb3e5 +timeCreated: 1448024149 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Rock.meta b/Assets/TestScenes/HDTest/Rock.meta new file mode 100644 index 00000000000..c375ce35ec5 --- /dev/null +++ b/Assets/TestScenes/HDTest/Rock.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b56b73de3822c4d4e9d8a2489ea30ad3 +folderAsset: yes +timeCreated: 1475076172 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012.meta b/Assets/TestScenes/HDTest/Rock/rcgRock012.meta new file mode 100644 index 00000000000..50c5df6c8d0 --- /dev/null +++ b/Assets/TestScenes/HDTest/Rock/rcgRock012.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: d034fb4ed4b7e50458a7acab29794345 +folderAsset: yes +timeCreated: 1475076172 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/Materials.meta b/Assets/TestScenes/HDTest/Rock/rcgRock012/Materials.meta new file mode 100644 index 00000000000..0dd971827f1 --- /dev/null +++ b/Assets/TestScenes/HDTest/Rock/rcgRock012/Materials.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 206e8a29965f0784da25175e3e608f7c +folderAsset: yes +timeCreated: 1475076172 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/Materials/rcgRock012Material.mat b/Assets/TestScenes/HDTest/Rock/rcgRock012/Materials/rcgRock012Material.mat new file mode 100644 index 00000000000..0fbcc195dad --- /dev/null +++ b/Assets/TestScenes/HDTest/Rock/rcgRock012/Materials/rcgRock012Material.mat @@ -0,0 +1,273 @@ +%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: rcgRock012Material + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _DOUBLESIDEDLIGTHING_OFF _DOUBLESIDED_OFF _EMISSION _METALLICGLOSSMAP _NORMALMAP + _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _AmbientOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 2800000, guid: d734753529ca78148a43944515a64bc5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 2800000, guid: 11f99173903c31f49b05339fc71c7919, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 2800000, guid: d734753529ca78148a43944515a64bc5, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 2800000, guid: 0fd0175f64dd5304e8a9935dbc99760b, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MettalicMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 2800000, guid: 11f99173903c31f49b05339fc71c7919, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 2800000, guid: fe2ed6aee0b5acd42bc15ee53e939e03, type: 3} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SmoothnessMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 1 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 0 + - first: + name: _Cutoff + second: 1 + - first: + name: _CutoffEnable + second: 0 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSided + second: 0 + - first: + name: _DoubleSidedLigthing + second: 0 + - first: + name: _DoubleSidedMode + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveColorUsage + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: -1.07 + - first: + name: _MaterialID + second: 0 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0.583 + - first: + name: _Mettalic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/Materials/rcgRock012Material.mat.meta b/Assets/TestScenes/HDTest/Rock/rcgRock012/Materials/rcgRock012Material.mat.meta new file mode 100644 index 00000000000..5d996f11a39 --- /dev/null +++ b/Assets/TestScenes/HDTest/Rock/rcgRock012/Materials/rcgRock012Material.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 99d28c6c2f1cc5b4b939070d73262b04 +timeCreated: 1436154473 +licenseType: Store +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Albedo.tga b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Albedo.tga new file mode 100644 index 00000000000..9d216919cdd Binary files /dev/null and b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Albedo.tga differ diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Albedo.tga.meta b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Albedo.tga.meta new file mode 100644 index 00000000000..17d86a8e739 --- /dev/null +++ b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Albedo.tga.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: d734753529ca78148a43944515a64bc5 +timeCreated: 1436154460 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 4096 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Normal.tga b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Normal.tga new file mode 100644 index 00000000000..294958b4fec Binary files /dev/null and b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Normal.tga differ diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Normal.tga.meta b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Normal.tga.meta new file mode 100644 index 00000000000..f4d4ef50f6a --- /dev/null +++ b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Normal.tga.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 11f99173903c31f49b05339fc71c7919 +timeCreated: 1436154849 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 1 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 1 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 4096 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: 1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Occlusion.tga b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Occlusion.tga new file mode 100644 index 00000000000..4632fe8b7f6 Binary files /dev/null and b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Occlusion.tga differ diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Occlusion.tga.meta b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Occlusion.tga.meta new file mode 100644 index 00000000000..09d34f5715f --- /dev/null +++ b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_Occlusion.tga.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: fe2ed6aee0b5acd42bc15ee53e939e03 +timeCreated: 1436154473 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 4096 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_UnityMetallicSmoothness.tga b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_UnityMetallicSmoothness.tga new file mode 100644 index 00000000000..574ceb3f1b2 Binary files /dev/null and b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_UnityMetallicSmoothness.tga differ diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_UnityMetallicSmoothness.tga.meta b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_UnityMetallicSmoothness.tga.meta new file mode 100644 index 00000000000..789007c2039 --- /dev/null +++ b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_4K_UnityMetallicSmoothness.tga.meta @@ -0,0 +1,55 @@ +fileFormatVersion: 2 +guid: 0fd0175f64dd5304e8a9935dbc99760b +timeCreated: 1436154388 +licenseType: Store +TextureImporter: + fileIDToRecycleName: {} + serializedVersion: 2 + mipmaps: + mipMapMode: 0 + enableMipMap: 1 + linearTexture: 0 + correctGamma: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: .25 + normalMapFilter: 0 + isReadable: 0 + grayScaleToAlpha: 0 + generateCubemap: 0 + cubemapConvolution: 0 + cubemapConvolutionSteps: 8 + cubemapConvolutionExponent: 1.5 + seamlessCubemap: 0 + textureFormat: -1 + maxTextureSize: 4096 + textureSettings: + filterMode: -1 + aniso: -1 + mipBias: -1 + wrapMode: -1 + nPOTScale: 1 + lightmap: 0 + rGBM: 0 + compressionQuality: 50 + spriteMode: 0 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: .5, y: .5} + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spritePixelsToUnits: 100 + alphaIsTransparency: 0 + textureType: -1 + buildTargetSettings: [] + spriteSheet: + sprites: [] + spritePackingTag: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_LODs.fbx b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_LODs.fbx new file mode 100644 index 00000000000..b0cfda1d94a --- /dev/null +++ b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_LODs.fbx @@ -0,0 +1,1606 @@ +; FBX 7.4.0 project file +; Copyright (C) 1997-2010 Autodesk Inc. and/or its licensors. +; All rights reserved. +; ---------------------------------------------------- + +FBXHeaderExtension: { + FBXHeaderVersion: 1003 + FBXVersion: 7400 + CreationTimeStamp: { + Version: 1000 + Year: 2015 + Month: 7 + Day: 1 + Hour: 20 + Minute: 8 + Second: 57 + Millisecond: 976 + } + Creator: "FBX SDK/FBX Plugins version 2016.0" + SceneInfo: "SceneInfo::GlobalInfo", "UserData" { + Type: "UserData" + Version: 100 + MetaData: { + Version: 100 + Title: "" + Subject: "" + Author: "" + Keywords: "" + Revision: "" + Comment: "" + } + Properties70: { + P: "DocumentUrl", "KString", "Url", "", "rcgRock012_LODs.fbx" + P: "SrcDocumentUrl", "KString", "Url", "", "rcgRock012_LODs.fbx" + P: "Original", "Compound", "", "" + P: "Original|ApplicationVendor", "KString", "", "", "Autodesk" + P: "Original|ApplicationName", "KString", "", "", "Maya LT" + P: "Original|ApplicationVersion", "KString", "", "", "2016" + P: "Original|DateTime_GMT", "DateTime", "", "", "02/07/2015 03:08:57.975" + P: "Original|FileName", "KString", "", "", "rcgRock012_LODs.fbx" + P: "LastSaved", "Compound", "", "" + P: "LastSaved|ApplicationVendor", "KString", "", "", "Autodesk" + P: "LastSaved|ApplicationName", "KString", "", "", "Maya LT" + P: "LastSaved|ApplicationVersion", "KString", "", "", "2016" + P: "LastSaved|DateTime_GMT", "DateTime", "", "", "02/07/2015 03:08:57.975" + } + } +} +GlobalSettings: { + Version: 1000 + Properties70: { + P: "UpAxis", "int", "Integer", "",1 + P: "UpAxisSign", "int", "Integer", "",1 + P: "FrontAxis", "int", "Integer", "",2 + P: "FrontAxisSign", "int", "Integer", "",1 + P: "CoordAxis", "int", "Integer", "",0 + P: "CoordAxisSign", "int", "Integer", "",1 + P: "OriginalUpAxis", "int", "Integer", "",1 + P: "OriginalUpAxisSign", "int", "Integer", "",1 + P: "UnitScaleFactor", "double", "Number", "",1 + P: "OriginalUnitScaleFactor", "double", "Number", "",1 + P: "AmbientColor", "ColorRGB", "Color", "",0,0,0 + P: "DefaultCamera", "KString", "", "", "Producer Perspective" + P: "TimeMode", "enum", "", "",6 + P: "TimeProtocol", "enum", "", "",2 + P: "SnapOnFrameMode", "enum", "", "",0 + P: "TimeSpanStart", "KTime", "Time", "",1539538600 + P: "TimeSpanStop", "KTime", "Time", "",92372316000 + P: "CustomFrameRate", "double", "Number", "",-1 + P: "TimeMarker", "Compound", "", "" + P: "CurrentTimeMarker", "int", "Integer", "",-1 + } +} + +; Documents Description +;------------------------------------------------------------------ + +Documents: { + Count: 1 + Document: 664220366592, "", "Scene" { + Properties70: { + P: "SourceObject", "object", "", "" + P: "ActiveAnimStackName", "KString", "", "", "Take 001" + } + RootNode: 0 + } +} + +; Document References +;------------------------------------------------------------------ + +References: { +} + +; Object definitions +;------------------------------------------------------------------ + +Definitions: { + Version: 100 + Count: 28 + ObjectType: "GlobalSettings" { + Count: 1 + } + ObjectType: "AnimationStack" { + Count: 1 + PropertyTemplate: "FbxAnimStack" { + Properties70: { + P: "Description", "KString", "", "", "" + P: "LocalStart", "KTime", "Time", "",0 + P: "LocalStop", "KTime", "Time", "",0 + P: "ReferenceStart", "KTime", "Time", "",0 + P: "ReferenceStop", "KTime", "Time", "",0 + } + } + } + ObjectType: "AnimationLayer" { + Count: 1 + PropertyTemplate: "FbxAnimLayer" { + Properties70: { + P: "Weight", "Number", "", "A",100 + P: "Mute", "bool", "", "",0 + P: "Solo", "bool", "", "",0 + P: "Lock", "bool", "", "",0 + P: "Color", "ColorRGB", "Color", "",0.8,0.8,0.8 + P: "BlendMode", "enum", "", "",0 + P: "RotationAccumulationMode", "enum", "", "",0 + P: "ScaleAccumulationMode", "enum", "", "",0 + P: "BlendModeBypass", "ULongLong", "", "",0 + } + } + } + ObjectType: "Geometry" { + Count: 4 + PropertyTemplate: "FbxMesh" { + Properties70: { + P: "Color", "ColorRGB", "Color", "",0.8,0.8,0.8 + P: "BBoxMin", "Vector3D", "Vector", "",0,0,0 + P: "BBoxMax", "Vector3D", "Vector", "",0,0,0 + P: "Primary Visibility", "bool", "", "",1 + P: "Casts Shadows", "bool", "", "",1 + P: "Receive Shadows", "bool", "", "",1 + } + } + } + ObjectType: "Material" { + Count: 1 + PropertyTemplate: "FbxSurfaceMaterial" { + Properties70: { + P: "ShadingModel", "KString", "", "", "Unknown" + P: "MultiLayer", "bool", "", "",0 + } + } + } + ObjectType: "Implementation" { + Count: 1 + PropertyTemplate: "FbxImplementation" { + Properties70: { + P: "ShaderLanguage", "KString", "", "", "MentalRaySL" + P: "ShaderLanguageVersion", "KString", "", "", "" + P: "RenderAPI", "KString", "", "", "MentalRay" + P: "RenderAPIVersion", "KString", "", "", "" + P: "RootBindingName", "KString", "", "", "" + P: "Constants", "Compound", "", "" + } + } + } + ObjectType: "BindingTable" { + Count: 1 + PropertyTemplate: "FbxBindingTable" { + Properties70: { + P: "TargetName", "KString", "", "", "" + P: "TargetType", "KString", "", "", "" + P: "CodeAbsoluteURL", "KString", "XRefUrl", "", "" + P: "CodeRelativeURL", "KString", "XRefUrl", "", "" + P: "CodeTAG", "KString", "", "", "shader" + P: "DescAbsoluteURL", "KString", "XRefUrl", "", "" + P: "DescRelativeURL", "KString", "XRefUrl", "", "" + P: "DescTAG", "KString", "", "", "shader" + } + } + } + ObjectType: "Texture" { + Count: 7 + PropertyTemplate: "FbxFileTexture" { + Properties70: { + P: "TextureTypeUse", "enum", "", "",0 + P: "Texture alpha", "Number", "", "A",1 + P: "CurrentMappingType", "enum", "", "",0 + P: "WrapModeU", "enum", "", "",0 + P: "WrapModeV", "enum", "", "",0 + P: "UVSwap", "bool", "", "",0 + P: "PremultiplyAlpha", "bool", "", "",1 + P: "Translation", "Vector", "", "A",0,0,0 + P: "Rotation", "Vector", "", "A",0,0,0 + P: "Scaling", "Vector", "", "A",1,1,1 + P: "TextureRotationPivot", "Vector3D", "Vector", "",0,0,0 + P: "TextureScalingPivot", "Vector3D", "Vector", "",0,0,0 + P: "CurrentTextureBlendMode", "enum", "", "",1 + P: "UVSet", "KString", "", "", "default" + P: "UseMaterial", "bool", "", "",0 + P: "UseMipMap", "bool", "", "",0 + } + } + } + ObjectType: "Model" { + Count: 4 + PropertyTemplate: "FbxNode" { + Properties70: { + P: "QuaternionInterpolate", "enum", "", "",0 + P: "RotationOffset", "Vector3D", "Vector", "",0,0,0 + P: "RotationPivot", "Vector3D", "Vector", "",0,0,0 + P: "ScalingOffset", "Vector3D", "Vector", "",0,0,0 + P: "ScalingPivot", "Vector3D", "Vector", "",0,0,0 + P: "TranslationActive", "bool", "", "",0 + P: "TranslationMin", "Vector3D", "Vector", "",0,0,0 + P: "TranslationMax", "Vector3D", "Vector", "",0,0,0 + P: "TranslationMinX", "bool", "", "",0 + P: "TranslationMinY", "bool", "", "",0 + P: "TranslationMinZ", "bool", "", "",0 + P: "TranslationMaxX", "bool", "", "",0 + P: "TranslationMaxY", "bool", "", "",0 + P: "TranslationMaxZ", "bool", "", "",0 + P: "RotationOrder", "enum", "", "",0 + P: "RotationSpaceForLimitOnly", "bool", "", "",0 + P: "RotationStiffnessX", "double", "Number", "",0 + P: "RotationStiffnessY", "double", "Number", "",0 + P: "RotationStiffnessZ", "double", "Number", "",0 + P: "AxisLen", "double", "Number", "",10 + P: "PreRotation", "Vector3D", "Vector", "",0,0,0 + P: "PostRotation", "Vector3D", "Vector", "",0,0,0 + P: "RotationActive", "bool", "", "",0 + P: "RotationMin", "Vector3D", "Vector", "",0,0,0 + P: "RotationMax", "Vector3D", "Vector", "",0,0,0 + P: "RotationMinX", "bool", "", "",0 + P: "RotationMinY", "bool", "", "",0 + P: "RotationMinZ", "bool", "", "",0 + P: "RotationMaxX", "bool", "", "",0 + P: "RotationMaxY", "bool", "", "",0 + P: "RotationMaxZ", "bool", "", "",0 + P: "InheritType", "enum", "", "",0 + P: "ScalingActive", "bool", "", "",0 + P: "ScalingMin", "Vector3D", "Vector", "",0,0,0 + P: "ScalingMax", "Vector3D", "Vector", "",1,1,1 + P: "ScalingMinX", "bool", "", "",0 + P: "ScalingMinY", "bool", "", "",0 + P: "ScalingMinZ", "bool", "", "",0 + P: "ScalingMaxX", "bool", "", "",0 + P: "ScalingMaxY", "bool", "", "",0 + P: "ScalingMaxZ", "bool", "", "",0 + P: "GeometricTranslation", "Vector3D", "Vector", "",0,0,0 + P: "GeometricRotation", "Vector3D", "Vector", "",0,0,0 + P: "GeometricScaling", "Vector3D", "Vector", "",1,1,1 + P: "MinDampRangeX", "double", "Number", "",0 + P: "MinDampRangeY", "double", "Number", "",0 + P: "MinDampRangeZ", "double", "Number", "",0 + P: "MaxDampRangeX", "double", "Number", "",0 + P: "MaxDampRangeY", "double", "Number", "",0 + P: "MaxDampRangeZ", "double", "Number", "",0 + P: "MinDampStrengthX", "double", "Number", "",0 + P: "MinDampStrengthY", "double", "Number", "",0 + P: "MinDampStrengthZ", "double", "Number", "",0 + P: "MaxDampStrengthX", "double", "Number", "",0 + P: "MaxDampStrengthY", "double", "Number", "",0 + P: "MaxDampStrengthZ", "double", "Number", "",0 + P: "PreferedAngleX", "double", "Number", "",0 + P: "PreferedAngleY", "double", "Number", "",0 + P: "PreferedAngleZ", "double", "Number", "",0 + P: "LookAtProperty", "object", "", "" + P: "UpVectorProperty", "object", "", "" + P: "Show", "bool", "", "",1 + P: "NegativePercentShapeSupport", "bool", "", "",1 + P: "DefaultAttributeIndex", "int", "Integer", "",-1 + P: "Freeze", "bool", "", "",0 + P: "LODBox", "bool", "", "",0 + P: "Lcl Translation", "Lcl Translation", "", "A",0,0,0 + P: "Lcl Rotation", "Lcl Rotation", "", "A",0,0,0 + P: "Lcl Scaling", "Lcl Scaling", "", "A",1,1,1 + P: "Visibility", "Visibility", "", "A",1 + P: "Visibility Inheritance", "Visibility Inheritance", "", "",1 + } + } + } + ObjectType: "Video" { + Count: 7 + PropertyTemplate: "FbxVideo" { + Properties70: { + P: "ImageSequence", "bool", "", "",0 + P: "ImageSequenceOffset", "int", "Integer", "",0 + P: "FrameRate", "double", "Number", "",0 + P: "LastFrame", "int", "Integer", "",0 + P: "Width", "int", "Integer", "",0 + P: "Height", "int", "Integer", "",0 + P: "Path", "KString", "XRefUrl", "", "" + P: "StartFrame", "int", "Integer", "",0 + P: "StopFrame", "int", "Integer", "",0 + P: "PlaySpeed", "double", "Number", "",0 + P: "Offset", "KTime", "Time", "",0 + P: "InterlaceMode", "enum", "", "",0 + P: "FreeRunning", "bool", "", "",0 + P: "Loop", "bool", "", "",0 + P: "AccessMode", "enum", "", "",0 + } + } + } +} + +; Object properties +;------------------------------------------------------------------ + +Objects: { + Geometry: 664391634592, "Geometry::", "Mesh" { + Vertices: *1806 { + a: 53.8716583251953,-47.2680969238281,-5.02901554107666,11.1490678787231,-46.406135559082,-56.9512062072754,17.698600769043,-55.7559928894043,36.9414825439453,33.0988349914551,-56.6950759887695,32.0958557128906,53.4099578857422,-52.8373603820801,14.1134881973267,16.8806953430176,-52.1357460021973,-13.4003782272339,43.5165596008301,-51.1639709472656,35.3437194824219,26.8071556091309,-47.8031234741211,-22.486385345459,30.0433692932129,100.492790222168,10.8711671829224,32.2776527404785,-53.5089683532715,4.70333099365234,10.2977924346924,97.1455612182617,6.07586765289307,-7.77924871444702,-48.9477615356445,-57.4839019775391,31.2437019348145,-44.4037094116211,-48.3723793029785,23.1708526611328,-42.746337890625,-54.4329681396484,1.13879346847534,79.7074966430664,16.3695125579834,30.0010261535645,-53.073486328125,36.9719085693359,28.5448913574219,-36.2122497558594,-51.9903984069824,-22.4263477325439,-46.940673828125,-67.526123046875,2.74967336654663,-46.0315322875977,-61.1675186157227,-0.581811904907227,-42.3879508972168,-62.9072494506836,29.0974998474121,103.907516479492,4.49119710922241,-69.0972518920898,-58.5790901184082,-8.0590124130249,-49.0233612060547,-48.5041313171387,27.9279556274414,-25.4771556854248,-59.6475296020508,26.5717105865479,-41.2160835266113,-58.8725547790527,32.3906440734863,-54.3833122253418,-59.7586898803711,18.3323211669922,-51.5775680541992,-56.8006324768066,25.6490364074707,-46.333065032959,-60.6065483093262,29.1505126953125,23.1345138549805,99.8368530273438,12.783504486084,-61.8694953918457,-57.7532958984375,11.2883892059326,-75.7869033813477,-56.9898147583008,-15.7952461242676,-70.1359024047852,-55.3241653442383,-4.04374599456787,-64.7102127075195,-58.730224609375,4.87572908401489,14.2875080108643,102.083511352539,2.54586577415466,-82.5479507446289,-57.1590347290039,-26.7976303100586,-59.2694816589355,-56.7189102172852,13.8582601547241,-63.6567573547363,-53.3756675720215,-74.0862274169922,-51.6821441650391,-50.8849029541016,-73.0441970825195,-90.5327453613281,-56.7641563415527,-46.9989128112793, +-97.6856002807617,-40.142707824707,-52.5575294494629,-96.4445953369141,-44.7098770141602,-55.5693550109863,-87.9192810058594,-56.0310020446777,-34.7330360412598,-94.2769241333008,-52.5138778686523,-57.0901031494141,-92.0289535522461,-43.6393852233887,-62.6034164428711,-89.52783203125,-48.1057891845703,-72.6506576538086,-86.9156112670898,-23.8461952209473,-66.4532089233398,-89.0491638183594,-50.0529670715332,-63.9382629394531,-97.3744583129883,-32.6124687194824,-53.4822654724121,-81.770637512207,-53.3918571472168,-75.9966125488281,-84.8960723876953,-36.6725273132324,-77.0381164550781,-86.3886871337891,-54.9889488220215,-57.0373115539551,-81.3576965332031,-54.9353256225586,-66.9919204711914,-89.6511764526367,-30.6243152618408,-62.3860244750977,-85.9978485107422,-25.7236366271973,-74.8610000610352,5.3518238067627,93.591194152832,9.68817710876465,-28.0360069274902,-34.6241073608398,-67.9878158569336,-33.5185470581055,-48.8150825500488,-69.4469909667969,-53.9815216064453,-29.6665058135986,-72.5046005249023,-94.4254760742188,-24.7172470092773,-57.7030181884766,-97.0365600585938,-29.9836597442627,-50.8157997131348,-93.8375625610352,-2.63125848770142,-43.192253112793,-81.8750152587891,-17.7295799255371,-18.2856216430664,-91.52490234375,-19.4975051879883,-33.6977767944336,-89.1133728027344,-16.7536354064941,-58.2217597961426,-83.7976760864258,-5.73158264160156,-64.5970993041992,-85.5193786621094,3.53093528747559,-60.06396484375,-83.0400772094727,-12.5274715423584,-69.7527389526367,-88.6229629516602,-4.97374629974365,-57.182071685791,-93.3418960571289,8.82772350311279,-53.5505332946777,-89.3415985107422,18.4682025909424,-51.634521484375,-92.9610366821289,22.2950325012207,-46.186351776123,-32.4391174316406,-59.6006660461426,32.380729675293,-7.84535360336304,-59.2746620178223,35.5940322875977,-14.2433853149414,-58.5655899047852,25.4676055908203,-21.0445671081543,-59.7277221679688,32.3425941467285,1.84002637863159,-57.25341796875,38.5580368041992,-40.5227088928223,-41.4458427429199,30.1769943237305,-34.312198638916,-49.4870147705078,34.9550476074219, +-34.2947463989258,-34.9186210632324,37.003360748291,-58.1958198547363,-13.70885181427,13.3864688873291,-36.0684547424316,-11.0930128097534,36.106632232666,-42.847713470459,4.16840076446533,28.1462593078613,-15.0922298431396,-28.4198246002197,42.2529945373535,-33.1483192443848,-26.6199626922607,38.7267456054688,-31.6310901641846,30.8315105438232,26.3742542266846,-74.3000793457031,-5.65992975234985,-66.6917572021484,-28.8974113464355,18.1931228637695,-53.6922988891602,-35.7596397399902,2.93153309822083,-61.4457511901855,-11.8015613555908,6.99646711349487,-57.1869049072266,-37.899284362793,25.4021492004395,24.2118358612061,-44.7548179626465,-1.14013206958771,26.9798851013184,-75.9754943847656,1.98650455474854,-3.8128514289856,-56.0164794921875,21.5663795471191,9.63944149017334,-48.4367713928223,27.6841907501221,13.7804517745972,-82.7452545166016,31.43385887146,-42.8475723266602,-67.2224578857422,73.8065948486328,-11.747802734375,-80.8111801147461,47.9280662536621,-29.8128223419189,-73.3264312744141,66.7197113037109,-15.7671756744385,-74.9297943115234,45.0054664611816,-35.3903274536133,-75.8559112548828,64.0142059326172,-13.237509727478,-78.3315505981445,59.7339630126953,-20.9950733184814,-78.5370254516602,40.9125442504883,-36.7165641784668,-91.2546081542969,12.140567779541,-36.0311431884766,-83.7571868896484,25.1417121887207,-13.965030670166,-79.1871948242188,11.4704532623291,-8.77717781066895,51.9197235107422,103.901840209961,4.4446234703064,-83.906982421875,43.7954978942871,-22.3903865814209,-83.1720275878906,36.3782768249512,-14.1036195755005,-83.6119995117188,35.9074859619141,-30.8364753723145,-89.4785385131836,26.9347553253174,-29.9827861785889,-85.821403503418,23.8710689544678,-18.688419342041,-76.8530731201172,48.8353729248047,-9.10336685180664,68.5574188232422,101.749404907227,3.28607416152954,78.4373931884766,-39.4644355773926,-37.2482376098633,73.1136245727539,-43.5393562316895,-24.0417385101318,73.9104919433594,96.5120391845703,7.04238224029541,76.376091003418,-41.0809173583984,0.596641540527344,79.6022796630859,-33.9143943786621,-12.6676769256592, +47.1009216308594,-42.1588897705078,34.9709625244141,73.3384628295898,-28.5228576660156,9.96983337402344,86.0945892333984,3.69687271118164,1.51076078414917,75.9884643554688,-18.4932670593262,7.64230346679688,73.4010162353516,-24.5907592773438,6.88311862945557,74.1947784423828,-18.1445465087891,11.7411594390869,79.8433990478516,-4.99211645126343,15.81822681427,68.0911636352539,2.51416206359863,27.2164726257324,74.5795593261719,2.39091014862061,19.1042766571045,84.4189376831055,-1.16395473480225,10.242395401001,70.4092788696289,9.6313304901123,23.6631469726563,59.7531242370605,-52.1703948974609,28.0571708679199,67.6082611083984,-49.7420654296875,18.1512222290039,64.6865768432617,-36.7964782714844,25.2818641662598,68.3517532348633,-39.1370887756348,15.4878768920898,71.0577239990234,-46.6217193603516,11.6383094787598,68.87255859375,-26.7774925231934,21.671516418457,73.458740234375,-44.3191909790039,6.58889675140381,73.4704284667969,-42.3389854431152,-16.7338809967041,76.2896423339844,-43.0934677124023,-6.66795253753662,68.8737258911133,-29.7585849761963,16.0949478149414,65.9504547119141,-17.6142730712891,26.4269485473633,71.8021087646484,-13.9402809143066,23.4785022735596,82.7456817626953,-28.7737312316895,-24.2630958557129,83.2869110107422,-23.0748481750488,-35.3066635131836,40.3959655761719,-30.1963481903076,-48.5837249755859,82.8420104980469,-17.1034717559814,-10.7218065261841,91.9839172363281,15.4326858520508,-16.1737098693848,86.107780456543,2.77287817001343,-8.57067108154297,87.6316223144531,-2.44206953048706,-15.7079105377197,83.0875854492188,-11.5760250091553,-35.4980430603027,84.7716903686523,-13.7093057632446,-25.4564552307129,88.7160034179688,-4.83618497848511,-31.3172416687012,81.2416000366211,15.315299987793,3.13703966140747,57.0290069580078,-41.5009231567383,-42.298023223877,90.894287109375,21.4898681640625,-25.5449333190918,72.125129699707,17.1178951263428,22.7969093322754,76.9611358642578,28.7772331237793,6.24816608428955,75.8798294067383,19.4206161499023,15.736855506897,79.2414932250977,47.7490386962891,3.32945251464844, +73.7731704711914,28.2182540893555,24.8451728820801,68.3520278930664,19.9012470245361,26.6399593353271,85.7436981201172,19.0612983703613,-5.48384141921997,92.0117263793945,48.3829650878906,-4.21016025543213,93.2750091552734,45.0562744140625,-18.5102577209473,93.3229598999023,20.4485301971436,-19.9823360443115,73.0818634033203,86.9940948486328,12.0291862487793,92.0375747680664,39.5160713195801,-6.94563484191895,93.1673583984375,60.4927368164063,-13.2727527618408,95.8618316650391,39.2899971008301,-15.43616771698,84.5696258544922,84.7820281982422,2.66999530792236,81.9227447509766,37.0699996948242,-4.32074928283691,91.1131286621094,57.8833160400391,-18.0321788787842,97.4256896972656,33.5915298461914,-19.05419921875,28.4168319702148,-17.5716762542725,30.8474540710449,75.2322692871094,89.4777603149414,8.53872776031494,16.9999847412109,12.9328994750977,31.2508792877197,66.0061111450195,26.6244125366211,27.8137550354004,0.195144891738892,32.4361267089844,30.9524841308594,-16.2548332214355,37.7122802734375,-47.405647277832,-1.4705798625946,44.4475555419922,-41.5216827392578,34.385139465332,18.23828125,-41.9446907043457,-12.435754776001,63.3353309631348,22.0344486236572,-25.0263423919678,49.1541366577148,24.7216701507568,-15.7041616439819,26.1706581115723,31.8063850402832,-0.919215798377991,68.2189788818359,-23.8633098602295,-34.2204360961914,83.5902404785156,5.38361215591431,-59.5830535888672,68.6414642333984,0.188260793685913,-30.8178043365479,86.1276779174805,2.91274738311768,-49.2111434936523,80.9156188964844,-1.99714779853821,-43.9364280700684,80.8837203979492,-11.6528396606445,-57.005500793457,80.1256561279297,-7.13019943237305,61.1396102905273,76.0938262939453,15.5267553329468,-31.1843223571777,88.7082214355469,-5.61773920059204,-41.5601119995117,84.2038497924805,-5.07155323028564,-48.7638549804688,82.412971496582,-8.33373641967773,-5.13288450241089,84.3214721679688,10.8857498168945,-8.43203163146973,69.4287567138672,19.6551094055176,5.54236030578613,68.0637283325195,19.3099403381348,-2.99643349647522,65.3244781494141,22.4837703704834, +70.1037521362305,79.2641143798828,14.9135475158691,13.8268976211548,62.1064910888672,22.0100898742676,-5.33706665039063,72.709846496582,19.2457313537598,-0.850710868835449,96.8674163818359,-2.99260258674622,-21.9839248657227,88.2757186889648,7.98300743103027,-13.8021125793457,94.083869934082,4.78958606719971,-22.9664821624756,93.0951766967773,4.48961734771729,82.2391204833984,84.073600769043,-7.94479465484619,-11.7112464904785,95.3723754882813,-2.16698408126831,80.6978378295898,91.2709732055664,3.13374257087708,84.6739349365234,78.971565246582,-11.8133020401001,77.231559753418,37.8241577148438,23.3174686431885,54.2428970336914,57.7760391235352,23.9170150756836,72.5521469116211,54.0539474487305,22.7399215698242,78.0221862792969,54.1747589111328,18.3911666870117,49.6648101806641,55.7783508300781,26.396635055542,66.1350402832031,53.4513473510742,25.6460380554199,56.1284332275391,50.5579414367676,27.6344738006592,70.6997299194336,61.2914962768555,13.2663269042969,69.9069595336914,59.0315780639648,22.2981262207031,75.781867980957,61.258415222168,6.12025356292725,74.9158248901367,68.6092376708984,5.37470531463623,87.5742568969727,63.342586517334,2.0777428150177,81.3108139038086,56.0529403686523,6.19531679153442,53.0637474060059,74.9058074951172,19.1208343505859,68.317008972168,67.2411804199219,18.6965789794922,52.7437210083008,80.4856872558594,14.7801532745361,44.9168167114258,76.7099304199219,-17.9284133911133,87.0485305786133,76.2287445068359,3.27984857559204,74.7134628295898,92.9690551757813,-2.46494317054749,80.0453643798828,49.7102470397949,18.0005474090576,77.0879974365234,75.8820724487305,7.89586639404297,75.9688110351563,81.7470703125,9.48211669921875,94.5436325073242,63.9845275878906,-1.60617303848267,91.5403671264648,68.6519775390625,1.07870554924011,83.5273284912109,72.5420761108398,-17.5103168487549,83.6856307983398,8.73483371734619,7.34961032867432,70.1954193115234,14.0328149795532,-36.3531646728516,49.513557434082,43.9890632629395,-35.0676231384277,82.4300994873047,88.232421875,-1.51666259765625,84.1679382324219,-2.61355590820313,-34.507740020752, +88.0512924194336,14.7224140167236,-28.4558334350586,90.7173767089844,16.023229598999,-26.0740833282471,74.4612808227539,23.9915237426758,21.0197257995605,72.7987747192383,15.0062551498413,20.644718170166,61.2765121459961,75.2791595458984,15.8663730621338,62.8865432739258,76.9612350463867,15.527138710022,77.0497512817383,23.1626968383789,11.1814193725586,72.9089889526367,23.3886623382568,23.7472610473633,78.4201202392578,44.6583938598633,17.6610260009766,79.476936340332,12.915696144104,11.2121429443359,80.5267028808594,26.3131103515625,-1.33498668670654,83.553825378418,28.9261569976807,-3.70552015304565,70.041618347168,82.9940414428711,13.2838859558105,93.3332366943359,55.8636779785156,-3.15135526657104,95.26953125,26.8954124450684,-19.2414817810059,92.0924377441406,11.4128952026367,-26.0911865234375,93.5233459472656,43.0932426452637,-11.6284198760986,94.2843246459961,40.1146850585938,-12.5509223937988,96.6168975830078,35.9418449401855,-15.6774253845215,88.2517395019531,29.9454536437988,-6.68543672561646,92.03759765625,52.2294692993164,-18.2705039978027,94.0260238647461,28.11008644104,-22.2023944854736,96.615119934082,37.6520767211914,-16.9993953704834,91.3027267456055,55.55029296875,-1.0001425743103,94.1825637817383,41.8603820800781,-13.9186429977417,80.4953384399414,43.9482498168945,0.103418350219727,90.198844909668,42.9114151000977,-6.30356359481812,94.868537902832,39.6123962402344,-19.6062488555908,88.4269638061523,45.7435607910156,-21.8942413330078,20.7564582824707,-27.4181804656982,35.8794898986816,31.613187789917,-9.50178813934326,29.7510166168213,-18.228982925415,16.3559303283691,33.112548828125,76.8392562866211,85.6077117919922,8.66450214385986,74.0378570556641,88.5624008178711,10.2824478149414,68.7906799316406,89.7416610717773,11.3005123138428,56.2835235595703,41.7402954101563,28.1114921569824,42.7156829833984,24.5066375732422,28.3416385650635,60.364372253418,6.80455160140991,28.4743919372559,24.3357524871826,31.6101264953613,27.7873001098633,-11.0813426971436,54.9382019042969,26.12917137146,80.6038360595703,88.5853424072266,5.12218427658081, +72.2734069824219,92.7160797119141,9.54728317260742,-6.1150074005127,53.8530349731445,-36.2924880981445,74.7300872802734,84.5010833740234,11.2502470016479,32.1039657592773,38.9019241333008,-38.4756965637207,48.0980453491211,53.1150817871094,-31.864559173584,14.7903060913086,38.3633766174316,-42.9852638244629,74.0176773071289,80.8107223510742,11.7610006332397,-38.9914512634277,44.1119689941406,19.9709739685059,82.1899566650391,87.7876281738281,2.36010885238647,-20.4563102722168,69.556266784668,-20.8209266662598,-20.3582801818848,63.6818656921387,18.558521270752,59.2341117858887,76.9137573242188,15.3888721466064,73.811882019043,76.5740814208984,10.3362121582031,-49.8521957397461,63.4216537475586,8.28097248077393,-45.5305213928223,83.2912673950195,-6.46064710617065,-27.205738067627,87.9740142822266,5.69975137710571,-36.9357070922852,85.7451553344727,-5.031409740448,-42.2456207275391,84.0781402587891,-7.78493309020996,-46.1690292358398,80.8498687744141,-10.2771224975586,-30.4911079406738,85.2083282470703,-10.1528129577637,-51.3386383056641,82.3398971557617,-5.7001781463623,-54.2238235473633,81.328971862793,-7.34694385528564,-4.80372524261475,68.932746887207,20.1865272521973,6.01948404312134,62.0804977416992,22.3496284484863,-4.35534381866455,91.0861434936523,7.11189746856689,-8.38562965393066,93.7497100830078,4.06721782684326,28.8001098632813,85.4520874023438,-11.5769777297974,61.3929138183594,71.8295669555664,17.4410305023193,-13.3552913665771,88.597297668457,-7.7183723449707,-7.36547994613647,96.3419036865234,0.615142107009888,-22.7424373626709,91.0907135009766,6.10119533538818,-12.9923543930054,80.5957946777344,15.3863773345947,-26.5938282012939,85.9064865112305,7.48350143432617,-18.2077865600586,94.0355072021484,4.53226661682129,-18.4225082397461,84.7184982299805,10.7807950973511,-22.3237972259521,91.784309387207,-3.47111558914185,-5.5589017868042,95.0855102539063,-2.9065408706665,8.89505863189697,77.4606552124023,17.4108734130859,-5.59619092941284,79.9813385009766,15.9598217010498,-37.593147277832,52.8185234069824,19.1424903869629, +9.4243049621582,65.8523559570313,20.7377548217773,75.6347351074219,33.2174682617188,23.976261138916,74.8649749755859,34.7565078735352,25.0984649658203,79.5692901611328,50.880184173584,17.844123840332,69.0928573608398,57.8976364135742,23.6896095275879,70.3526763916016,56.7158584594727,22.3822975158691,78.3443069458008,40.5831871032715,20.9325752258301,79.6149291992188,47.3207015991211,17.6714630126953,52.871509552002,52.6582717895508,26.9977550506592,46.9096870422363,56.5493927001953,25.422830581665,75.7245941162109,52.9936103820801,19.4627647399902,80.9472045898438,51.6552352905273,5.70755195617676,83.8885192871094,59.3384208679199,3.18077325820923,71.7474822998047,58.1843643188477,16.856014251709,72.8145751953125,60.9932594299316,10.1671524047852,69.3029479980469,61.559944152832,20.4930458068848,80.2246551513672,52.624584197998,14.3236598968506,72.4649276733398,72.0843887329102,10.1274919509888,87.7451858520508,79.7512512207031,1.65439224243164,86.6488800048828,63.4273300170898,-17.9951457977295,75.9575042724609,63.9032897949219,5.23783397674561,66.3534774780273,60.2422409057617,-27.0600566864014,89.9482727050781,75.2926788330078,-1.48852038383484,40.7247314453125,77.6140060424805,16.2033576965332,47.0495452880859,79.7685012817383,15.8549251556396,52.3100357055664,77.154655456543,16.8846168518066,38.918830871582,60.4587249755859,23.766414642334,56.8763465881348,75.7869415283203,16.3853416442871,56.4599533081055,72.2869110107422,18.6662998199463,54.6256408691406,103.562744140625,1.60211181640625,92.0890197753906,65.0492935180664,0.703113794326782,80.4502716064453,62.4468955993652,3.58470010757446,92.4359817504883,67.1414337158203,0.157660007476807,89.8699035644531,71.5946044921875,1.72452425956726,81.3431854248047,76.3674926757813,5.16920614242554,81.3524932861328,71.6472320556641,4.31599140167236,92.6213684082031,69.3736801147461,-1.99368190765381,85.5486755371094,79.6440734863281,3.24811792373657,82.5681228637695,78.7918548583984,-12.8711547851563,39.0630302429199,-55.5878982543945,21.6009101867676,48.8950271606445,-49.4895057678223,0.00697040557861328, +-23.0419864654541,-51.6368980407715,-39.1851005554199,27.0602569580078,-56.1106872558594,32.5036697387695,67.1325988769531,-42.3556900024414,-37.0120391845703,29.7865219116211,-55.520378112793,36.1006469726563,37.0560989379883,-51.2092781066895,36.0771713256836,-32.5046691894531,-50.0778274536133,-65.4761276245117,13.5242300033569,98.2809524536133,8.41748428344727,-0.0306196212768555,-47.4806518554688,-60.3654174804688,44.0165328979492,-42.3239059448242,-43.6140403747559,27.0008583068848,-46.0975532531738,-45.8577346801758,1.12995576858521,-44.6835708618164,-61.7162208557129,-28.5316677093506,-45.9834480285645,-68.4462509155273,5.78483867645264,-45.6286201477051,-59.2598419189453,16.9935531616211,-45.6243476867676,-54.4050712585449,17.0007877349854,-43.6745529174805,-55.6225204467773,23.8083152770996,-53.4263076782227,36.9930953979492,27.8316040039063,103.188484191895,9.08074188232422,8.63710784912109,-56.9636535644531,38.0571441650391,22.2506256103516,-50.3922691345215,37.4522476196289,20.7800445556641,-29.3628978729248,-52.9923477172852,25.4937858581543,-40.3438491821289,-53.3272132873535,25.3798713684082,-43.7587356567383,-51.612491607666,-11.888689994812,-43.2180709838867,-65.0207672119141,7.91418600082397,-18.0430850982666,-53.8514289855957,4.46746492385864,-42.2472267150879,-61.5966415405273,32.6428375244141,-32.6479072570801,-50.0317840576172,-68.9544830322266,-58.899959564209,-13.30943775177,-71.3640975952148,-57.1307487487793,-12.0999774932861,-39.7689323425293,-60.6602554321289,32.1279067993164,-43.2337036132813,-60.2767066955566,31.1784782409668,-37.5803070068359,-58.8305282592773,33.003547668457,-50.903881072998,-53.5720024108887,26.1068725585938,-59.02392578125,-59.7741432189941,10.1899690628052,-61.6318435668945,-59.0331153869629,-4.87876605987549,-78.5620727539063,-56.448127746582,-21.6479358673096,-48.2790184020996,-58.4568557739258,28.0852451324463,-66.4085922241211,-57.5017776489258,-2.55000400543213,-62.7305717468262,-58.2067108154297,9.7682523727417,-57.5915451049805,-37.5314750671387,14.6996583938599, +-89.2448120117188,-52.8584289550781,-31.7045097351074,-51.16943359375,-43.3498954772949,23.5417556762695,-48.374454498291,-60.0943450927734,26.2099742889404,-75.0805358886719,-35.8075180053711,-10.0814228057861,-64.6623382568359,-56.2022972106934,7.36102676391602,34.7404327392578,93.3279418945313,12.4374122619629,-67.4539184570313,-17.8338718414307,3.00312423706055,66.0695648193359,95.850471496582,9.82312488555908,-84.2179107666016,-56.1732482910156,-40.3202705383301,10.4151239395142,98.2370910644531,-2.51571989059448,40.0176391601563,102.990097045898,4.832350730896,-75.2486953735352,-54.160228729248,-74.7141342163086,-57.9492492675781,-48.1391448974609,-74.6423416137695,-56.3255920410156,-51.1215667724609,-73.3463439941406,-55.4677696228027,-53.0502243041992,-71.106689453125,-80.5479278564453,-54.4699974060059,-72.8998413085938,-78.2461471557617,-55.1906509399414,-57.7697105407715,-92.1405944824219,-55.0506324768066,-37.170970916748,-92.9703979492188,-55.1423645019531,-51.7388648986816,-84.9149703979492,-55.4085693359375,-32.353759765625,-95.5265502929688,-47.6920928955078,-56.5215682983398,-96.7578430175781,-35.6457443237305,-46.0712699890137,-1.86606931686401,95.3544082641602,3.65603256225586,-86.8983383178711,-55.6509246826172,-52.4606170654297,-88.1604156494141,-53.0608520507813,-61.2035140991211,-91.088508605957,-50.8504905700684,-60.6584854125977,-82.2992477416992,-54.4094696044922,-60.402759552002,-85.7520294189453,-50.3364562988281,-74.5309906005859,-84.5330047607422,-46.8299522399902,-76.6675491333008,-91.0579223632813,-48.0653610229492,-64.1609191894531,-88.3378601074219,-31.1566276550293,-72.6639022827148,-85.7864532470703,-13.0980606079102,-65.8117141723633,-90.3935241699219,-47.3919486999512,-66.8413543701172,-84.0229034423828,-19.6574287414551,-72.1647338867188,-81.3576889038086,-26.3134746551514,-75.5586013793945,-84.8871917724609,-29.7576751708984,-75.1843185424805,8.91298866271973,98.9684906005859,0.594467401504517,-91.717399597168,-36.4256935119629,-62.1741714477539,-85.0065460205078,-53.3841247558594,-72.711540222168, +-22.4652614593506,-23.7877445220947,-62.5921249389648,25.5469875335693,93.4521026611328,14.3392009735107,-42.2353401184082,-47.831615447998,-70.6443023681641,-49.456241607666,-12.6547060012817,-66.4104080200195,4.64183855056763,98.1726531982422,2.06443762779236,13.1234378814697,95.3706207275391,11.2996368408203,-93.5125122070313,-32.5947875976563,-35.641731262207,-89.3259887695313,-24.0595169067383,-60.9534187316895,-92.302864074707,-27.0118274688721,-59.068489074707,-93.1099853515625,-16.0596408843994,-55.4708290100098,-95.3143844604492,-28.9442749023438,-56.2354888916016,-84.1792526245117,-40.0530891418457,-21.8838634490967,-76.9701843261719,7.16517734527588,-6.1615571975708,-84.0554122924805,12.6344709396362,-55.3702239990234,-93.5366516113281,16.0506458282471,-50.146858215332,-87.9548721313477,25.557014465332,-45.0584259033203,-88.7994766235352,-12.2125015258789,-58.1335411071777,-92.239501953125,-8.8487663269043,-54.1905212402344,-82.7904510498047,-0.930887699127197,-63.009391784668,-81.9405670166016,-9.60839366912842,-67.514762878418,-91.4240112304688,-0.365775108337402,-53.208080291748,-92.8091049194336,2.79306125640869,-49.2039451599121,-93.987419128418,-0.065363883972168,-46.8493118286133,-91.7117385864258,20.670825958252,-49.7968826293945,-14.8855876922607,-58.6776123046875,32.7469177246094,-24.9576988220215,-59.1341552734375,32.5177230834961,-22.1703853607178,-58.0232467651367,35.0426330566406,-3.15281009674072,-58.4581718444824,37.7726135253906,-38.7113571166992,-45.1768188476563,32.9150924682617,-33.4711532592773,-41.6899909973145,36.1341705322266,-30.4557819366455,-33.0275535583496,38.98486328125,-33.4951705932617,-29.9880771636963,37.3926239013672,-27.6518592834473,-44.6775207519531,37.6028289794922,-42.1361312866211,-28.6524829864502,27.8191967010498,14.4451694488525,-28.0562171936035,36.8571472167969,-3.72711896896362,-31.5916557312012,40.5922889709473,19.1482563018799,-23.3809375762939,35.2359428405762,-31.1890754699707,-19.3945827484131,39.321418762207,-4.60167455673218,-4.93061637878418,36.8959808349609, +-34.8716888427734,-18.087007522583,37.0946655273438,-33.0533409118652,-8.36469650268555,36.6592178344727,-38.6495933532715,19.5837383270264,26.08909034729,-37.4519386291504,27.1308498382568,-50.802059173584,-10.697961807251,16.7566814422607,-54.762077331543,12.6105012893677,26.4347496032715,-46.4646148681641,-43.2632064819336,27.0982551574707,19.4374313354492,-39.4699172973633,-6.68461990356445,32.047477722168,-47.6582260131836,17.6394786834717,22.4465141296387,-52.9764976501465,24.2099208831787,11.5919017791748,23.5412273406982,75.7945404052734,18.9643955230713,-62.1891212463379,4.42697620391846,7.3009991645813,-81.0893325805664,39.6196441650391,-33.2576446533203,-86.9635162353516,29.6224994659424,-31.7408199310303,-77.9866104125977,44.95556640625,-34.0856742858887,-79.8843688964844,52.4170150756836,-25.1658668518066,-37.2347869873047,61.0047416687012,-27.55393409729,-74.789680480957,34.1345901489258,-43.9563407897949,-71.1908187866211,68.8380661010742,-14.6485805511475,-56.9728851318359,78.2580261230469,-4.66860008239746,-60.3656997680664,78.0636291503906,-8.53117656707764,-78.662353515625,37.177116394043,-39.3126564025879,-74.9367752075195,64.0533905029297,-17.7411193847656,-81.5928497314453,17.878589630127,-12.4921321868896,-75.6365737915039,12.1761436462402,-4.78245878219604,-84.5029602050781,24.1473197937012,-16.3933296203613,-79.0099411010742,40.6234169006348,-9.63099670410156,-88.7478866577148,22.394947052002,-26.3894805908203,-83.722526550293,29.5261402130127,-13.9008474349976,-90.9970474243164,23.9388389587402,-37.1006126403809,-84.6739349365234,39.3296051025391,-27.3876342773438,-86.4530944824219,33.2632942199707,-25.4425086975098,-71.0088272094727,58.5825729370117,-5.46043014526367,-81.773063659668,0.887629985809326,-20.4234771728516,-78.2569198608398,60.4672737121582,-17.6713218688965,78.6813888549805,-35.0622138977051,-17.0390434265137,79.6336059570313,-32.3338584899902,-13.4710292816162,80.7950973510742,-29.9501342773438,-10.1521186828613,80.1813201904297,-25.755838394165,-3.02249526977539,75.219108581543,-41.2858200073242,2.64138412475586, +73.8665084838867,-34.7672271728516,6.56665134429932,77.5845565795898,-37.821159362793,-14.0955410003662,73.0526657104492,-42.4980850219727,-10.758394241333,26.5934810638428,-28.0372371673584,35.9715728759766,61.4606704711914,102.386856079102,3.93909406661987,51.9389762878418,-38.6758575439453,32.2820434570313,57.9201965332031,-35.0214729309082,29.3701515197754,82.9148559570313,-14.3364334106445,-4.4057765007019,74.373420715332,-20.50634765625,9.11440086364746,80.4003372192383,-12.7092208862305,4.08375597000122,85.2705535888672,3.66094636917114,-2.29027462005615,81.0951309204102,-3.76351833343506,13.8202180862427,81.8435897827148,-6.47207832336426,11.9840412139893,72.6665802001953,97.8566360473633,5.19852542877197,76.1671447753906,95.0635299682617,5.7246298789978,72.906982421875,-23.758861541748,10.6799116134644,74.7964630126953,-3.34021425247192,20.5136566162109,83.8324127197266,3.56862020492554,8.98147583007813,71.4443664550781,-6.46144533157349,24.1512985229492,67.2638854980469,12.078031539917,27.012035369873,77.5862350463867,-6.96393966674805,16.8842353820801,75.2084808349609,-9.53595161437988,19.2729454040527,69.6282653808594,13.110728263855,25.4770889282227,67.1425094604492,-31.4752388000488,22.5606956481934,63.6192398071289,-44.5446586608887,26.1010246276855,60.879524230957,-45.030574798584,27.9919319152832,68.9173812866211,-47.8916282653809,14.262638092041,64.6855087280273,-50.7639961242676,21.8176879882813,64.7498245239258,-51.843921661377,19.7380237579346,68.6044845581055,-35.3271942138672,16.2792510986328,71.689338684082,-46.0514373779297,9.93833541870117,50.3687629699707,-50.7997055053711,33.9225769042969,72.1135330200195,-42.8460235595703,11.1918115615845,47.9769897460938,-52.4690093994141,33.4413299560547,72.613525390625,-38.7431907653809,11.6849699020386,72.1377716064453,-24.9950714111328,12.1046924591064,77.1131286621094,-42.6634674072266,-2.04280281066895,70.1403274536133,-48.0681114196777,10.1176948547363,73.6211471557617,-34.7116851806641,8.68922901153564,71.6884613037109,-42.7864761352539,-19.3940734863281, +63.1140899658203,-30.6643753051758,27.4763164520264,69.8245620727539,-21.4248542785645,22.1606903076172,75.216438293457,87.6785507202148,-5.97157001495361,66.7958297729492,-26.0422267913818,24.8853511810303,64.6537475585938,-23.7589130401611,26.0763549804688,79.7082138061523,-31.2907485961914,-36.510684967041,77.348014831543,-41.3624458312988,-30.8953666687012,70.9266357421875,97.8697357177734,0.716343402862549,81.7716293334961,-18.0557861328125,-34.9658966064453,78.5046310424805,-20.3749961853027,-37.8694229125977,91.0605545043945,2.16873931884766,-24.9474906921387,86.2479476928711,-10.1396360397339,-23.5380191802979,90.9133605957031,6.2423152923584,-17.4075660705566,77.9619598388672,73.6979598999023,-18.3816776275635,84.7999877929688,-15.8674774169922,-19.910737991333,85.3397827148438,-6.86966514587402,-32.8843040466309,80.9838256835938,-29.4012145996094,-14.536979675293,89.6042709350586,4.85874080657959,-28.9224128723145,-6.2717752456665,-47.157398223877,-62.8059234619141,18.9035472869873,102.300735473633,7.12313222885132,-59.8949432373047,-58.4542350769043,13.2114601135254,-74.9456405639648,-52.7758255004883,-76.0717163085938,-90.6821670532227,-36.2159729003906,-69.2502136230469,-86.0579528808594,-53.4828758239746,-62.8060684204102,21.5675601959229,102.739097595215,3.34343075752258,-52.3887977600098,-36.4003524780273,21.4774971008301,-5.68562841415405,-17.8154563903809,40.8368301391602,-61.1470184326172,20.4475021362305,6.32386445999146,-71.3280563354492,69.6548309326172,-11.6708908081055,70.270393371582,-43.5664825439453,13.4999418258667,82.0483856201172,-32.7647247314453,-34.1891403198242,69.4400634765625,-39.872314453125,-39.9688987731934,84.2181701660156,-17.6984786987305,-30.7826061248779,85.6788940429688,11.2951793670654,-6.5612964630127,84.4883193969727,9.73207664489746,-2.89718246459961,-39.3589935302734,76.5827331542969,-16.3044300079346,-41.3859786987305,81.5521469116211,1.96423304080963,1.48617124557495,93.3672866821289,7.15737628936768,-25.2150230407715,91.5125732421875,0.255523920059204,78.5512390136719,45.7589683532715,20.6376762390137, +60.1917762756348,51.9615936279297,26.5800151824951,68.7275390625,71.7695159912109,16.2503719329834,79.8566589355469,59.2365493774414,6.61362266540527,45.9865608215332,60.9607772827148,23.9426860809326 + } + PolygonVertexIndex: *3600 { + a: 7,0,-361,359,9,-5,4,9,-361,9,5,-8,374,370,-2,5,1,-371,361,5,-74,9,466,-6,466,73,-6,1,5,-362,9,378,-467,3,362,-360,2,359,-363,370,369,-8,152,363,-370,7,369,-364,15,364,-366,3,551,-365,6,365,-552,551,365,-365,5,370,-8,9,7,-361,33,436,-578,10,367,-437,28,577,-368,367,577,-437,12,369,-371,11,366,-577,383,576,-18,17,576,-367,19,576,-384,11,576,-369,371,368,-20,19,368,-577,18,368,-372,56,372,-367,17,366,-373,13,382,-375,12,374,-383,18,373,-369,1,368,-374,1,375,-375,13,374,-376,1,361,-369,11,368,-362,564,114,-364,7,363,-115,3,364,-363,362,364,-377,15,376,-365,2,362,-377,12,370,-375,11,361,-367,28,377,-578,20,582,-378,377,582,-578,33,577,-583,2,378,-360,9,359,-379,75,466,-379,473,378,-380,2,379,-379,365,521,-16,15,521,-380,118,521,-366,473,379,-522,2,376,-380,15,379,-377,19,380,-386,12,143,-370,152,369,-144,19,383,-381,384,380,-384,16,382,-382,13,381,-383,12,382,-144,18,371,-386,19,385,-372,1,373,-386,18,385,-374,381,375,-381,380,375,-386,13,375,-382,1,385,-376,143,386,-381,16,380,-387,16,381,-381,143,382,-387,16,386,-383,143,380,-385,30,387,-389,21,388,-388,23,389,-394,25,393,-390,361,73,-395,25,389,-403,27,402,-390,390,389,-25,24,389,-392,27,389,-391,71,391,-390,22,392,-397,26,396,-393,23,393,-395,32,394,-394,34,387,-396,30,395,-388,24,396,-391,27,390,-397,21,394,-398,32,397,-395,29,398,-579,32,393,-399,398,393,-579,25,578,-394,34,408,-388,361,387,-409,361,394,-388,21,387,-395,71,389,-24,29,578,-36,25,35,-579,30,388,-32,21,31,-389,35,399,-405,29,35,-405,35,392,-400,22,401,-393,392,401,-400,583,399,-402,27,396,-403,26,402,-397,25,402,-36,402,26,-36,26,392,-36,31,450,-401,30,31,-401,32,404,-32,404,403,-32,30,400,-396,34,395,-401,403,399,-407,404,399,-404,29,404,-399,32,398,-405,31,403,-451,21,397,-32,32,31,-398,8,405,-411,407,410,-406,105,410,-408,416,366,-409,349,306,-410,36,411,-580,428,579,-49,48,579,-412,57,412,-580,36,579,-413,36,412,-414,37,413,-413,416,414,-367,36,413,-415,37,414,-414,51,415,-412,48,411,-416,36,414,-412,51,411,-417,416,411,-415,38,417,-419,34,400,-420,41,419,-401,450,417,-401,41, +400,-418,42,418,-421,417,421,-419,420,418,-40,39,418,-422,40,420,-40,38,408,-418,41,417,-409,10,422,-368,422,595,-368,54,367,-596,38,423,-417,50,416,-424,42,425,-425,46,424,-426,38,416,-409,42,424,-419,423,418,-51,50,418,-425,38,418,-424,51,416,-427,50,426,-417,34,419,-409,41,408,-420,48,427,-429,44,428,-428,40,429,-421,43,429,-41,42,420,-430,45,431,-431,53,430,-432,46,425,-430,42,429,-426,46,429,-433,43,432,-430,66,433,-432,53,431,-434,428,580,-50,49,580,-431,44,580,-429,44,432,-581,43,52,-433,580,432,-53,66,434,-434,53,433,-435,47,40,-40,43,437,-53,434,579,-50,49,579,-429,57,579,-435,53,434,-436,49,435,-435,33,409,-437,201,436,-410,43,40,-438,47,437,-41,52,446,-431,45,430,-447,580,52,-431,57,434,-443,51,426,-582,424,581,-51,50,581,-427,46,581,-425,51,438,-416,44,427,-439,415,438,-49,48,438,-428,49,430,-436,53,435,-431,581,46,-439,46,432,-439,44,438,-433,51,581,-439,408,366,-362,55,57,-440,442,439,-58,488,343,-441,56,441,-373,55,372,-442,57,441,-413,55,441,-58,37,412,-442,17,372,-384,55,383,-373,37,441,-415,414,441,-367,56,366,-442,20,8,-411,10,436,-444,201,443,-437,442,434,-86,66,85,-435,87,442,-86,28,367,-445,54,444,-368,450,403,-62,403,406,-62,450,445,-418,417,445,-422,39,421,-48,47,421,-60,445,62,-60,421,445,-60,62,60,-60,58,446,-448,52,447,-447,448,63,-59,58,63,-447,456,63,-449,58,447,-450,437,449,-53,52,449,-448,47,449,-438,60,449,-60,58,449,-449,60,448,-450,47,59,-450,61,62,-451,450,62,-446,61,91,-512,61,511,-63,102,60,-512,511,60,-63,61,406,-92,69,452,-454,453,452,-69,65,68,-453,452,454,-496,94,495,-455,67,455,-457,456,455,-64,65,452,-86,69,454,-453,65,85,-458,64,457,-86,66,458,-86,64,85,-459,67,459,-65,64,459,-66,65,459,-69,45,446,-456,63,455,-447,460,459,-457,67,456,-460,64,431,-456,45,455,-432,67,64,-456,20,409,-583,33,582,-410,64,458,-432,66,431,-459,461,60,-103,68,460,-454,68,459,-461,456,448,-462,60,461,-449,460,456,-462,65,457,-65,69,462,-455,70,454,-463,109,507,-506,461,102,-461,70,462,-454,69,453,-463,453,102,-71,70,102,-508,460,102,-454,505,507,-103,72,463,-74,74,73,-464,71,23,-465,74,464,-24,72, +73,-467,73,23,-395,391,465,-78,77,465,-472,71,465,-392,72,465,-464,74,463,-466,74,23,-74,74,465,-465,71,464,-466,471,465,-467,72,466,-466,76,467,-469,77,468,-468,583,401,-468,22,467,-402,76,583,-468,83,470,-470,78,469,-471,77,471,-469,78,468,-470,469,468,-472,22,396,-468,396,24,-468,24,391,-468,77,467,-392,83,472,-471,78,470,-473,82,469,-472,79,472,-91,485,90,-473,343,405,-441,76,468,-473,78,472,-469,399,583,-473,76,472,-584,399,472,-80,14,440,-445,28,444,-441,399,79,-407,82,474,-585,475,584,-475,474,471,-467,75,474,-467,475,474,-474,474,378,-474,75,378,-475,477,479,-585,476,584,-480,82,584,-477,80,478,-480,479,478,-477,83,476,-479,82,471,-475,81,479,-481,480,479,-271,270,479,-478,485,472,-479,83,478,-473,82,476,-470,83,469,-477,177,482,-87,85,86,-88,177,86,-482,88,384,-440,28,440,-9,405,8,-441,88,483,-385,87,482,-89,482,178,-484,285,483,-179,55,439,-384,384,383,-440,88,482,-484,177,178,-483,442,87,-440,439,87,-89,87,86,-483,20,377,-9,28,8,-378,93,487,-485,84,480,-271,486,489,-91,585,502,-490,90,485,-82,81,485,-480,80,479,-486,489,79,-91,287,484,-85,89,84,-485,80,485,-479,487,486,-485,480,484,-487,89,484,-481,486,90,-82,89,480,-85,91,406,-503,79,502,-407,486,81,-481,489,502,-80,486,92,-490,487,92,-487,317,488,-441,14,317,-441,185,510,-94,93,510,-488,287,93,-485,108,490,-492,94,491,-491,96,492,-491,101,490,-493,100,98,-494,96,493,-99,101,492,-99,96,98,-493,481,452,-496,495,494,-482,97,496,-501,98,500,-497,189,498,-498,95,496,-587,97,586,-497,101,499,-491,94,490,-500,95,301,-497,98,496,-302,193,298,-302,494,301,-299,98,301,-495,488,317,-200,100,500,-99,497,498,-587,95,586,-499,100,512,-501,500,512,-587,99,586,-513,97,500,-587,495,98,-495,101,98,-500,499,98,-496,94,499,-496,86,452,-482,85,452,-87,481,494,-178,93,293,-186,104,103,-502,487,510,-586,510,111,-586,111,504,-586,104,502,-104,92,487,-586,103,503,-512,110,511,-504,585,504,-503,92,585,-490,502,504,-507,107,506,-505,103,506,-504,110,503,-507,96,490,-509,108,508,-491,109,491,-508,106,508,-510,509,508,-492,108,491,-509,109,509,-492,106,512,-494,100,493,-513,502,506, +-104,96,508,-494,106,493,-509,94,454,-492,70,507,-455,454,507,-492,104,501,-512,103,511,-502,497,510,-186,107,509,-507,106,509,-108,110,506,-510,106,107,-513,512,107,-112,111,107,-505,102,511,-506,110,505,-512,104,451,-503,91,502,-452,109,505,-510,110,509,-506,99,510,-587,497,586,-511,111,510,-513,99,512,-511,104,511,-452,91,451,-512,141,574,-514,574,514,-514,513,514,-520,117,519,-515,136,513,-520,516,116,-555,122,116,-517,135,517,-519,122,518,-117,116,518,-518,516,554,-516,137,519,-555,515,554,-118,117,554,-520,137,520,-520,136,519,-521,172,475,-522,407,531,-523,112,522,-532,558,562,-524,172,523,-563,523,521,-119,172,521,-524,118,365,-7,562,269,-173,558,523,-525,515,144,-526,121,525,-528,127,530,-121,527,120,-531,122,121,-527,123,526,-122,515,525,-517,121,516,-526,527,528,-121,121,527,-531,122,516,-122,127,529,-531,124,530,-530,115,532,-532,207,531,-533,117,514,-516,574,515,-515,122,526,-534,123,533,-527,119,122,-534,146,528,-526,527,525,-529,562,139,-270,125,536,-538,539,534,-537,537,536,-127,126,536,-535,234,535,-121,127,120,-536,127,534,-530,124,529,-535,126,534,-536,127,535,-535,125,276,-537,536,276,-140,242,540,-129,154,540,-243,175,276,-538,125,537,-277,159,175,-538,124,538,-531,539,530,-539,123,121,-540,121,530,-540,126,128,-538,140,539,-537,128,540,-538,159,537,-541,539,538,-535,124,534,-539,134,541,-139,138,541,-548,131,547,-542,131,543,-543,545,542,-130,129,542,-544,130,544,-588,133,587,-545,129,546,-546,130,545,-547,131,542,-548,132,547,-543,135,548,-556,133,555,-549,129,359,-547,4,546,-360,523,118,-550,133,544,-556,130,546,-545,544,546,-556,129,543,-550,131,549,-544,132,542,-588,542,545,-588,130,587,-546,132,587,-551,133,550,-588,552,132,-551,129,551,-360,3,359,-552,6,551,-550,129,549,-552,118,6,-550,133,548,-551,135,552,-549,552,550,-549,552,556,-133,119,553,-557,132,556,-139,138,556,-554,135,555,-555,0,554,-556,116,517,-555,135,554,-518,119,556,-123,135,518,-557,122,556,-519,7,114,-1,138,547,-133,555,4,-1,0,4,-361,546,4,-556,114,557,-1,136,0,-558,135,556,-553,136,520,-1,554,0,-138,137,0,-521,134,561, +-542,131,541,-559,558,541,-562,558,524,-550,523,549,-525,131,558,-550,119,533,-554,123,553,-534,134,138,-560,140,559,-139,140,138,-540,539,138,-124,123,138,-554,134,559,-562,140,561,-560,139,562,-562,558,561,-563,139,561,-537,140,536,-562,141,564,-589,563,588,-114,113,588,-565,142,588,-564,136,564,-514,141,513,-565,112,565,-523,349,522,-566,105,522,-350,148,566,-568,142,567,-567,105,349,-411,136,557,-565,114,564,-558,142,590,-589,590,141,-589,152,143,-590,143,563,-590,113,589,-564,142,563,-568,143,567,-564,235,238,-568,148,567,-239,235,567,-385,143,384,-568,235,384,-180,483,179,-385,147,568,-571,147,525,-573,572,525,-145,349,565,-561,227,560,-566,146,525,-571,147,570,-526,147,569,-569,150,568,-570,149,572,-591,141,590,-573,225,560,-572,571,560,-359,205,358,-561,149,569,-573,147,572,-570,149,590,-570,148,573,-591,590,573,-570,150,569,-574,144,574,-573,141,572,-575,163,568,-255,254,568,-576,570,568,-164,150,575,-569,142,566,-591,148,590,-567,144,515,-575,146,570,-592,160,591,-571,151,234,-593,528,592,-121,120,592,-235,146,592,-529,235,179,-237,112,531,-566,207,237,-532,565,531,-228,227,531,-238,152,589,-364,564,363,-114,113,363,-590,254,575,-240,150,238,-576,575,238,-240,235,239,-239,153,240,-240,254,239,-241,150,573,-239,148,238,-574,153,239,-236,126,242,-129,307,244,-244,198,244,-308,190,243,-245,156,245,-242,154,241,-247,246,241,-159,158,241,-322,157,247,-156,155,247,-246,241,245,-248,234,248,-536,535,248,-243,156,242,-249,126,535,-243,156,241,-243,154,242,-242,158,159,-247,246,159,-155,154,159,-541,160,249,-592,155,245,-250,591,249,-152,151,249,-246,169,249,-251,160,250,-250,145,258,-571,160,570,-259,151,592,-592,146,591,-593,234,245,-249,151,245,-235,156,248,-246,169,155,-250,161,255,-253,162,259,-256,255,259,-253,166,252,-260,231,252,-167,171,257,-254,153,254,-241,161,265,-256,165,255,-266,167,256,-258,165,257,-257,165,258,-258,257,258,-254,145,253,-259,260,253,-154,153,253,-255,171,253,-261,163,254,-254,167,257,-262,171,261,-258,570,163,-146,163,253,-146,161,252,-263,231,262,-253,165,256,-256,255,256,-264,167, +263,-257,162,255,-264,170,166,-260,160,258,-251,165,265,-259,250,258,-170,169,258,-266,162,263,-267,266,263,-262,167,261,-264,171,266,-262,267,235,-342,170,259,-268,162,267,-260,162,266,-268,171,260,-267,267,266,-261,332,264,-263,262,264,-266,169,265,-265,161,262,-266,267,260,-236,153,235,-261,473,268,-476,521,475,-269,473,521,-269,475,269,-585,477,584,-270,172,269,-476,477,269,-175,174,269,-277,270,477,-175,173,271,-280,354,279,-231,230,279,-272,168,279,-355,176,270,-175,164,272,-274,273,272,-281,173,280,-273,407,273,-281,84,270,-183,105,407,-523,277,174,-276,139,276,-270,174,276,-276,274,275,-176,175,275,-277,407,115,-532,277,346,-200,488,199,-347,277,176,-175,176,277,-279,207,532,-280,115,280,-533,279,532,-174,173,532,-281,275,274,-347,274,329,-347,275,346,-278,251,273,-406,407,405,-274,224,251,-406,164,273,-252,183,306,-226,283,284,-237,341,236,-285,285,178,-285,281,284,-179,225,284,-184,281,183,-285,177,281,-179,230,271,-283,173,272,-272,164,282,-273,272,282,-272,285,284,-284,285,179,-484,341,235,-237,179,283,-237,407,280,-116,198,286,-252,230,282,-287,164,251,-283,282,251,-287,179,285,-284,176,182,-271,287,181,-320,182,176,-279,180,181,-279,182,278,-182,287,84,-182,181,84,-183,168,288,-280,207,279,-289,319,180,-291,195,290,-181,183,281,-290,289,281,-495,177,494,-282,289,308,-184,289,299,-309,289,494,-594,299,289,-594,93,287,-294,319,293,-288,185,290,-595,290,311,-595,184,594,-312,224,291,-252,190,244,-292,198,251,-245,244,251,-292,198,292,-287,286,292,-355,229,354,-293,230,286,-355,497,185,-188,187,185,-595,193,300,-295,187,594,-301,192,294,-595,594,294,-301,186,594,-296,184,295,-595,191,297,-297,192,296,-298,186,296,-595,192,594,-297,193,294,-299,298,294,-298,192,297,-295,188,298,-298,187,300,-498,189,497,-301,494,298,-594,188,593,-299,189,300,-302,193,301,-301,95,498,-302,189,301,-499,191,299,-298,188,297,-594,593,297,-300,14,318,-201,54,14,-445,200,302,-304,197,303,-303,196,200,-304,422,304,-596,14,595,-195,194,595,-305,54,595,-15,194,304,-306,422,305,-305,194,318,-15,311,195,-319,200,318,-196,198,307,-600, +223,599,-308,306,183,-309,205,237,-209,201,409,-309,306,308,-410,10,443,-423,309,422,-202,201,422,-444,202,310,-296,204,295,-311,184,312,-296,202,295,-313,204,310,-314,203,313,-311,202,312,-315,184,311,-313,311,314,-313,194,314,-319,311,318,-315,310,314,-204,203,314,-306,202,314,-311,194,305,-315,191,296,-597,295,596,-187,186,596,-297,204,596,-296,191,596,-316,204,315,-597,204,313,-316,203,309,-314,315,313,-207,206,313,-310,203,305,-310,422,309,-306,201,316,-310,206,309,-317,206,308,-316,308,299,-316,191,315,-300,206,316,-309,201,308,-317,197,302,-196,200,195,-303,195,311,-291,14,200,-318,196,317,-201,195,180,-198,197,180,-279,180,319,-182,199,320,-304,196,303,-321,197,278,-304,278,277,-304,277,199,-304,185,293,-291,319,290,-294,196,320,-318,199,317,-321,209,322,-322,158,321,-323,175,159,-323,158,322,-160,212,597,-324,228,323,-598,209,597,-323,211,322,-598,211,325,-325,217,324,-326,247,326,-322,209,321,-327,241,247,-322,209,326,-598,327,597,-248,247,597,-327,228,597,-328,274,175,-215,211,324,-323,214,322,-325,214,175,-323,214,598,-275,215,274,-599,210,601,-599,328,598,-214,213,598,-602,215,598,-329,215,328,-275,212,330,-598,211,597,-331,213,329,-329,274,328,-330,157,264,-332,221,331,-333,332,331,-265,211,334,-334,216,333,-335,211,333,-326,217,325,-334,228,327,-337,247,336,-328,223,335,-600,337,599,-217,216,599,-336,198,599,-338,218,334,-601,212,336,-335,334,336,-601,221,600,-337,211,330,-335,212,334,-331,208,237,-343,168,338,-238,342,237,-339,220,351,-333,218,600,-352,221,332,-601,600,332,-352,217,335,-325,223,324,-336,233,166,-340,170,339,-167,247,157,-337,218,340,-335,219,337,-341,216,334,-338,334,340,-338,217,333,-336,216,335,-334,169,264,-156,157,155,-265,157,331,-337,221,336,-332,225,341,-285,233,339,-572,225,571,-342,233,208,-167,208,342,-167,571,339,-342,267,341,-340,170,267,-340,224,344,-346,222,345,-345,488,346,-344,346,601,-344,343,601,-345,222,344,-602,307,347,-349,224,345,-348,348,347,-223,222,347,-346,224,405,-345,343,344,-406,210,307,-602,307,348,-602,222,601,-349,190,291,-244,243,291,-348,224,347,-292, +307,243,-348,223,307,-325,598,324,-211,210,324,-308,214,324,-599,213,601,-330,346,329,-602,349,409,-411,20,410,-410,225,349,-561,225,306,-350,231,350,-263,332,262,-221,220,262,-351,220,350,-352,226,355,-351,219,351,-356,355,351,-351,231,352,-351,232,350,-353,232,353,-351,226,350,-354,226,354,-356,229,355,-355,232,352,-357,231,356,-353,168,354,-358,226,357,-355,342,356,-167,231,166,-357,219,340,-352,218,351,-341,212,323,-337,228,336,-324,229,292,-356,198,337,-293,355,292,-220,219,292,-338,226,338,-358,168,357,-339,232,356,-354,342,338,-357,226,353,-339,338,353,-357,207,288,-238,168,237,-289,205,208,-359,233,358,-209,205,560,-238,227,237,-561,233,571,-359 + } + Edges: *1800 { + a: 20,9,29,540,548,543,44,21,780,152,147,1,800,17,38,33,8,51,35,30,36,47,0,140,2,11,159,164,677,56,113,107,80,134,120,90,83,95,102,78,89,110,81,14,111,116,71,128,123,162,170,114,53,48,179,191,171,183,221,207,86,92,204,222,206,219,230,98,104,218,117,122,255,254,212,236,205,257,252,284,326,306,748,281,288,287,321,305,329,330,315,348,275,327,359,312,270,318,317,311,278,314,279,293,299,290,302,413,422,363,410,368,272,273,362,369,372,308,425,333,338,411,303,458,960,66,675,405,414,377,335,342,1232,393,782,467,473,461,450,476,477,453,500,491,459,485,486,489,494,512,406,513,504,518,531,533,521,505,530,68,72,534,539,551,345,510,509,572,557,554,549,552,506,519,618,644,639,833,834,651,606,681,597,611,602,591,599,668,669,665,659,446,605,631,633,653,689,464,650,629,560,555,654,608,672,558,593,588,579,578,621,626,636,617,632,708,713,705,698,350,468,479,743,1151,105,741,764,755,750,695,645,786,785,792,823,74,522,821,546,69,684,843,831,623,845,839,855,848,829,864,858,810,870,806,878,884,897,920,914,932,935,923,929,924,908,891,899,930,841,906,941,947,893,603,951,974,975,989,998,993,905,915,999,1001,1016,976,896,1007,1022,1026,1050,1043,296,1034,1025,1055,1031,1032,300,1023,1028,1037,1046,1047,1076,1083,1086,1091,1089,1074,1080,1071,1073,1095,1088,389,381,1133,1118,1139,1127,1124,1119,1145,1168,1164,1067,177,1160,1178,1184,1205,1155,1191,1187,1208,1185,1181,1193,1157,1113,1121,1148,797,1221,1220,1244,1129,749,1218,1247,1228,1239,1229,1227,768,1241,1304,1299,1277,1283,1296,1319,1289,1308,1282,1301,1302,1325,1316,1276,1295,1280,1336,1313,1286,1281,1349,1275,1364,1361,1373,1440,1430,902,1368,1362,1367,1388,1421,1382,1359,1392,1398,1370,1433,1425,1386,1406,1401,1391,1395,1565,1397,1356,1376,1415,1412,1226,1225,1146,903,1418,1383,1442,2640,1471,1472,452,1490,1482,1739,1487,1483,877,1476,1470,1479,1602,1530,1523,1571,1365,1587,1358,1505,1514,1434,1511,1503,1518,1533,1580,1737,1742,1574,1493,1488,1502,1515,1521,1535,1371,1563,1491,996,1559,1590,1595,1673,2103,1640,1621,1629,1653,1637,1643,1644,1634,1655,1636,1638,1652,1631, +1623,1740,1692,1679,1682,194,1685,1674,1680,197,50,1691,1722,1709,1734,1658,1755,1715,1713,1712,1706,1707,1700,1703,1736,1731,1701,1727,1704,1710,2220,1758,1752,1757,1831,1805,1830,1817,1785,1835,1772,1778,1770,1767,1802,1818,1823,1790,1784,1797,1775,1769,1841,1826,1916,1868,1866,1871,1856,1848,1887,1910,1897,1877,1875,2027,1862,1859,1854,1872,1883,2102,1932,1857,1865,2172,1890,5,2195,1869,1961,1641,1970,1884,1889,1886,2279,1950,1662,1667,1850,1959,1967,1926,1931,1985,2007,1964,1929,1973,2009,2004,1906,1696,1697,1911,1898,2201,1833,2043,2051,1677,2069,2022,2193,2171,2064,2049,2048,1632,1622,2090,2088,2081,2087,2091,2079,2129,2133,2121,2109,2084,2130,2105,2108,2139,2144,2150,2174,2097,2189,2163,1620,2184,2177,2160,2181,2187,2192,1760,2162,2165,2168,2211,2219,2106,2111,2186,2202,2213,2234,2147,2252,2253,1781,2262,2255,2529,2156,42,137,2303,2291,2231,2235,2142,2292,2315,2355,2331,2336,2333,2609,2616,2357,2349,2348,1808,2322,2327,2316,1779,1793,2330,2339,1806,2384,2250,2387,2388,2342,1671,1676,2249,2682,2328,2415,2381,2376,2613,2399,2471,2435,2429,2420,2496,2501,2444,2442,2504,2430,2475,2474,2432,2434,2436,2394,2447,2423,2418,2445,2450,2502,2448,2433,2421,2396,2594,2601,2306,2301,2439,2516,2451,2555,2391,2390,2462,2519,2526,2531,2534,2741,2486,2549,2487,2535,2546,2468,2579,1668,1169,2570,2565,1158,2592,2600,2714,2718,2603,2618,2604,2591,2606,2621,2625,2588,2636,2626,2669,2615,2607,2684,2627,2648,1424,2703,2696,2693,2700,1257,2702,2709,2699,2690,2733,2694,2266,2726,1245,2763,2762,2657,2654,2768,2789,2804,2807,2796,2792,2814,2816,2744,2739,2852,1394,1413,2904,2874,2871,2861,2849,2855,2859,2858,2853,2820,2877,2873,2865,2894,2876,2687,2909,2892,2900,1407,2966,801,2937,3125,2948,2324,2943,2951,3119,2931,3035,2957,2961,3101,2969,2978,2993,2984,2958,3021,3017,2999,2822,2997,3014,3024,3008,3003,3002,3000,2867,2868,3306,3311,2919,3044,3051,3063,3071,3057,3078,3083,3084,3056,3068,3011,3012,2786,3128,3123,2934,2939,2784,1344,1467,3111,2942,2811,2940,2930,3305,2759,2367,3152,3150,3155,3158,3207,3162,3167,3168,3221,3200,3194,3218, +3173,2338,3203,3240,3216,3177,3185,3180,3171,3209,3176,2670,3224,3230,3251,3273,3324,3327,3281,3258,3266,3290,3342,3284,3308,2972,2973,3314,3257,3317,3287,3294,3179,3174,3239,3234,3270,3337,3260,3285,3248,3249,3339,3344,3255,3333,3332,3278,2975,3376,3369,3389,3374,3398,3410,3393,3400,3330,3419,3413,3429,2823,2828,3416,3411,3219,2325,2321,3227,3402,3395,3396,3213,3474,2271,2979,3495,3312,3480,3488,3494,3492,3497,3504,3288,3296,2835,2843,3165,3164,3378,2597,3561,3528,3527,3513,2841,3522,3507,3512,3382,3506,3501,2775,2780,3516,2199,3588,3269,3531,3521,2981,15,4,7,10,13,19,22,31,34,18,24,40,43,49,52,41,67,70,39,82,84,94,96,106,112,118,124,130,136,145,146,12,157,160,166,172,3,181,182,186,190,199,208,214,220,226,229,235,240,244,253,242,262,216,271,277,286,291,295,304,310,316,322,328,334,340,346,352,276,361,367,373,374,379,385,391,397,378,407,412,415,418,423,424,1128,430,436,439,445,447,454,457,460,470,469,475,481,484,490,496,480,508,514,520,523,527,535,541,550,556,455,565,567,577,583,589,594,595,604,610,616,622,627,637,640,646,655,657,462,667,673,679,685,686,694,697,699,709,712,721,730,728,742,744,751,756,757,766,753,775,784,790,791,799,808,805,811,814,820,824,832,837,847,849,859,862,871,822,880,828,889,876,895,901,907,910,913,900,919,925,931,937,940,946,952,953,961,967,882,945,972,982,983,921,994,1000,1003,1006,1011,1015,1024,1030,283,1041,1045,1051,1038,1060,1066,1072,1079,444,1087,1093,1102,1108,1114,1100,1123,1125,1132,1138,387,1122,1147,1153,1156,1163,180,1170,1177,1179,1189,1161,1198,1176,1207,1213,1219,1222,1231,1237,1240,1243,1249,1242,795,1270,1202,1285,1291,1197,1300,1309,1311,1278,1324,1199,1326,1335,1338,1343,1351,1353,1357,1363,1369,1375,1384,1387,1393,1396,1402,747,1408,1414,1416,1341,1423,1389,1429,1438,1439,1446,1454,1380,1458,1465,1468,1474,1475,1489,1495,1284,1501,1507,1513,1519,1525,1526,1534,1506,1543,1549,1558,1347,1566,1567,1576,1585,1591,1597,1480,1603,1609,1615,135,1627,1628,1635,1642,1649,1651,1654,1663,1693,1669,1670,1672,1678,192,1683,54,1702,1705,1711,1717,1723,1719,1732,1738,1744,1750,1751,1759, +1698,1764,1765,1768,1771,1780,1786,1792,1801,1803,1804,1810,1811,1819,1825,1821,1837,1843,1852,1853,1860,1858,1867,1873,1879,1885,1893,1891,1900,1909,1915,1918,1924,1925,1933,1939,1940,1948,1951,1957,1960,1969,1975,1981,1984,1990,1881,1995,2005,1956,2014,1971,2023,2030,2032,2033,2041,2047,2053,2062,2068,2074,2080,2082,2092,2098,2100,2107,2116,2122,2128,2131,2137,2143,269,2149,2155,2161,1699,2170,2176,2182,2188,2124,2197,2203,2209,2215,2221,2226,2230,2239,1746,2248,2254,2256,2267,2269,2272,2281,2290,2296,2302,2308,2298,2319,2320,2329,2332,2345,2344,2353,2354,2362,2368,2377,2380,2389,2395,2401,2406,2407,2419,2425,2427,2440,2446,2452,2455,2460,2464,2473,2228,2479,2457,2485,2494,2495,2506,2509,2521,2522,2533,2539,2542,2551,2552,2560,2566,2575,2574,2584,2587,2585,2593,2595,2611,2612,2634,2632,1809,1815,2644,2645,449,2653,2656,2659,2668,2671,2643,2649,2678,2676,2689,2692,2698,2704,2688,2713,2716,2691,2706,2727,2157,2530,1236,2658,2740,2743,2620,2754,2758,2757,2764,2776,2781,2782,2788,2791,2797,2799,2800,2803,2809,2815,2818,2824,2827,2839,2840,2854,2857,2866,2872,2878,2887,2888,2896,2902,2908,2914,2920,2929,2936,2944,2946,2956,2928,2964,2965,2971,2980,2983,2991,2989,2998,3004,3010,3016,3019,3025,3030,3034,3043,3045,3055,3061,3064,3073,3079,3085,3088,3094,3100,2817,3109,2765,3124,3130,2783,3139,3145,3151,3157,3163,3169,3175,3181,3182,3190,3192,2340,3202,3205,3214,3220,3222,3232,3235,3241,3247,2547,3256,3262,3268,3274,3276,3286,3292,3298,3304,3307,3313,3316,3325,3331,3340,3343,3352,3358,3246,3364,3373,3379,3385,3394,3406,3407,3412,3415,3424,3430,3433,3442,3443,3451,3453,3463,3469,2113,456,3481,3490,3493,3502,3508,3514,3520,3526,3532,3538,3544,3550,3553,3562,3568,3571,3580,3586,3592,2198,55,73,85,97,142,163,187,241,292,337,382,400,463,499,526,544,568,628,658,700,715,727,772,817,838,850,883,892,934,1012,1042,1078,1096,1105,1186,1201,1261,1288,1348,1435,1450,1477,1522,1552,1579,1624,1645,1657,1774,1798,1849,1861,1903,1963,1996,2017,2026,2056,2083,2164,2194,2212,2227,2257,2275,2284,2293,2335,2341,2350,2371,2383,2422,2461,2491, +2512,2518,2548,2596,2608,2635,2662,2677,2719,2746,2770,2830,2836,2848,2860,2884,2923,2935,2947,2992,3031,3046,3067,3115,3133,3193,3223,3250,3277,3289,3319,3346,3403,3418,3439,3454,3484,3496,3556,3574 + } + GeometryVersion: 124 + LayerElementNormal: 0 { + Version: 102 + Name: "" + MappingInformationType: "ByVertice" + ReferenceInformationType: "Direct" + Normals: *1806 { + a: 0.13126078248024,-0.978258848190308,-0.160562083125114,0.104348793625832,-0.979893922805786,-0.170056253671646,0.170592337846756,-0.867111265659332,0.467991709709167,0.143158733844757,-0.982365131378174,0.120268017053604,0.158861771225929,-0.965548753738403,-0.206103056669235,0.0796326771378517,-0.988691210746765,-0.127076327800751,0.145148903131485,-0.142561718821526,0.979085206985474,0.182233065366745,-0.972685754299164,-0.143782630562782,0.259337872266769,0.552423119544983,0.792194783687592,0.0715723261237144,-0.986336290836334,-0.148385182023048,-0.25956267118454,0.960613906383514,0.0992377325892448,0.110877253115177,-0.9879110455513,-0.108341410756111,0.387167632579803,-0.556099832057953,-0.735427975654602,0.372526824474335,-0.388422816991806,-0.842823565006256,-0.125402122735977,0.423763036727905,0.897050321102142,0.100732281804085,0.0082493182271719,0.994879305362701,0.377672463655472,0.0365319512784481,-0.925218284130096,0.17456191778183,-0.614265501499176,-0.769549250602722,0.336979269981384,-0.560083329677582,-0.756803572177887,0.165482118725777,0.326734215021133,-0.930516242980957,0.0658378228545189,0.909421622753143,-0.410630911588669,-0.391101121902466,-0.900806367397308,0.188647255301476,-0.549664378166199,0.161241486668587,0.81967693567276,0.0680298507213593,-0.99359005689621,-0.0902814418077469,-0.423716723918915,0.021997107192874,0.905527651309967,-0.390118449926376,-0.879015982151031,0.274113893508911,-0.775991380214691,-0.299267113208771,0.555226624011993,-0.276697367429733,-0.923865437507629,0.264407187700272,-0.139220297336578,0.48363596200943,0.864126205444336,-0.763112246990204,0.0947711765766144,0.639279365539551,-0.593048810958862,-0.730084121227264,0.33951473236084,-0.856524407863617,-0.149932205677032,0.493848592042923,-0.45326566696167,-0.883742153644562,0.116404786705971,-0.269803553819656,0.946085453033447,-0.179243743419647,-0.227467089891434,-0.971459746360779,0.0672650635242462,-0.801985383033752,0.0263068471103907,0.596764266490936,0.154390528798103,-0.613109707832336,-0.774764478206635, +0.326365530490875,-0.443300932645798,-0.834847211837769,-0.0990301221609116,-0.995083093643188,-0.00162315159104764,-0.971991777420044,-0.185375347733498,0.144458279013634,-0.867343306541443,-0.00296890293247998,-0.497701525688171,-0.195486515760422,-0.955935418605804,0.219026282429695,-0.744505167007446,-0.580249488353729,-0.330185741186142,-0.857733964920044,0.0920353159308434,-0.505788326263428,-0.862705230712891,-0.146764293313026,-0.483942121267319,-0.960342168807983,0.21261639893055,-0.180380716919899,-0.733132541179657,-0.64311420917511,-0.221180394291878,-0.935101926326752,0.0677444562315941,-0.347843199968338,-0.15023747086525,-0.429079800844193,-0.89068466424942,-0.170863389968872,0.0371175073087215,-0.984595358371735,-0.132594600319862,-0.963430762290955,-0.23285137116909,-0.0835540145635605,-0.99553769826889,-0.0438558608293533,-0.939505875110626,0.1486447006464,-0.308599025011063,-0.753450393676758,0.291356295347214,-0.58942699432373,-0.360059767961502,0.555137634277344,0.749786019325256,0.227707877755165,0.1977199614048,-0.953444242477417,0.168157681822777,-0.611255645751953,-0.773362398147583,0.168379500508308,0.179055213928223,-0.96932327747345,-0.781665146350861,0.200078919529915,-0.590735137462616,-0.990019857883453,0.114134825766087,0.0826673656702042,-0.940240800380707,0.0516295805573463,0.336573332548141,-0.848155379295349,-0.0246693231165409,0.529172778129578,-0.902584910392761,0.0618399567902088,0.4260473549366,-0.677817821502686,0.226822644472122,-0.699367105960846,-0.627546787261963,0.29065802693367,-0.722290098667145,-0.436527580022812,0.33410769701004,-0.835353672504425,-0.171601891517639,0.424765706062317,-0.88889080286026,-0.798579692840576,0.061845425516367,-0.598703265190125,-0.740754842758179,0.178279638290405,-0.647687196731567,-0.0547890514135361,0.518289923667908,-0.853448152542114,-0.958614468574524,0.280514776706696,0.0486802123486996,0.0676454454660416,-0.9419766664505,0.328791856765747,0.0607781708240509,-0.991113662719727,0.118320740759373,0.0813266336917877,-0.990888833999634,-0.107354894280434, +0.0703182965517044,-0.992030680179596,0.104548841714859,-0.00471102027222514,-0.118661679327488,0.992923557758331,-0.579547166824341,0.146144434809685,0.801727473735809,-0.256742805242538,-0.152616366744041,0.954353928565979,-0.713064312934875,-0.103647194802761,0.693394839763641,-0.712738931179047,0.00983759015798569,0.70136034488678,-0.577322065830231,0.107210651040077,0.809447348117828,-0.501309871673584,0.195306569337845,0.842937529087067,-0.0282173193991184,-0.0567615106701851,0.997988939285278,-0.633672118186951,-0.057542011141777,0.771458685398102,-0.349674642086029,0.175882861018181,0.920213460922241,0.0207064989954233,0.44544517993927,-0.895069777965546,-0.0102690700441599,0.400625675916672,-0.916184306144714,0.0976622402667999,0.281029224395752,-0.954717040061951,0.249501883983612,0.127213925123215,-0.95998203754425,-0.558717906475067,0.330100208520889,0.76083379983902,-0.715460956096649,0.0125373480841517,0.698540151119232,-0.812543511390686,-0.0469543449580669,0.581006169319153,-0.744526326656342,0.195558696985245,0.63830828666687,-0.597402691841125,0.144452422857285,0.788824141025543,-0.647330820560455,0.6308274269104,-0.427807956933975,-0.333654791116714,0.776019811630249,-0.535226821899414,-0.712925791740417,0.510939180850983,-0.480289489030838,-0.743329286575317,0.635712802410126,-0.208160609006882,-0.125668957829475,0.633348107337952,-0.763595104217529,-0.833109736442566,0.279984444379807,0.47700834274292,-0.40343564748764,0.649001657962799,-0.645008862018585,-0.631263315677643,0.468405693769455,-0.618144750595093,-0.927922546863556,-0.0780107602477074,0.364519029855728,-0.842620253562927,-0.0691775605082512,0.534046351909637,-0.873690545558929,-0.117238022387028,0.472143977880478,-0.0033861065749079,0.726521492004395,0.687135457992554,-0.953806459903717,0.259631514549255,0.151144847273827,-0.911274790763855,0.170265838503838,0.374950498342514,-0.79116415977478,0.417142987251282,-0.447270542383194,-0.948998689651489,0.274393558502197,0.155273288488388,-0.923459053039551,-0.065256342291832,0.378107190132141, +-0.710774183273315,0.151725098490715,0.686862111091614,0.245416179299355,0.96876585483551,-0.0355466976761818,0.554849147796631,-0.530277907848358,-0.641052007675171,0.129139423370361,-0.986632227897644,-0.099396787583828,0.377477675676346,0.609585285186768,0.69707715511322,0.875710666179657,-0.0996224582195282,0.472446978092194,0.941127955913544,-0.325183123350143,-0.0923806354403496,0.192229554057121,0.131012603640556,0.972565412521362,0.969239175319672,0.00334974634461105,0.246097981929779,0.994579911231995,-0.103730417788029,0.00712572317570448,0.819381237030029,-0.377909630537033,0.431043893098831,0.844561755657196,-0.165046483278275,0.509386956691742,0.890902459621429,-0.349274903535843,0.290344655513763,0.739615678787231,-0.11092720925808,0.663825035095215,0.322319865226746,-0.125159904360771,0.938320219516754,0.748191952705383,0.0779954269528389,0.658882021903992,0.911526203155518,-0.0386877693235874,0.409418046474457,0.759276270866394,-0.0106936795637012,0.650680541992188,0.311448484659195,-0.893638014793396,0.323127061128616,0.865259289741516,-0.227511435747147,0.446726858615875,0.741592705249786,-0.109016694128513,0.661933183670044,0.866745710372925,0.00156028871424496,0.498747825622559,0.831481277942657,-0.361150681972504,0.422148317098618,0.930081427097321,-0.22470161318779,0.29061621427536,0.90875643491745,-0.278465926647186,0.310834884643555,0.531494617462158,-0.844776630401611,0.062176525592804,0.36546117067337,-0.923398315906525,-0.117360688745975,0.895247399806976,-0.173039883375168,0.410596489906311,0.161375403404236,-0.0644057169556618,0.984789252281189,0.77479749917984,-0.23028464615345,0.588776409626007,0.958294332027435,-0.275634974241257,0.0754798799753189,0.844079673290253,-0.0560619719326496,-0.533279001712799,0.238442242145538,0.10130400210619,-0.965858578681946,0.968709170818329,-0.216209664940834,0.121884517371655,0.8725665807724,-0.148342669010162,0.465426594018936,0.925767123699188,-0.0694593116641045,0.371659189462662,0.945611417293549,-0.305911839008331,0.110620386898518,0.689677238464355,-0.0782430171966553,-0.719877302646637, +0.966653347015381,-0.255330234766006,0.0196917057037354,0.885760962963104,-0.302721709012985,-0.351833671331406,0.930796504020691,0.27989387512207,0.235111385583878,0.182500287890434,-0.456285744905472,-0.870917201042175,0.50799423456192,0.219391748309135,-0.832952082157135,0.784270346164703,-0.13838429749012,0.604789197444916,0.990976095199585,-0.00496681965887547,0.133946537971497,0.903132855892181,0.0342876352369785,0.427989989519119,0.973272025585175,-0.176258519291878,0.1472227871418,0.675974786281586,-0.190745770931244,0.71181046962738,0.487976610660553,-0.0669041350483894,0.870288848876953,0.777544140815735,-0.121052764356136,0.61706668138504,0.770951747894287,-0.312676519155502,0.554857432842255,0.88238787651062,0.24127422273159,-0.403953284025192,0.962837994098663,-0.242357447743416,0.11918868124485,0.272594511508942,0.306216567754745,0.912098467350006,0.713085532188416,-0.142409950494766,0.686460852622986,0.93902325630188,0.188971549272537,-0.287271708250046,0.909909904003143,0.3015496134758,0.284836560487747,0.740740776062012,0.29535311460495,0.603381872177124,0.689246356487274,-0.117783576250076,0.714889109134674,0.518258512020111,0.287623345851898,-0.805407404899597,0.89385449886322,-0.01498868688941,-0.448106557130814,0.227081716060638,0.206307947635651,0.951772511005402,0.580671548843384,0.300313681364059,0.756724715232849,0.109160199761391,0.0876403301954269,0.990153074264526,0.103719621896744,0.0210100710391998,0.99438464641571,0.0770751908421516,0.175110012292862,0.981527388095856,-0.0356323197484016,0.502083659172058,-0.864084661006927,0.11158149689436,0.454467803239822,-0.883746922016144,0.193088248372078,0.172742500901222,-0.965855598449707,-0.240131735801697,0.445477843284607,0.862488389015198,-0.261744976043701,0.272393852472305,0.925900220870972,-0.133609548211098,0.18513622879982,0.973587810993195,0.000660367892123759,0.60921448469162,-0.793005228042603,-0.453992187976837,0.240876153111458,0.857828438282013,-0.520492970943451,0.274670511484146,0.808481991291046,-0.490132987499237,0.838444173336029,0.238287553191185, +-0.415117353200912,0.567419290542603,0.711134970188141,-0.152107402682304,0.696979105472565,-0.700773477554321,-0.502242803573608,0.786298215389252,0.359843373298645,-0.0349227488040924,0.224271029233933,0.973900854587555,-0.282082140445709,0.87698358297348,-0.389010697603226,-0.308981150388718,0.910728871822357,0.274050176143646,-0.167740046977997,0.83192241191864,-0.528931379318237,-0.104489229619503,0.626861691474915,0.772092342376709,-0.19193409383297,0.33540678024292,0.922314286231995,0.0513120479881763,0.305910289287567,0.950676620006561,0.0617284514009953,0.374216288328171,0.925284743309021,0.409419894218445,0.155551612377167,0.898987770080566,-0.0337535031139851,0.205073893070221,0.978164255619049,-0.0381722189486027,0.319055795669556,0.946966886520386,-0.102903835475445,0.772544384002686,-0.626566827297211,-0.283899486064911,0.443840712308884,0.849944889545441,0.0476062707602978,0.626413285732269,0.778035938739777,-0.408613383769989,0.902294933795929,0.137473210692406,0.330754607915878,0.722651183605194,-0.606940507888794,-0.177232638001442,0.869697451591492,-0.460667908191681,0.704597890377045,0.709269523620605,-0.0218743365257978,0.8059121966362,0.46135938167572,-0.371016263961792,0.714446783065796,0.0313472449779511,0.698987364768982,0.0899453014135361,0.422286450862885,0.901988923549652,0.551306307315826,0.318801701068878,0.77099084854126,0.493840157985687,0.702185034751892,0.512891888618469,0.0863630995154381,0.426511585712433,0.900349617004395,0.23830933868885,0.13436470925808,0.961849689483643,0.0576325245201588,0.126201987266541,0.990328967571259,0.908622443675995,0.193235769867897,0.370223224163055,0.85003936290741,0.355469584465027,0.388682991266251,0.511334121227264,0.60328334569931,0.612034797668457,0.508577227592468,-0.193556249141693,0.83897864818573,0.342067092657089,-0.0685558095574379,0.937171339988709,0.921536982059479,0.0937474891543388,0.376803636550903,0.000140926276799291,0.38304603099823,0.923729360103607,0.22162951529026,0.461562603712082,0.858976304531097,0.0619092807173729,0.271091610193253,0.960560619831085, +0.0313936658203602,0.549669563770294,-0.834792077541351,0.372777014970779,-0.0163369365036488,0.927777171134949,0.432099252939224,0.714398682117462,-0.550386071205139,0.965652942657471,0.0102960858494043,0.259631127119064,0.564100682735443,-0.147659495472908,0.812395870685577,0.685249328613281,0.0605390109121799,0.725788116455078,0.995732486248016,0.0642356798052788,0.0662604719400406,0.733417153358459,0.241199195384979,0.635548770427704,0.557974696159363,0.364023119211197,-0.745755553245544,0.909753143787384,0.304598301649094,0.282080054283142,0.242452248930931,0.144706815481186,-0.959310591220856,0.191643178462982,0.210085332393646,-0.958716332912445,0.679325640201569,0.64317774772644,-0.353325694799423,0.33231395483017,0.135722815990448,-0.933352470397949,0.417493283748627,0.212622940540314,-0.883453965187073,0.542369067668915,0.10151568800211,-0.833984613418579,0.946699321269989,-0.148439407348633,0.285877853631973,0.808486878871918,0.0075256354175508,0.588466048240662,0.0280024912208319,0.417224228382111,0.908372104167938,-0.0428109876811504,0.371823340654373,0.927315831184387,0.974652171134949,0.0357623696327209,0.220848947763443,0.744097173213959,-0.235539749264717,0.625172257423401,0.988453686237335,-0.141262605786324,0.0548096001148224,0.806065678596497,0.211551129817963,0.552724361419678,0.879173815250397,0.11126071959734,0.463329672813416,0.543161928653717,0.072866789996624,0.836460113525391,0.085310310125351,0.277939200401306,0.95680296421051,0.993156671524048,-0.0885029658675194,0.0762033686041832,0.924388110637665,-0.192951858043671,0.329053431749344,0.928446888923645,-0.0261540487408638,-0.370543390512466,0.996715486049652,0.0587885342538357,0.055697537958622,0.905328154563904,0.199962928891182,0.374694287776947,0.82571005821228,-0.259937673807144,0.500634908676147,0.725163102149963,-0.145487368106842,0.67303192615509,0.950705349445343,0.0750531256198883,-0.300875931978226,0.469931542873383,0.139212295413017,-0.871656000614166,0.910179913043976,0.392872542142868,-0.131238475441933,0.46460548043251,-0.279519885778427,0.840244293212891, +0.933674156665802,0.353259772062302,0.0588238947093487,0.721437036991119,-0.234707295894623,0.651491403579712,0.513286530971527,-0.292567372322083,0.806809425354004,0.614569127559662,0.240955695509911,-0.751162588596344,0.37858572602272,0.203838378190994,-0.902841448783875,0.0580140836536884,0.303230941295624,0.951149463653564,0.124155052006245,0.0231213420629501,0.991993427276611,-0.0791067853569984,0.193344816565514,0.977936565876007,0.663023710250854,0.133367493748665,0.736622512340546,0.50565493106842,0.383400946855545,0.772862672805786,0.0742743611335754,0.286161690950394,0.955298244953156,-0.0185306444764137,0.0757570341229439,0.996954083442688,0.0238113235682249,0.0899377390742302,0.995662748813629,0.0823726505041122,-0.01428974699229,0.996499180793762,0.0473724864423275,0.167886957526207,0.984667360782623,-0.0155292544513941,0.263328552246094,0.964581310749054,0.640987098217011,0.175978824496269,0.747105658054352,0.343688309192657,0.350446879863739,0.871243536472321,0.00929176993668079,0.608872711658478,-0.793213486671448,0.600036144256592,0.0671844780445099,0.797146618366241,0.201170980930328,0.185395136475563,-0.96185177564621,0.0487478896975517,0.49249467253685,-0.868949115276337,0.133130431175232,0.349606215953827,-0.927389800548553,0.599858999252319,-0.0874824896454811,0.795308709144592,-0.56682413816452,0.130048230290413,0.81350964307785,0.836949944496155,0.513853788375854,0.188332304358482,-0.0413766093552113,0.623174428939819,-0.780987560749054,-0.344371944665909,0.407376676797867,0.845844030380249,0.0584624409675598,0.288278132677078,0.955760419368744,0.573216438293457,-0.311054050922394,0.758068740367889,-0.496144711971283,0.316024422645569,0.808683454990387,-0.192473828792572,0.976533830165863,0.0966209173202515,-0.541940033435822,0.695209205150604,0.472212970256805,-0.422421485185623,0.861963510513306,0.280319690704346,-0.217896610498428,0.778238356113434,-0.588953495025635,-0.265353679656982,0.582779049873352,-0.768085896968842,-0.0400108508765697,0.623447597026825,-0.780840694904327,-0.2999107837677,0.902262985706329,0.309798270463943, +-0.141501277685165,0.65063887834549,-0.746087491512299,-0.0174709241837263,0.345803737640381,0.938144266605377,0.100605964660645,0.249152392148972,0.963224530220032,-0.228228166699409,0.548778474330902,0.804210245609283,-0.000293667981168255,0.630813479423523,0.775934517383575,-0.0062631475739181,0.586051344871521,-0.810249745845795,0.0933162793517113,0.374797344207764,0.922398447990417,-0.0385485738515854,0.599248588085175,-0.799634337425232,-0.0887882113456726,0.985446631908417,0.144953593611717,-0.163711339235306,0.551261425018311,0.818113386631012,-0.311542510986328,0.371469855308533,0.874615013599396,-0.348191618919373,0.415936201810837,0.840095043182373,-0.240126833319664,0.965087294578552,0.104621224105358,-0.0672804042696953,0.596166253089905,0.80003696680069,-0.152468949556351,0.837140262126923,-0.525308728218079,-0.211709827184677,0.78679370880127,-0.579771101474762,-0.0520517341792583,0.254710257053375,0.965615510940552,-0.0244614984840155,0.571462094783783,0.820263862609863,-0.366571515798569,0.377317637205124,0.850445032119751,-0.0606296211481094,0.315579801797867,0.946960091590881,0.96294093132019,-0.177158817648888,0.2033701390028,0.293975204229355,0.0734497159719467,0.952986776828766,0.782788634300232,0.292411863803864,0.549306273460388,0.138876035809517,0.360879868268967,0.922214269638062,0.802307784557343,0.506265640258789,0.316223293542862,0.924959540367126,-0.321673572063446,-0.202425241470337,0.936208069324493,-0.322668761014938,-0.139280751347542,-0.145678848028183,0.10063998401165,0.984199821949005,-0.172166228294373,0.106660015881062,0.979276478290558,0.529951691627502,0.58901846408844,0.61008894443512,0.928938150405884,-0.290712982416153,0.229259639978409,0.469478636980057,-0.15119332075119,0.869902551174164,0.771773815155029,0.565189301967621,0.291420876979828,0.722335040569305,0.420155137777328,0.549273908138275,0.942291915416718,0.238273277878761,0.235184192657471,0.966009318828583,0.189671993255615,0.175643295049667,0.830910682678223,-0.0653366148471832,0.552556395530701,0.877532660961151,0.455661505460739,0.149362489581108, +0.405668169260025,0.255161613225937,-0.877682089805603,0.707283139228821,0.0832628533244133,0.702009916305542,0.210052937269211,0.342065721750259,-0.915897846221924,0.862781226634979,0.442439019680023,-0.244655400514603,0.0584564730525017,0.328537136316299,0.942680299282074,-0.011553218588233,0.354332625865936,0.935048043727875,0.21260766685009,0.61828601360321,0.756650805473328,-0.0378610230982304,0.208406433463097,0.977309167385101,0.247045144438744,0.492325067520142,0.834616422653198,0.275276750326157,0.248868733644485,0.928594172000885,0.0720028057694435,0.614896655082703,-0.785313785076141,0.37214583158493,-0.126015648245811,0.919580101966858,0.288645297288895,0.039741788059473,0.956610977649689,0.827412128448486,0.237292036414146,0.509000658988953,0.78068345785141,0.196472331881523,0.593238711357117,0.520514726638794,-0.0398868136107922,0.852920472621918,0.289839923381805,-0.171250209212303,0.941629588603973,0.911305725574493,0.383758664131165,-0.149168729782104,0.388741493225098,0.177581071853638,0.90407133102417,0.170513540506363,0.659988880157471,-0.731669306755066,0.0572531558573246,-0.994863629341125,-0.0834776312112808,0.162316381931305,-0.953750133514404,-0.253009885549545,0.076364241540432,-0.990514397621155,-0.114235930144787,-0.1036007553339,-0.9946129322052,-0.00347322504967451,0.0974381789565086,-0.977828681468964,-0.185355991125107,0.0653559118509293,-0.788687467575073,0.611310601234436,0.109087750315666,-0.0230604894459248,0.993764519691467,0.0854618549346924,-0.991428911685944,-0.0988179817795753,-0.423815906047821,0.75169426202774,0.505307674407959,0.135386094450951,-0.981110095977783,-0.138179078698158,0.148852646350861,-0.902625203132629,-0.40386950969696,0.167793124914169,-0.97712779045105,-0.130639791488647,0.124957762658596,-0.341321051120758,-0.931603729724884,0.172767639160156,-0.0600588880479336,-0.983129799365997,0.334971308708191,-0.453522980213165,-0.825900197029114,0.300591081380844,-0.804167628288269,-0.512795627117157,0.385797590017319,8.4396624515648e-006,-0.922583401203156,0.106414921581745,-0.53354948759079,0.839047610759735, +0.0559743866324425,0.909681141376495,0.411517947912216,0.139808252453804,-0.810364842414856,0.569001257419586,0.0498829148709774,0.0316225104033947,0.998254299163818,0.256383508443832,0.184715703129768,-0.94876104593277,0.314495414495468,0.0520402081310749,-0.947831511497498,0.432818651199341,-0.382061213254929,-0.816515207290649,0.241294100880623,0.187983334064484,-0.952071130275726,0.245074689388275,0.145690008997917,-0.958495140075684,0.339749038219452,0.119334526360035,-0.932914674282074,0.219183638691902,-0.00742191402241588,-0.975655317306519,0.0712225362658501,-0.989412784576416,-0.126450806856155,-0.387013018131256,-0.882849335670471,0.26607882976532,0.0374120883643627,-0.99836528301239,-0.0432094521820545,-0.467055588960648,-0.283676564693451,0.837488293647766,-0.14911712706089,-0.16116800904274,0.975596785545349,-0.800632357597351,0.0546110346913338,0.596661806106567,0.00556312827393413,-0.999072968959808,-0.0426885336637497,0.077520415186882,-0.991218209266663,-0.107130691409111,-0.530113935470581,-0.782496094703674,0.326617479324341,-0.529343128204346,-0.0355786569416523,0.847661554813385,-0.381359040737152,-0.921080529689789,0.0785879567265511,-0.572804629802704,-0.743591785430908,0.344914466142654,-0.772151470184326,0.0303525365889072,0.634713292121887,-0.827838361263275,-0.167428240180016,0.535398304462433,-0.678136467933655,0.165076971054077,0.716156840324402,-0.375084280967712,-0.899389624595642,0.224521860480309,-0.813278436660767,-0.0223162863403559,0.581446707248688,-0.827355921268463,0.0264940559864044,0.561052739620209,0.122186116874218,0.424989432096481,0.896913945674896,-0.790727615356445,-0.061796884983778,0.609040975570679,0.0898096859455109,0.464522063732147,0.880995750427246,0.0738354474306107,-0.992989897727966,-0.0923005044460297,-0.0271902289241552,0.587592542171478,-0.808700084686279,-0.00918819755315781,0.922403931617737,0.386117339134216,0.0641359388828278,-0.992222726345062,-0.106679938733578,0.135227382183075,0.0576784163713455,-0.98913437128067,0.179791778326035,-0.511936008930206,-0.839997887611389, +0.119247741997242,-0.992671728134155,-0.0195642113685608,-0.0887716859579086,-0.984106957912445,-0.153795316815376,0.0963864699006081,-0.995105147361755,-0.0218063946813345,-0.910418033599854,-0.279013484716415,0.30543515086174,-0.91351306438446,-0.406529277563095,0.0150907095521688,-0.474733978509903,-0.877107858657837,0.0728647857904434,-0.955532014369965,-0.240925878286362,-0.170039236545563,-0.970571339130402,-0.0758681893348694,0.228550374507904,-0.218589559197426,0.847627460956573,0.483473271131516,-0.0977455005049706,-0.9708012342453,-0.219067826867104,-0.392914086580276,-0.821859300136566,-0.412511706352234,-0.444777548313141,-0.643535077571869,-0.622925043106079,-0.155442342162132,-0.984306275844574,-0.0835396870970726,-0.573531806468964,-0.385858058929443,-0.722616612911224,-0.318048775196075,-0.0285716447979212,-0.94764369726181,-0.842707514762878,-0.251679390668869,-0.475921779870987,-0.900276184082031,0.176580935716629,-0.39789679646492,-0.886812269687653,0.229096323251724,-0.401346296072006,-0.965075433254242,-0.209149241447449,-0.157752841711044,-0.460601836442947,0.420852988958359,-0.78149139881134,0.111091241240501,0.191432446241379,-0.975198686122894,-0.452399283647537,0.145002484321594,-0.879948437213898,-0.270302027463913,0.96275520324707,0.0062721692956984,-0.760369420051575,0.0786140188574791,-0.644715487957001,-0.567330241203308,-0.796682775020599,-0.208405658602715,0.228903263807297,0.182993918657303,-0.956094443798065,0.0242401361465454,0.287787020206451,0.957387626171112,0.215971767902374,-0.116979129612446,-0.96936696767807,0.155349358916283,0.249479040503502,-0.955838263034821,-0.232125535607338,0.930685460567474,0.28274068236351,-0.208688035607338,0.453444957733154,0.866508424282074,-0.899128198623657,-0.00272988341748714,0.437676697969437,-0.845275342464447,0.207232013344765,-0.492508500814438,-0.655907511711121,0.0781977847218513,-0.750779926776886,-0.898151755332947,0.195081382989883,-0.394038885831833,-0.912011921405792,0.159804239869118,-0.377752184867859,-0.822825610637665,-0.0531161986291409,0.565806090831757, +-0.907613515853882,-0.0744806379079819,0.41314685344696,-0.0732832178473473,0.498784810304642,-0.86362224817276,-0.987051725387573,0.0766908973455429,-0.14088062942028,-0.409137010574341,0.656076729297638,-0.634169042110443,-0.851144790649414,0.136989012360573,-0.506741046905518,-0.813782215118408,0.158725708723068,-0.559074819087982,-0.194549456238747,0.422530502080917,-0.885222256183624,-0.371827006340027,0.530658781528473,-0.761673152446747,-0.822677195072174,-0.00110851984936744,-0.568507552146912,-0.998802900314331,0.0317390188574791,-0.0372224003076553,-0.991843581199646,0.107394531369209,-0.0686496570706367,-0.38438555598259,0.595082819461823,-0.705779016017914,-0.00826657563447952,-0.999873816967011,0.0135728940367699,-0.00155747414100915,-0.980639040470123,0.195817828178406,-0.137964859604836,-0.298289865255356,0.944451689720154,0.0323252305388451,-0.909429132938385,0.414600521326065,-0.502297580242157,0.100408613681793,0.858845412731171,-0.523646712303162,-0.0853796079754829,0.847646415233612,-0.207622870802879,-0.102644957602024,0.972808718681335,-0.709531903266907,-0.067267432808876,0.701455354690552,-0.11442182213068,-0.166594371199608,0.979363977909088,-0.67958664894104,0.00309430854395032,0.733588755130768,0.138748958706856,0.044805284589529,0.98931348323822,0.101004622876644,-0.0577883906662464,0.993206262588501,0.235648721456528,0.155558809638023,0.959307610988617,-0.145656451582909,0.145814672112465,0.978530645370483,0.0896133482456207,0.20486344397068,0.97467964887619,-0.722983717918396,-0.00449567567557096,0.690850436687469,-0.153707891702652,0.227743372321129,0.961512684822083,-0.32987117767334,0.265857338905334,0.905817210674286,-0.0548391304910183,0.483414143323898,-0.873672425746918,0.122658632695675,0.320563137531281,-0.939251899719238,0.240104347467422,0.206369519233704,-0.948557555675507,-0.612163424491882,0.267068266868591,0.744265079498291,-0.692311644554138,0.00716367503628135,0.721563220024109,-0.679752886295319,0.192872539162636,0.707627058029175,-0.581222593784332,0.184724614024162,0.792500555515289, +0.00595074892044067,0.276353895664215,0.961037516593933,-0.690384685993195,0.0983502119779587,0.716726124286652,-0.820626080036163,0.401663571596146,-0.4064961373806,-0.812925040721893,0.543769001960754,-0.208489984273911,-0.567791700363159,0.464022576808929,-0.679923295974731,-0.795375347137451,0.451701074838638,-0.404158502817154,-0.0866659805178642,0.612960577011108,-0.78534597158432,-0.0806937590241432,0.54118949174881,-0.837019979953766,-0.190105140209198,0.666731059551239,-0.720645308494568,-0.542686522006989,0.499426901340485,0.675325274467468,-0.604092299938202,0.717072188854218,0.347677916288376,-0.461111754179001,0.619428813457489,-0.63536125421524,-0.35839381814003,0.692234933376312,-0.626390218734741,-0.913887560367584,-0.181121021509171,0.36332443356514,-0.657004594802856,0.0526444837450981,0.752046167850494,-0.890333950519562,-0.163020446896553,0.425123274326324,-0.647413015365601,0.0847409144043922,0.757413506507874,-0.927680730819702,-0.0884763300418854,0.362740218639374,-0.80524355173111,0.0533699505031109,0.590537428855896,-0.953910171985626,0.282001584768295,0.102618269622326,-0.917429208755493,0.293375968933105,-0.268801480531693,-0.966053903102875,0.19300240278244,0.171726256608963,-0.598766803741455,0.172758921980858,0.782069504261017,-0.907379865646362,-0.000326214038068429,0.42031142115593,-0.895191609859467,0.299306750297546,0.330223321914673,0.866932392120361,-0.48407980799675,0.118722073733807,0.93600207567215,-0.349290698766708,-0.0435461103916168,0.974595427513123,-0.194491595029831,0.111070819199085,0.904364764690399,-0.155268132686615,0.397512584924698,0.912019789218903,-0.0570802129805088,0.406154870986938,0.953914642333984,0.014131298288703,0.299744993448257,0.830501616001129,-0.532967984676361,-0.161902114748955,0.278590679168701,-0.946800529956818,-0.16110847890377,0.176794677972794,0.224378183484077,0.958330929279327,0.236558392643929,0.915278136730194,0.326046109199524,0.226917237043381,0.244785994291306,0.942649602890015,0.300927460193634,0.0850867033004761,0.94984358549118,0.943135976791382,-0.193805068731308,0.270063072443008, +0.880292415618896,-0.344658136367798,0.326030701398849,0.913006961345673,-0.334065973758698,0.23413310945034,0.989278852939606,-0.127927109599113,0.0704418867826462,0.76587986946106,-0.0283564776182175,0.642358124256134,0.873846411705017,-0.413613617420197,0.255570381879807,0.463113993406296,0.860114395618439,0.213842824101448,0.663992643356323,0.524657905101776,0.532773673534393,0.956519842147827,-0.160631895065308,0.243448629975319,0.704082548618317,0.116816163063049,0.700443863868713,0.815175294876099,0.157915100455284,0.557272136211395,0.51527202129364,0.00527072791010141,0.85701048374176,0.391589969396591,-0.00271764677017927,0.920135796070099,0.712486088275909,-0.181449562311172,0.677819788455963,0.826439678668976,-0.336610019207001,0.451321721076965,0.713142037391663,-0.0840686857700348,0.695960521697998,0.881849944591522,-0.186204984784126,0.43320694565773,0.825191795825958,-0.11073150485754,0.553892731666565,0.496988832950592,0.017134802415967,0.867587745189667,0.871116042137146,-0.412992298603058,0.265695840120316,0.835416615009308,-0.257647216320038,0.485486268997192,0.209183678030968,-0.973482728004456,-0.0925934985280037,0.9457106590271,-0.115550734102726,0.303775072097778,0.898255169391632,-0.339093923568726,0.279558420181274,0.399151802062988,-0.166645511984825,0.901613652706146,0.822767794132233,-0.121903710067272,0.555151045322418,0.171931743621826,-0.954947113990784,0.241900101304054,0.846675992012024,0.0356447100639343,0.530913472175598,0.855033457279205,-0.147110491991043,0.497268795967102,0.48508957028389,-0.867603302001953,-0.109328165650368,0.238912686705589,-0.935539066791534,-0.260167926549912,0.906764805316925,-0.0335461720824242,0.420300096273422,0.35051155090332,-0.926379859447479,0.137702435255051,0.509655952453613,-0.00855066161602736,0.860335826873779,0.900407493114471,-0.281083256006241,0.332052141427994,0.113272540271282,0.611282646656036,-0.783264219760895,0.669759154319763,-0.138298109173775,0.72958642244339,0.164098352193832,0.135084554553032,0.977150917053223,0.330300241708755,-0.0534886457026005,-0.942359030246735, +0.642789959907532,-0.765635013580322,-0.0249842833727598,0.260108470916748,0.636115252971649,-0.726430356502533,0.779949426651001,-0.0221296939998865,-0.62545108795166,0.241404071450233,0.0720724835991859,-0.967744648456573,0.971362113952637,-0.236953631043434,0.017563670873642,0.959555983543396,-0.281319350004196,0.0105744218453765,0.944384038448334,-0.160263553261757,0.287148773670197,0.1191146671772,0.547532558441162,-0.828263103961945,0.972467601299286,-0.211659833788872,0.0975031778216362,0.871371984481812,-0.264619588851929,-0.413143187761307,0.959032416343689,-0.254189074039459,0.125078409910202,0.735893428325653,0.0660672560334206,-0.673866450786591,0.184330224990845,-0.779304683208466,-0.598921239376068,-0.304796606302261,0.873868465423584,0.378752052783966,-0.577820837497711,-0.67799311876297,0.454365849494934,0.105377964675426,0.00577162578701973,-0.994415462017059,-0.974429428577423,0.065111443400383,-0.215053081512451,-0.466581851243973,-0.875862002372742,-0.123154304921627,-0.0794267877936363,0.955238401889801,-0.28497526049614,-0.688103437423706,0.248656839132309,0.681676983833313,0.116085432469845,0.19290766119957,0.974325835704803,-0.603261172771454,0.0833829045295715,0.793172895908356,-0.631404578685761,0.43253755569458,0.643614411354065,0.861873328685761,0.00200156075879931,0.507119834423065,0.947683036327362,-0.304919183254242,-0.0944524928927422,0.291126370429993,-0.0993412435054779,-0.95151287317276,0.984142780303955,-0.130640625953674,-0.119983658194542,0.902073204517365,0.00552932498976588,0.431547671556473,0.957519710063934,0.214556038379669,0.19266976416111,-0.108733013272285,0.586227774620056,-0.802816271781921,-0.372372418642044,0.426632672548294,0.8242107629776,-0.360268354415894,0.591849446296692,0.721055507659912,-0.491768777370453,0.86693000793457,0.0812135189771652,0.612334072589874,0.152510941028595,0.775749564170837,0.0879126787185669,0.290365278720856,0.952869057655334,0.663061559200287,0.132241487503052,0.73679131269455,0.53589403629303,0.612956166267395,0.580605149269104,0.0182722806930542,0.379009664058685,0.925212383270264 + } + NormalsW: *602 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementBinormal: 0 { + Version: 102 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "Direct" + Binormals: *10800 { + a: -0.917758941650391,-0.115788005292416,-0.379883795976639,-0.927321434020996,-0.0638995692133904,-0.368770867586136,-0.929613888263702,-0.0618298128247261,-0.363311350345612,-0.928338885307312,-0.0222890861332417,-0.371066272258759,-0.934393286705017,-0.0142525471746922,-0.355958044528961,-0.927479326725006,-0.0743876621127129,-0.366399645805359,-0.927479326725006,-0.0743876621127129,-0.366399645805359,-0.934393286705017,-0.0142525471746922,-0.355958044528961,-0.929613888263702,-0.0618298128247261,-0.363311350345612,-0.934393286705017,-0.0142525471746922,-0.355958044528961,-0.931508004665375,-0.0284208804368973,-0.362608879804611,-0.917758941650391,-0.115788005292416,-0.379883795976639,-0.900872468948364,-0.0628521293401718,-0.429509460926056,-0.910165190696716,-0.102637484669685,-0.401328951120377,-0.922607839107513,-0.0315290056169033,-0.384448856115341,-0.931508004665375,-0.0284208804368973,-0.362608879804611,-0.922607839107513,-0.0315290056169033,-0.384448856115341,-0.910165190696716,-0.102637484669685,-0.401328951120377,-0.934231519699097,-0.0310468338429928,-0.355313271284103,-0.931508004665375,-0.0284208804368973,-0.362608879804611,-0.933401703834534,-0.0379497185349464,-0.356820821762085,-0.934393286705017,-0.0142525471746922,-0.355958044528961,-0.902789115905762,-0.204561963677406,-0.378320187330246,-0.931508004665375,-0.0284208804368973,-0.362608879804611,-0.902789115905762,-0.204561963677406,-0.378320187330246,-0.933401703834534,-0.0379497185349464,-0.356820821762085,-0.931508004665375,-0.0284208804368973,-0.362608879804611,-0.922607839107513,-0.0315290056169033,-0.384448856115341,-0.931508004665375,-0.0284208804368973,-0.362608879804611,-0.934231519699097,-0.0310468338429928,-0.355313271284103,-0.934393286705017,-0.0142525471746922,-0.355958044528961,-0.866861462593079,-0.377890586853027,-0.325192332267761,-0.902789115905762,-0.204561963677406,-0.378320187330246,-0.910433232784271,-0.178368866443634,-0.373223841190338,-0.893741607666016,0.0946250259876251,-0.438488572835922,-0.928338885307312,-0.0222890861332417,-0.371066272258759, +-0.877047300338745,-0.350096225738525,-0.328969150781631,-0.928338885307312,-0.0222890861332417,-0.371066272258759,-0.893741607666016,0.0946250259876251,-0.438488572835922,-0.910165190696716,-0.102637484669685,-0.401328951120377,-0.932843923568726,0.00733429286628962,-0.360206425189972,-0.917758941650391,-0.115788005292416,-0.379883795976639,-0.965194702148438,0.0856279581785202,-0.247117787599564,-0.936374723911285,-0.0269685611128807,-0.349964499473572,-0.932843923568726,0.00733429286628962,-0.360206425189972,-0.917758941650391,-0.115788005292416,-0.379883795976639,-0.932843923568726,0.00733429286628962,-0.360206425189972,-0.936374723911285,-0.0269685611128807,-0.349964499473572,-0.860980868339539,-0.500371932983398,0.0913239270448685,-0.877490282058716,-0.337116777896881,-0.341120511293411,-0.773159086704254,-0.630310118198395,0.0702449381351471,-0.910433232784271,-0.178368866443634,-0.373223841190338,-0.865091323852539,-0.263824671506882,-0.426630407571793,-0.877490282058716,-0.337116777896881,-0.341120511293411,-0.721951425075531,-0.691915273666382,0.00628120545297861,-0.773159086704254,-0.630310118198395,0.0702449381351471,-0.865091323852539,-0.263824671506882,-0.426630407571793,-0.865091323852539,-0.263824671506882,-0.426630407571793,-0.773159086704254,-0.630310118198395,0.0702449381351471,-0.877490282058716,-0.337116777896881,-0.341120511293411,-0.931508004665375,-0.0284208804368973,-0.362608879804611,-0.910165190696716,-0.102637484669685,-0.401328951120377,-0.917758941650391,-0.115788005292416,-0.379883795976639,-0.934393286705017,-0.0142525471746922,-0.355958044528961,-0.917758941650391,-0.115788005292416,-0.379883795976639,-0.929613888263702,-0.0618298128247261,-0.363311350345612,-0.385978013277054,0.0642792209982872,0.920265793800354,-0.357453972101212,-0.106403134763241,0.927849769592285,-0.189037084579468,-0.445269584655762,0.875214219093323,-0.304873168468475,-0.179013088345528,0.935418009757996,-0.151773437857628,-0.608940005302429,0.778560817241669,-0.357453972101212,-0.106403134763241,0.927849769592285, +-0.0117101175710559,-0.873367309570313,0.486921370029449,-0.189037084579468,-0.445269584655762,0.875214219093323,-0.151773437857628,-0.608940005302429,0.778560817241669,-0.151773437857628,-0.608940005302429,0.778560817241669,-0.189037084579468,-0.445269584655762,0.875214219093323,-0.357453972101212,-0.106403134763241,0.927849769592285,-0.90270471572876,-0.0662593841552734,-0.425128251314163,-0.932843923568726,0.00733429286628962,-0.360206425189972,-0.910165190696716,-0.102637484669685,-0.401328951120377,-0.932454764842987,-0.0656923279166222,-0.355264395475388,-0.939139723777771,-0.047035988420248,-0.340300261974335,-0.948334455490112,0.0190818011760712,-0.316698133945465,-0.97040867805481,0.0374653115868568,-0.238544195890427,-0.948334455490112,0.0190818011760712,-0.316698133945465,-0.963351011276245,0.0551190301775932,-0.26252007484436,-0.963351011276245,0.0551190301775932,-0.26252007484436,-0.948334455490112,0.0190818011760712,-0.316698133945465,-0.939139723777771,-0.047035988420248,-0.340300261974335,-0.985909938812256,0.031425166875124,-0.164298892021179,-0.948334455490112,0.0190818011760712,-0.316698133945465,-0.97040867805481,0.0374653115868568,-0.238544195890427,-0.932454764842987,-0.0656923279166222,-0.355264395475388,-0.948334455490112,0.0190818011760712,-0.316698133945465,-0.916706264019012,-0.0711234211921692,-0.393180876970291,-0.987218379974365,0.0508443117141724,-0.151045799255371,-0.916706264019012,-0.0711234211921692,-0.393180876970291,-0.985909938812256,0.031425166875124,-0.164298892021179,-0.985909938812256,0.031425166875124,-0.164298892021179,-0.916706264019012,-0.0711234211921692,-0.393180876970291,-0.948334455490112,0.0190818011760712,-0.316698133945465,-0.923536777496338,-0.0403138250112534,-0.381385147571564,-0.916706264019012,-0.0711234211921692,-0.393180876970291,-0.987218379974365,0.0508443117141724,-0.151045799255371,-0.963172078132629,0.0651024878025055,-0.260885536670685,-0.980403959751129,0.0854352563619614,-0.177507817745209,-0.939139723777771,-0.047035988420248,-0.340300261974335,-0.963351011276245,0.0551190301775932,-0.26252007484436, +-0.939139723777771,-0.047035988420248,-0.340300261974335,-0.980403959751129,0.0854352563619614,-0.177507817745209,-0.912152886390686,0.0139770209789276,-0.409611701965332,-0.887713670730591,-0.0229436755180359,-0.459823846817017,-0.900872468948364,-0.0628521293401718,-0.429509460926056,-0.90270471572876,-0.0662593841552734,-0.425128251314163,-0.900872468948364,-0.0628521293401718,-0.429509460926056,-0.887713670730591,-0.0229436755180359,-0.459823846817017,-0.923536777496338,-0.0403138250112534,-0.381385147571564,-0.932035505771637,-0.0309059396386147,-0.36104679107666,-0.916706264019012,-0.0711234211921692,-0.393180876970291,-0.922607839107513,-0.0315290056169033,-0.384448856115341,-0.916706264019012,-0.0711234211921692,-0.393180876970291,-0.932035505771637,-0.0309059396386147,-0.36104679107666,-0.922607839107513,-0.0315290056169033,-0.384448856115341,-0.922561049461365,0.00698811048641801,-0.385788172483444,-0.900872468948364,-0.0628521293401718,-0.429509460926056,-0.912152886390686,0.0139770209789276,-0.409611701965332,-0.900872468948364,-0.0628521293401718,-0.429509460926056,-0.922561049461365,0.00698811048641801,-0.385788172483444,-0.922607839107513,-0.0315290056169033,-0.384448856115341,-0.934231519699097,-0.0310468338429928,-0.355313271284103,-0.916706264019012,-0.0711234211921692,-0.393180876970291,-0.932454764842987,-0.0656923279166222,-0.355264395475388,-0.916706264019012,-0.0711234211921692,-0.393180876970291,-0.934231519699097,-0.0310468338429928,-0.355313271284103,-0.696262896060944,-0.570326566696167,-0.435827612876892,-0.919710218906403,-0.081694133579731,-0.384004235267639,-0.936374723911285,-0.0269685611128807,-0.349964499473572,-0.917758941650391,-0.115788005292416,-0.379883795976639,-0.936374723911285,-0.0269685611128807,-0.349964499473572,-0.919710218906403,-0.081694133579731,-0.384004235267639,-0.910433232784271,-0.178368866443634,-0.373223841190338,-0.877490282058716,-0.337116777896881,-0.341120511293411,-0.893741607666016,0.0946250259876251,-0.438488572835922,-0.893741607666016,0.0946250259876251,-0.438488572835922, +-0.877490282058716,-0.337116777896881,-0.341120511293411,-0.878845810890198,-0.445169985294342,-0.171620652079582,-0.860980868339539,-0.500371932983398,0.0913239270448685,-0.878845810890198,-0.445169985294342,-0.171620652079582,-0.877490282058716,-0.337116777896881,-0.341120511293411,-0.877047300338745,-0.350096225738525,-0.328969150781631,-0.893741607666016,0.0946250259876251,-0.438488572835922,-0.878845810890198,-0.445169985294342,-0.171620652079582,-0.90270471572876,-0.0662593841552734,-0.425128251314163,-0.910165190696716,-0.102637484669685,-0.401328951120377,-0.900872468948364,-0.0628521293401718,-0.429509460926056,-0.932454764842987,-0.0656923279166222,-0.355264395475388,-0.934231519699097,-0.0310468338429928,-0.355313271284103,-0.939139723777771,-0.047035988420248,-0.340300261974335,-0.0117101175710559,-0.873367309570313,0.486921370029449,-0.00663282629102468,-0.411816269159317,0.911242783069611,-0.189037084579468,-0.445269584655762,0.875214219093323,0.193604201078415,0.392061054706573,0.899336278438568,-0.203675776720047,0.264296263456345,0.942689657211304,-0.00663282629102468,-0.411816269159317,0.911242783069611,-0.00663282629102468,-0.411816269159317,0.911242783069611,-0.203675776720047,0.264296263456345,0.942689657211304,-0.189037084579468,-0.445269584655762,0.875214219093323,-0.385978013277054,0.0642792209982872,0.920265793800354,-0.189037084579468,-0.445269584655762,0.875214219093323,-0.203675776720047,0.264296263456345,0.942689657211304,-0.877047300338745,-0.350096225738525,-0.328969150781631,-0.866861462593079,-0.377890586853027,-0.325192332267761,-0.928338885307312,-0.0222890861332417,-0.371066272258759,-0.934393286705017,-0.0142525471746922,-0.355958044528961,-0.928338885307312,-0.0222890861332417,-0.371066272258759,-0.866861462593079,-0.377890586853027,-0.325192332267761,-0.828060984611511,-0.556200683116913,-0.0703988894820213,-0.902789115905762,-0.204561963677406,-0.378320187330246,-0.866861462593079,-0.377890586853027,-0.325192332267761,-0.0175001826137304,-0.998709142208099,0.0476851649582386, +-0.105193361639977,-0.583548665046692,-0.805236220359802,-0.0248512383550406,-0.999149918556213,0.0328927002847195,-0.0992088094353676,-0.487655341625214,-0.86738109588623,-0.0248512383550406,-0.999149918556213,0.0328927002847195,-0.105193361639977,-0.583548665046692,-0.805236220359802,-0.0564950406551361,-0.998258769512177,-0.016963193193078,-0.00958019495010376,-0.973230004310608,0.229633927345276,-0.0403687655925751,-0.999108254909515,0.0123717524111271,-0.0403687655925751,-0.999108254909515,0.0123717524111271,-0.00958019495010376,-0.973230004310608,0.229633927345276,-0.0248512383550406,-0.999149918556213,0.0328927002847195,-0.0583012513816357,-0.987773478031158,0.144584611058235,-0.00958019495010376,-0.973230004310608,0.229633927345276,-0.0564950406551361,-0.998258769512177,-0.016963193193078,-0.0175001826137304,-0.998709142208099,0.0476851649582386,-0.0248512383550406,-0.999149918556213,0.0328927002847195,-0.00958019495010376,-0.973230004310608,0.229633927345276,-0.0992088094353676,-0.487655341625214,-0.86738109588623,-0.0494678169488907,-0.845635056495667,-0.531464457511902,-0.0248512383550406,-0.999149918556213,0.0328927002847195,-0.0403687655925751,-0.999108254909515,0.0123717524111271,-0.0248512383550406,-0.999149918556213,0.0328927002847195,-0.0494678169488907,-0.845635056495667,-0.531464457511902,-0.985909938812256,0.031425166875124,-0.164298892021179,-0.965737104415894,0.00808645877987146,-0.259396582841873,-0.939472615718842,-0.00365390302613378,-0.342604726552963,-0.90270471572876,-0.0662593841552734,-0.425128251314163,-0.971127450466156,0.0325859896838665,-0.236325174570084,-0.932843923568726,0.00733429286628962,-0.360206425189972,-0.965194702148438,0.0856279581785202,-0.247117787599564,-0.932843923568726,0.00733429286628962,-0.360206425189972,-0.971127450466156,0.0325859896838665,-0.236325174570084,-0.985909938812256,0.031425166875124,-0.164298892021179,-0.97040867805481,0.0374653115868568,-0.238544195890427,-0.965737104415894,0.00808645877987146,-0.259396582841873,-0.969445109367371,0.0259053260087967,-0.243936881422997, +-0.965737104415894,0.00808645877987146,-0.259396582841873,-0.97040867805481,0.0374653115868568,-0.238544195890427,-0.925926029682159,0.020249255001545,-0.377161830663681,-0.887713670730591,-0.0229436755180359,-0.459823846817017,-0.949135661125183,0.0333348400890827,-0.313097923994064,-0.912152886390686,0.0139770209789276,-0.409611701965332,-0.949135661125183,0.0333348400890827,-0.313097923994064,-0.887713670730591,-0.0229436755180359,-0.459823846817017,-0.90270471572876,-0.0662593841552734,-0.425128251314163,-0.887713670730591,-0.0229436755180359,-0.459823846817017,-0.971127450466156,0.0325859896838665,-0.236325174570084,-0.923536777496338,-0.0403138250112534,-0.381385147571564,-0.987218379974365,0.0508443117141724,-0.151045799255371,-0.939472615718842,-0.00365390302613378,-0.342604726552963,-0.985909938812256,0.031425166875124,-0.164298892021179,-0.939472615718842,-0.00365390302613378,-0.342604726552963,-0.987218379974365,0.0508443117141724,-0.151045799255371,-0.922607839107513,-0.0315290056169033,-0.384448856115341,-0.932035505771637,-0.0309059396386147,-0.36104679107666,-0.939472615718842,-0.00365390302613378,-0.342604726552963,-0.923536777496338,-0.0403138250112534,-0.381385147571564,-0.939472615718842,-0.00365390302613378,-0.342604726552963,-0.932035505771637,-0.0309059396386147,-0.36104679107666,-0.949135661125183,0.0333348400890827,-0.313097923994064,-0.922561049461365,0.00698811048641801,-0.385788172483444,-0.965737104415894,0.00808645877987146,-0.259396582841873,-0.965737104415894,0.00808645877987146,-0.259396582841873,-0.922561049461365,0.00698811048641801,-0.385788172483444,-0.939472615718842,-0.00365390302613378,-0.342604726552963,-0.912152886390686,0.0139770209789276,-0.409611701965332,-0.922561049461365,0.00698811048641801,-0.385788172483444,-0.949135661125183,0.0333348400890827,-0.313097923994064,-0.922607839107513,-0.0315290056169033,-0.384448856115341,-0.939472615718842,-0.00365390302613378,-0.342604726552963,-0.922561049461365,0.00698811048641801,-0.385788172483444,-0.971127450466156,0.0325859896838665,-0.236325174570084, +-0.975343823432922,0.0247262120246887,-0.219301745295525,-0.965737104415894,0.00808645877987146,-0.259396582841873,-0.925926029682159,0.020249255001545,-0.377161830663681,-0.965737104415894,0.00808645877987146,-0.259396582841873,-0.975343823432922,0.0247262120246887,-0.219301745295525,-0.925926029682159,0.020249255001545,-0.377161830663681,-0.949135661125183,0.0333348400890827,-0.313097923994064,-0.965737104415894,0.00808645877987146,-0.259396582841873,-0.971127450466156,0.0325859896838665,-0.236325174570084,-0.887713670730591,-0.0229436755180359,-0.459823846817017,-0.975343823432922,0.0247262120246887,-0.219301745295525,-0.925926029682159,0.020249255001545,-0.377161830663681,-0.975343823432922,0.0247262120246887,-0.219301745295525,-0.887713670730591,-0.0229436755180359,-0.459823846817017,-0.971127450466156,0.0325859896838665,-0.236325174570084,-0.965737104415894,0.00808645877987146,-0.259396582841873,-0.969445109367371,0.0259053260087967,-0.243936881422997,-0.793403685092926,0.458076447248459,-0.400844901800156,-0.962128341197968,-0.0347029790282249,-0.270379066467285,-0.888424277305603,0.279781877994537,-0.363901704549789,-0.876037120819092,0.301532298326492,-0.376347303390503,-0.888424277305603,0.279781877994537,-0.363901704549789,-0.962128341197968,-0.0347029790282249,-0.270379066467285,-0.932639539241791,-0.0311948545277119,-0.359458476305008,-0.871022284030914,-0.0113847097381949,-0.491111636161804,-0.944267630577087,0.00880221463739872,-0.32906112074852,-0.885743856430054,0.276941061019897,-0.372507184743881,-0.944267630577087,0.00880221463739872,-0.32906112074852,-0.871022284030914,-0.0113847097381949,-0.491111636161804,-0.934231519699097,-0.0310468338429928,-0.355313271284103,-0.933401703834534,-0.0379497185349464,-0.356820821762085,-0.935357749462128,-0.0351123474538326,-0.351956248283386,-0.885743856430054,0.276941061019897,-0.372507184743881,-0.871022284030914,-0.0113847097381949,-0.491111636161804,-0.899641871452332,0.294780910015106,-0.322100669145584,-0.904793977737427,0.157782986760139,-0.39554089307785, +-0.899641871452332,0.294780910015106,-0.322100669145584,-0.871022284030914,-0.0113847097381949,-0.491111636161804,-0.87591552734375,0.018865654245019,-0.482095688581467,-0.871022284030914,-0.0113847097381949,-0.491111636161804,-0.899193286895752,-0.130691260099411,-0.417577981948853,-0.899193286895752,-0.130691260099411,-0.417577981948853,-0.871022284030914,-0.0113847097381949,-0.491111636161804,-0.93538373708725,-0.296955764293671,-0.192027598619461,-0.904793977737427,0.157782986760139,-0.39554089307785,-0.871022284030914,-0.0113847097381949,-0.491111636161804,-0.87591552734375,0.018865654245019,-0.482095688581467,-0.904603600502014,-0.196915492415428,-0.378043055534363,-0.93538373708725,-0.296955764293671,-0.192027598619461,-0.871022284030914,-0.0113847097381949,-0.491111636161804,-0.0199961457401514,-0.983454346656799,0.180049553513527,0.0391019620001316,-0.988952040672302,0.142985507845879,0.070458672940731,-0.997512459754944,0.00213135010562837,0.290813386440277,-0.950880885124207,-0.106080442667007,0.070458672940731,-0.997512459754944,0.00213135010562837,0.0391019620001316,-0.988952040672302,0.142985507845879,-0.932639539241791,-0.0311948545277119,-0.359458476305008,-0.944267630577087,0.00880221463739872,-0.32906112074852,-0.935357749462128,-0.0351123474538326,-0.351956248283386,-0.846518397331238,0.385864496231079,-0.366763204336166,-0.935357749462128,-0.0351123474538326,-0.351956248283386,-0.944267630577087,0.00880221463739872,-0.32906112074852,-0.939715802669525,0.200872495770454,-0.276739358901978,-0.962128341197968,-0.0347029790282249,-0.270379066467285,-0.830525040626526,0.401530772447586,-0.386007010936737,-0.793403685092926,0.458076447248459,-0.400844901800156,-0.830525040626526,0.401530772447586,-0.386007010936737,-0.962128341197968,-0.0347029790282249,-0.270379066467285,0.0326710343360901,-0.998683452606201,0.0395475625991821,0.070458672940731,-0.997512459754944,0.00213135010562837,0.191624090075493,-0.957104563713074,-0.217327252030373,0.65460991859436,-0.382647454738617,-0.651971459388733,0.191624090075493,-0.957104563713074,-0.217327252030373, +0.070458672940731,-0.997512459754944,0.00213135010562837,-0.876037120819092,0.301532298326492,-0.376347303390503,-0.935357749462128,-0.0351123474538326,-0.351956248283386,-0.867153882980347,0.326978713274002,-0.37567150592804,-0.846518397331238,0.385864496231079,-0.366763204336166,-0.867153882980347,0.326978713274002,-0.37567150592804,-0.935357749462128,-0.0351123474538326,-0.351956248283386,-0.46376445889473,0.608615696430206,-0.643824219703674,-0.801948070526123,0.421298623085022,-0.423540830612183,-0.809896945953369,0.407458871603012,-0.421952992677689,-0.846518397331238,0.385864496231079,-0.366763204336166,-0.944267630577087,0.00880221463739872,-0.32906112074852,-0.801948070526123,0.421298623085022,-0.423540830612183,-0.801948070526123,0.421298623085022,-0.423540830612183,-0.944267630577087,0.00880221463739872,-0.32906112074852,-0.809896945953369,0.407458871603012,-0.421952992677689,-0.885743856430054,0.276941061019897,-0.372507184743881,-0.809896945953369,0.407458871603012,-0.421952992677689,-0.944267630577087,0.00880221463739872,-0.32906112074852,-0.939715802669525,0.200872495770454,-0.276739358901978,-0.945837080478668,-0.0403875894844532,-0.322120040655136,-0.962128341197968,-0.0347029790282249,-0.270379066467285,-0.934231519699097,-0.0310468338429928,-0.355313271284103,-0.962128341197968,-0.0347029790282249,-0.270379066467285,-0.945837080478668,-0.0403875894844532,-0.322120040655136,-0.934231519699097,-0.0310468338429928,-0.355313271284103,-0.935357749462128,-0.0351123474538326,-0.351956248283386,-0.962128341197968,-0.0347029790282249,-0.270379066467285,-0.876037120819092,0.301532298326492,-0.376347303390503,-0.962128341197968,-0.0347029790282249,-0.270379066467285,-0.935357749462128,-0.0351123474538326,-0.351956248283386,-0.904603600502014,-0.196915492415428,-0.378043055534363,-0.871022284030914,-0.0113847097381949,-0.491111636161804,-0.932639539241791,-0.0311948545277119,-0.359458476305008,0.00381209747865796,-0.98851203918457,0.151094362139702,0.538222968578339,-0.735041320323944,-0.412347316741943,0.0524395927786827,-0.992072105407715,0.114206030964851, +0.715835511684418,-0.47678405046463,-0.510153412818909,0.0524395927786827,-0.992072105407715,0.114206030964851,0.538222968578339,-0.735041320323944,-0.412347316741943,0.673309862613678,-0.680914103984833,-0.288114100694656,0.810234010219574,-0.463354408740997,-0.358920127153397,0.16955840587616,-0.985506892204285,-0.00511961430311203,0.8311807513237,-0.433725297451019,-0.347880870103836,0.16955840587616,-0.985506892204285,-0.00511961430311203,0.810234010219574,-0.463354408740997,-0.358920127153397,0.0524395927786827,-0.992072105407715,0.114206030964851,0.0563903748989105,-0.991644680500031,0.11602221429348,0.0421036593616009,-0.993151187896729,0.108986742794514,0.00381209747865796,-0.98851203918457,0.151094362139702,0.0524395927786827,-0.992072105407715,0.114206030964851,0.0421036593616009,-0.993151187896729,0.108986742794514,0.0524395927786827,-0.992072105407715,0.114206030964851,0.0391019620001316,-0.988952040672302,0.142985507845879,0.0563903748989105,-0.991644680500031,0.11602221429348,-0.0199961457401514,-0.983454346656799,0.180049553513527,-0.0346315652132034,-0.980542898178101,0.193226009607315,0.0391019620001316,-0.988952040672302,0.142985507845879,0.0391019620001316,-0.988952040672302,0.142985507845879,-0.0346315652132034,-0.980542898178101,0.193226009607315,0.0563903748989105,-0.991644680500031,0.11602221429348,-0.0958796516060829,-0.962370872497559,0.254262626171112,0.0563903748989105,-0.991644680500031,0.11602221429348,-0.0346315652132034,-0.980542898178101,0.193226009607315,0.65460991859436,-0.382647454738617,-0.651971459388733,0.070458672940731,-0.997512459754944,0.00213135010562837,0.76720255613327,-0.437131404876709,-0.469378978013992,0.290813386440277,-0.950880885124207,-0.106080442667007,0.76720255613327,-0.437131404876709,-0.469378978013992,0.070458672940731,-0.997512459754944,0.00213135010562837,0.715835511684418,-0.47678405046463,-0.510153412818909,0.76720255613327,-0.437131404876709,-0.469378978013992,0.0524395927786827,-0.992072105407715,0.114206030964851,0.76720255613327,-0.437131404876709,-0.469378978013992, +0.290813386440277,-0.950880885124207,-0.106080442667007,0.0524395927786827,-0.992072105407715,0.114206030964851,0.290813386440277,-0.950880885124207,-0.106080442667007,0.0391019620001316,-0.988952040672302,0.142985507845879,0.0524395927786827,-0.992072105407715,0.114206030964851,0.16955840587616,-0.985506892204285,-0.00511961430311203,0.117721155285835,-0.989958047866821,0.0782621130347252,0.202812135219574,-0.979189872741699,0.00738073233515024,0.673309862613678,-0.680914103984833,-0.288114100694656,0.16955840587616,-0.985506892204285,-0.00511961430311203,0.202812135219574,-0.979189872741699,0.00738073233515024,0.84842973947525,-0.467779189348221,-0.247688546776772,0.0421036593616009,-0.993151187896729,0.108986742794514,0.16955840587616,-0.985506892204285,-0.00511961430311203,0.0421036593616009,-0.993151187896729,0.108986742794514,0.0867964699864388,-0.992737293243408,0.0833016857504845,0.16955840587616,-0.985506892204285,-0.00511961430311203,0.673309862613678,-0.680914103984833,-0.288114100694656,0.202812135219574,-0.979189872741699,0.00738073233515024,0.710292935371399,-0.620178282260895,-0.332960873842239,0.884901940822601,-0.235043108463287,-0.402123481035233,0.710292935371399,-0.620178282260895,-0.332960873842239,0.202812135219574,-0.979189872741699,0.00738073233515024,0.0867964699864388,-0.992737293243408,0.0833016857504845,0.0563903748989105,-0.991644680500031,0.11602221429348,0.119386285543442,-0.991355776786804,0.0544123239815235,0.0421036593616009,-0.993151187896729,0.108986742794514,0.0563903748989105,-0.991644680500031,0.11602221429348,0.0867964699864388,-0.992737293243408,0.0833016857504845,0.00381209747865796,-0.98851203918457,0.151094362139702,0.0421036593616009,-0.993151187896729,0.108986742794514,0.700575172901154,-0.662566363811493,-0.264953196048737,0.84842973947525,-0.467779189348221,-0.247688546776772,0.700575172901154,-0.662566363811493,-0.264953196048737,0.0421036593616009,-0.993151187896729,0.108986742794514,0.16955840587616,-0.985506892204285,-0.00511961430311203,0.0867964699864388,-0.992737293243408,0.0833016857504845, +0.117721155285835,-0.989958047866821,0.0782621130347252,0.8311807513237,-0.433725297451019,-0.347880870103836,0.881541311740875,-0.387943685054779,-0.269044011831284,0.16955840587616,-0.985506892204285,-0.00511961430311203,0.84842973947525,-0.467779189348221,-0.247688546776772,0.16955840587616,-0.985506892204285,-0.00511961430311203,0.881541311740875,-0.387943685054779,-0.269044011831284,-0.0233348775655031,-0.816435039043427,0.576965689659119,0.0113002257421613,-0.904222249984741,0.42691296339035,0.110926933586597,-0.382810235023499,0.917143166065216,0.0644725039601326,-0.885426580905914,0.460285872220993,0.110926933586597,-0.382810235023499,0.917143166065216,0.0113002257421613,-0.904222249984741,0.42691296339035,0.0451268367469311,-0.68632835149765,0.725890517234802,0.110926933586597,-0.382810235023499,0.917143166065216,0.0644725039601326,-0.885426580905914,0.460285872220993,-0.935856759548187,-0.0831437036395073,-0.342431515455246,-0.939139723777771,-0.047035988420248,-0.340300261974335,-0.945837080478668,-0.0403875894844532,-0.322120040655136,-0.995139718055725,-0.00873976200819016,-0.0980842411518097,-0.998058378696442,-0.0538769289851189,-0.0312541425228119,-0.998135566711426,-0.0601828210055828,-0.0101687163114548,-0.97063022851944,0.0523135885596275,-0.234819859266281,-0.947531700134277,-0.0270011723041534,-0.318519622087479,-0.988972663879395,0.1052500680089,-0.104190319776535,-0.943126857280731,0.11151684820652,0.313170552253723,-0.988972663879395,0.1052500680089,-0.104190319776535,-0.94468879699707,0.327965438365936,0.00135211646556854,-0.94468879699707,0.327965438365936,0.00135211646556854,-0.988972663879395,0.1052500680089,-0.104190319776535,-0.947531700134277,-0.0270011723041534,-0.318519622087479,-0.985681653022766,0.039508044719696,-0.16392308473587,-0.990329027175903,0.0391205549240112,-0.133109509944916,-0.988972663879395,0.1052500680089,-0.104190319776535,-0.97063022851944,0.0523135885596275,-0.234819859266281,-0.988972663879395,0.1052500680089,-0.104190319776535,-0.990329027175903,0.0391205549240112,-0.133109509944916, +-0.97063022851944,0.0523135885596275,-0.234819859266281,-0.990329027175903,0.0391205549240112,-0.133109509944916,-0.971140384674072,0.0436711087822914,-0.234476625919342,-0.936731696128845,-0.0334194898605347,-0.348449438810349,-0.971140384674072,0.0436711087822914,-0.234476625919342,-0.990329027175903,0.0391205549240112,-0.133109509944916,-0.935856759548187,-0.0831437036395073,-0.342431515455246,-0.927061915397644,-0.104268744587898,-0.360117226839066,-0.939139723777771,-0.047035988420248,-0.340300261974335,-0.97063022851944,0.0523135885596275,-0.234819859266281,-0.971140384674072,0.0436711087822914,-0.234476625919342,-0.927061915397644,-0.104268744587898,-0.360117226839066,-0.936731696128845,-0.0334194898605347,-0.348449438810349,-0.927061915397644,-0.104268744587898,-0.360117226839066,-0.971140384674072,0.0436711087822914,-0.234476625919342,-0.942811965942383,0.0932265892624855,-0.320022642612457,-0.951627194881439,0.129393830895424,-0.278680890798569,-0.947531700134277,-0.0270011723041534,-0.318519622087479,-0.94468879699707,0.327965438365936,0.00135211646556854,-0.947531700134277,-0.0270011723041534,-0.318519622087479,-0.951627194881439,0.129393830895424,-0.278680890798569,-0.97063022851944,0.0523135885596275,-0.234819859266281,-0.927061915397644,-0.104268744587898,-0.360117226839066,-0.947531700134277,-0.0270011723041534,-0.318519622087479,-0.942811965942383,0.0932265892624855,-0.320022642612457,-0.947531700134277,-0.0270011723041534,-0.318519622087479,-0.935856759548187,-0.0831437036395073,-0.342431515455246,-0.935856759548187,-0.0831437036395073,-0.342431515455246,-0.947531700134277,-0.0270011723041534,-0.318519622087479,-0.927061915397644,-0.104268744587898,-0.360117226839066,0.99015200138092,-0.0987013280391693,0.0992826148867607,0.298771262168884,-0.954136490821838,0.0189559143036604,0.40591436624527,-0.908416867256165,0.100061975419521,0.884901940822601,-0.235043108463287,-0.402123481035233,0.202812135219574,-0.979189872741699,0.00738073233515024,0.79575526714325,-0.463121265172958,-0.390246570110321,0.837211012840271,-0.278979986906052,-0.47036999464035, +0.79575526714325,-0.463121265172958,-0.390246570110321,0.202812135219574,-0.979189872741699,0.00738073233515024,0.117721155285835,-0.989958047866821,0.0782621130347252,0.298771262168884,-0.954136490821838,0.0189559143036604,0.202812135219574,-0.979189872741699,0.00738073233515024,0.837211012840271,-0.278979986906052,-0.47036999464035,0.202812135219574,-0.979189872741699,0.00738073233515024,0.298771262168884,-0.954136490821838,0.0189559143036604,0.525803506374359,-0.814386665821075,0.245571002364159,0.40591436624527,-0.908416867256165,0.100061975419521,0.213288679718971,-0.962841510772705,0.165663301944733,0.298771262168884,-0.954136490821838,0.0189559143036604,0.103689804673195,-0.988251924514771,0.112279251217842,0.40591436624527,-0.908416867256165,0.100061975419521,0.213288679718971,-0.962841510772705,0.165663301944733,0.40591436624527,-0.908416867256165,0.100061975419521,0.205902457237244,-0.968039929866791,0.14318835735321,0.205902457237244,-0.968039929866791,0.14318835735321,0.40591436624527,-0.908416867256165,0.100061975419521,0.103689804673195,-0.988251924514771,0.112279251217842,-0.0322238802909851,-0.997549176216125,0.0621070899069309,0.213288679718971,-0.962841510772705,0.165663301944733,0.205902457237244,-0.968039929866791,0.14318835735321,0.99015200138092,-0.0987013280391693,0.0992826148867607,0.981289982795715,0.0888428688049316,-0.17081256210804,0.298771262168884,-0.954136490821838,0.0189559143036604,0.837211012840271,-0.278979986906052,-0.47036999464035,0.298771262168884,-0.954136490821838,0.0189559143036604,0.981289982795715,0.0888428688049316,-0.17081256210804,-0.304873168468475,-0.179013088345528,0.935418009757996,-0.204854160547256,-0.52427476644516,0.826541543006897,-0.151773437857628,-0.608940005302429,0.778560817241669,-0.204854160547256,-0.52427476644516,0.826541543006897,-0.0964735001325607,-0.792454838752747,0.602252662181854,-0.151773437857628,-0.608940005302429,0.778560817241669,-0.0713478922843933,-0.817721903324127,0.571174561977386,-0.151773437857628,-0.608940005302429,0.778560817241669, +-0.0964735001325607,-0.792454838752747,0.602252662181854,-0.937429308891296,0.0938393697142601,-0.335291832685471,-0.934646666049957,0.165162742137909,-0.314891874790192,-0.935856759548187,-0.0831437036395073,-0.342431515455246,-0.929384112358093,0.202496781945229,-0.308610260486603,-0.935856759548187,-0.0831437036395073,-0.342431515455246,-0.934646666049957,0.165162742137909,-0.314891874790192,0.525803506374359,-0.814386665821075,0.245571002364159,0.583428800106049,-0.735878109931946,0.343648612499237,0.702282905578613,-0.557778418064117,0.442359536886215,0.563213765621185,-0.756428182125092,0.332576125860214,0.702282905578613,-0.557778418064117,0.442359536886215,0.583428800106049,-0.735878109931946,0.343648612499237,-0.937429308891296,0.0938393697142601,-0.335291832685471,-0.935856759548187,-0.0831437036395073,-0.342431515455246,-0.945837080478668,-0.0403875894844532,-0.322120040655136,0.525803506374359,-0.814386665821075,0.245571002364159,0.702282905578613,-0.557778418064117,0.442359536886215,0.40591436624527,-0.908416867256165,0.100061975419521,0.903093338012695,-0.179014325141907,0.390354037284851,0.40591436624527,-0.908416867256165,0.100061975419521,0.825380325317383,-0.237398162484169,0.512239694595337,0.825380325317383,-0.237398162484169,0.512239694595337,0.40591436624527,-0.908416867256165,0.100061975419521,0.702282905578613,-0.557778418064117,0.442359536886215,0.99015200138092,-0.0987013280391693,0.0992826148867607,0.40591436624527,-0.908416867256165,0.100061975419521,0.903093338012695,-0.179014325141907,0.390354037284851,-0.942811965942383,0.0932265892624855,-0.320022642612457,-0.935856759548187,-0.0831437036395073,-0.342431515455246,-0.928669035434723,0.174437180161476,-0.327330887317657,-0.929384112358093,0.202496781945229,-0.308610260486603,-0.928669035434723,0.174437180161476,-0.327330887317657,-0.935856759548187,-0.0831437036395073,-0.342431515455246,-0.939715802669525,0.200872495770454,-0.276739358901978,-0.848784863948822,0.434358030557632,-0.301492094993591,-0.945837080478668,-0.0403875894844532,-0.322120040655136, +-0.947686076164246,0.126667678356171,-0.292995572090149,-0.945837080478668,-0.0403875894844532,-0.322120040655136,-0.848784863948822,0.434358030557632,-0.301492094993591,0.471331298351288,-0.823024272918701,0.316982507705688,0.310509920120239,-0.918691694736481,0.244109094142914,0.0395378805696964,-0.999076008796692,0.0168526116758585,0.0933980196714401,-0.986739277839661,0.132749617099762,0.0395378805696964,-0.999076008796692,0.0168526116758585,0.310509920120239,-0.918691694736481,0.244109094142914,-0.0322238802909851,-0.997549176216125,0.0621070899069309,0.232089757919312,-0.967471420764923,0.100665353238583,0.213288679718971,-0.962841510772705,0.165663301944733,-0.117659524083138,-0.992874801158905,0.0188636537641287,0.232089757919312,-0.967471420764923,0.100665353238583,-0.0322238802909851,-0.997549176216125,0.0621070899069309,0.525803506374359,-0.814386665821075,0.245571002364159,0.213288679718971,-0.962841510772705,0.165663301944733,0.232089757919312,-0.967471420764923,0.100665353238583,-0.223101586103439,-0.973984718322754,0.039742287248373,-0.273029327392578,-0.960429251194,0.0550520420074463,-0.196889460086823,-0.98037052154541,0.0104050571098924,-0.328481525182724,-0.943368911743164,-0.0464213155210018,-0.196889460086823,-0.98037052154541,0.0104050571098924,-0.273029327392578,-0.960429251194,0.0550520420074463,0.563213765621185,-0.756428182125092,0.332576125860214,0.583428800106049,-0.735878109931946,0.343648612499237,0.232089757919312,-0.967471420764923,0.100665353238583,0.525803506374359,-0.814386665821075,0.245571002364159,0.232089757919312,-0.967471420764923,0.100665353238583,0.583428800106049,-0.735878109931946,0.343648612499237,0.563213765621185,-0.756428182125092,0.332576125860214,0.232089757919312,-0.967471420764923,0.100665353238583,0.185484424233437,-0.970769584178925,0.152322217822075,-0.117659524083138,-0.992874801158905,0.0188636537641287,0.185484424233437,-0.970769584178925,0.152322217822075,0.232089757919312,-0.967471420764923,0.100665353238583,-0.670593976974487,-0.711343050003052,-0.210463330149651, +-0.534079134464264,-0.834636032581329,-0.134692788124084,-0.273029327392578,-0.960429251194,0.0550520420074463,-0.328481525182724,-0.943368911743164,-0.0464213155210018,-0.273029327392578,-0.960429251194,0.0550520420074463,-0.534079134464264,-0.834636032581329,-0.134692788124084,0.0395378805696964,-0.999076008796692,0.0168526116758585,-0.0767912268638611,-0.995966911315918,0.0464015491306782,-0.149094805121422,-0.988757193088531,-0.0114009883254766,-0.149094805121422,-0.988757193088531,-0.0114009883254766,-0.0767912268638611,-0.995966911315918,0.0464015491306782,-0.196889460086823,-0.98037052154541,0.0104050571098924,0.0933980196714401,-0.986739277839661,0.132749617099762,-0.0767912268638611,-0.995966911315918,0.0464015491306782,0.0395378805696964,-0.999076008796692,0.0168526116758585,0.0933980196714401,-0.986739277839661,0.132749617099762,0.185484424233437,-0.970769584178925,0.152322217822075,-0.0767912268638611,-0.995966911315918,0.0464015491306782,-0.117659524083138,-0.992874801158905,0.0188636537641287,-0.168905794620514,-0.98482620716095,0.0398536585271358,0.185484424233437,-0.970769584178925,0.152322217822075,-0.0767912268638611,-0.995966911315918,0.0464015491306782,0.185484424233437,-0.970769584178925,0.152322217822075,-0.168905794620514,-0.98482620716095,0.0398536585271358,-0.984834611415863,-0.0973795801401138,0.143590167164803,-0.993782818317413,0.0286922734230757,-0.107575960457325,-0.887454152107239,-0.202023133635521,0.414260447025299,-0.649372458457947,-0.189183264970779,0.736563146114349,-0.887454152107239,-0.202023133635521,0.414260447025299,-0.993782818317413,0.0286922734230757,-0.107575960457325,-0.107609823346138,-0.98949134349823,0.0965768396854401,-0.0322238802909851,-0.997549176216125,0.0621070899069309,0.205902457237244,-0.968039929866791,0.14318835735321,-0.117659524083138,-0.992874801158905,0.0188636537641287,-0.131523683667183,-0.990719079971313,0.0343130901455879,-0.168905794620514,-0.98482620716095,0.0398536585271358,-0.993782818317413,0.0286922734230757,-0.107575960457325,-0.988972663879395,0.1052500680089,-0.104190319776535, +-0.984479963779449,0.0342009477317333,0.172132685780525,-0.984479963779449,0.0342009477317333,0.172132685780525,-0.988972663879395,0.1052500680089,-0.104190319776535,-0.943126857280731,0.11151684820652,0.313170552253723,-0.985681653022766,0.039508044719696,-0.16392308473587,-0.988972663879395,0.1052500680089,-0.104190319776535,-0.993782818317413,0.0286922734230757,-0.107575960457325,-0.649372458457947,-0.189183264970779,0.736563146114349,-0.993782818317413,0.0286922734230757,-0.107575960457325,-0.89151406288147,-0.0478791519999504,0.450455635786057,-0.984479963779449,0.0342009477317333,0.172132685780525,-0.89151406288147,-0.0478791519999504,0.450455635786057,-0.993782818317413,0.0286922734230757,-0.107575960457325,-0.961168646812439,-0.253399640321732,0.109286919236183,-0.998135566711426,-0.0601828210055828,-0.0101687163114548,-0.958756327629089,-0.269762545824051,0.0895235985517502,-0.99429190158844,-0.0977403223514557,0.042785070836544,-0.958756327629089,-0.269762545824051,0.0895235985517502,-0.998135566711426,-0.0601828210055828,-0.0101687163114548,-0.117659524083138,-0.992874801158905,0.0188636537641287,-0.0322238802909851,-0.997549176216125,0.0621070899069309,-0.131523683667183,-0.990719079971313,0.0343130901455879,-0.107609823346138,-0.98949134349823,0.0965768396854401,-0.131523683667183,-0.990719079971313,0.0343130901455879,-0.0322238802909851,-0.997549176216125,0.0621070899069309,-0.168905794620514,-0.98482620716095,0.0398536585271358,-0.245614111423492,-0.969270944595337,0.0137004554271698,-0.196889460086823,-0.98037052154541,0.0104050571098924,-0.223101586103439,-0.973984718322754,0.039742287248373,-0.196889460086823,-0.98037052154541,0.0104050571098924,-0.245614111423492,-0.969270944595337,0.0137004554271698,-0.0767912268638611,-0.995966911315918,0.0464015491306782,-0.168905794620514,-0.98482620716095,0.0398536585271358,-0.196889460086823,-0.98037052154541,0.0104050571098924,-0.985681653022766,0.039508044719696,-0.16392308473587,-0.993782818317413,0.0286922734230757,-0.107575960457325,-0.987728953361511,0.0234849471598864,-0.154402762651443, +0.900371491909027,-0.0942796766757965,0.424785256385803,0.860139489173889,-0.17645052075386,0.478565961122513,0.767527163028717,-0.470139890909195,0.435741543769836,0.702282905578613,-0.557778418064117,0.442359536886215,0.767527163028717,-0.470139890909195,0.435741543769836,0.825380325317383,-0.237398162484169,0.512239694595337,0.825380325317383,-0.237398162484169,0.512239694595337,0.767527163028717,-0.470139890909195,0.435741543769836,0.860139489173889,-0.17645052075386,0.478565961122513,0.563213765621185,-0.756428182125092,0.332576125860214,0.767527163028717,-0.470139890909195,0.435741543769836,0.702282905578613,-0.557778418064117,0.442359536886215,0.900371491909027,-0.0942796766757965,0.424785256385803,0.693695485591888,-0.598729312419891,0.400387108325958,0.839343428611755,-0.157044410705566,0.520422637462616,0.0933980196714401,-0.986739277839661,0.132749617099762,0.310509920120239,-0.918691694736481,0.244109094142914,0.693695485591888,-0.598729312419891,0.400387108325958,0.839343428611755,-0.157044410705566,0.520422637462616,0.693695485591888,-0.598729312419891,0.400387108325958,0.471331298351288,-0.823024272918701,0.316982507705688,0.471331298351288,-0.823024272918701,0.316982507705688,0.693695485591888,-0.598729312419891,0.400387108325958,0.310509920120239,-0.918691694736481,0.244109094142914,-0.149094805121422,-0.988757193088531,-0.0114009883254766,-0.196889460086823,-0.98037052154541,0.0104050571098924,-0.195546537637711,-0.978810489177704,-0.0607590526342392,-0.328481525182724,-0.943368911743164,-0.0464213155210018,-0.195546537637711,-0.978810489177704,-0.0607590526342392,-0.196889460086823,-0.98037052154541,0.0104050571098924,0.767527163028717,-0.470139890909195,0.435741543769836,0.563213765621185,-0.756428182125092,0.332576125860214,0.693695485591888,-0.598729312419891,0.400387108325958,0.563213765621185,-0.756428182125092,0.332576125860214,0.185484424233437,-0.970769584178925,0.152322217822075,0.693695485591888,-0.598729312419891,0.400387108325958,0.0933980196714401,-0.986739277839661,0.132749617099762, +0.693695485591888,-0.598729312419891,0.400387108325958,0.185484424233437,-0.970769584178925,0.152322217822075,0.900371491909027,-0.0942796766757965,0.424785256385803,0.767527163028717,-0.470139890909195,0.435741543769836,0.693695485591888,-0.598729312419891,0.400387108325958,-0.945837080478668,-0.0403875894844532,-0.322120040655136,-0.939139723777771,-0.047035988420248,-0.340300261974335,-0.934231519699097,-0.0310468338429928,-0.355313271284103,-0.97372955083847,0.0460969321429729,-0.222993209958076,-0.985681653022766,0.039508044719696,-0.16392308473587,-0.973365366458893,0.0301316436380148,-0.227271065115929,-0.987728953361511,0.0234849471598864,-0.154402762651443,-0.973365366458893,0.0301316436380148,-0.227271065115929,-0.985681653022766,0.039508044719696,-0.16392308473587,-0.0190667975693941,-0.96084851026535,0.27641761302948,-0.0100259566679597,-0.944054305553436,0.329637706279755,-0.0249142032116652,-0.957197725772858,0.288360744714737,-0.963172078132629,0.0651024878025055,-0.260885536670685,-0.971121370792389,0.0773557350039482,-0.225697606801987,-0.980403959751129,0.0854352563619614,-0.177507817745209,-0.97372955083847,0.0460969321429729,-0.222993209958076,-0.980403959751129,0.0854352563619614,-0.177507817745209,-0.971121370792389,0.0773557350039482,-0.225697606801987,-0.985681653022766,0.039508044719696,-0.16392308473587,-0.971121370792389,0.0773557350039482,-0.225697606801987,-0.990329027175903,0.0391205549240112,-0.133109509944916,-0.97372955083847,0.0460969321429729,-0.222993209958076,-0.971121370792389,0.0773557350039482,-0.225697606801987,-0.985681653022766,0.039508044719696,-0.16392308473587,-0.936731696128845,-0.0334194898605347,-0.348449438810349,-0.990329027175903,0.0391205549240112,-0.133109509944916,-0.971121370792389,0.0773557350039482,-0.225697606801987,-0.963351011276245,0.0551190301775932,-0.26252007484436,-0.980403959751129,0.0854352563619614,-0.177507817745209,-0.97040867805481,0.0374653115868568,-0.238544195890427,-0.97372955083847,0.0460969321429729,-0.222993209958076,-0.97040867805481,0.0374653115868568,-0.238544195890427, +-0.980403959751129,0.0854352563619614,-0.177507817745209,-0.936731696128845,-0.0334194898605347,-0.348449438810349,-0.971121370792389,0.0773557350039482,-0.225697606801987,-0.927061915397644,-0.104268744587898,-0.360117226839066,-0.927061915397644,-0.104268744587898,-0.360117226839066,-0.971121370792389,0.0773557350039482,-0.225697606801987,-0.939139723777771,-0.047035988420248,-0.340300261974335,-0.963172078132629,0.0651024878025055,-0.260885536670685,-0.939139723777771,-0.047035988420248,-0.340300261974335,-0.971121370792389,0.0773557350039482,-0.225697606801987,0.193604201078415,0.392061054706573,0.899336278438568,-0.0233348775655031,-0.816435039043427,0.576965689659119,0.110926933586597,-0.382810235023499,0.917143166065216,-0.304873168468475,-0.179013088345528,0.935418009757996,-0.357453972101212,-0.106403134763241,0.927849769592285,-0.28442245721817,-0.342920541763306,0.895270645618439,-0.340315967798233,0.564552962779999,0.75197422504425,-0.28442245721817,-0.342920541763306,0.895270645618439,-0.357453972101212,-0.106403134763241,0.927849769592285,-0.987728953361511,0.0234849471598864,-0.154402762651443,-0.993782818317413,0.0286922734230757,-0.107575960457325,-0.999256730079651,-0.0198974497616291,-0.0330190286040306,-0.984834611415863,-0.0973795801401138,0.143590167164803,-0.999256730079651,-0.0198974497616291,-0.0330190286040306,-0.993782818317413,0.0286922734230757,-0.107575960457325,-0.994956970214844,0.00553229078650475,-0.10015007853508,-0.987728953361511,0.0234849471598864,-0.154402762651443,-0.999256730079651,-0.0198974497616291,-0.0330190286040306,-0.0117101175710559,-0.873367309570313,0.486921370029449,-0.151773437857628,-0.608940005302429,0.778560817241669,-0.0221750903874636,-0.887982726097107,0.45934185385704,-0.0713478922843933,-0.817721903324127,0.571174561977386,-0.0221750903874636,-0.887982726097107,0.45934185385704,-0.151773437857628,-0.608940005302429,0.778560817241669,0.117721155285835,-0.989958047866821,0.0782621130347252,0.0867964699864388,-0.992737293243408,0.0833016857504845,0.083000548183918,-0.992766439914703,0.0867514088749886, +0.0867964699864388,-0.992737293243408,0.0833016857504845,0.119386285543442,-0.991355776786804,0.0544123239815235,0.083000548183918,-0.992766439914703,0.0867514088749886,0.117721155285835,-0.989958047866821,0.0782621130347252,0.0563539452850819,-0.992379248142242,0.109579369425774,0.298771262168884,-0.954136490821838,0.0189559143036604,0.298771262168884,-0.954136490821838,0.0189559143036604,0.0563539452850819,-0.992379248142242,0.109579369425774,0.103689804673195,-0.988251924514771,0.112279251217842,0.205902457237244,-0.968039929866791,0.14318835735321,0.103689804673195,-0.988251924514771,0.112279251217842,-0.107609823346138,-0.98949134349823,0.0965768396854401,-0.107609823346138,-0.98949134349823,0.0965768396854401,0.103689804673195,-0.988251924514771,0.112279251217842,-0.102498635649681,-0.985741317272186,0.133447200059891,0.0563539452850819,-0.992379248142242,0.109579369425774,-0.00466481177136302,-0.990976333618164,0.133955880999565,-0.102498635649681,-0.985741317272186,0.133447200059891,0.103689804673195,-0.988251924514771,0.112279251217842,0.0563539452850819,-0.992379248142242,0.109579369425774,-0.102498635649681,-0.985741317272186,0.133447200059891,-0.00466481177136302,-0.990976333618164,0.133955880999565,-0.00903163105249405,-0.991871774196625,0.126920387148857,-0.102498635649681,-0.985741317272186,0.133447200059891,-0.248717397451401,-0.968575596809387,0.00105322152376175,-0.245614111423492,-0.969270944595337,0.0137004554271698,-0.1773302257061,-0.982746720314026,0.0525634698569775,-0.168905794620514,-0.98482620716095,0.0398536585271358,-0.1773302257061,-0.982746720314026,0.0525634698569775,-0.245614111423492,-0.969270944595337,0.0137004554271698,-0.24121718108654,-0.967897653579712,0.0706296190619469,-0.301026552915573,-0.953455567359924,-0.0174788702279329,-0.248717397451401,-0.968575596809387,0.00105322152376175,-0.248717397451401,-0.968575596809387,0.00105322152376175,-0.301026552915573,-0.953455567359924,-0.0174788702279329,-0.245614111423492,-0.969270944595337,0.0137004554271698,-0.235904097557068,-0.969382762908936,0.0681636780500412, +-0.301026552915573,-0.953455567359924,-0.0174788702279329,-0.24121718108654,-0.967897653579712,0.0706296190619469,-0.248717397451401,-0.968575596809387,0.00105322152376175,-0.1773302257061,-0.982746720314026,0.0525634698569775,-0.192046299576759,-0.980161249637604,0.0490125119686127,-0.131523683667183,-0.990719079971313,0.0343130901455879,-0.192046299576759,-0.980161249637604,0.0490125119686127,-0.168905794620514,-0.98482620716095,0.0398536585271358,-0.168905794620514,-0.98482620716095,0.0398536585271358,-0.192046299576759,-0.980161249637604,0.0490125119686127,-0.1773302257061,-0.982746720314026,0.0525634698569775,-0.107609823346138,-0.98949134349823,0.0965768396854401,-0.192046299576759,-0.980161249637604,0.0490125119686127,-0.131523683667183,-0.990719079971313,0.0343130901455879,-0.00903163105249405,-0.991871774196625,0.126920387148857,-0.192046299576759,-0.980161249637604,0.0490125119686127,-0.102498635649681,-0.985741317272186,0.133447200059891,-0.248717397451401,-0.968575596809387,0.00105322152376175,-0.192046299576759,-0.980161249637604,0.0490125119686127,-0.24121718108654,-0.967897653579712,0.0706296190619469,-0.00903163105249405,-0.991871774196625,0.126920387148857,-0.24121718108654,-0.967897653579712,0.0706296190619469,-0.192046299576759,-0.980161249637604,0.0490125119686127,-0.107609823346138,-0.98949134349823,0.0965768396854401,-0.102498635649681,-0.985741317272186,0.133447200059891,-0.192046299576759,-0.980161249637604,0.0490125119686127,0.083000548183918,-0.992766439914703,0.0867514088749886,-0.00466481177136302,-0.990976333618164,0.133955880999565,0.117721155285835,-0.989958047866821,0.0782621130347252,0.117721155285835,-0.989958047866821,0.0782621130347252,-0.00466481177136302,-0.990976333618164,0.133955880999565,0.0563539452850819,-0.992379248142242,0.109579369425774,0.083000548183918,-0.992766439914703,0.0867514088749886,0.109708786010742,-0.991255879402161,0.0733200237154961,0.0495129153132439,-0.993119955062866,0.106119051575661,0.083000548183918,-0.992766439914703,0.0867514088749886,0.0495129153132439,-0.993119955062866,0.106119051575661, +-0.00466481177136302,-0.990976333618164,0.133955880999565,0.119081288576126,-0.988654613494873,0.0915521904826164,-0.00903163105249405,-0.991871774196625,0.126920387148857,0.0495129153132439,-0.993119955062866,0.106119051575661,0.0495129153132439,-0.993119955062866,0.106119051575661,-0.00903163105249405,-0.991871774196625,0.126920387148857,-0.00466481177136302,-0.990976333618164,0.133955880999565,0.083000548183918,-0.992766439914703,0.0867514088749886,0.119386285543442,-0.991355776786804,0.0544123239815235,0.109708786010742,-0.991255879402161,0.0733200237154961,-0.517506182193756,-0.745713531970978,-0.419641345739365,-0.470879971981049,-0.780656337738037,-0.410911023616791,-0.108973048627377,-0.965101182460785,0.238127514719963,-0.108973048627377,-0.965101182460785,0.238127514719963,-0.470879971981049,-0.780656337738037,-0.410911023616791,-0.281479805707932,-0.957795321941376,0.0582875907421112,-0.387966275215149,-0.907630681991577,-0.160277500748634,-0.281479805707932,-0.957795321941376,0.0582875907421112,-0.470879971981049,-0.780656337738037,-0.410911023616791,-0.996541261672974,-0.0706425234675407,0.0437625795602798,-0.912389278411865,-0.284731149673462,0.294064700603485,-0.996033668518066,-0.0753696784377098,0.0472920835018158,-0.750214159488678,-0.428136259317398,0.503863096237183,-0.996033668518066,-0.0753696784377098,0.0472920835018158,-0.912389278411865,-0.284731149673462,0.294064700603485,-0.160577356815338,-0.980545401573181,0.112896591424942,-0.197684228420258,-0.977927148342133,0.0676728561520576,-0.235904097557068,-0.969382762908936,0.0681636780500412,-0.235904097557068,-0.969382762908936,0.0681636780500412,-0.197684228420258,-0.977927148342133,0.0676728561520576,-0.301026552915573,-0.953455567359924,-0.0174788702279329,-0.894952654838562,-0.256420403718948,0.36511418223381,-0.996541261672974,-0.0706425234675407,0.0437625795602798,-0.999256730079651,-0.0198974497616291,-0.0330190286040306,-0.997947931289673,-0.0567910447716713,0.0295769516378641,-0.912389278411865,-0.284731149673462,0.294064700603485, +-0.996541261672974,-0.0706425234675407,0.0437625795602798,-0.894952654838562,-0.256420403718948,0.36511418223381,-0.999256730079651,-0.0198974497616291,-0.0330190286040306,-0.979345977306366,-0.134334713220596,0.151115402579308,-0.775112330913544,-0.320677042007446,0.544396102428436,-0.979345977306366,-0.134334713220596,0.151115402579308,-0.999256730079651,-0.0198974497616291,-0.0330190286040306,-0.984834611415863,-0.0973795801401138,0.143590167164803,-0.928037643432617,-0.232075795531273,0.291353821754456,-0.999256730079651,-0.0198974497616291,-0.0330190286040306,-0.775112330913544,-0.320677042007446,0.544396102428436,-0.999256730079651,-0.0198974497616291,-0.0330190286040306,-0.928037643432617,-0.232075795531273,0.291353821754456,-0.160577356815338,-0.980545401573181,0.112896591424942,-0.0973824262619019,-0.984943270683289,0.142840892076492,-0.382151573896408,-0.92325496673584,-0.0395041704177856,-0.382151573896408,-0.92325496673584,-0.0395041704177856,-0.0973824262619019,-0.984943270683289,0.142840892076492,-0.387966275215149,-0.907630681991577,-0.160277500748634,-0.387966275215149,-0.907630681991577,-0.160277500748634,-0.0973824262619019,-0.984943270683289,0.142840892076492,-0.281479805707932,-0.957795321941376,0.0582875907421112,-0.223101586103439,-0.973984718322754,0.039742287248373,-0.245614111423492,-0.969270944595337,0.0137004554271698,-0.197684228420258,-0.977927148342133,0.0676728561520576,-0.301026552915573,-0.953455567359924,-0.0174788702279329,-0.197684228420258,-0.977927148342133,0.0676728561520576,-0.245614111423492,-0.969270944595337,0.0137004554271698,-0.0368173569440842,-0.988772571086884,0.144821733236313,-0.0973824262619019,-0.984943270683289,0.142840892076492,-0.235904097557068,-0.969382762908936,0.0681636780500412,-0.160577356815338,-0.980545401573181,0.112896591424942,-0.235904097557068,-0.969382762908936,0.0681636780500412,-0.0973824262619019,-0.984943270683289,0.142840892076492,-0.382151573896408,-0.92325496673584,-0.0395041704177856,-0.273029327392578,-0.960429251194,0.0550520420074463,-0.197684228420258,-0.977927148342133,0.0676728561520576, +-0.223101586103439,-0.973984718322754,0.039742287248373,-0.197684228420258,-0.977927148342133,0.0676728561520576,-0.273029327392578,-0.960429251194,0.0550520420074463,-0.160577356815338,-0.980545401573181,0.112896591424942,-0.382151573896408,-0.92325496673584,-0.0395041704177856,-0.197684228420258,-0.977927148342133,0.0676728561520576,-0.99565064907074,0.0326875150203705,-0.0872431695461273,-0.998135566711426,-0.0601828210055828,-0.0101687163114548,-0.996518850326538,-0.0833514705300331,-0.00165007822215557,-0.961168646812439,-0.253399640321732,0.109286919236183,-0.996518850326538,-0.0833514705300331,-0.00165007822215557,-0.998135566711426,-0.0601828210055828,-0.0101687163114548,-0.382151573896408,-0.92325496673584,-0.0395041704177856,-0.624980747699738,-0.749791443347931,-0.217283084988594,-0.273029327392578,-0.960429251194,0.0550520420074463,-0.670593976974487,-0.711343050003052,-0.210463330149651,-0.273029327392578,-0.960429251194,0.0550520420074463,-0.624980747699738,-0.749791443347931,-0.217283084988594,-0.115542963147163,-0.984955072402954,0.128504037857056,-0.00903163105249405,-0.991871774196625,0.126920387148857,0.119081288576126,-0.988654613494873,0.0915521904826164,-0.281479805707932,-0.957795321941376,0.0582875907421112,-0.0368173569440842,-0.988772571086884,0.144821733236313,-0.108973048627377,-0.965101182460785,0.238127514719963,-0.281479805707932,-0.957795321941376,0.0582875907421112,-0.0973824262619019,-0.984943270683289,0.142840892076492,-0.0368173569440842,-0.988772571086884,0.144821733236313,-0.235904097557068,-0.969382762908936,0.0681636780500412,-0.24121718108654,-0.967897653579712,0.0706296190619469,-0.115542963147163,-0.984955072402954,0.128504037857056,-0.00903163105249405,-0.991871774196625,0.126920387148857,-0.115542963147163,-0.984955072402954,0.128504037857056,-0.24121718108654,-0.967897653579712,0.0706296190619469,-0.0368173569440842,-0.988772571086884,0.144821733236313,-0.235904097557068,-0.969382762908936,0.0681636780500412,-0.115542963147163,-0.984955072402954,0.128504037857056,-0.387966275215149,-0.907630681991577,-0.160277500748634, +-0.4599928855896,-0.836379051208496,-0.298122078180313,-0.382151573896408,-0.92325496673584,-0.0395041704177856,-0.997947931289673,-0.0567910447716713,0.0295769516378641,-0.921140074729919,-0.297936022281647,0.250469774007797,-0.912389278411865,-0.284731149673462,0.294064700603485,-0.21290248632431,-0.819810926914215,0.531584978103638,-0.912389278411865,-0.284731149673462,0.294064700603485,-0.921140074729919,-0.297936022281647,0.250469774007797,-0.240664094686508,-0.948612213134766,0.205464571714401,-0.262267619371414,-0.949610650539398,0.171626016497612,0.123659193515778,-0.9894939661026,0.0749005973339081,-0.115542963147163,-0.984955072402954,0.128504037857056,0.119081288576126,-0.988654613494873,0.0915521904826164,-0.0368173569440842,-0.988772571086884,0.144821733236313,-0.271930634975433,-0.952758610248566,0.135295778512955,-0.628552913665771,-0.728641927242279,-0.272033661603928,-0.108973048627377,-0.965101182460785,0.238127514719963,-0.517506182193756,-0.745713531970978,-0.419641345739365,-0.108973048627377,-0.965101182460785,0.238127514719963,-0.628552913665771,-0.728641927242279,-0.272033661603928,-0.108973048627377,-0.965101182460785,0.238127514719963,0.119081288576126,-0.988654613494873,0.0915521904826164,-0.271930634975433,-0.952758610248566,0.135295778512955,-0.271930634975433,-0.952758610248566,0.135295778512955,0.119081288576126,-0.988654613494873,0.0915521904826164,-0.262267619371414,-0.949610650539398,0.171626016497612,-0.0368173569440842,-0.988772571086884,0.144821733236313,0.119081288576126,-0.988654613494873,0.0915521904826164,-0.108973048627377,-0.965101182460785,0.238127514719963,0.123659193515778,-0.9894939661026,0.0749005973339081,-0.262267619371414,-0.949610650539398,0.171626016497612,0.119081288576126,-0.988654613494873,0.0915521904826164,-0.927076578140259,-0.0999829173088074,-0.361292719841003,-0.935085475444794,0.0029199484270066,-0.354410439729691,-0.933401703834534,-0.0379497185349464,-0.356820821762085,-0.929729044437408,-0.103157132863998,-0.353500545024872,-0.933401703834534,-0.0379497185349464,-0.356820821762085, +-0.935085475444794,0.0029199484270066,-0.354410439729691,-0.904603600502014,-0.196915492415428,-0.378043055534363,-0.932639539241791,-0.0311948545277119,-0.359458476305008,-0.933594346046448,-0.0687413588166237,-0.351676404476166,-0.929729044437408,-0.103157132863998,-0.353500545024872,-0.933594346046448,-0.0687413588166237,-0.351676404476166,-0.932639539241791,-0.0311948545277119,-0.359458476305008,-0.927076578140259,-0.0999829173088074,-0.361292719841003,-0.933401703834534,-0.0379497185349464,-0.356820821762085,-0.902789115905762,-0.204561963677406,-0.378320187330246,-0.933401703834534,-0.0379497185349464,-0.356820821762085,-0.932639539241791,-0.0311948545277119,-0.359458476305008,-0.935357749462128,-0.0351123474538326,-0.351956248283386,0.0761911198496819,-0.985567271709442,-0.151169538497925,0.0750883370637894,-0.953976333141327,-0.290329217910767,0.085670180618763,-0.987160384654999,-0.134815409779549,0.085670180618763,-0.987160384654999,-0.134815409779549,0.0750883370637894,-0.953976333141327,-0.290329217910767,0.0553884170949459,-0.985375225543976,-0.161145716905594,0.128973960876465,-0.318525552749634,-0.939099133014679,0.0750883370637894,-0.953976333141327,-0.290329217910767,0.0761911198496819,-0.985567271709442,-0.151169538497925,0.167547047138214,-0.106727831065655,-0.980069994926453,0.0750883370637894,-0.953976333141327,-0.290329217910767,0.14154189825058,-0.0146066937595606,-0.989824533462524,0.141124844551086,-0.0938606113195419,-0.985532343387604,0.14154189825058,-0.0146066937595606,-0.989824533462524,0.0750883370637894,-0.953976333141327,-0.290329217910767,-0.929729044437408,-0.103157132863998,-0.353500545024872,-0.932639539241791,-0.0311948545277119,-0.359458476305008,-0.933401703834534,-0.0379497185349464,-0.356820821762085,0.141124844551086,-0.0938606113195419,-0.985532343387604,0.0750883370637894,-0.953976333141327,-0.290329217910767,0.139124736189842,-0.194126203656197,-0.971060991287231,0.128973960876465,-0.318525552749634,-0.939099133014679,0.139124736189842,-0.194126203656197,-0.971060991287231, +0.0750883370637894,-0.953976333141327,-0.290329217910767,0.0553884170949459,-0.985375225543976,-0.161145716905594,0.0750883370637894,-0.953976333141327,-0.290329217910767,0.114370226860046,-0.408726811408997,-0.905462265014648,0.167547047138214,-0.106727831065655,-0.980069994926453,0.114370226860046,-0.408726811408997,-0.905462265014648,0.0750883370637894,-0.953976333141327,-0.290329217910767,-0.0437802709639072,-0.987951457500458,0.148443058133125,-0.00750885158777237,-0.993704259395599,0.111783556640148,0.084632471203804,-0.995257139205933,-0.0479647479951382,0.085670180618763,-0.987160384654999,-0.134815409779549,0.084632471203804,-0.995257139205933,-0.0479647479951382,-0.00750885158777237,-0.993704259395599,0.111783556640148,-0.0958796516060829,-0.962370872497559,0.254262626171112,-0.0346315652132034,-0.980542898178101,0.193226009607315,-0.00750885158777237,-0.993704259395599,0.111783556640148,-0.0199961457401514,-0.983454346656799,0.180049553513527,-0.00750885158777237,-0.993704259395599,0.111783556640148,-0.0346315652132034,-0.980542898178101,0.193226009607315,-0.0437802709639072,-0.987951457500458,0.148443058133125,-0.0958796516060829,-0.962370872497559,0.254262626171112,-0.00750885158777237,-0.993704259395599,0.111783556640148,0.0761649832129478,-0.997025370597839,-0.011805197224021,0.0784775391221046,-0.996784210205078,-0.0162074398249388,0.0756130740046501,-0.993188142776489,-0.0886574611067772,0.0985176712274551,-0.994011998176575,-0.0472705028951168,0.0756130740046501,-0.993188142776489,-0.0886574611067772,0.0784775391221046,-0.996784210205078,-0.0162074398249388,0.085670180618763,-0.987160384654999,-0.134815409779549,0.0553884170949459,-0.985375225543976,-0.161145716905594,0.084632471203804,-0.995257139205933,-0.0479647479951382,0.0985176712274551,-0.994011998176575,-0.0472705028951168,0.084632471203804,-0.995257139205933,-0.0479647479951382,0.0756130740046501,-0.993188142776489,-0.0886574611067772,0.0756130740046501,-0.993188142776489,-0.0886574611067772,0.084632471203804,-0.995257139205933,-0.0479647479951382, +0.0553884170949459,-0.985375225543976,-0.161145716905594,-0.0199961457401514,-0.983454346656799,0.180049553513527,0.070458672940731,-0.997512459754944,0.00213135010562837,-0.00750885158777237,-0.993704259395599,0.111783556640148,0.070458672940731,-0.997512459754944,0.00213135010562837,0.0326710343360901,-0.998683452606201,0.0395475625991821,-0.00750885158777237,-0.993704259395599,0.111783556640148,0.0326710343360901,-0.998683452606201,0.0395475625991821,0.0761911198496819,-0.985567271709442,-0.151169538497925,-0.00750885158777237,-0.993704259395599,0.111783556640148,0.085670180618763,-0.987160384654999,-0.134815409779549,-0.00750885158777237,-0.993704259395599,0.111783556640148,0.0761911198496819,-0.985567271709442,-0.151169538497925,0.0761649832129478,-0.997025370597839,-0.011805197224021,0.0544321313500404,-0.997021913528442,0.054630670696497,0.0784775391221046,-0.996784210205078,-0.0162074398249388,0.0985176712274551,-0.994011998176575,-0.0472705028951168,0.0784775391221046,-0.996784210205078,-0.0162074398249388,0.0544321313500404,-0.997021913528442,0.054630670696497,0.0244917683303356,-0.998126089572906,-0.0560768283903599,0.0756130740046501,-0.993188142776489,-0.0886574611067772,0.0553884170949459,-0.985375225543976,-0.161145716905594,0.0731413960456848,-0.993408441543579,0.0882619991898537,0.0544321313500404,-0.997021913528442,0.054630670696497,0.0652894973754883,-0.994263768196106,0.0847159847617149,0.0566396862268448,-0.996326148509979,0.0642350763082504,0.0652894973754883,-0.994263768196106,0.0847159847617149,0.0544321313500404,-0.997021913528442,0.054630670696497,-0.0100259566679597,-0.944054305553436,0.329637706279755,0.0113002257421613,-0.904222249984741,0.42691296339035,-0.0249142032116652,-0.957197725772858,0.288360744714737,-0.0437802709639072,-0.987951457500458,0.148443058133125,0.084632471203804,-0.995257139205933,-0.0479647479951382,0.0544321313500404,-0.997021913528442,0.054630670696497,0.0985176712274551,-0.994011998176575,-0.0472705028951168,0.0544321313500404,-0.997021913528442,0.054630670696497, +0.084632471203804,-0.995257139205933,-0.0479647479951382,0.0563903748989105,-0.991644680500031,0.11602221429348,-0.0958796516060829,-0.962370872497559,0.254262626171112,0.0544321313500404,-0.997021913528442,0.054630670696497,-0.0437802709639072,-0.987951457500458,0.148443058133125,0.0544321313500404,-0.997021913528442,0.054630670696497,-0.0958796516060829,-0.962370872497559,0.254262626171112,0.0563903748989105,-0.991644680500031,0.11602221429348,0.0544321313500404,-0.997021913528442,0.054630670696497,0.0731413960456848,-0.993408441543579,0.0882619991898537,-0.0311340726912022,-0.905423521995544,0.423366099596024,-0.0249142032116652,-0.957197725772858,0.288360744714737,-0.0221750903874636,-0.887982726097107,0.45934185385704,-0.0117101175710559,-0.873367309570313,0.486921370029449,-0.0221750903874636,-0.887982726097107,0.45934185385704,-0.0249142032116652,-0.957197725772858,0.288360744714737,0.0563903748989105,-0.991644680500031,0.11602221429348,0.0731413960456848,-0.993408441543579,0.0882619991898537,0.119386285543442,-0.991355776786804,0.0544123239815235,0.0244917683303356,-0.998126089572906,-0.0560768283903599,-0.0137078929692507,-0.998297691345215,-0.0566905923187733,0.00707105081528425,-0.98109358549118,0.193405136466026,-0.00224040471948683,-0.98701673746109,0.160602390766144,0.00707105081528425,-0.98109358549118,0.193405136466026,-0.0137078929692507,-0.998297691345215,-0.0566905923187733,-0.0137078929692507,-0.998297691345215,-0.0566905923187733,0.0553884170949459,-0.985375225543976,-0.161145716905594,0.114370226860046,-0.408726811408997,-0.905462265014648,-0.0142087880522013,-0.992826461791992,-0.11871749162674,-0.0137078929692507,-0.998297691345215,-0.0566905923187733,0.114370226860046,-0.408726811408997,-0.905462265014648,-0.00224040471948683,-0.98701673746109,0.160602390766144,-0.0137078929692507,-0.998297691345215,-0.0566905923187733,-0.0175001826137304,-0.998709142208099,0.0476851649582386,-0.0137078929692507,-0.998297691345215,-0.0566905923187733,-0.105193361639977,-0.583548665046692,-0.805236220359802, +-0.0175001826137304,-0.998709142208099,0.0476851649582386,-0.0142087880522013,-0.992826461791992,-0.11871749162674,-0.105193361639977,-0.583548665046692,-0.805236220359802,-0.0137078929692507,-0.998297691345215,-0.0566905923187733,-0.00649979617446661,-0.978475868701935,0.206258967518806,-0.0319113582372665,-0.973713040351868,0.225531786680222,0.00707105081528425,-0.98109358549118,0.193405136466026,-0.00142590526957065,-0.989108979701996,0.147178739309311,0.00707105081528425,-0.98109358549118,0.193405136466026,-0.0319113582372665,-0.973713040351868,0.225531786680222,0.0244917683303356,-0.998126089572906,-0.0560768283903599,0.00707105081528425,-0.98109358549118,0.193405136466026,-0.00142590526957065,-0.989108979701996,0.147178739309311,0.00510212825611234,-0.990849375724792,0.13487620651722,0.0490788072347641,-0.997786641120911,0.0448685400187969,-0.0319113582372665,-0.973713040351868,0.225531786680222,-0.0319113582372665,-0.973713040351868,0.225531786680222,0.0490788072347641,-0.997786641120911,0.0448685400187969,-0.00142590526957065,-0.989108979701996,0.147178739309311,0.0761649832129478,-0.997025370597839,-0.011805197224021,-0.00142590526957065,-0.989108979701996,0.147178739309311,0.0490788072347641,-0.997786641120911,0.0448685400187969,0.0244917683303356,-0.998126089572906,-0.0560768283903599,0.0553884170949459,-0.985375225543976,-0.161145716905594,-0.0137078929692507,-0.998297691345215,-0.0566905923187733,-0.0445839166641235,-0.978729009628296,0.200254261493683,-0.0319113582372665,-0.973713040351868,0.225531786680222,-0.0592380091547966,-0.963464260101318,0.261204063892365,-0.0592380091547966,-0.963464260101318,0.261204063892365,-0.0319113582372665,-0.973713040351868,0.225531786680222,-0.0191918350756168,-0.981124579906464,0.192422673106194,-0.0191918350756168,-0.981124579906464,0.192422673106194,-0.0319113582372665,-0.973713040351868,0.225531786680222,-0.00649979617446661,-0.978475868701935,0.206258967518806,0.0566396862268448,-0.996326148509979,0.0642350763082504,0.0544321313500404,-0.997021913528442,0.054630670696497, +0.0490788072347641,-0.997786641120911,0.0448685400187969,0.0761649832129478,-0.997025370597839,-0.011805197224021,0.0490788072347641,-0.997786641120911,0.0448685400187969,0.0544321313500404,-0.997021913528442,0.054630670696497,0.0244917683303356,-0.998126089572906,-0.0560768283903599,-0.00142590526957065,-0.989108979701996,0.147178739309311,0.0756130740046501,-0.993188142776489,-0.0886574611067772,0.0761649832129478,-0.997025370597839,-0.011805197224021,0.0756130740046501,-0.993188142776489,-0.0886574611067772,-0.00142590526957065,-0.989108979701996,0.147178739309311,-0.998137831687927,-0.0607152357697487,0.00588118191808462,-0.991737425327301,0.0037582297809422,-0.128230139613152,-0.998934864997864,-0.0453293658792973,-0.00862487498670816,-0.999256730079651,-0.0198974497616291,-0.0330190286040306,-0.998934864997864,-0.0453293658792973,-0.00862487498670816,-0.994956970214844,0.00553229078650475,-0.10015007853508,-0.998137831687927,-0.0607152357697487,0.00588118191808462,-0.998934864997864,-0.0453293658792973,-0.00862487498670816,-0.997395098209381,-0.0675842985510826,0.0252097602933645,-0.968371748924255,0.0304724927991629,-0.247644260525703,-0.969445109367371,0.0259053260087967,-0.243936881422997,-0.973365366458893,0.0301316436380148,-0.227271065115929,-0.0117101175710559,-0.873367309570313,0.486921370029449,-0.0249142032116652,-0.957197725772858,0.288360744714737,-0.0233348775655031,-0.816435039043427,0.576965689659119,0.0113002257421613,-0.904222249984741,0.42691296339035,-0.0233348775655031,-0.816435039043427,0.576965689659119,-0.0249142032116652,-0.957197725772858,0.288360744714737,-0.968371748924255,0.0304724927991629,-0.247644260525703,-0.970592081546783,0.0335710607469082,-0.238378092646599,-0.969445109367371,0.0259053260087967,-0.243936881422997,-0.994956970214844,0.00553229078650475,-0.10015007853508,-0.991737425327301,0.0037582297809422,-0.128230139613152,-0.968371748924255,0.0304724927991629,-0.247644260525703,-0.991737425327301,0.0037582297809422,-0.128230139613152,-0.992355406284332,0.00376891763880849,-0.123356193304062, +-0.970592081546783,0.0335710607469082,-0.238378092646599,-0.990388512611389,0.0115148052573204,-0.137833312153816,-0.970592081546783,0.0335710607469082,-0.238378092646599,-0.992355406284332,0.00376891763880849,-0.123356193304062,-0.97372955083847,0.0460969321429729,-0.222993209958076,-0.973365366458893,0.0301316436380148,-0.227271065115929,-0.97040867805481,0.0374653115868568,-0.238544195890427,-0.969445109367371,0.0259053260087967,-0.243936881422997,-0.97040867805481,0.0374653115868568,-0.238544195890427,-0.973365366458893,0.0301316436380148,-0.227271065115929,-0.968371748924255,0.0304724927991629,-0.247644260525703,-0.991737425327301,0.0037582297809422,-0.128230139613152,-0.970592081546783,0.0335710607469082,-0.238378092646599,-0.998137831687927,-0.0607152357697487,0.00588118191808462,-0.992355406284332,0.00376891763880849,-0.123356193304062,-0.991737425327301,0.0037582297809422,-0.128230139613152,-0.987728953361511,0.0234849471598864,-0.154402762651443,-0.994956970214844,0.00553229078650475,-0.10015007853508,-0.973365366458893,0.0301316436380148,-0.227271065115929,-0.973365366458893,0.0301316436380148,-0.227271065115929,-0.994956970214844,0.00553229078650475,-0.10015007853508,-0.968371748924255,0.0304724927991629,-0.247644260525703,-0.994956970214844,0.00553229078650475,-0.10015007853508,-0.998934864997864,-0.0453293658792973,-0.00862487498670816,-0.991737425327301,0.0037582297809422,-0.128230139613152,0.193604201078415,0.392061054706573,0.899336278438568,-0.00663282629102468,-0.411816269159317,0.911242783069611,-0.0233348775655031,-0.816435039043427,0.576965689659119,-0.0117101175710559,-0.873367309570313,0.486921370029449,-0.0233348775655031,-0.816435039043427,0.576965689659119,-0.00663282629102468,-0.411816269159317,0.911242783069611,0.00539570301771164,-0.982896864414215,0.184078097343445,-0.0238634422421455,-0.977343797683716,0.210308343172073,-0.0805352404713631,-0.957399964332581,0.277307659387589,-0.0132616348564625,-0.98305070400238,0.182853773236275,-0.0592380091547966,-0.963464260101318,0.261204063892365, +-0.0191918350756168,-0.981124579906464,0.192422673106194,-0.0473138466477394,-0.974326014518738,0.220114558935165,0.0222937986254692,-0.987353265285492,0.156960517168045,0.0652894973754883,-0.994263768196106,0.0847159847617149,0.037074651569128,-0.990512669086456,0.132326155900955,0.0586994327604771,-0.990958094596863,0.120649866759777,0.0222937986254692,-0.987353265285492,0.156960517168045,0.0652894973754883,-0.994263768196106,0.0847159847617149,0.0566396862268448,-0.996326148509979,0.0642350763082504,-0.0445839166641235,-0.978729009628296,0.200254261493683,-0.0445839166641235,-0.978729009628296,0.200254261493683,0.0566396862268448,-0.996326148509979,0.0642350763082504,-0.0319113582372665,-0.973713040351868,0.225531786680222,0.00510212825611234,-0.990849375724792,0.13487620651722,-0.0319113582372665,-0.973713040351868,0.225531786680222,0.0566396862268448,-0.996326148509979,0.0642350763082504,0.0222937986254692,-0.987353265285492,0.156960517168045,0.0731413960456848,-0.993408441543579,0.0882619991898537,0.0652894973754883,-0.994263768196106,0.0847159847617149,0.00843244884163141,-0.986494600772858,0.163577154278755,-0.0805352404713631,-0.957399964332581,0.277307659387589,-0.0132616348564625,-0.98305070400238,0.182853773236275,-0.106612287461758,-0.938352465629578,0.328828930854797,-0.0132616348564625,-0.98305070400238,0.182853773236275,-0.0805352404713631,-0.957399964332581,0.277307659387589,0.00510212825611234,-0.990849375724792,0.13487620651722,0.0566396862268448,-0.996326148509979,0.0642350763082504,0.0490788072347641,-0.997786641120911,0.0448685400187969,-0.0238634422421455,-0.977343797683716,0.210308343172073,-0.0473138466477394,-0.974326014518738,0.220114558935165,-0.0805352404713631,-0.957399964332581,0.277307659387589,-0.0592380091547966,-0.963464260101318,0.261204063892365,-0.0805352404713631,-0.957399964332581,0.277307659387589,-0.0473138466477394,-0.974326014518738,0.220114558935165,-0.106612287461758,-0.938352465629578,0.328828930854797,-0.0805352404713631,-0.957399964332581,0.277307659387589,-0.0592380091547966,-0.963464260101318,0.261204063892365, +-0.0473138466477394,-0.974326014518738,0.220114558935165,0.0652894973754883,-0.994263768196106,0.0847159847617149,-0.0445839166641235,-0.978729009628296,0.200254261493683,-0.106612287461758,-0.938352465629578,0.328828930854797,-0.0592380091547966,-0.963464260101318,0.261204063892365,-0.0132616348564625,-0.98305070400238,0.182853773236275,0.109708786010742,-0.991255879402161,0.0733200237154961,0.119386285543442,-0.991355776786804,0.0544123239815235,0.0586994327604771,-0.990958094596863,0.120649866759777,0.0731413960456848,-0.993408441543579,0.0882619991898537,0.0586994327604771,-0.990958094596863,0.120649866759777,0.119386285543442,-0.991355776786804,0.0544123239815235,-0.0473138466477394,-0.974326014518738,0.220114558935165,-0.0445839166641235,-0.978729009628296,0.200254261493683,-0.0592380091547966,-0.963464260101318,0.261204063892365,0.0222937986254692,-0.987353265285492,0.156960517168045,0.0586994327604771,-0.990958094596863,0.120649866759777,0.0731413960456848,-0.993408441543579,0.0882619991898537,-0.0473138466477394,-0.974326014518738,0.220114558935165,-0.0477205812931061,-0.969277501106262,0.24129630625248,0.0222937986254692,-0.987353265285492,0.156960517168045,-0.0238634422421455,-0.977343797683716,0.210308343172073,-0.0477205812931061,-0.969277501106262,0.24129630625248,-0.0473138466477394,-0.974326014518738,0.220114558935165,-0.0210817810148001,-0.966991126537323,0.25393670797348,-0.0190667975693941,-0.96084851026535,0.27641761302948,-0.0249142032116652,-0.957197725772858,0.288360744714737,-0.0311340726912022,-0.905423521995544,0.423366099596024,-0.0210817810148001,-0.966991126537323,0.25393670797348,-0.0249142032116652,-0.957197725772858,0.288360744714737,-0.0593573525547981,-0.956197559833527,0.286641120910645,-0.015119070187211,-0.978723883628845,0.204624384641647,0.00539570301771164,-0.982896864414215,0.184078097343445,0.00539570301771164,-0.982896864414215,0.184078097343445,-0.015119070187211,-0.978723883628845,0.204624384641647,-0.0238634422421455,-0.977343797683716,0.210308343172073,0.00843244884163141,-0.986494600772858,0.163577154278755, +0.00539570301771164,-0.982896864414215,0.184078097343445,-0.0805352404713631,-0.957399964332581,0.277307659387589,-0.529085874557495,-0.833656549453735,0.158382430672646,-0.505714058876038,-0.841689229011536,0.189242303371429,-0.577553451061249,-0.798709630966187,0.168805077672005,-0.730785369873047,-0.673162519931793,0.113159358501434,-0.577553451061249,-0.798709630966187,0.168805077672005,-0.505714058876038,-0.841689229011536,0.189242303371429,-0.623110353946686,-0.775758564472198,0.0996607542037964,-0.66782808303833,-0.74257230758667,0.0509129986166954,-0.505714058876038,-0.841689229011536,0.189242303371429,-0.663701891899109,-0.738616108894348,0.11809316277504,-0.505714058876038,-0.841689229011536,0.189242303371429,-0.66782808303833,-0.74257230758667,0.0509129986166954,-0.914913773536682,-0.296243250370026,0.274176776409149,-0.991343021392822,-0.10967592895031,0.0721822306513786,-0.605469346046448,-0.561288833618164,0.56423556804657,-0.701233744621277,-0.516670167446136,0.491246581077576,-0.605469346046448,-0.561288833618164,0.56423556804657,-0.991343021392822,-0.10967592895031,0.0721822306513786,-0.774921298027039,-0.413490951061249,0.478039920330048,-0.819683492183685,-0.394674003124237,0.415152490139008,-0.991343021392822,-0.10967592895031,0.0721822306513786,-0.701233744621277,-0.516670167446136,0.491246581077576,-0.991343021392822,-0.10967592895031,0.0721822306513786,-0.819683492183685,-0.394674003124237,0.415152490139008,-0.997395098209381,-0.0675842985510826,0.0252097602933645,-0.996541261672974,-0.0706425234675407,0.0437625795602798,-0.996033668518066,-0.0753696784377098,0.0472920835018158,-0.996033668518066,-0.0753696784377098,0.0472920835018158,-0.994949877262115,-0.0933206230401993,0.0369600728154182,-0.997395098209381,-0.0675842985510826,0.0252097602933645,-0.633522391319275,-0.569139063358307,0.524147033691406,-0.981466054916382,-0.147139593958855,0.122777737677097,-0.933569073677063,-0.266918540000916,0.239172071218491,-0.991343021392822,-0.10967592895031,0.0721822306513786,-0.933569073677063,-0.266918540000916,0.239172071218491, +-0.981466054916382,-0.147139593958855,0.122777737677097,-0.383190244436264,-0.575422167778015,0.722533464431763,-0.420173019170761,-0.657308340072632,0.625620067119598,-0.199849992990494,-0.857707262039185,0.473706811666489,-0.842415332794189,0.00937615428119898,0.538747310638428,-0.969961643218994,-0.014077240601182,0.242850333452225,-0.175378516316414,-0.888131201267242,0.424812287092209,-0.650378704071045,-0.61406546831131,0.447136640548706,-0.175378516316414,-0.888131201267242,0.424812287092209,-0.969961643218994,-0.014077240601182,0.242850333452225,-0.663701891899109,-0.738616108894348,0.11809316277504,-0.805812180042267,-0.5921231508255,0.00754107534885406,-0.505714058876038,-0.841689229011536,0.189242303371429,-0.730785369873047,-0.673162519931793,0.113159358501434,-0.505714058876038,-0.841689229011536,0.189242303371429,-0.805812180042267,-0.5921231508255,0.00754107534885406,-0.940985977649689,-0.239988505840302,0.238643959164619,-0.989835381507874,-0.103850148618221,0.097165584564209,-0.981466054916382,-0.147139593958855,0.122777737677097,-0.991343021392822,-0.10967592895031,0.0721822306513786,-0.981466054916382,-0.147139593958855,0.122777737677097,-0.989835381507874,-0.103850148618221,0.097165584564209,-0.985791325569153,-0.136716023087502,0.0975921526551247,-0.961652815341949,-0.217290297150612,0.167358741164207,-0.989835381507874,-0.103850148618221,0.097165584564209,-0.994949877262115,-0.0933206230401993,0.0369600728154182,-0.989835381507874,-0.103850148618221,0.097165584564209,-0.961652815341949,-0.217290297150612,0.167358741164207,-0.991343021392822,-0.10967592895031,0.0721822306513786,-0.989835381507874,-0.103850148618221,0.097165584564209,-0.994949877262115,-0.0933206230401993,0.0369600728154182,-0.0190667975693941,-0.96084851026535,0.27641761302948,-0.0210817810148001,-0.966991126537323,0.25393670797348,-0.0223111193627119,-0.978632748126984,0.204402223229408,-0.914913773536682,-0.296243250370026,0.274176776409149,-0.933569073677063,-0.266918540000916,0.239172071218491,-0.991343021392822,-0.10967592895031,0.0721822306513786, +-0.199849992990494,-0.857707262039185,0.473706811666489,-0.420173019170761,-0.657308340072632,0.625620067119598,-0.175378516316414,-0.888131201267242,0.424812287092209,-0.842415332794189,0.00937615428119898,0.538747310638428,-0.175378516316414,-0.888131201267242,0.424812287092209,-0.420173019170761,-0.657308340072632,0.625620067119598,-0.905626058578491,-0.383904099464417,0.180164113640785,-0.191220760345459,-0.927215993404388,0.322032928466797,-0.932642161846161,-0.235565811395645,0.27329021692276,-0.932642161846161,-0.235565811395645,0.27329021692276,-0.191220760345459,-0.927215993404388,0.322032928466797,-0.175378516316414,-0.888131201267242,0.424812287092209,-0.1405318826437,-0.941263675689697,0.307040095329285,-0.175378516316414,-0.888131201267242,0.424812287092209,-0.191220760345459,-0.927215993404388,0.322032928466797,-0.650378704071045,-0.61406546831131,0.447136640548706,-0.932642161846161,-0.235565811395645,0.27329021692276,-0.175378516316414,-0.888131201267242,0.424812287092209,-0.996033668518066,-0.0753696784377098,0.0472920835018158,-0.991343021392822,-0.10967592895031,0.0721822306513786,-0.994949877262115,-0.0933206230401993,0.0369600728154182,-0.774921298027039,-0.413490951061249,0.478039920330048,-0.991343021392822,-0.10967592895031,0.0721822306513786,-0.887324512004852,-0.317378759384155,0.334553331136703,-0.887324512004852,-0.317378759384155,0.334553331136703,-0.991343021392822,-0.10967592895031,0.0721822306513786,-0.996033668518066,-0.0753696784377098,0.0472920835018158,-0.750214159488678,-0.428136259317398,0.503863096237183,-0.887324512004852,-0.317378759384155,0.334553331136703,-0.996033668518066,-0.0753696784377098,0.0472920835018158,-0.998934864997864,-0.0453293658792973,-0.00862487498670816,-0.996541261672974,-0.0706425234675407,0.0437625795602798,-0.997395098209381,-0.0675842985510826,0.0252097602933645,-0.999256730079651,-0.0198974497616291,-0.0330190286040306,-0.996541261672974,-0.0706425234675407,0.0437625795602798,-0.998934864997864,-0.0453293658792973,-0.00862487498670816,-0.997395098209381,-0.0675842985510826,0.0252097602933645, +-0.994949877262115,-0.0933206230401993,0.0369600728154182,-0.998137831687927,-0.0607152357697487,0.00588118191808462,0.00539570301771164,-0.982896864414215,0.184078097343445,-0.0848338305950165,-0.944593966007233,0.317089319229126,-0.0593573525547981,-0.956197559833527,0.286641120910645,0.157754018902779,-0.986359477043152,0.0469970405101776,0.126538753509521,-0.989381909370422,0.0714939683675766,0.207341745495796,-0.977672100067139,0.0341570153832436,-0.0238634422421455,-0.977343797683716,0.210308343172073,-0.015119070187211,-0.978723883628845,0.204624384641647,0.037074651569128,-0.990512669086456,0.132326155900955,-0.015119070187211,-0.978723883628845,0.204624384641647,-0.018229179084301,-0.980105638504028,0.197637617588043,0.037074651569128,-0.990512669086456,0.132326155900955,-0.018229179084301,-0.980105638504028,0.197637617588043,0.0308257862925529,-0.990074634552002,0.13712041079998,0.037074651569128,-0.990512669086456,0.132326155900955,0.157754018902779,-0.986359477043152,0.0469970405101776,0.0586994327604771,-0.990958094596863,0.120649866759777,0.126538753509521,-0.989381909370422,0.0714939683675766,-0.0477205812931061,-0.969277501106262,0.24129630625248,-0.0238634422421455,-0.977343797683716,0.210308343172073,0.037074651569128,-0.990512669086456,0.132326155900955,0.126538753509521,-0.989381909370422,0.0714939683675766,0.204528480768204,-0.977395057678223,0.0535451397299767,0.0495129153132439,-0.993119955062866,0.106119051575661,0.111874416470528,-0.988406658172607,0.102647185325623,0.0495129153132439,-0.993119955062866,0.106119051575661,0.204528480768204,-0.977395057678223,0.0535451397299767,0.037074651569128,-0.990512669086456,0.132326155900955,0.0308257862925529,-0.990074634552002,0.13712041079998,0.0586994327604771,-0.990958094596863,0.120649866759777,-0.0477205812931061,-0.969277501106262,0.24129630625248,0.037074651569128,-0.990512669086456,0.132326155900955,0.0222937986254692,-0.987353265285492,0.156960517168045,0.0586994327604771,-0.990958094596863,0.120649866759777,0.0308257862925529,-0.990074634552002,0.13712041079998, +0.0381866432726383,-0.989205777645111,0.14147013425827,-0.0924414247274399,-0.97186154127121,0.216656014323235,0.0381866432726383,-0.989205777645111,0.14147013425827,0.0308257862925529,-0.990074634552002,0.13712041079998,0.126538753509521,-0.989381909370422,0.0714939683675766,0.0381866432726383,-0.989205777645111,0.14147013425827,0.204528480768204,-0.977395057678223,0.0535451397299767,0.111874416470528,-0.988406658172607,0.102647185325623,0.204528480768204,-0.977395057678223,0.0535451397299767,0.0381866432726383,-0.989205777645111,0.14147013425827,-0.623110353946686,-0.775758564472198,0.0996607542037964,-0.505714058876038,-0.841689229011536,0.189242303371429,-0.359869629144669,-0.899995028972626,0.245973318815231,-0.529085874557495,-0.833656549453735,0.158382430672646,-0.359869629144669,-0.899995028972626,0.245973318815231,-0.505714058876038,-0.841689229011536,0.189242303371429,-0.240664094686508,-0.948612213134766,0.205464571714401,-0.577553451061249,-0.798709630966187,0.168805077672005,-0.262267619371414,-0.949610650539398,0.171626016497612,-0.216811299324036,-0.943150162696838,0.25191393494606,-0.359869629144669,-0.899995028972626,0.245973318815231,-0.152899265289307,-0.962956070899963,0.222120344638824,-0.152899265289307,-0.962956070899963,0.222120344638824,-0.359869629144669,-0.899995028972626,0.245973318815231,-0.577553451061249,-0.798709630966187,0.168805077672005,-0.529085874557495,-0.833656549453735,0.158382430672646,-0.577553451061249,-0.798709630966187,0.168805077672005,-0.359869629144669,-0.899995028972626,0.245973318815231,-0.240664094686508,-0.948612213134766,0.205464571714401,-0.152899265289307,-0.962956070899963,0.222120344638824,-0.577553451061249,-0.798709630966187,0.168805077672005,-0.216811299324036,-0.943150162696838,0.25191393494606,-0.191220760345459,-0.927215993404388,0.322032928466797,-0.561801612377167,-0.799683928489685,0.211860209703445,-0.905626058578491,-0.383904099464417,0.180164113640785,-0.561801612377167,-0.799683928489685,0.211860209703445,-0.191220760345459,-0.927215993404388,0.322032928466797, +0.0586994327604771,-0.990958094596863,0.120649866759777,0.0381866432726383,-0.989205777645111,0.14147013425827,0.126538753509521,-0.989381909370422,0.0714939683675766,-0.623110353946686,-0.775758564472198,0.0996607542037964,-0.359869629144669,-0.899995028972626,0.245973318815231,-0.561801612377167,-0.799683928489685,0.211860209703445,-0.216811299324036,-0.943150162696838,0.25191393494606,-0.561801612377167,-0.799683928489685,0.211860209703445,-0.359869629144669,-0.899995028972626,0.245973318815231,-0.730785369873047,-0.673162519931793,0.113159358501434,-0.891550421714783,-0.435404658317566,0.124741837382317,-0.577553451061249,-0.798709630966187,0.168805077672005,-0.271930634975433,-0.952758610248566,0.135295778512955,-0.262267619371414,-0.949610650539398,0.171626016497612,-0.891550421714783,-0.435404658317566,0.124741837382317,-0.891550421714783,-0.435404658317566,0.124741837382317,-0.262267619371414,-0.949610650539398,0.171626016497612,-0.577553451061249,-0.798709630966187,0.168805077672005,0.157754018902779,-0.986359477043152,0.0469970405101776,0.207341745495796,-0.977672100067139,0.0341570153832436,0.0495129153132439,-0.993119955062866,0.106119051575661,0.126538753509521,-0.989381909370422,0.0714939683675766,0.0495129153132439,-0.993119955062866,0.106119051575661,0.207341745495796,-0.977672100067139,0.0341570153832436,-0.199849992990494,-0.857707262039185,0.473706811666489,-0.015119070187211,-0.978723883628845,0.204624384641647,-0.0593573525547981,-0.956197559833527,0.286641120910645,-0.0924414247274399,-0.97186154127121,0.216656014323235,-0.152899265289307,-0.962956070899963,0.222120344638824,0.0381866432726383,-0.989205777645111,0.14147013425827,-0.216811299324036,-0.943150162696838,0.25191393494606,-0.152899265289307,-0.962956070899963,0.222120344638824,-0.0924414247274399,-0.97186154127121,0.216656014323235,0.111874416470528,-0.988406658172607,0.102647185325623,0.0381866432726383,-0.989205777645111,0.14147013425827,-0.152899265289307,-0.962956070899963,0.222120344638824,-0.216811299324036,-0.943150162696838,0.25191393494606, +-0.0924414247274399,-0.97186154127121,0.216656014323235,-0.191220760345459,-0.927215993404388,0.322032928466797,-0.191220760345459,-0.927215993404388,0.322032928466797,-0.0924414247274399,-0.97186154127121,0.216656014323235,-0.018229179084301,-0.980105638504028,0.197637617588043,-0.018229179084301,-0.980105638504028,0.197637617588043,-0.0924414247274399,-0.97186154127121,0.216656014323235,0.0308257862925529,-0.990074634552002,0.13712041079998,0.119081288576126,-0.988654613494873,0.0915521904826164,0.0495129153132439,-0.993119955062866,0.106119051575661,0.123659193515778,-0.9894939661026,0.0749005973339081,0.111874416470528,-0.988406658172607,0.102647185325623,0.123659193515778,-0.9894939661026,0.0749005973339081,0.0495129153132439,-0.993119955062866,0.106119051575661,0.157754018902779,-0.986359477043152,0.0469970405101776,0.116292662918568,-0.990228831768036,0.0769603326916695,0.0586994327604771,-0.990958094596863,0.120649866759777,0.109708786010742,-0.991255879402161,0.0733200237154961,0.0586994327604771,-0.990958094596863,0.120649866759777,0.116292662918568,-0.990228831768036,0.0769603326916695,-0.240664094686508,-0.948612213134766,0.205464571714401,0.123659193515778,-0.9894939661026,0.0749005973339081,-0.152899265289307,-0.962956070899963,0.222120344638824,0.111874416470528,-0.988406658172607,0.102647185325623,-0.152899265289307,-0.962956070899963,0.222120344638824,0.123659193515778,-0.9894939661026,0.0749005973339081,-0.1405318826437,-0.941263675689697,0.307040095329285,-0.015119070187211,-0.978723883628845,0.204624384641647,-0.175378516316414,-0.888131201267242,0.424812287092209,-0.199849992990494,-0.857707262039185,0.473706811666489,-0.175378516316414,-0.888131201267242,0.424812287092209,-0.015119070187211,-0.978723883628845,0.204624384641647,-0.018229179084301,-0.980105638504028,0.197637617588043,-0.015119070187211,-0.978723883628845,0.204624384641647,-0.191220760345459,-0.927215993404388,0.322032928466797,-0.1405318826437,-0.941263675689697,0.307040095329285,-0.191220760345459,-0.927215993404388,0.322032928466797, +-0.015119070187211,-0.978723883628845,0.204624384641647,0.157754018902779,-0.986359477043152,0.0469970405101776,0.0495129153132439,-0.993119955062866,0.106119051575661,0.116292662918568,-0.990228831768036,0.0769603326916695,0.109708786010742,-0.991255879402161,0.0733200237154961,0.116292662918568,-0.990228831768036,0.0769603326916695,0.0495129153132439,-0.993119955062866,0.106119051575661,-0.27328234910965,-0.961097538471222,-0.0401054210960865,-0.251538217067719,-0.967146992683411,-0.0368160791695118,-0.480910331010818,-0.874981880187988,-0.0559651926159859,-0.251538217067719,-0.967146992683411,-0.0368160791695118,-0.351019740104675,-0.935440361499786,-0.0416703894734383,-0.480910331010818,-0.874981880187988,-0.0559651926159859,-0.480910331010818,-0.874981880187988,-0.0559651926159859,-0.351019740104675,-0.935440361499786,-0.0416703894734383,-0.541786551475525,-0.840422034263611,-0.0125793963670731,-0.330371767282486,-0.942655980587006,-0.0474807471036911,-0.541786551475525,-0.840422034263611,-0.0125793963670731,-0.351019740104675,-0.935440361499786,-0.0416703894734383,-0.844475507736206,-0.534174025058746,-0.0389784276485443,-0.480910331010818,-0.874981880187988,-0.0559651926159859,-0.541786551475525,-0.840422034263611,-0.0125793963670731,-0.161834478378296,-0.98666787147522,-0.0172086954116821,-0.11967533826828,-0.992734491825104,0.0124930739402771,-0.874293804168701,-0.478719264268875,-0.0802390277385712,-0.181667536497116,-0.983206689357758,-0.0173646882176399,-0.11967533826828,-0.992734491825104,0.0124930739402771,-0.161834478378296,-0.98666787147522,-0.0172086954116821,-0.282375305891037,-0.958724617958069,-0.0333352908492088,-0.0809344798326492,-0.995843231678009,0.0417843051254749,-0.00199924688786268,-0.998569130897522,0.0534393861889839,-0.181667536497116,-0.983206689357758,-0.0173646882176399,-0.00199924688786268,-0.998569130897522,0.0534393861889839,-0.11967533826828,-0.992734491825104,0.0124930739402771,-0.11967533826828,-0.992734491825104,0.0124930739402771,-0.00199924688786268,-0.998569130897522,0.0534393861889839, +-0.0809344798326492,-0.995843231678009,0.0417843051254749,-0.161834478378296,-0.98666787147522,-0.0172086954116821,-0.874293804168701,-0.478719264268875,-0.0802390277385712,-0.19065272808075,-0.980657517910004,-0.0442993640899658,-0.913208842277527,-0.380097180604935,0.146886840462685,-0.541786551475525,-0.840422034263611,-0.0125793963670731,-0.874293804168701,-0.478719264268875,-0.0802390277385712,-0.19065272808075,-0.980657517910004,-0.0442993640899658,-0.874293804168701,-0.478719264268875,-0.0802390277385712,-0.330371767282486,-0.942655980587006,-0.0474807471036911,-0.330371767282486,-0.942655980587006,-0.0474807471036911,-0.874293804168701,-0.478719264268875,-0.0802390277385712,-0.541786551475525,-0.840422034263611,-0.0125793963670731,-0.913208842277527,-0.380097180604935,0.146886840462685,-0.943144202232361,-0.301370650529861,0.140195608139038,-0.541786551475525,-0.840422034263611,-0.0125793963670731,-0.844475507736206,-0.534174025058746,-0.0389784276485443,-0.541786551475525,-0.840422034263611,-0.0125793963670731,-0.943144202232361,-0.301370650529861,0.140195608139038,-0.0127023980021477,-0.976593375205994,0.214718788862228,-0.00224040471948683,-0.98701673746109,0.160602390766144,-0.00958019495010376,-0.973230004310608,0.229633927345276,0.0644725039601326,-0.885426580905914,0.460285872220993,0.476759940385818,-0.445154011249542,0.757982790470123,0.157213181257248,-0.367205619812012,0.91675740480423,0.476451873779297,-0.0886028558015823,0.874724626541138,0.157213181257248,-0.367205619812012,0.91675740480423,0.476759940385818,-0.445154011249542,0.757982790470123,-0.0751855298876762,-0.996567964553833,0.0346346609294415,-0.0428255125880241,-0.988669693470001,0.143868863582611,0.00873261783272028,-0.968370795249939,0.249363094568253,-0.0127023980021477,-0.976593375205994,0.214718788862228,0.00873261783272028,-0.968370795249939,0.249363094568253,-0.0428255125880241,-0.988669693470001,0.143868863582611,0.00873261783272028,-0.968370795249939,0.249363094568253,-0.00958019495010376,-0.973230004310608,0.229633927345276, +-0.0583012513816357,-0.987773478031158,0.144584611058235,-0.0127023980021477,-0.976593375205994,0.214718788862228,-0.00958019495010376,-0.973230004310608,0.229633927345276,0.00873261783272028,-0.968370795249939,0.249363094568253,-0.0583012513816357,-0.987773478031158,0.144584611058235,-0.0564950406551361,-0.998258769512177,-0.016963193193078,-0.108117915689945,-0.985924422740936,-0.127529144287109,-0.0428255125880241,-0.988669693470001,0.143868863582611,-0.0515638887882233,-0.99822735786438,0.0297202318906784,-0.0127023980021477,-0.976593375205994,0.214718788862228,-0.0751855298876762,-0.996567964553833,0.0346346609294415,0.00873261783272028,-0.968370795249939,0.249363094568253,-0.0420967303216457,-0.993855655193329,0.102366290986538,-0.19065272808075,-0.980657517910004,-0.0442993640899658,-0.213942095637321,-0.976336598396301,-0.0315523371100426,-0.194906488060951,-0.980552017688751,-0.0230043362826109,-0.36591711640358,-0.923616290092468,-0.114183008670807,-0.194906488060951,-0.980552017688751,-0.0230043362826109,-0.33623194694519,-0.941240906715393,-0.0318384803831577,-0.0583529472351074,-0.99765956401825,0.0356433130800724,-0.396498829126358,-0.910451173782349,-0.11775978654623,-0.103852942585945,-0.994396090507507,0.0197772309184074,-0.33623194694519,-0.941240906715393,-0.0318384803831577,-0.103852942585945,-0.994396090507507,0.0197772309184074,-0.396498829126358,-0.910451173782349,-0.11775978654623,-0.181667536497116,-0.983206689357758,-0.0173646882176399,-0.36591711640358,-0.923616290092468,-0.114183008670807,-0.335141539573669,-0.938155055046082,-0.0868636220693588,-0.330940634012222,-0.937013924121857,-0.111728057265282,-0.335141539573669,-0.938155055046082,-0.0868636220693588,-0.36591711640358,-0.923616290092468,-0.114183008670807,-0.19065272808075,-0.980657517910004,-0.0442993640899658,-0.194906488060951,-0.980552017688751,-0.0230043362826109,-0.161834478378296,-0.98666787147522,-0.0172086954116821,-0.36591711640358,-0.923616290092468,-0.114183008670807,-0.161834478378296,-0.98666787147522,-0.0172086954116821, +-0.194906488060951,-0.980552017688751,-0.0230043362826109,-0.33623194694519,-0.941240906715393,-0.0318384803831577,-0.130658954381943,-0.990787029266357,0.0356268435716629,-0.103852942585945,-0.994396090507507,0.0197772309184074,-0.36591711640358,-0.923616290092468,-0.114183008670807,-0.33623194694519,-0.941240906715393,-0.0318384803831577,-0.396498829126358,-0.910451173782349,-0.11775978654623,-0.181667536497116,-0.983206689357758,-0.0173646882176399,-0.161834478378296,-0.98666787147522,-0.0172086954116821,-0.36591711640358,-0.923616290092468,-0.114183008670807,-0.0583529472351074,-0.99765956401825,0.0356433130800724,-0.0750706717371941,-0.996138155460358,0.0455324649810791,-0.396498829126358,-0.910451173782349,-0.11775978654623,-0.144665703177452,-0.989471912384033,-0.00416123168542981,-0.396498829126358,-0.910451173782349,-0.11775978654623,-0.0750706717371941,-0.996138155460358,0.0455324649810791,0.227016806602478,-0.790714383125305,0.568536937236786,0.242063522338867,-0.824967741966248,0.510718643665314,0.476759940385818,-0.445154011249542,0.757982790470123,0.571177184581757,-0.548584282398224,0.610583364963531,0.476759940385818,-0.445154011249542,0.757982790470123,0.242063522338867,-0.824967741966248,0.510718643665314,-0.330371767282486,-0.942655980587006,-0.0474807471036911,-0.351019740104675,-0.935440361499786,-0.0416703894734383,-0.19065272808075,-0.980657517910004,-0.0442993640899658,-0.251538217067719,-0.967146992683411,-0.0368160791695118,-0.19065272808075,-0.980657517910004,-0.0442993640899658,-0.351019740104675,-0.935440361499786,-0.0416703894734383,-0.181667536497116,-0.983206689357758,-0.0173646882176399,-0.335141539573669,-0.938155055046082,-0.0868636220693588,-0.156246677041054,-0.987011790275574,-0.0373488627374172,-0.330940634012222,-0.937013924121857,-0.111728057265282,-0.156246677041054,-0.987011790275574,-0.0373488627374172,-0.335141539573669,-0.938155055046082,-0.0868636220693588,0.000812494894489646,-0.999945521354675,0.0104107381775975,-0.181667536497116,-0.983206689357758,-0.0173646882176399, +-0.156246677041054,-0.987011790275574,-0.0373488627374172,-0.0884778276085854,-0.995485961437225,0.0343435518443584,-0.130658954381943,-0.990787029266357,0.0356268435716629,-0.194906488060951,-0.980552017688751,-0.0230043362826109,-0.33623194694519,-0.941240906715393,-0.0318384803831577,-0.194906488060951,-0.980552017688751,-0.0230043362826109,-0.130658954381943,-0.990787029266357,0.0356268435716629,-0.0428255125880241,-0.988669693470001,0.143868863582611,-0.0999127477407455,-0.993807554244995,-0.0486230254173279,-0.0515638887882233,-0.99822735786438,0.0297202318906784,-0.118189781904221,-0.988785624504089,-0.0912922844290733,-0.0592952407896519,-0.997365593910217,0.0417848117649555,-0.0772086828947067,-0.9965660572052,0.0299149658530951,-0.308404445648193,-0.941293060779572,-0.137310057878494,0.0293235592544079,-0.990318179130554,0.13568389415741,-0.0592952407896519,-0.997365593910217,0.0417848117649555,-0.0772086828947067,-0.9965660572052,0.0299149658530951,-0.0592952407896519,-0.997365593910217,0.0417848117649555,0.0132295023649931,-0.994622826576233,0.102716147899628,0.0132295023649931,-0.994622826576233,0.102716147899628,-0.0592952407896519,-0.997365593910217,0.0417848117649555,0.0293235592544079,-0.990318179130554,0.13568389415741,0.266336053609848,-0.949434518814087,0.166250914335251,0.101008951663971,-0.986131846904755,0.131686314940453,-0.103852942585945,-0.994396090507507,0.0197772309184074,-0.0583529472351074,-0.99765956401825,0.0356433130800724,-0.103852942585945,-0.994396090507507,0.0197772309184074,0.101008951663971,-0.986131846904755,0.131686314940453,-0.0583529472351074,-0.99765956401825,0.0356433130800724,0.0293235592544079,-0.990318179130554,0.13568389415741,-0.0750706717371941,-0.996138155460358,0.0455324649810791,-0.144665703177452,-0.989471912384033,-0.00416123168542981,-0.0750706717371941,-0.996138155460358,0.0455324649810791,0.0293235592544079,-0.990318179130554,0.13568389415741,0.0132295023649931,-0.994622826576233,0.102716147899628,0.0293235592544079,-0.990318179130554,0.13568389415741,0.101008951663971,-0.986131846904755,0.131686314940453, +-0.0583529472351074,-0.99765956401825,0.0356433130800724,0.101008951663971,-0.986131846904755,0.131686314940453,0.0293235592544079,-0.990318179130554,0.13568389415741,-0.118189781904221,-0.988785624504089,-0.0912922844290733,-0.077680692076683,-0.996947288513184,-0.0078749293461442,-0.0592952407896519,-0.997365593910217,0.0417848117649555,-0.0592952407896519,-0.997365593910217,0.0417848117649555,-0.077680692076683,-0.996947288513184,-0.0078749293461442,-0.0999127477407455,-0.993807554244995,-0.0486230254173279,-0.0285321436822414,-0.998241186141968,0.051966056227684,-0.111117631196976,-0.993788123130798,-0.00618398282676935,-0.0486186370253563,-0.998002886772156,0.0403310880064964,-0.148495614528656,-0.988342702388763,-0.0335826203227043,-0.111117631196976,-0.993788123130798,-0.00618398282676935,-0.0285321436822414,-0.998241186141968,0.051966056227684,-0.0671180412173271,-0.997350037097931,0.0280734952539206,-0.077680692076683,-0.996947288513184,-0.0078749293461442,-0.0772086828947067,-0.9965660572052,0.0299149658530951,-0.118189781904221,-0.988785624504089,-0.0912922844290733,-0.0772086828947067,-0.9965660572052,0.0299149658530951,-0.077680692076683,-0.996947288513184,-0.0078749293461442,-0.122538730502129,-0.992434799671173,-0.00758593622595072,-0.0671180412173271,-0.997350037097931,0.0280734952539206,-0.0772086828947067,-0.9965660572052,0.0299149658530951,-0.144665703177452,-0.989471912384033,-0.00416123168542981,-0.197611838579178,-0.97877562046051,-0.0542957410216331,-0.396498829126358,-0.910451173782349,-0.11775978654623,-0.308404445648193,-0.941293060779572,-0.137310057878494,-0.396498829126358,-0.910451173782349,-0.11775978654623,-0.197611838579178,-0.97877562046051,-0.0542957410216331,-0.330940634012222,-0.937013924121857,-0.111728057265282,-0.36591711640358,-0.923616290092468,-0.114183008670807,-0.308404445648193,-0.941293060779572,-0.137310057878494,-0.36591711640358,-0.923616290092468,-0.114183008670807,-0.396498829126358,-0.910451173782349,-0.11775978654623,-0.308404445648193,-0.941293060779572,-0.137310057878494, +0.0132295023649931,-0.994622826576233,0.102716147899628,-0.0486186370253563,-0.998002886772156,0.0403310880064964,-0.0772086828947067,-0.9965660572052,0.0299149658530951,-0.207553341984749,-0.972334980964661,-0.107174813747406,-0.308404445648193,-0.941293060779572,-0.137310057878494,-0.0592952407896519,-0.997365593910217,0.0417848117649555,-0.0486186370253563,-0.998002886772156,0.0403310880064964,-0.111117631196976,-0.993788123130798,-0.00618398282676935,-0.0772086828947067,-0.9965660572052,0.0299149658530951,-0.122538730502129,-0.992434799671173,-0.00758593622595072,-0.0772086828947067,-0.9965660572052,0.0299149658530951,-0.111117631196976,-0.993788123130798,-0.00618398282676935,-0.308404445648193,-0.941293060779572,-0.137310057878494,-0.197611838579178,-0.97877562046051,-0.0542957410216331,0.0293235592544079,-0.990318179130554,0.13568389415741,-0.144665703177452,-0.989471912384033,-0.00416123168542981,0.0293235592544079,-0.990318179130554,0.13568389415741,-0.197611838579178,-0.97877562046051,-0.0542957410216331,-0.207855314016342,-0.974191308021545,-0.0880198553204536,-0.176065266132355,-0.982307553291321,-0.0638203248381615,-0.159697011113167,-0.984898328781128,-0.0668743178248405,-0.159697011113167,-0.984898328781128,-0.0668743178248405,-0.176065266132355,-0.982307553291321,-0.0638203248381615,-0.110904917120934,-0.993297457695007,-0.0325645133852959,-0.119891360402107,-0.992360055446625,-0.0291166193783283,-0.110904917120934,-0.993297457695007,-0.0325645133852959,-0.176065266132355,-0.982307553291321,-0.0638203248381615,-0.119891360402107,-0.992360055446625,-0.0291166193783283,-0.0643403083086014,-0.996325433254242,0.0565340593457222,-0.116854161024094,-0.992849469184875,-0.0243957452476025,-0.228031113743782,-0.966185748577118,-0.120361961424351,-0.116854161024094,-0.992849469184875,-0.0243957452476025,-0.578281581401825,-0.448064625263214,-0.681783378124237,-0.578281581401825,-0.448064625263214,-0.681783378124237,-0.116854161024094,-0.992849469184875,-0.0243957452476025,-0.0643403083086014,-0.996325433254242,0.0565340593457222, +-0.206814110279083,-0.973725020885468,-0.0953283756971359,-0.387199401855469,-0.910418152809143,-0.145655542612076,-0.00985097791999578,-0.999737501144409,0.0206880699843168,-0.326117992401123,-0.932469189167023,-0.155397668480873,-0.00985097791999578,-0.999737501144409,0.0206880699843168,-0.387199401855469,-0.910418152809143,-0.145655542612076,-0.842603504657745,-0.416918933391571,-0.340878397226334,-0.906573951244354,-0.15756544470787,-0.391531348228455,-0.255839496850967,-0.964079618453979,-0.0713920220732689,-0.125490069389343,-0.961016774177551,-0.246371701359749,-0.255839496850967,-0.964079618453979,-0.0713920220732689,-0.906573951244354,-0.15756544470787,-0.391531348228455,-0.119891360402107,-0.992360055446625,-0.0291166193783283,-0.116854161024094,-0.992849469184875,-0.0243957452476025,-0.110904917120934,-0.993297457695007,-0.0325645133852959,-0.00211225333623588,-0.999974727630615,0.00679909903556108,-0.110904917120934,-0.993297457695007,-0.0325645133852959,-0.116854161024094,-0.992849469184875,-0.0243957452476025,-0.176431760191917,-0.931344389915466,-0.318542689085007,-0.231477677822113,-0.905786991119385,-0.354919791221619,-0.908410906791687,-0.120667561888695,-0.400286376476288,-0.232715383172035,-0.91641092300415,-0.325629502534866,-0.908410906791687,-0.120667561888695,-0.400286376476288,-0.231477677822113,-0.905786991119385,-0.354919791221619,-0.842603504657745,-0.416918933391571,-0.340878397226334,-0.928338885307312,-0.0222890861332417,-0.371066272258759,-0.906573951244354,-0.15756544470787,-0.391531348228455,-0.927479326725006,-0.0743876621127129,-0.366399645805359,-0.906573951244354,-0.15756544470787,-0.391531348228455,-0.928338885307312,-0.0222890861332417,-0.371066272258759,0.00873261783272028,-0.968370795249939,0.249363094568253,-0.0583012513816357,-0.987773478031158,0.144584611058235,-0.149466589093208,-0.982016921043396,-0.115336373448372,-0.232715383172035,-0.91641092300415,-0.325629502534866,-0.304185807704926,-0.87854415178299,-0.368281424045563,-0.908410906791687,-0.120667561888695,-0.400286376476288, +-0.125490069389343,-0.961016774177551,-0.246371701359749,-0.906573951244354,-0.15756544470787,-0.391531348228455,-0.304185807704926,-0.87854415178299,-0.368281424045563,-0.304185807704926,-0.87854415178299,-0.368281424045563,-0.906573951244354,-0.15756544470787,-0.391531348228455,-0.908410906791687,-0.120667561888695,-0.400286376476288,-0.578281581401825,-0.448064625263214,-0.681783378124237,-0.0643403083086014,-0.996325433254242,0.0565340593457222,-0.149466589093208,-0.982016921043396,-0.115336373448372,-0.119891360402107,-0.992360055446625,-0.0291166193783283,-0.149466589093208,-0.982016921043396,-0.115336373448372,-0.0643403083086014,-0.996325433254242,0.0565340593457222,-0.00211225333623588,-0.999974727630615,0.00679909903556108,-0.116854161024094,-0.992849469184875,-0.0243957452476025,-0.00985097791999578,-0.999737501144409,0.0206880699843168,-0.116854161024094,-0.992849469184875,-0.0243957452476025,-0.228031113743782,-0.966185748577118,-0.120361961424351,-0.00985097791999578,-0.999737501144409,0.0206880699843168,-0.206814110279083,-0.973725020885468,-0.0953283756971359,-0.00985097791999578,-0.999737501144409,0.0206880699843168,-0.228031113743782,-0.966185748577118,-0.120361961424351,-0.00211225333623588,-0.999974727630615,0.00679909903556108,-0.00985097791999578,-0.999737501144409,0.0206880699843168,-0.107793517410755,-0.992469787597656,-0.0581764467060566,-0.326117992401123,-0.932469189167023,-0.155397668480873,-0.107793517410755,-0.992469787597656,-0.0581764467060566,-0.00985097791999578,-0.999737501144409,0.0206880699843168,0.0279629100114107,-0.999355673789978,0.0225012563169003,-0.00211225333623588,-0.999974727630615,0.00679909903556108,-0.107793517410755,-0.992469787597656,-0.0581764467060566,-0.842603504657745,-0.416918933391571,-0.340878397226334,-0.865091323852539,-0.263824671506882,-0.426630407571793,-0.928338885307312,-0.0222890861332417,-0.371066272258759,-0.910433232784271,-0.178368866443634,-0.373223841190338,-0.928338885307312,-0.0222890861332417,-0.371066272258759,-0.865091323852539,-0.263824671506882,-0.426630407571793, +-0.108117915689945,-0.985924422740936,-0.127529144287109,-0.397528499364853,-0.291931957006454,-0.869911968708038,-0.149466589093208,-0.982016921043396,-0.115336373448372,-0.578281581401825,-0.448064625263214,-0.681783378124237,-0.149466589093208,-0.982016921043396,-0.115336373448372,-0.397528499364853,-0.291931957006454,-0.869911968708038,-0.0583012513816357,-0.987773478031158,0.144584611058235,-0.108117915689945,-0.985924422740936,-0.127529144287109,-0.149466589093208,-0.982016921043396,-0.115336373448372,-0.326117992401123,-0.932469189167023,-0.155397668480873,-0.331369817256927,-0.940436482429504,-0.0759827569127083,-0.107793517410755,-0.992469787597656,-0.0581764467060566,-0.282375305891037,-0.958724617958069,-0.0333352908492088,0.0279629100114107,-0.999355673789978,0.0225012563169003,-0.331369817256927,-0.940436482429504,-0.0759827569127083,0.0279629100114107,-0.999355673789978,0.0225012563169003,-0.107793517410755,-0.992469787597656,-0.0581764467060566,-0.331369817256927,-0.940436482429504,-0.0759827569127083,0.0279629100114107,-0.999355673789978,0.0225012563169003,-0.0415188707411289,-0.999089419841766,0.00983160268515348,-0.00211225333623588,-0.999974727630615,0.00679909903556108,0.000812494894489646,-0.999945521354675,0.0104107381775975,-0.136862859129906,-0.988935232162476,-0.0572334676980972,-0.0415188707411289,-0.999089419841766,0.00983160268515348,-0.00211225333623588,-0.999974727630615,0.00679909903556108,-0.0415188707411289,-0.999089419841766,0.00983160268515348,-0.159697011113167,-0.984898328781128,-0.0668743178248405,-0.159697011113167,-0.984898328781128,-0.0668743178248405,-0.0415188707411289,-0.999089419841766,0.00983160268515348,-0.136862859129906,-0.988935232162476,-0.0572334676980972,-0.176431760191917,-0.931344389915466,-0.318542689085007,-0.908410906791687,-0.120667561888695,-0.400286376476288,-0.803320050239563,-0.392731964588165,-0.44770359992981,-0.927321434020996,-0.0638995692133904,-0.368770867586136,-0.803320050239563,-0.392731964588165,-0.44770359992981,-0.908410906791687,-0.120667561888695,-0.400286376476288, +0.00926660839468241,-0.974835097789764,-0.222734719514847,0.0358766317367554,-0.975370049476624,-0.217637479305267,-0.803320050239563,-0.392731964588165,-0.44770359992981,-0.176431760191917,-0.931344389915466,-0.318542689085007,-0.803320050239563,-0.392731964588165,-0.44770359992981,0.0358766317367554,-0.975370049476624,-0.217637479305267,0.000812494894489646,-0.999945521354675,0.0104107381775975,-0.0415188707411289,-0.999089419841766,0.00983160268515348,-0.181667536497116,-0.983206689357758,-0.0173646882176399,-0.282375305891037,-0.958724617958069,-0.0333352908492088,-0.00199924688786268,-0.998569130897522,0.0534393861889839,-0.0415188707411289,-0.999089419841766,0.00983160268515348,-0.181667536497116,-0.983206689357758,-0.0173646882176399,-0.0415188707411289,-0.999089419841766,0.00983160268515348,-0.00199924688786268,-0.998569130897522,0.0534393861889839,-0.917758941650391,-0.115788005292416,-0.379883795976639,-0.919710218906403,-0.081694133579731,-0.384004235267639,-0.927321434020996,-0.0638995692133904,-0.368770867586136,-0.159697011113167,-0.984898328781128,-0.0668743178248405,-0.110904917120934,-0.993297457695007,-0.0325645133852959,-0.00211225333623588,-0.999974727630615,0.00679909903556108,-0.908410906791687,-0.120667561888695,-0.400286376476288,-0.927479326725006,-0.0743876621127129,-0.366399645805359,-0.927321434020996,-0.0638995692133904,-0.368770867586136,-0.927321434020996,-0.0638995692133904,-0.368770867586136,-0.927479326725006,-0.0743876621127129,-0.366399645805359,-0.929613888263702,-0.0618298128247261,-0.363311350345612,-0.906573951244354,-0.15756544470787,-0.391531348228455,-0.927479326725006,-0.0743876621127129,-0.366399645805359,-0.908410906791687,-0.120667561888695,-0.400286376476288,-0.919710218906403,-0.081694133579731,-0.384004235267639,-0.851567924022675,-0.376440465450287,-0.364862680435181,-0.927321434020996,-0.0638995692133904,-0.368770867586136,-0.779935598373413,-0.516693294048309,-0.353169351816177,-0.927321434020996,-0.0638995692133904,-0.368770867586136,-0.851567924022675,-0.376440465450287,-0.364862680435181, +-0.282375305891037,-0.958724617958069,-0.0333352908492088,-0.0415188707411289,-0.999089419841766,0.00983160268515348,0.0279629100114107,-0.999355673789978,0.0225012563169003,-0.779935598373413,-0.516693294048309,-0.353169351816177,-0.903449475765228,-0.201442986726761,-0.378417491912842,-0.927321434020996,-0.0638995692133904,-0.368770867586136,-0.803320050239563,-0.392731964588165,-0.44770359992981,-0.927321434020996,-0.0638995692133904,-0.368770867586136,-0.874827027320862,-0.297661691904068,-0.382197886705399,-0.874827027320862,-0.297661691904068,-0.382197886705399,-0.927321434020996,-0.0638995692133904,-0.368770867586136,-0.903449475765228,-0.201442986726761,-0.378417491912842,-0.207855314016342,-0.974191308021545,-0.0880198553204536,-0.14475129544735,-0.987971782684326,-0.0543953664600849,-0.176065266132355,-0.982307553291321,-0.0638203248381615,-0.119891360402107,-0.992360055446625,-0.0291166193783283,-0.176065266132355,-0.982307553291321,-0.0638203248381615,-0.0751855298876762,-0.996567964553833,0.0346346609294415,-0.0751855298876762,-0.996567964553833,0.0346346609294415,-0.176065266132355,-0.982307553291321,-0.0638203248381615,-0.14475129544735,-0.987971782684326,-0.0543953664600849,-0.0751855298876762,-0.996567964553833,0.0346346609294415,-0.0420967303216457,-0.993855655193329,0.102366290986538,-0.149466589093208,-0.982016921043396,-0.115336373448372,0.00873261783272028,-0.968370795249939,0.249363094568253,-0.149466589093208,-0.982016921043396,-0.115336373448372,-0.0420967303216457,-0.993855655193329,0.102366290986538,-0.119891360402107,-0.992360055446625,-0.0291166193783283,-0.0751855298876762,-0.996567964553833,0.0346346609294415,-0.149466589093208,-0.982016921043396,-0.115336373448372,0.000812494894489646,-0.999945521354675,0.0104107381775975,-0.156246677041054,-0.987011790275574,-0.0373488627374172,-0.136862859129906,-0.988935232162476,-0.0572334676980972,-0.330940634012222,-0.937013924121857,-0.111728057265282,-0.136862859129906,-0.988935232162476,-0.0572334676980972,-0.156246677041054,-0.987011790275574,-0.0373488627374172, +-0.207855314016342,-0.974191308021545,-0.0880198553204536,-0.159697011113167,-0.984898328781128,-0.0668743178248405,-0.258509039878845,-0.959575772285461,-0.111299462616444,-0.207553341984749,-0.972334980964661,-0.107174813747406,-0.258509039878845,-0.959575772285461,-0.111299462616444,-0.159697011113167,-0.984898328781128,-0.0668743178248405,-0.207553341984749,-0.972334980964661,-0.107174813747406,-0.159697011113167,-0.984898328781128,-0.0668743178248405,-0.308404445648193,-0.941293060779572,-0.137310057878494,-0.308404445648193,-0.941293060779572,-0.137310057878494,-0.159697011113167,-0.984898328781128,-0.0668743178248405,-0.330940634012222,-0.937013924121857,-0.111728057265282,-0.330940634012222,-0.937013924121857,-0.111728057265282,-0.159697011113167,-0.984898328781128,-0.0668743178248405,-0.136862859129906,-0.988935232162476,-0.0572334676980972,-0.207855314016342,-0.974191308021545,-0.0880198553204536,-0.258509039878845,-0.959575772285461,-0.111299462616444,-0.14475129544735,-0.987971782684326,-0.0543953664600849,-0.207553341984749,-0.972334980964661,-0.107174813747406,-0.14475129544735,-0.987971782684326,-0.0543953664600849,-0.258509039878845,-0.959575772285461,-0.111299462616444,-0.0999127477407455,-0.993807554244995,-0.0486230254173279,-0.0428255125880241,-0.988669693470001,0.143868863582611,-0.14475129544735,-0.987971782684326,-0.0543953664600849,-0.0751855298876762,-0.996567964553833,0.0346346609294415,-0.14475129544735,-0.987971782684326,-0.0543953664600849,-0.0428255125880241,-0.988669693470001,0.143868863582611,-0.0999127477407455,-0.993807554244995,-0.0486230254173279,-0.14475129544735,-0.987971782684326,-0.0543953664600849,-0.0592952407896519,-0.997365593910217,0.0417848117649555,-0.207553341984749,-0.972334980964661,-0.107174813747406,-0.0592952407896519,-0.997365593910217,0.0417848117649555,-0.14475129544735,-0.987971782684326,-0.0543953664600849,-0.27328234910965,-0.961097538471222,-0.0401054210960865,-0.763911545276642,-0.638229787349701,-0.0954043567180634,-0.308990925550461,-0.950538814067841,-0.0316343754529953, +-0.26760870218277,-0.962731897830963,-0.039152804762125,-0.308990925550461,-0.950538814067841,-0.0316343754529953,-0.623131811618805,-0.77542507648468,0.102092564105988,-0.623131811618805,-0.77542507648468,0.102092564105988,-0.308990925550461,-0.950538814067841,-0.0316343754529953,-0.763911545276642,-0.638229787349701,-0.0954043567180634,-0.125942394137383,-0.987426519393921,-0.0955378711223602,-0.308990925550461,-0.950538814067841,-0.0316343754529953,-0.26760870218277,-0.962731897830963,-0.039152804762125,-0.844475507736206,-0.534174025058746,-0.0389784276485443,-0.763911545276642,-0.638229787349701,-0.0954043567180634,-0.480910331010818,-0.874981880187988,-0.0559651926159859,-0.27328234910965,-0.961097538471222,-0.0401054210960865,-0.480910331010818,-0.874981880187988,-0.0559651926159859,-0.763911545276642,-0.638229787349701,-0.0954043567180634,-0.857417285442352,0.199806869029999,-0.474249720573425,-0.961068511009216,0.0979206934571266,-0.258377462625504,-0.836102604866028,0.362702578306198,-0.411557376384735,-0.995139718055725,-0.00873976200819016,-0.0980842411518097,-0.836102604866028,0.362702578306198,-0.411557376384735,-0.961068511009216,0.0979206934571266,-0.258377462625504,-0.990064382553101,0.0941588208079338,-0.104434825479984,-0.836102604866028,0.362702578306198,-0.411557376384735,-0.995139718055725,-0.00873976200819016,-0.0980842411518097,-0.719124495983124,0.0425298735499382,-0.693578541278839,-0.624554812908173,0.0365542024374008,-0.780125141143799,-0.970354020595551,0.0299685150384903,-0.239823088049889,-0.531411707401276,0.045395590364933,-0.845896482467651,-0.970354020595551,0.0299685150384903,-0.239823088049889,-0.624554812908173,0.0365542024374008,-0.780125141143799,-0.990064382553101,0.0941588208079338,-0.104434825479984,-0.995139718055725,-0.00873976200819016,-0.0980842411518097,-0.996633410453796,0.0230122860521078,-0.0786908194422722,-0.844475507736206,-0.534174025058746,-0.0389784276485443,-0.914607703685761,-0.370222330093384,-0.162567436695099,-0.763911545276642,-0.638229787349701,-0.0954043567180634, +-0.960466504096985,-0.0995213687419891,-0.259999394416809,-0.763911545276642,-0.638229787349701,-0.0954043567180634,-0.914607703685761,-0.370222330093384,-0.162567436695099,-0.125942394137383,-0.987426519393921,-0.0955378711223602,-0.137750700116158,-0.989049136638641,-0.0529768653213978,-0.308990925550461,-0.950538814067841,-0.0316343754529953,-0.137750700116158,-0.989049136638641,-0.0529768653213978,-0.27328234910965,-0.961097538471222,-0.0401054210960865,-0.308990925550461,-0.950538814067841,-0.0316343754529953,-0.965194702148438,0.0856279581785202,-0.247117787599564,-0.971127450466156,0.0325859896838665,-0.236325174570084,-0.954892456531525,0.0306765325367451,-0.295363128185272,-0.971127450466156,0.0325859896838665,-0.236325174570084,-0.942748367786407,0.0300909541547298,-0.332144677639008,-0.954892456531525,0.0306765325367451,-0.295363128185272,-0.816928744316101,-0.201502770185471,-0.540392577648163,-0.954892456531525,0.0306765325367451,-0.295363128185272,-0.942748367786407,0.0300909541547298,-0.332144677639008,-0.531411707401276,0.045395590364933,-0.845896482467651,-0.942748367786407,0.0300909541547298,-0.332144677639008,-0.970354020595551,0.0299685150384903,-0.239823088049889,-0.971127450466156,0.0325859896838665,-0.236325174570084,-0.970354020595551,0.0299685150384903,-0.239823088049889,-0.942748367786407,0.0300909541547298,-0.332144677639008,-0.97014993429184,0.0309578347951174,-0.240521907806396,-0.943119764328003,0.0579121634364128,-0.327370285987854,-0.970354020595551,0.0299685150384903,-0.239823088049889,-0.719124495983124,0.0425298735499382,-0.693578541278839,-0.970354020595551,0.0299685150384903,-0.239823088049889,-0.943119764328003,0.0579121634364128,-0.327370285987854,-0.97014993429184,0.0309578347951174,-0.240521907806396,-0.970354020595551,0.0299685150384903,-0.239823088049889,-0.969445109367371,0.0259053260087967,-0.243936881422997,-0.971127450466156,0.0325859896838665,-0.236325174570084,-0.969445109367371,0.0259053260087967,-0.243936881422997,-0.970354020595551,0.0299685150384903,-0.239823088049889, +-0.97014993429184,0.0309578347951174,-0.240521907806396,-0.969445109367371,0.0259053260087967,-0.243936881422997,-0.98112940788269,0.0238565020263195,-0.191874995827675,-0.970592081546783,0.0335710607469082,-0.238378092646599,-0.98112940788269,0.0238565020263195,-0.191874995827675,-0.969445109367371,0.0259053260087967,-0.243936881422997,-0.302243143320084,-0.951973080635071,-0.0489536859095097,-0.236179560422897,-0.970979750156403,-0.0376517958939075,-0.157489538192749,-0.986972689628601,-0.032892856746912,-0.302243143320084,-0.951973080635071,-0.0489536859095097,-0.194906488060951,-0.980552017688751,-0.0230043362826109,-0.208500549197197,-0.977135360240936,-0.0416425094008446,-0.208500549197197,-0.977135360240936,-0.0416425094008446,-0.194906488060951,-0.980552017688751,-0.0230043362826109,-0.213942095637321,-0.976336598396301,-0.0315523371100426,-0.995139718055725,-0.00873976200819016,-0.0980842411518097,-0.961068511009216,0.0979206934571266,-0.258377462625504,-0.991469323635101,0.0183795373886824,-0.129038393497467,-0.884033024311066,0.214907705783844,-0.41509085893631,-0.991469323635101,0.0183795373886824,-0.129038393497467,-0.961068511009216,0.0979206934571266,-0.258377462625504,-0.0884778276085854,-0.995485961437225,0.0343435518443584,-0.194906488060951,-0.980552017688751,-0.0230043362826109,-0.157489538192749,-0.986972689628601,-0.032892856746912,-0.302243143320084,-0.951973080635071,-0.0489536859095097,-0.157489538192749,-0.986972689628601,-0.032892856746912,-0.194906488060951,-0.980552017688751,-0.0230043362826109,-0.302243143320084,-0.951973080635071,-0.0489536859095097,-0.2802514731884,-0.958123862743378,-0.0588039830327034,-0.236179560422897,-0.970979750156403,-0.0376517958939075,-0.33541414141655,-0.941442668437958,-0.0343958325684071,-0.236179560422897,-0.970979750156403,-0.0376517958939075,-0.2802514731884,-0.958123862743378,-0.0588039830327034,-0.254158586263657,-0.965950608253479,-0.0484042912721634,-0.208500549197197,-0.977135360240936,-0.0416425094008446,-0.137750700116158,-0.989049136638641,-0.0529768653213978, +-0.27328234910965,-0.961097538471222,-0.0401054210960865,-0.137750700116158,-0.989049136638641,-0.0529768653213978,-0.208500549197197,-0.977135360240936,-0.0416425094008446,-0.997572422027588,-0.0347094908356667,-0.0603697672486305,-0.991469323635101,0.0183795373886824,-0.129038393497467,-0.991521000862122,0.0219563022255898,-0.128078743815422,-0.991521000862122,0.0219563022255898,-0.128078743815422,-0.991469323635101,0.0183795373886824,-0.129038393497467,-0.982727825641632,0.0597147420048714,-0.175157472491264,-0.937873005867004,0.180245071649551,-0.296489536762238,-0.982727825641632,0.0597147420048714,-0.175157472491264,-0.991469323635101,0.0183795373886824,-0.129038393497467,-0.254158586263657,-0.965950608253479,-0.0484042912721634,-0.2802514731884,-0.958123862743378,-0.0588039830327034,-0.208500549197197,-0.977135360240936,-0.0416425094008446,-0.302243143320084,-0.951973080635071,-0.0489536859095097,-0.208500549197197,-0.977135360240936,-0.0416425094008446,-0.2802514731884,-0.958123862743378,-0.0588039830327034,-0.254158586263657,-0.965950608253479,-0.0484042912721634,-0.137750700116158,-0.989049136638641,-0.0529768653213978,-0.2802514731884,-0.958123862743378,-0.0588039830327034,-0.158522576093674,-0.986344575881958,-0.0446671023964882,-0.315655142068863,-0.947026550769806,-0.0591835528612137,-0.137750700116158,-0.989049136638641,-0.0529768653213978,-0.137750700116158,-0.989049136638641,-0.0529768653213978,-0.315655142068863,-0.947026550769806,-0.0591835528612137,-0.2802514731884,-0.958123862743378,-0.0588039830327034,-0.33541414141655,-0.941442668437958,-0.0343958325684071,-0.2802514731884,-0.958123862743378,-0.0588039830327034,-0.315655142068863,-0.947026550769806,-0.0591835528612137,-0.213942095637321,-0.976336598396301,-0.0315523371100426,-0.251538217067719,-0.967146992683411,-0.0368160791695118,-0.208500549197197,-0.977135360240936,-0.0416425094008446,-0.27328234910965,-0.961097538471222,-0.0401054210960865,-0.208500549197197,-0.977135360240936,-0.0416425094008446,-0.251538217067719,-0.967146992683411,-0.0368160791695118, +-0.237031325697899,-0.969815790653229,-0.0572143718600273,-0.236179560422897,-0.970979750156403,-0.0376517958939075,-0.0496879257261753,-0.997298181056976,-0.0541076064109802,-0.0496879257261753,-0.997298181056976,-0.0541076064109802,-0.236179560422897,-0.970979750156403,-0.0376517958939075,-0.0172049198299646,-0.993082404136658,-0.116152420639992,-0.157489538192749,-0.986972689628601,-0.032892856746912,-0.236179560422897,-0.970979750156403,-0.0376517958939075,-0.237031325697899,-0.969815790653229,-0.0572143718600273,-0.33541414141655,-0.941442668437958,-0.0343958325684071,-0.0172049198299646,-0.993082404136658,-0.116152420639992,-0.236179560422897,-0.970979750156403,-0.0376517958939075,-0.125942394137383,-0.987426519393921,-0.0955378711223602,-0.0801771059632301,-0.994672834873199,-0.064788892865181,-0.137750700116158,-0.989049136638641,-0.0529768653213978,-0.158522576093674,-0.986344575881958,-0.0446671023964882,-0.137750700116158,-0.989049136638641,-0.0529768653213978,-0.0801771059632301,-0.994672834873199,-0.064788892865181,-0.213942095637321,-0.976336598396301,-0.0315523371100426,-0.19065272808075,-0.980657517910004,-0.0442993640899658,-0.251538217067719,-0.967146992683411,-0.0368160791695118,-0.0884778276085854,-0.995485961437225,0.0343435518443584,-0.157489538192749,-0.986972689628601,-0.032892856746912,-0.0255325622856617,-0.997482895851135,0.0661517754197121,-0.145374923944473,-0.989316701889038,-0.0108968717977405,-0.0255325622856617,-0.997482895851135,0.0661517754197121,-0.157489538192749,-0.986972689628601,-0.032892856746912,0.244109019637108,-0.954706728458405,0.170135259628296,0.266336053609848,-0.949434518814087,0.166250914335251,0.199499770998955,-0.97531658411026,0.0946443527936935,-0.130658954381943,-0.990787029266357,0.0356268435716629,0.199499770998955,-0.97531658411026,0.0946443527936935,-0.103852942585945,-0.994396090507507,0.0197772309184074,-0.103852942585945,-0.994396090507507,0.0197772309184074,0.199499770998955,-0.97531658411026,0.0946443527936935,0.266336053609848,-0.949434518814087,0.166250914335251, +-0.0884778276085854,-0.995485961437225,0.0343435518443584,0.199499770998955,-0.97531658411026,0.0946443527936935,-0.130658954381943,-0.990787029266357,0.0356268435716629,-0.97014993429184,0.0309578347951174,-0.240521907806396,-0.98112940788269,0.0238565020263195,-0.191874995827675,-0.981379628181458,0.0281527899205685,-0.190004304051399,0.476451873779297,-0.0886028558015823,0.874724626541138,0.476759940385818,-0.445154011249542,0.757982790470123,0.917807757854462,0.0708283185958862,0.390656232833862,0.571177184581757,-0.548584282398224,0.610583364963531,0.723123967647552,-0.504738688468933,0.471519529819489,0.476759940385818,-0.445154011249542,0.757982790470123,0.917807757854462,0.0708283185958862,0.390656232833862,0.476759940385818,-0.445154011249542,0.757982790470123,0.876480221748352,-0.189001366496086,0.442787557840347,0.876480221748352,-0.189001366496086,0.442787557840347,0.476759940385818,-0.445154011249542,0.757982790470123,0.723123967647552,-0.504738688468933,0.471519529819489,-0.965194702148438,0.0856279581785202,-0.247117787599564,-0.954892456531525,0.0306765325367451,-0.295363128185272,-0.936374723911285,-0.0269685611128807,-0.349964499473572,-0.696262896060944,-0.570326566696167,-0.435827612876892,-0.936374723911285,-0.0269685611128807,-0.349964499473572,-0.816928744316101,-0.201502770185471,-0.540392577648163,-0.816928744316101,-0.201502770185471,-0.540392577648163,-0.936374723911285,-0.0269685611128807,-0.349964499473572,-0.954892456531525,0.0306765325367451,-0.295363128185272,-0.36134946346283,0.167616546154022,-0.917241096496582,-0.676193356513977,0.123121112585068,-0.72636342048645,-0.90832906961441,0.0706319138407707,-0.412249356508255,-0.350563019514084,0.0604633055627346,-0.934585392475128,-0.943119764328003,0.0579121634364128,-0.327370285987854,-0.676193356513977,0.123121112585068,-0.72636342048645,-0.676193356513977,0.123121112585068,-0.72636342048645,-0.943119764328003,0.0579121634364128,-0.327370285987854,-0.90832906961441,0.0706319138407707,-0.412249356508255,-0.97014993429184,0.0309578347951174,-0.240521907806396, +-0.90832906961441,0.0706319138407707,-0.412249356508255,-0.943119764328003,0.0579121634364128,-0.327370285987854,-0.86088091135025,0.0970531776547432,-0.499464392662048,-0.839810132980347,0.0933403223752975,-0.534795880317688,-0.90832906961441,0.0706319138407707,-0.412249356508255,-0.36134946346283,0.167616546154022,-0.917241096496582,-0.90832906961441,0.0706319138407707,-0.412249356508255,-0.839810132980347,0.0933403223752975,-0.534795880317688,-0.350563019514084,0.0604633055627346,-0.934585392475128,-0.426685631275177,0.00693011283874512,-0.904373466968536,-0.943119764328003,0.0579121634364128,-0.327370285987854,-0.719124495983124,0.0425298735499382,-0.693578541278839,-0.943119764328003,0.0579121634364128,-0.327370285987854,-0.426685631275177,0.00693011283874512,-0.904373466968536,-0.86088091135025,0.0970531776547432,-0.499464392662048,-0.90832906961441,0.0706319138407707,-0.412249356508255,-0.97014993429184,0.0309578347951174,-0.240521907806396,0.0132295023649931,-0.994622826576233,0.102716147899628,-0.0285321436822414,-0.998241186141968,0.051966056227684,-0.0486186370253563,-0.998002886772156,0.0403310880064964,0.041206281632185,-0.927101135253906,0.372539430856705,0.0243502967059612,-0.927502751350403,0.373022466897964,0.0297365207225084,-0.908673942089081,0.416446179151535,-0.000251702993409708,-0.985339105129242,0.170607581734657,0.0243502967059612,-0.927502751350403,0.373022466897964,0.041206281632185,-0.927101135253906,0.372539430856705,0.0334875136613846,-0.973685503005981,0.225422248244286,0.0297365207225084,-0.908673942089081,0.416446179151535,0.0243502967059612,-0.927502751350403,0.373022466897964,-0.000762101262807846,-0.996676743030548,0.0814551040530205,0.0124970879405737,-0.994302868843079,0.105856567621231,-0.153353750705719,-0.988157391548157,-0.00525260716676712,-0.148495614528656,-0.988342702388763,-0.0335826203227043,-0.153353750705719,-0.988157391548157,-0.00525260716676712,-0.229277372360229,-0.968986213207245,-0.0921827927231789,-0.229277372360229,-0.968986213207245,-0.0921827927231789,-0.153353750705719,-0.988157391548157,-0.00525260716676712, +-0.197009414434433,-0.97753918170929,-0.0748627111315727,-0.197009414434433,-0.97753918170929,-0.0748627111315727,-0.153353750705719,-0.988157391548157,-0.00525260716676712,-0.173193693161011,-0.984182119369507,-0.0372780151665211,-0.201092049479485,-0.963698744773865,0.175632804632187,-0.143916547298431,-0.988428592681885,0.0479268468916416,-0.0241631548851728,-0.989561319351196,0.14207261800766,-0.0241631548851728,-0.989561319351196,0.14207261800766,-0.143916547298431,-0.988428592681885,0.0479268468916416,0.0124970879405737,-0.994302868843079,0.105856567621231,-0.153353750705719,-0.988157391548157,-0.00525260716676712,0.0124970879405737,-0.994302868843079,0.105856567621231,-0.143916547298431,-0.988428592681885,0.0479268468916416,0.266336053609848,-0.949434518814087,0.166250914335251,0.148835048079491,-0.976375937461853,0.156646981835365,0.101008951663971,-0.986131846904755,0.131686314940453,0.101008951663971,-0.986131846904755,0.131686314940453,0.148835048079491,-0.976375937461853,0.156646981835365,-0.0285321436822414,-0.998241186141968,0.051966056227684,-0.000762101262807846,-0.996676743030548,0.0814551040530205,-0.0285321436822414,-0.998241186141968,0.051966056227684,0.148835048079491,-0.976375937461853,0.156646981835365,0.0132295023649931,-0.994622826576233,0.102716147899628,0.101008951663971,-0.986131846904755,0.131686314940453,-0.0285321436822414,-0.998241186141968,0.051966056227684,-0.000762101262807846,-0.996676743030548,0.0814551040530205,-0.153353750705719,-0.988157391548157,-0.00525260716676712,-0.0285321436822414,-0.998241186141968,0.051966056227684,-0.148495614528656,-0.988342702388763,-0.0335826203227043,-0.0285321436822414,-0.998241186141968,0.051966056227684,-0.153353750705719,-0.988157391548157,-0.00525260716676712,-0.197009414434433,-0.97753918170929,-0.0748627111315727,-0.122538730502129,-0.992434799671173,-0.00758593622595072,-0.229277372360229,-0.968986213207245,-0.0921827927231789,-0.229277372360229,-0.968986213207245,-0.0921827927231789,-0.122538730502129,-0.992434799671173,-0.00758593622595072, +-0.148495614528656,-0.988342702388763,-0.0335826203227043,-0.148495614528656,-0.988342702388763,-0.0335826203227043,-0.122538730502129,-0.992434799671173,-0.00758593622595072,-0.111117631196976,-0.993788123130798,-0.00618398282676935,-0.145374923944473,-0.989316701889038,-0.0108968717977405,0.0325412973761559,-0.984107077121735,0.174569010734558,-0.0255325622856617,-0.997482895851135,0.0661517754197121,-0.0241631548851728,-0.989561319351196,0.14207261800766,0.0124970879405737,-0.994302868843079,0.105856567621231,0.0325412973761559,-0.984107077121735,0.174569010734558,-0.0255325622856617,-0.997482895851135,0.0661517754197121,0.0325412973761559,-0.984107077121735,0.174569010734558,0.244109019637108,-0.954706728458405,0.170135259628296,0.244109019637108,-0.954706728458405,0.170135259628296,0.0325412973761559,-0.984107077121735,0.174569010734558,0.0124970879405737,-0.994302868843079,0.105856567621231,-0.201884791254997,-0.97884064912796,0.0333716087043285,0.0325412973761559,-0.984107077121735,0.174569010734558,-0.0728399232029915,-0.988381862640381,0.133400365710258,-0.145374923944473,-0.989316701889038,-0.0108968717977405,-0.0728399232029915,-0.988381862640381,0.133400365710258,0.0325412973761559,-0.984107077121735,0.174569010734558,-0.145633682608604,-0.988446176052094,-0.0420123375952244,-0.181194081902504,-0.983294725418091,-0.017327107489109,-0.157489538192749,-0.986972689628601,-0.032892856746912,-0.145374923944473,-0.989316701889038,-0.0108968717977405,-0.157489538192749,-0.986972689628601,-0.032892856746912,-0.181194081902504,-0.983294725418091,-0.017327107489109,0.244109019637108,-0.954706728458405,0.170135259628296,0.199499770998955,-0.97531658411026,0.0946443527936935,-0.0255325622856617,-0.997482895851135,0.0661517754197121,-0.0884778276085854,-0.995485961437225,0.0343435518443584,-0.0255325622856617,-0.997482895851135,0.0661517754197121,0.199499770998955,-0.97531658411026,0.0946443527936935,0.266336053609848,-0.949434518814087,0.166250914335251,0.0124970879405737,-0.994302868843079,0.105856567621231,0.148835048079491,-0.976375937461853,0.156646981835365, +0.244109019637108,-0.954706728458405,0.170135259628296,0.0124970879405737,-0.994302868843079,0.105856567621231,0.266336053609848,-0.949434518814087,0.166250914335251,-0.000762101262807846,-0.996676743030548,0.0814551040530205,0.148835048079491,-0.976375937461853,0.156646981835365,0.0124970879405737,-0.994302868843079,0.105856567621231,-0.201884791254997,-0.97884064912796,0.0333716087043285,-0.0241631548851728,-0.989561319351196,0.14207261800766,0.0325412973761559,-0.984107077121735,0.174569010734558,-0.380650728940964,-0.924685955047607,0.00781421363353729,0.0490911975502968,-0.985601127147675,0.161804065108299,-0.102851651608944,-0.971912264823914,0.211679443717003,0.322357058525085,-0.93537425994873,0.145467951893806,0.135120436549187,-0.973576664924622,0.184094980359077,0.0490911975502968,-0.985601127147675,0.161804065108299,0.0490911975502968,-0.985601127147675,0.161804065108299,0.135120436549187,-0.973576664924622,0.184094980359077,-0.102851651608944,-0.971912264823914,0.211679443717003,0.269601553678513,-0.923171520233154,0.273987919092178,-0.102851651608944,-0.971912264823914,0.211679443717003,0.135120436549187,-0.973576664924622,0.184094980359077,0.0408331677317619,-0.950548768043518,0.307879418134689,-0.102851651608944,-0.971912264823914,0.211679443717003,0.269601553678513,-0.923171520233154,0.273987919092178,-0.000676264986395836,-0.999485015869141,0.032082736492157,-0.269413501024246,-0.961461067199707,-0.0548553913831711,-0.186125814914703,-0.981125175952911,-0.0524456910789013,0.0594639144837856,-0.973644375801086,-0.22018338739872,-0.0496879257261753,-0.997298181056976,-0.0541076064109802,0.00666743516921997,-0.993161797523499,-0.116555258631706,-0.380650728940964,-0.924685955047607,0.00781421363353729,-0.360707879066467,-0.926576495170593,-0.106517761945724,0.0490911975502968,-0.985601127147675,0.161804065108299,-0.205750733613968,-0.978545665740967,0.0107263624668121,0.0490911975502968,-0.985601127147675,0.161804065108299,-0.360707879066467,-0.926576495170593,-0.106517761945724,0.257769465446472,-0.949046611785889,0.181288674473763, +0.15968781709671,-0.977759182453156,0.135966062545776,-0.269413501024246,-0.961461067199707,-0.0548553913831711,-0.205750733613968,-0.978545665740967,0.0107263624668121,-0.269413501024246,-0.961461067199707,-0.0548553913831711,0.15968781709671,-0.977759182453156,0.135966062545776,-0.205750733613968,-0.978545665740967,0.0107263624668121,-0.181194081902504,-0.983294725418091,-0.017327107489109,-0.269413501024246,-0.961461067199707,-0.0548553913831711,-0.269413501024246,-0.961461067199707,-0.0548553913831711,-0.181194081902504,-0.983294725418091,-0.017327107489109,-0.186125814914703,-0.981125175952911,-0.0524456910789013,-0.145633682608604,-0.988446176052094,-0.0420123375952244,-0.186125814914703,-0.981125175952911,-0.0524456910789013,-0.181194081902504,-0.983294725418091,-0.017327107489109,-0.0297055467963219,-0.984431803226471,-0.173238724470139,-0.186125814914703,-0.981125175952911,-0.0524456910789013,0.0594639144837856,-0.973644375801086,-0.22018338739872,0.0594639144837856,-0.973644375801086,-0.22018338739872,-0.186125814914703,-0.981125175952911,-0.0524456910789013,-0.0496879257261753,-0.997298181056976,-0.0541076064109802,-0.000676264986395836,-0.999485015869141,0.032082736492157,-0.186125814914703,-0.981125175952911,-0.0524456910789013,-0.0297055467963219,-0.984431803226471,-0.173238724470139,-0.237031325697899,-0.969815790653229,-0.0572143718600273,-0.0496879257261753,-0.997298181056976,-0.0541076064109802,-0.186125814914703,-0.981125175952911,-0.0524456910789013,0.257769465446472,-0.949046611785889,0.181288674473763,-0.269413501024246,-0.961461067199707,-0.0548553913831711,0.409639239311218,-0.900709211826324,0.144633322954178,-0.000676264986395836,-0.999485015869141,0.032082736492157,0.409639239311218,-0.900709211826324,0.144633322954178,-0.269413501024246,-0.961461067199707,-0.0548553913831711,-0.157489538192749,-0.986972689628601,-0.032892856746912,-0.237031325697899,-0.969815790653229,-0.0572143718600273,-0.145633682608604,-0.988446176052094,-0.0420123375952244,-0.237031325697899,-0.969815790653229,-0.0572143718600273, +-0.186125814914703,-0.981125175952911,-0.0524456910789013,-0.145633682608604,-0.988446176052094,-0.0420123375952244,-0.380650728940964,-0.924685955047607,0.00781421363353729,-0.102851651608944,-0.971912264823914,0.211679443717003,-0.384628504514694,-0.918390870094299,-0.0928396508097649,0.0408331677317619,-0.950548768043518,0.307879418134689,-0.384628504514694,-0.918390870094299,-0.0928396508097649,-0.102851651608944,-0.971912264823914,0.211679443717003,-0.205750733613968,-0.978545665740967,0.0107263624668121,0.15968781709671,-0.977759182453156,0.135966062545776,0.0490911975502968,-0.985601127147675,0.161804065108299,0.0490911975502968,-0.985601127147675,0.161804065108299,0.15968781709671,-0.977759182453156,0.135966062545776,0.33852607011795,-0.924184560775757,0.176870465278625,0.257769465446472,-0.949046611785889,0.181288674473763,0.33852607011795,-0.924184560775757,0.176870465278625,0.15968781709671,-0.977759182453156,0.135966062545776,0.322357058525085,-0.93537425994873,0.145467951893806,0.0490911975502968,-0.985601127147675,0.161804065108299,0.33852607011795,-0.924184560775757,0.176870465278625,0.525897741317749,-0.84983104467392,0.0349136888980865,0.269601553678513,-0.923171520233154,0.273987919092178,0.135120436549187,-0.973576664924622,0.184094980359077,-0.145374923944473,-0.989316701889038,-0.0108968717977405,-0.181194081902504,-0.983294725418091,-0.017327107489109,-0.0728399232029915,-0.988381862640381,0.133400365710258,-0.205750733613968,-0.978545665740967,0.0107263624668121,-0.360707879066467,-0.926576495170593,-0.106517761945724,-0.181194081902504,-0.983294725418091,-0.017327107489109,-0.0728399232029915,-0.988381862640381,0.133400365710258,-0.181194081902504,-0.983294725418091,-0.017327107489109,-0.201884791254997,-0.97884064912796,0.0333716087043285,-0.201884791254997,-0.97884064912796,0.0333716087043285,-0.181194081902504,-0.983294725418091,-0.017327107489109,-0.360707879066467,-0.926576495170593,-0.106517761945724,0.322357058525085,-0.93537425994873,0.145467951893806,0.33852607011795,-0.924184560775757,0.176870465278625, +0.486051648855209,-0.865654408931732,0.11998462677002,0.486051648855209,-0.865654408931732,0.11998462677002,0.33852607011795,-0.924184560775757,0.176870465278625,0.409639239311218,-0.900709211826324,0.144633322954178,0.257769465446472,-0.949046611785889,0.181288674473763,0.409639239311218,-0.900709211826324,0.144633322954178,0.33852607011795,-0.924184560775757,0.176870465278625,-0.000676264986395836,-0.999485015869141,0.032082736492157,0.486051648855209,-0.865654408931732,0.11998462677002,0.409639239311218,-0.900709211826324,0.144633322954178,-0.925468802452087,0.0692155361175537,-0.372446894645691,-0.97014993429184,0.0309578347951174,-0.240521907806396,-0.977085769176483,0.0405159890651703,-0.208954095840454,-0.853092610836029,0.107416152954102,-0.510582745075226,-0.30944487452507,0.166791722178459,-0.936175465583801,-0.925468802452087,0.0692155361175537,-0.372446894645691,-0.453151762485504,0.204643920063972,-0.867625772953033,-0.925468802452087,0.0692155361175537,-0.372446894645691,-0.30944487452507,0.166791722178459,-0.936175465583801,-0.453151762485504,0.204643920063972,-0.867625772953033,-0.786678373813629,0.116381272673607,-0.60629415512085,-0.925468802452087,0.0692155361175537,-0.372446894645691,-0.440347492694855,0.158722475171089,-0.883686304092407,-0.882648408412933,0.0850774943828583,-0.462270081043243,-0.786678373813629,0.116381272673607,-0.60629415512085,-0.925468802452087,0.0692155361175537,-0.372446894645691,-0.786678373813629,0.116381272673607,-0.60629415512085,-0.882648408412933,0.0850774943828583,-0.462270081043243,-0.286930620670319,-0.957880735397339,-0.0116304745897651,-0.332098931074142,-0.942826271057129,0.0280898362398148,-0.384628504514694,-0.918390870094299,-0.0928396508097649,-0.384628504514694,-0.918390870094299,-0.0928396508097649,-0.332098931074142,-0.942826271057129,0.0280898362398148,-0.360707879066467,-0.926576495170593,-0.106517761945724,-0.201884791254997,-0.97884064912796,0.0333716087043285,-0.360707879066467,-0.926576495170593,-0.106517761945724,-0.332098931074142,-0.942826271057129,0.0280898362398148, +-0.380650728940964,-0.924685955047607,0.00781421363353729,-0.384628504514694,-0.918390870094299,-0.0928396508097649,-0.360707879066467,-0.926576495170593,-0.106517761945724,-0.925468802452087,0.0692155361175537,-0.372446894645691,-0.882648408412933,0.0850774943828583,-0.462270081043243,-0.97014993429184,0.0309578347951174,-0.240521907806396,-0.86088091135025,0.0970531776547432,-0.499464392662048,-0.97014993429184,0.0309578347951174,-0.240521907806396,-0.882648408412933,0.0850774943828583,-0.462270081043243,-0.0175001826137304,-0.998709142208099,0.0476851649582386,0.0124095901846886,-0.952899694442749,0.303031980991364,-0.00224040471948683,-0.98701673746109,0.160602390766144,-0.00958019495010376,-0.973230004310608,0.229633927345276,-0.00224040471948683,-0.98701673746109,0.160602390766144,0.0124095901846886,-0.952899694442749,0.303031980991364,-0.0175001826137304,-0.998709142208099,0.0476851649582386,-0.00958019495010376,-0.973230004310608,0.229633927345276,0.0124095901846886,-0.952899694442749,0.303031980991364,-0.00224040471948683,-0.98701673746109,0.160602390766144,-0.0515638887882233,-0.99822735786438,0.0297202318906784,0.00707105081528425,-0.98109358549118,0.193405136466026,-0.00649979617446661,-0.978475868701935,0.206258967518806,0.00707105081528425,-0.98109358549118,0.193405136466026,-0.0515638887882233,-0.99822735786438,0.0297202318906784,-0.0127023980021477,-0.976593375205994,0.214718788862228,-0.0515638887882233,-0.99822735786438,0.0297202318906784,-0.00224040471948683,-0.98701673746109,0.160602390766144,-0.00649979617446661,-0.978475868701935,0.206258967518806,-0.0515638887882233,-0.99822735786438,0.0297202318906784,-0.031271293759346,-0.995309948921204,0.0915442928671837,-0.031271293759346,-0.995309948921204,0.0915442928671837,-0.0515638887882233,-0.99822735786438,0.0297202318906784,-0.077680692076683,-0.996947288513184,-0.0078749293461442,-0.0191918350756168,-0.981124579906464,0.192422673106194,-0.00649979617446661,-0.978475868701935,0.206258967518806,-0.031271293759346,-0.995309948921204,0.0915442928671837, +0.0770297273993492,-0.945576012134552,0.316152542829514,-0.0211702082306147,-0.98026829957962,0.196535229682922,-0.0337321758270264,-0.965963125228882,0.256471008062363,-0.145404830574989,-0.988458514213562,0.0425114557147026,-0.0337321758270264,-0.965963125228882,0.256471008062363,-0.0664785280823708,-0.987180054187775,0.145107463002205,-0.0664785280823708,-0.987180054187775,0.145107463002205,-0.0337321758270264,-0.965963125228882,0.256471008062363,-0.0211702082306147,-0.98026829957962,0.196535229682922,0.0211133360862732,-0.907960534095764,0.418523490428925,-0.0337321758270264,-0.965963125228882,0.256471008062363,-0.145404830574989,-0.988458514213562,0.0425114557147026,-0.0238853543996811,-0.983849048614502,0.177399814128876,-0.0191918350756168,-0.981124579906464,0.192422673106194,-0.031271293759346,-0.995309948921204,0.0915442928671837,0.0408908016979694,-0.950830936431885,0.306999295949936,0.116563193500042,-0.917974591255188,0.379124999046326,0.0405942760407925,-0.958017885684967,0.283820182085037,0.0405942760407925,-0.958017885684967,0.283820182085037,0.116563193500042,-0.917974591255188,0.379124999046326,0.0897998213768005,-0.935772299766541,0.340978503227234,0.0770297273993492,-0.945576012134552,0.316152542829514,0.0897998213768005,-0.935772299766541,0.340978503227234,0.116563193500042,-0.917974591255188,0.379124999046326,0.0644725039601326,-0.885426580905914,0.460285872220993,0.0405942760407925,-0.958017885684967,0.283820182085037,0.0897998213768005,-0.935772299766541,0.340978503227234,-0.0132616348564625,-0.98305070400238,0.182853773236275,-0.0191918350756168,-0.981124579906464,0.192422673106194,-0.0238988101482391,-0.982712090015411,0.183591544628143,0.0451268367469311,-0.68632835149765,0.725890517234802,0.0644725039601326,-0.885426580905914,0.460285872220993,0.157213181257248,-0.367205619812012,0.91675740480423,-0.0280477721244097,-0.985161900520325,0.169320657849312,-0.031271293759346,-0.995309948921204,0.0915442928671837,-0.0282068476080894,-0.995488226413727,0.090596541762352,-0.0999127477407455,-0.993807554244995,-0.0486230254173279, +-0.077680692076683,-0.996947288513184,-0.0078749293461442,-0.0515638887882233,-0.99822735786438,0.0297202318906784,-0.031271293759346,-0.995309948921204,0.0915442928671837,-0.077680692076683,-0.996947288513184,-0.0078749293461442,-0.0282068476080894,-0.995488226413727,0.090596541762352,-4.39675059169531e-005,-0.997125446796417,0.0757692381739616,-0.0282068476080894,-0.995488226413727,0.090596541762352,-0.0671180412173271,-0.997350037097931,0.0280734952539206,-0.0671180412173271,-0.997350037097931,0.0280734952539206,-0.0282068476080894,-0.995488226413727,0.090596541762352,-0.077680692076683,-0.996947288513184,-0.0078749293461442,0.0644725039601326,-0.885426580905914,0.460285872220993,0.227016806602478,-0.790714383125305,0.568536937236786,0.476759940385818,-0.445154011249542,0.757982790470123,-0.0280477721244097,-0.985161900520325,0.169320657849312,-0.0176310073584318,-0.977997601032257,0.207870215177536,-0.0223111193627119,-0.978632748126984,0.204402223229408,-0.0190667975693941,-0.96084851026535,0.27641761302948,-0.0223111193627119,-0.978632748126984,0.204402223229408,-0.0176310073584318,-0.977997601032257,0.207870215177536,-0.0280477721244097,-0.985161900520325,0.169320657849312,-0.0238853543996811,-0.983849048614502,0.177399814128876,-0.031271293759346,-0.995309948921204,0.0915442928671837,-0.0238853543996811,-0.983849048614502,0.177399814128876,-0.0280477721244097,-0.985161900520325,0.169320657849312,-0.0319292657077312,-0.964336156845093,0.262747585773468,0.571177184581757,-0.548584282398224,0.610583364963531,0.242063522338867,-0.824967741966248,0.510718643665314,-0.0337321758270264,-0.965963125228882,0.256471008062363,0.227016806602478,-0.790714383125305,0.568536937236786,0.0897998213768005,-0.935772299766541,0.340978503227234,0.242063522338867,-0.824967741966248,0.510718643665314,-0.0337321758270264,-0.965963125228882,0.256471008062363,0.242063522338867,-0.824967741966248,0.510718643665314,0.0770297273993492,-0.945576012134552,0.316152542829514,0.0770297273993492,-0.945576012134552,0.316152542829514,0.242063522338867,-0.824967741966248,0.510718643665314, +0.0897998213768005,-0.935772299766541,0.340978503227234,-0.0282068476080894,-0.995488226413727,0.090596541762352,-4.39675059169531e-005,-0.997125446796417,0.0757692381739616,-0.0176310073584318,-0.977997601032257,0.207870215177536,-4.39675059169531e-005,-0.997125446796417,0.0757692381739616,0.0162531435489655,-0.993677854537964,0.111086033284664,-0.0176310073584318,-0.977997601032257,0.207870215177536,-0.0282068476080894,-0.995488226413727,0.090596541762352,-0.0176310073584318,-0.977997601032257,0.207870215177536,-0.0280477721244097,-0.985161900520325,0.169320657849312,0.0241172928363085,-0.960598528385162,0.276891440153122,0.0405942760407925,-0.958017885684967,0.283820182085037,0.0113002257421613,-0.904222249984741,0.42691296339035,0.0644725039601326,-0.885426580905914,0.460285872220993,0.0113002257421613,-0.904222249984741,0.42691296339035,0.0405942760407925,-0.958017885684967,0.283820182085037,0.0126365553587675,-0.962542414665222,0.270836472511292,0.0241172928363085,-0.960598528385162,0.276891440153122,0.0113002257421613,-0.904222249984741,0.42691296339035,0.0408908016979694,-0.950830936431885,0.306999295949936,0.0405942760407925,-0.958017885684967,0.283820182085037,0.0241172928363085,-0.960598528385162,0.276891440153122,-0.998281359672546,-0.0460677109658718,-0.0362221449613571,-0.998058378696442,-0.0538769289851189,-0.0312541425228119,-0.997572422027588,-0.0347094908356667,-0.0603697672486305,-0.979522347450256,0.0299051254987717,-0.199102625250816,-0.997673094272614,-0.0175091978162527,-0.0658929795026779,-0.981379628181458,0.0281527899205685,-0.190004304051399,-0.977085769176483,0.0405159890651703,-0.208954095840454,-0.981379628181458,0.0281527899205685,-0.190004304051399,-0.997673094272614,-0.0175091978162527,-0.0658929795026779,-0.990388512611389,0.0115148052573204,-0.137833312153816,-0.992355406284332,0.00376891763880849,-0.123356193304062,-0.997673094272614,-0.0175091978162527,-0.0658929795026779,-0.998454868793488,-0.037811566144228,-0.0407202392816544,-0.997673094272614,-0.0175091978162527,-0.0658929795026779, +-0.992355406284332,0.00376891763880849,-0.123356193304062,-0.997572422027588,-0.0347094908356667,-0.0603697672486305,-0.997673094272614,-0.0175091978162527,-0.0658929795026779,-0.998281359672546,-0.0460677109658718,-0.0362221449613571,-0.998454868793488,-0.037811566144228,-0.0407202392816544,-0.998281359672546,-0.0460677109658718,-0.0362221449613571,-0.997673094272614,-0.0175091978162527,-0.0658929795026779,-0.998137831687927,-0.0607152357697487,0.00588118191808462,-0.998454868793488,-0.037811566144228,-0.0407202392816544,-0.992355406284332,0.00376891763880849,-0.123356193304062,-0.0664785280823708,-0.987180054187775,0.145107463002205,-0.0211702082306147,-0.98026829957962,0.196535229682922,-0.0761648938059807,-0.987142562866211,0.140529170632362,0.0770297273993492,-0.945576012134552,0.316152542829514,0.116563193500042,-0.917974591255188,0.379124999046326,-0.0211702082306147,-0.98026829957962,0.196535229682922,0.0408908016979694,-0.950830936431885,0.306999295949936,-0.0761648938059807,-0.987142562866211,0.140529170632362,0.116563193500042,-0.917974591255188,0.379124999046326,0.116563193500042,-0.917974591255188,0.379124999046326,-0.0761648938059807,-0.987142562866211,0.140529170632362,-0.0211702082306147,-0.98026829957962,0.196535229682922,-0.990388512611389,0.0115148052573204,-0.137833312153816,-0.997673094272614,-0.0175091978162527,-0.0658929795026779,-0.979522347450256,0.0299051254987717,-0.199102625250816,-0.990388512611389,0.0115148052573204,-0.137833312153816,-0.98112940788269,0.0238565020263195,-0.191874995827675,-0.970592081546783,0.0335710607469082,-0.238378092646599,-0.977085769176483,0.0405159890651703,-0.208954095840454,-0.97014993429184,0.0309578347951174,-0.240521907806396,-0.981379628181458,0.0281527899205685,-0.190004304051399,-0.98112940788269,0.0238565020263195,-0.191874995827675,-0.979522347450256,0.0299051254987717,-0.199102625250816,-0.981379628181458,0.0281527899205685,-0.190004304051399,0.0644725039601326,-0.885426580905914,0.460285872220993,0.0897998213768005,-0.935772299766541,0.340978503227234, +0.227016806602478,-0.790714383125305,0.568536937236786,-0.000251702993409708,-0.985339105129242,0.170607581734657,-0.164929196238518,-0.98617696762085,0.0159196704626083,0.0241172928363085,-0.960598528385162,0.276891440153122,-0.0664785280823708,-0.987180054187775,0.145107463002205,-0.0761648938059807,-0.987142562866211,0.140529170632362,-0.164929196238518,-0.98617696762085,0.0159196704626083,0.0408908016979694,-0.950830936431885,0.306999295949936,0.0241172928363085,-0.960598528385162,0.276891440153122,-0.0761648938059807,-0.987142562866211,0.140529170632362,-0.0761648938059807,-0.987142562866211,0.140529170632362,0.0241172928363085,-0.960598528385162,0.276891440153122,-0.164929196238518,-0.98617696762085,0.0159196704626083,-0.98112940788269,0.0238565020263195,-0.191874995827675,-0.990388512611389,0.0115148052573204,-0.137833312153816,-0.979522347450256,0.0299051254987717,-0.199102625250816,-0.0238853543996811,-0.983849048614502,0.177399814128876,-0.0238988101482391,-0.982712090015411,0.183591544628143,-0.0191918350756168,-0.981124579906464,0.192422673106194,0.00843244884163141,-0.986494600772858,0.163577154278755,-0.0486740283668041,-0.961850643157959,0.269210457801819,-0.0922044739127159,-0.924306869506836,0.370344638824463,-0.0238988101482391,-0.982712090015411,0.183591544628143,-0.0238853543996811,-0.983849048614502,0.177399814128876,-0.0319292657077312,-0.964336156845093,0.262747585773468,-0.0773913785815239,-0.894442617893219,0.440435171127319,-0.0486740283668041,-0.961850643157959,0.269210457801819,-0.0319292657077312,-0.964336156845093,0.262747585773468,-0.0238988101482391,-0.982712090015411,0.183591544628143,-0.0319292657077312,-0.964336156845093,0.262747585773468,-0.0486740283668041,-0.961850643157959,0.269210457801819,0.00843244884163141,-0.986494600772858,0.163577154278755,-0.0132616348564625,-0.98305070400238,0.182853773236275,-0.0486740283668041,-0.961850643157959,0.269210457801819,-0.0486740283668041,-0.961850643157959,0.269210457801819,-0.0132616348564625,-0.98305070400238,0.182853773236275,-0.0238988101482391,-0.982712090015411,0.183591544628143, +0.0211133360862732,-0.907960534095764,0.418523490428925,0.329619228839874,-0.748004257678986,0.576056361198425,-0.0337321758270264,-0.965963125228882,0.256471008062363,0.571177184581757,-0.548584282398224,0.610583364963531,-0.0337321758270264,-0.965963125228882,0.256471008062363,0.329619228839874,-0.748004257678986,0.576056361198425,-0.0922044739127159,-0.924306869506836,0.370344638824463,-0.0773913785815239,-0.894442617893219,0.440435171127319,-0.0910163298249245,-0.91119521856308,0.401795357465744,-0.0560146495699883,-0.941998958587646,0.330908596515656,-0.0910163298249245,-0.91119521856308,0.401795357465744,-0.0773913785815239,-0.894442617893219,0.440435171127319,-0.998281359672546,-0.0460677109658718,-0.0362221449613571,-0.998454868793488,-0.037811566144228,-0.0407202392816544,-0.997495651245117,-0.0706412345170975,-0.00351967709138989,-0.997495651245117,-0.0706412345170975,-0.00351967709138989,-0.998454868793488,-0.037811566144228,-0.0407202392816544,-0.994949877262115,-0.0933206230401993,0.0369600728154182,-0.998137831687927,-0.0607152357697487,0.00588118191808462,-0.994949877262115,-0.0933206230401993,0.0369600728154182,-0.998454868793488,-0.037811566144228,-0.0407202392816544,-0.997495651245117,-0.0706412345170975,-0.00351967709138989,-0.997852027416229,-0.0655021518468857,-0.000983322155661881,-0.998281359672546,-0.0460677109658718,-0.0362221449613571,-0.997495651245117,-0.0706412345170975,-0.00351967709138989,-0.998030722141266,-0.0627179443836212,0.00106386095285416,-0.997852027416229,-0.0655021518468857,-0.000983322155661881,-0.997495651245117,-0.0706412345170975,-0.00351967709138989,-0.994949877262115,-0.0933206230401993,0.0369600728154182,-0.991954565048218,-0.116658098995686,0.0491644181311131,-0.998030722141266,-0.0627179443836212,0.00106386095285416,-0.997495651245117,-0.0706412345170975,-0.00351967709138989,-0.991954565048218,-0.116658098995686,0.0491644181311131,0.00539570301771164,-0.982896864414215,0.184078097343445,0.00843244884163141,-0.986494600772858,0.163577154278755,-0.0848338305950165,-0.944593966007233,0.317089319229126, +-0.0922044739127159,-0.924306869506836,0.370344638824463,-0.0848338305950165,-0.944593966007233,0.317089319229126,0.00843244884163141,-0.986494600772858,0.163577154278755,-0.0593573525547981,-0.956197559833527,0.286641120910645,-0.0910163298249245,-0.91119521856308,0.401795357465744,-0.0973615571856499,-0.901135563850403,0.422463685274124,-0.0910163298249245,-0.91119521856308,0.401795357465744,-0.0772964805364609,-0.92727917432785,0.366304159164429,-0.0973615571856499,-0.901135563850403,0.422463685274124,-0.0120629910379648,-0.964337825775146,0.26439955830574,-0.0973615571856499,-0.901135563850403,0.422463685274124,-0.0772964805364609,-0.92727917432785,0.366304159164429,0.0126365553587675,-0.962542414665222,0.270836472511292,0.0255534090101719,-0.957516372203827,0.287244737148285,0.0241172928363085,-0.960598528385162,0.276891440153122,0.0334875136613846,-0.973685503005981,0.225422248244286,0.0243502967059612,-0.927502751350403,0.373022466897964,0.0255534090101719,-0.957516372203827,0.287244737148285,-0.000251702993409708,-0.985339105129242,0.170607581734657,0.0241172928363085,-0.960598528385162,0.276891440153122,0.0243502967059612,-0.927502751350403,0.373022466897964,0.0243502967059612,-0.927502751350403,0.373022466897964,0.0241172928363085,-0.960598528385162,0.276891440153122,0.0255534090101719,-0.957516372203827,0.287244737148285,-0.000251702993409708,-0.985339105129242,0.170607581734657,-0.314412415027618,-0.93782502412796,-0.147068336606026,-0.164929196238518,-0.98617696762085,0.0159196704626083,-0.164929196238518,-0.98617696762085,0.0159196704626083,-0.314412415027618,-0.93782502412796,-0.147068336606026,-0.145404830574989,-0.988458514213562,0.0425114557147026,-0.209112375974655,-0.977353453636169,-0.032441183924675,-0.145404830574989,-0.988458514213562,0.0425114557147026,-0.314412415027618,-0.93782502412796,-0.147068336606026,-0.0664785280823708,-0.987180054187775,0.145107463002205,-0.164929196238518,-0.98617696762085,0.0159196704626083,-0.145404830574989,-0.988458514213562,0.0425114557147026,-0.199849992990494,-0.857707262039185,0.473706811666489, +-0.0593573525547981,-0.956197559833527,0.286641120910645,-0.196729049086571,-0.819158554077148,0.538773536682129,-0.196729049086571,-0.819158554077148,0.538773536682129,-0.0593573525547981,-0.956197559833527,0.286641120910645,-0.0973615571856499,-0.901135563850403,0.422463685274124,-0.557392597198486,0.36250627040863,0.746928870677948,-0.3920678794384,-0.412631869316101,0.822203040122986,-0.425507247447968,-0.171777874231339,0.88850212097168,-0.196729049086571,-0.819158554077148,0.538773536682129,-0.0973615571856499,-0.901135563850403,0.422463685274124,-0.3920678794384,-0.412631869316101,0.822203040122986,-0.410927712917328,-0.387704133987427,0.825120568275452,-0.425507247447968,-0.171777874231339,0.88850212097168,-0.0973615571856499,-0.901135563850403,0.422463685274124,-0.0973615571856499,-0.901135563850403,0.422463685274124,-0.425507247447968,-0.171777874231339,0.88850212097168,-0.3920678794384,-0.412631869316101,0.822203040122986,-0.392116010189056,-0.456242680549622,0.798803925514221,-0.0973615571856499,-0.901135563850403,0.422463685274124,-0.20119035243988,-0.652862191200256,0.730269491672516,-0.0120629910379648,-0.964337825775146,0.26439955830574,-0.20119035243988,-0.652862191200256,0.730269491672516,-0.0973615571856499,-0.901135563850403,0.422463685274124,-0.956616103649139,-0.226293787360191,0.183512702584267,-0.975375592708588,-0.152552783489227,0.159280151128769,-0.859252452850342,-0.479262113571167,0.178866446018219,-0.909512341022491,-0.367193460464478,0.194823950529099,-0.859252452850342,-0.479262113571167,0.178866446018219,-0.975375592708588,-0.152552783489227,0.159280151128769,-0.392116010189056,-0.456242680549622,0.798803925514221,-0.402066737413406,-0.455369263887405,0.794343292713165,-0.0973615571856499,-0.901135563850403,0.422463685274124,-0.410927712917328,-0.387704133987427,0.825120568275452,-0.0973615571856499,-0.901135563850403,0.422463685274124,-0.402066737413406,-0.455369263887405,0.794343292713165,-0.985791325569153,-0.136716023087502,0.0975921526551247,-0.967150390148163,-0.205437839031219,0.149717897176743, +-0.961652815341949,-0.217290297150612,0.167358741164207,-0.961652815341949,-0.217290297150612,0.167358741164207,-0.967150390148163,-0.205437839031219,0.149717897176743,-0.975375592708588,-0.152552783489227,0.159280151128769,-0.909512341022491,-0.367193460464478,0.194823950529099,-0.975375592708588,-0.152552783489227,0.159280151128769,-0.967150390148163,-0.205437839031219,0.149717897176743,-0.987225234508514,-0.141165986657143,0.0738819614052773,-0.961652815341949,-0.217290297150612,0.167358741164207,-0.975375592708588,-0.152552783489227,0.159280151128769,-0.196729049086571,-0.819158554077148,0.538773536682129,-0.3920678794384,-0.412631869316101,0.822203040122986,-0.199849992990494,-0.857707262039185,0.473706811666489,-0.383190244436264,-0.575422167778015,0.722533464431763,-0.199849992990494,-0.857707262039185,0.473706811666489,-0.3920678794384,-0.412631869316101,0.822203040122986,-0.994949877262115,-0.0933206230401993,0.0369600728154182,-0.961652815341949,-0.217290297150612,0.167358741164207,-0.991954565048218,-0.116658098995686,0.0491644181311131,-0.987225234508514,-0.141165986657143,0.0738819614052773,-0.991954565048218,-0.116658098995686,0.0491644181311131,-0.961652815341949,-0.217290297150612,0.167358741164207,-0.383190244436264,-0.575422167778015,0.722533464431763,-0.3920678794384,-0.412631869316101,0.822203040122986,-0.597660839557648,0.544666230678558,0.588336884975433,-0.557392597198486,0.36250627040863,0.746928870677948,-0.597660839557648,0.544666230678558,0.588336884975433,-0.3920678794384,-0.412631869316101,0.822203040122986,-0.940985977649689,-0.239988505840302,0.238643959164619,-0.631716728210449,-0.696848511695862,0.339611768722534,-0.989835381507874,-0.103850148618221,0.097165584564209,-0.72422182559967,-0.609867632389069,0.321813941001892,-0.989835381507874,-0.103850148618221,0.097165584564209,-0.631716728210449,-0.696848511695862,0.339611768722534,-0.956616103649139,-0.226293787360191,0.183512702584267,-0.998030722141266,-0.0627179443836212,0.00106386095285416,-0.975375592708588,-0.152552783489227,0.159280151128769, +-0.987225234508514,-0.141165986657143,0.0738819614052773,-0.975375592708588,-0.152552783489227,0.159280151128769,-0.991954565048218,-0.116658098995686,0.0491644181311131,-0.991954565048218,-0.116658098995686,0.0491644181311131,-0.975375592708588,-0.152552783489227,0.159280151128769,-0.998030722141266,-0.0627179443836212,0.00106386095285416,-0.0311340726912022,-0.905423521995544,0.423366099596024,-0.108981132507324,-0.817143619060516,0.566038370132446,-0.0433214828372002,-0.947295010089874,0.317420065402985,-0.0713478922843933,-0.817721903324127,0.571174561977386,-0.0311340726912022,-0.905423521995544,0.423366099596024,-0.0221750903874636,-0.887982726097107,0.45934185385704,-0.0433214828372002,-0.947295010089874,0.317420065402985,-0.0435484871268272,-0.937660217285156,0.344814300537109,-0.036842305213213,-0.966539561748505,0.25385794043541,-0.0378944762051106,-0.925505459308624,0.376833587884903,-0.036842305213213,-0.966539561748505,0.25385794043541,-0.0435484871268272,-0.937660217285156,0.344814300537109,-0.0319470725953579,-0.950940608978271,0.307719558477402,-0.0433214828372002,-0.947295010089874,0.317420065402985,-0.036842305213213,-0.966539561748505,0.25385794043541,-0.204854160547256,-0.52427476644516,0.826541543006897,-0.108704194426537,-0.83520895242691,0.539082109928131,-0.0964735001325607,-0.792454838752747,0.602252662181854,-0.0311340726912022,-0.905423521995544,0.423366099596024,-0.0964735001325607,-0.792454838752747,0.602252662181854,-0.118041142821312,-0.778671324253082,0.616228342056274,-0.118041142821312,-0.778671324253082,0.616228342056274,-0.0964735001325607,-0.792454838752747,0.602252662181854,-0.108704194426537,-0.83520895242691,0.539082109928131,-0.0713478922843933,-0.817721903324127,0.571174561977386,-0.0964735001325607,-0.792454838752747,0.602252662181854,-0.0311340726912022,-0.905423521995544,0.423366099596024,-0.118041142821312,-0.778671324253082,0.616228342056274,-0.108704194426537,-0.83520895242691,0.539082109928131,-0.150371894240379,-0.767139554023743,0.623606562614441,-0.204854160547256,-0.52427476644516,0.826541543006897, +-0.150371894240379,-0.767139554023743,0.623606562614441,-0.108704194426537,-0.83520895242691,0.539082109928131,-0.118041142821312,-0.778671324253082,0.616228342056274,-0.108981132507324,-0.817143619060516,0.566038370132446,-0.0311340726912022,-0.905423521995544,0.423366099596024,-0.0772964805364609,-0.92727917432785,0.366304159164429,-0.0560146495699883,-0.941998958587646,0.330908596515656,-0.108981132507324,-0.817143619060516,0.566038370132446,-0.0433214828372002,-0.947295010089874,0.317420065402985,-0.108981132507324,-0.817143619060516,0.566038370132446,-0.0560146495699883,-0.941998958587646,0.330908596515656,-0.000251702993409708,-0.985339105129242,0.170607581734657,0.041206281632185,-0.927101135253906,0.372539430856705,-0.0265752859413624,-0.979492962360382,0.199718236923218,0.130346417427063,-0.887000560760498,0.442989706993103,-0.0265752859413624,-0.979492962360382,0.199718236923218,0.041206281632185,-0.927101135253906,0.372539430856705,-0.998058378696442,-0.0538769289851189,-0.0312541425228119,-0.998281359672546,-0.0460677109658718,-0.0362221449613571,-0.997852027416229,-0.0655021518468857,-0.000983322155661881,0.929957091808319,-0.359007090330124,0.0793334916234016,0.723123967647552,-0.504738688468933,0.471519529819489,0.575447559356689,-0.75773686170578,0.307725548744202,-0.99429190158844,-0.0977403223514557,0.042785070836544,-0.998135566711426,-0.0601828210055828,-0.0101687163114548,-0.997852027416229,-0.0655021518468857,-0.000983322155661881,-0.998058378696442,-0.0538769289851189,-0.0312541425228119,-0.997852027416229,-0.0655021518468857,-0.000983322155661881,-0.998135566711426,-0.0601828210055828,-0.0101687163114548,-0.304873168468475,-0.179013088345528,0.935418009757996,-0.28442245721817,-0.342920541763306,0.895270645618439,-0.204854160547256,-0.52427476644516,0.826541543006897,-0.165356397628784,-0.158091977238655,0.973480463027954,-0.204854160547256,-0.52427476644516,0.826541543006897,-0.340315967798233,0.564552962779999,0.75197422504425,-0.340315967798233,0.564552962779999,0.75197422504425,-0.204854160547256,-0.52427476644516,0.826541543006897, +-0.28442245721817,-0.342920541763306,0.895270645618439,-0.0511315390467644,-0.892164051532745,0.448808491230011,-0.124305561184883,-0.834219396114349,0.5372394323349,-0.20119035243988,-0.652862191200256,0.730269491672516,-0.349679261445999,-0.293891727924347,0.889579772949219,-0.20119035243988,-0.652862191200256,0.730269491672516,-0.124305561184883,-0.834219396114349,0.5372394323349,-0.0120629910379648,-0.964337825775146,0.26439955830574,-0.0651938021183014,-0.904749095439911,0.420926153659821,-0.20119035243988,-0.652862191200256,0.730269491672516,-0.0511315390467644,-0.892164051532745,0.448808491230011,-0.20119035243988,-0.652862191200256,0.730269491672516,-0.0651938021183014,-0.904749095439911,0.420926153659821,-0.349679261445999,-0.293891727924347,0.889579772949219,-0.124305561184883,-0.834219396114349,0.5372394323349,-0.229359149932861,-0.16112793982029,0.959912657737732,-0.160733640193939,-0.763964295387268,0.624918758869171,-0.229359149932861,-0.16112793982029,0.959912657737732,-0.124305561184883,-0.834219396114349,0.5372394323349,-0.0511315390467644,-0.892164051532745,0.448808491230011,-0.0651938021183014,-0.904749095439911,0.420926153659821,-0.133482575416565,-0.800023853778839,0.584931015968323,-0.0120629910379648,-0.964337825775146,0.26439955830574,-0.0772964805364609,-0.92727917432785,0.366304159164429,-0.0651938021183014,-0.904749095439911,0.420926153659821,-0.0772964805364609,-0.92727917432785,0.366304159164429,-0.133482575416565,-0.800023853778839,0.584931015968323,-0.0651938021183014,-0.904749095439911,0.420926153659821,-0.118041142821312,-0.778671324253082,0.616228342056274,-0.133482575416565,-0.800023853778839,0.584931015968323,-0.108981132507324,-0.817143619060516,0.566038370132446,-0.0772964805364609,-0.92727917432785,0.366304159164429,-0.108981132507324,-0.817143619060516,0.566038370132446,-0.133482575416565,-0.800023853778839,0.584931015968323,-0.124305561184883,-0.834219396114349,0.5372394323349,-0.133482575416565,-0.800023853778839,0.584931015968323,-0.160733640193939,-0.763964295387268,0.624918758869171, +-0.160733640193939,-0.763964295387268,0.624918758869171,-0.133482575416565,-0.800023853778839,0.584931015968323,-0.150371894240379,-0.767139554023743,0.623606562614441,-0.0511315390467644,-0.892164051532745,0.448808491230011,-0.133482575416565,-0.800023853778839,0.584931015968323,-0.124305561184883,-0.834219396114349,0.5372394323349,-0.118041142821312,-0.778671324253082,0.616228342056274,-0.150371894240379,-0.767139554023743,0.623606562614441,-0.133482575416565,-0.800023853778839,0.584931015968323,-0.639316618442535,0.130501911044121,0.7577885389328,-0.402066737413406,-0.455369263887405,0.794343292713165,-0.452842980623245,-0.334306627511978,0.826542377471924,-0.20119035243988,-0.652862191200256,0.730269491672516,-0.452842980623245,-0.334306627511978,0.826542377471924,-0.392116010189056,-0.456242680549622,0.798803925514221,-0.392116010189056,-0.456242680549622,0.798803925514221,-0.452842980623245,-0.334306627511978,0.826542377471924,-0.402066737413406,-0.455369263887405,0.794343292713165,-0.349679261445999,-0.293891727924347,0.889579772949219,-0.452842980623245,-0.334306627511978,0.826542377471924,-0.20119035243988,-0.652862191200256,0.730269491672516,-0.639316618442535,0.130501911044121,0.7577885389328,-0.452842980623245,-0.334306627511978,0.826542377471924,-0.550929009914398,0.369284361600876,0.748402535915375,-0.349679261445999,-0.293891727924347,0.889579772949219,-0.550929009914398,0.369284361600876,0.748402535915375,-0.452842980623245,-0.334306627511978,0.826542377471924,-0.349679261445999,-0.293891727924347,0.889579772949219,-0.229359149932861,-0.16112793982029,0.959912657737732,-0.550929009914398,0.369284361600876,0.748402535915375,-0.160733640193939,-0.763964295387268,0.624918758869171,-0.165356397628784,-0.158091977238655,0.973480463027954,-0.229359149932861,-0.16112793982029,0.959912657737732,-0.550929009914398,0.369284361600876,0.748402535915375,-0.229359149932861,-0.16112793982029,0.959912657737732,-0.328995138406754,0.388794660568237,0.860581755638123,-0.328995138406754,0.388794660568237,0.860581755638123, +-0.229359149932861,-0.16112793982029,0.959912657737732,-0.165356397628784,-0.158091977238655,0.973480463027954,-0.160733640193939,-0.763964295387268,0.624918758869171,-0.150371894240379,-0.767139554023743,0.623606562614441,-0.165356397628784,-0.158091977238655,0.973480463027954,-0.204854160547256,-0.52427476644516,0.826541543006897,-0.165356397628784,-0.158091977238655,0.973480463027954,-0.150371894240379,-0.767139554023743,0.623606562614441,-0.340315967798233,0.564552962779999,0.75197422504425,-0.298588216304779,0.512784481048584,0.804920554161072,-0.165356397628784,-0.158091977238655,0.973480463027954,-0.328995138406754,0.388794660568237,0.860581755638123,-0.165356397628784,-0.158091977238655,0.973480463027954,-0.298588216304779,0.512784481048584,0.804920554161072,-0.984032988548279,-0.148813769221306,0.0976404026150703,-0.997852027416229,-0.0655021518468857,-0.000983322155661881,-0.988220572471619,-0.136216625571251,0.0697504878044128,-0.997852027416229,-0.0655021518468857,-0.000983322155661881,-0.998030722141266,-0.0627179443836212,0.00106386095285416,-0.988220572471619,-0.136216625571251,0.0697504878044128,-0.956616103649139,-0.226293787360191,0.183512702584267,-0.988220572471619,-0.136216625571251,0.0697504878044128,-0.998030722141266,-0.0627179443836212,0.00106386095285416,-0.984032988548279,-0.148813769221306,0.0976404026150703,-0.977328836917877,-0.172075301408768,0.123363085091114,-0.997852027416229,-0.0655021518468857,-0.000983322155661881,-0.99429190158844,-0.0977403223514557,0.042785070836544,-0.997852027416229,-0.0655021518468857,-0.000983322155661881,-0.977328836917877,-0.172075301408768,0.123363085091114,-0.0378944762051106,-0.925505459308624,0.376833587884903,-0.0435484871268272,-0.937660217285156,0.344814300537109,-0.0560146495699883,-0.941998958587646,0.330908596515656,-0.0433214828372002,-0.947295010089874,0.317420065402985,-0.0560146495699883,-0.941998958587646,0.330908596515656,-0.0435484871268272,-0.937660217285156,0.344814300537109,-0.0560146495699883,-0.941998958587646,0.330908596515656,-0.0772964805364609,-0.92727917432785,0.366304159164429, +-0.0910163298249245,-0.91119521856308,0.401795357465744,-0.0311340726912022,-0.905423521995544,0.423366099596024,-0.0433214828372002,-0.947295010089874,0.317420065402985,-0.0210817810148001,-0.966991126537323,0.25393670797348,-0.0319470725953579,-0.950940608978271,0.307719558477402,-0.0210817810148001,-0.966991126537323,0.25393670797348,-0.0433214828372002,-0.947295010089874,0.317420065402985,-0.0560146495699883,-0.941998958587646,0.330908596515656,-0.0773913785815239,-0.894442617893219,0.440435171127319,-0.0378944762051106,-0.925505459308624,0.376833587884903,-0.0378944762051106,-0.925505459308624,0.376833587884903,-0.0773913785815239,-0.894442617893219,0.440435171127319,-0.0319292657077312,-0.964336156845093,0.262747585773468,-0.0773913785815239,-0.894442617893219,0.440435171127319,-0.0922044739127159,-0.924306869506836,0.370344638824463,-0.0486740283668041,-0.961850643157959,0.269210457801819,-0.0223111193627119,-0.978632748126984,0.204402223229408,-0.0268073789775372,-0.948878049850464,0.314502626657486,-0.036842305213213,-0.966539561748505,0.25385794043541,-0.0319470725953579,-0.950940608978271,0.307719558477402,-0.036842305213213,-0.966539561748505,0.25385794043541,-0.0268073789775372,-0.948878049850464,0.314502626657486,-0.0378944762051106,-0.925505459308624,0.376833587884903,-0.0319292657077312,-0.964336156845093,0.262747585773468,-0.036842305213213,-0.966539561748505,0.25385794043541,-0.0319292657077312,-0.964336156845093,0.262747585773468,-0.0280477721244097,-0.985161900520325,0.169320657849312,-0.036842305213213,-0.966539561748505,0.25385794043541,-0.0280477721244097,-0.985161900520325,0.169320657849312,-0.0223111193627119,-0.978632748126984,0.204402223229408,-0.036842305213213,-0.966539561748505,0.25385794043541,-0.0593573525547981,-0.956197559833527,0.286641120910645,-0.0848338305950165,-0.944593966007233,0.317089319229126,-0.0910163298249245,-0.91119521856308,0.401795357465744,-0.0922044739127159,-0.924306869506836,0.370344638824463,-0.0910163298249245,-0.91119521856308,0.401795357465744,-0.0848338305950165,-0.944593966007233,0.317089319229126, +-0.0319470725953579,-0.950940608978271,0.307719558477402,-0.0268073789775372,-0.948878049850464,0.314502626657486,-0.0210817810148001,-0.966991126537323,0.25393670797348,-0.0223111193627119,-0.978632748126984,0.204402223229408,-0.0210817810148001,-0.966991126537323,0.25393670797348,-0.0268073789775372,-0.948878049850464,0.314502626657486,-0.0664392709732056,-0.991442680358887,0.11237158626318,-0.0416549257934093,-0.995111227035522,0.0895460024476051,-0.173193693161011,-0.984182119369507,-0.0372780151665211,-0.197009414434433,-0.97753918170929,-0.0748627111315727,-0.173193693161011,-0.984182119369507,-0.0372780151665211,-0.0416549257934093,-0.995111227035522,0.0895460024476051,-0.0671180412173271,-0.997350037097931,0.0280734952539206,-0.122538730502129,-0.992434799671173,-0.00758593622595072,-0.0416549257934093,-0.995111227035522,0.0895460024476051,-0.197009414434433,-0.97753918170929,-0.0748627111315727,-0.0416549257934093,-0.995111227035522,0.0895460024476051,-0.122538730502129,-0.992434799671173,-0.00758593622595072,0.454182893037796,-0.711275696754456,0.536474466323853,0.0889366865158081,-0.988277077674866,0.12409171462059,0.115960001945496,-0.935802638530731,0.332906484603882,-0.0342703685164452,-0.985438704490662,0.166541829705238,0.115960001945496,-0.935802638530731,0.332906484603882,0.0889366865158081,-0.988277077674866,0.12409171462059,-0.0664392709732056,-0.991442680358887,0.11237158626318,0.0889366865158081,-0.988277077674866,0.12409171462059,-0.0416549257934093,-0.995111227035522,0.0895460024476051,0.116543255746365,-0.944480717182159,0.307203412055969,-0.0416549257934093,-0.995111227035522,0.0895460024476051,0.0889366865158081,-0.988277077674866,0.12409171462059,0.116543255746365,-0.944480717182159,0.307203412055969,0.332479029893875,-0.819000780582428,0.467648804187775,0.0681343898177147,-0.932513475418091,0.354649782180786,0.189538642764091,-0.894932746887207,0.403943747282028,0.0681343898177147,-0.932513475418091,0.354649782180786,0.332479029893875,-0.819000780582428,0.467648804187775,-0.143916547298431,-0.988428592681885,0.0479268468916416, +-0.321943014860153,-0.946200311183929,0.0325224846601486,-0.173193693161011,-0.984182119369507,-0.0372780151665211,-0.0664392709732056,-0.991442680358887,0.11237158626318,-0.173193693161011,-0.984182119369507,-0.0372780151665211,-0.321943014860153,-0.946200311183929,0.0325224846601486,-0.153353750705719,-0.988157391548157,-0.00525260716676712,-0.143916547298431,-0.988428592681885,0.0479268468916416,-0.173193693161011,-0.984182119369507,-0.0372780151665211,-0.0664392709732056,-0.991442680358887,0.11237158626318,-0.321943014860153,-0.946200311183929,0.0325224846601486,0.0889366865158081,-0.988277077674866,0.12409171462059,-0.306419491767883,-0.943503856658936,0.126125201582909,0.0889366865158081,-0.988277077674866,0.12409171462059,-0.143916547298431,-0.988428592681885,0.0479268468916416,-0.143916547298431,-0.988428592681885,0.0479268468916416,0.0889366865158081,-0.988277077674866,0.12409171462059,-0.321943014860153,-0.946200311183929,0.0325224846601486,-0.0342703685164452,-0.985438704490662,0.166541829705238,0.0889366865158081,-0.988277077674866,0.12409171462059,-0.306419491767883,-0.943503856658936,0.126125201582909,-4.39675059169531e-005,-0.997125446796417,0.0757692381739616,-0.0671180412173271,-0.997350037097931,0.0280734952539206,-0.00336125493049622,-0.990263283252716,0.139166712760925,0.116543255746365,-0.944480717182159,0.307203412055969,0.0681343898177147,-0.932513475418091,0.354649782180786,-0.0416549257934093,-0.995111227035522,0.0895460024476051,-0.00336125493049622,-0.990263283252716,0.139166712760925,-0.0416549257934093,-0.995111227035522,0.0895460024476051,0.0681343898177147,-0.932513475418091,0.354649782180786,-0.00336125493049622,-0.990263283252716,0.139166712760925,-0.0671180412173271,-0.997350037097931,0.0280734952539206,-0.0416549257934093,-0.995111227035522,0.0895460024476051,-0.00336125493049622,-0.990263283252716,0.139166712760925,0.0208832770586014,-0.956899762153625,0.289666831493378,-4.39675059169531e-005,-0.997125446796417,0.0757692381739616,-0.000344963307725266,-0.9919753074646,0.126431852579117, +-4.39675059169531e-005,-0.997125446796417,0.0757692381739616,0.0208832770586014,-0.956899762153625,0.289666831493378,0.0329030565917492,-0.906425476074219,0.421082466840744,0.0012978333979845,-0.925375044345856,0.379050642251968,0.0208832770586014,-0.956899762153625,0.289666831493378,0.0145450374111533,-0.994487226009369,0.103844851255417,0.0208832770586014,-0.956899762153625,0.289666831493378,-0.0299038328230381,-0.902209162712097,0.430260926485062,-0.0299038328230381,-0.902209162712097,0.430260926485062,0.0208832770586014,-0.956899762153625,0.289666831493378,0.0012978333979845,-0.925375044345856,0.379050642251968,-0.000344963307725266,-0.9919753074646,0.126431852579117,0.0208832770586014,-0.956899762153625,0.289666831493378,0.0145450374111533,-0.994487226009369,0.103844851255417,-0.000344963307725266,-0.9919753074646,0.126431852579117,0.0145450374111533,-0.994487226009369,0.103844851255417,-4.39675059169531e-005,-0.997125446796417,0.0757692381739616,0.454182893037796,-0.711275696754456,0.536474466323853,0.399577498435974,-0.807992875576019,0.432995796203613,0.0889366865158081,-0.988277077674866,0.12409171462059,0.116543255746365,-0.944480717182159,0.307203412055969,0.0889366865158081,-0.988277077674866,0.12409171462059,0.399577498435974,-0.807992875576019,0.432995796203613,-0.0299038328230381,-0.902209162712097,0.430260926485062,0.0162531435489655,-0.993677854537964,0.111086033284664,0.0145450374111533,-0.994487226009369,0.103844851255417,-4.39675059169531e-005,-0.997125446796417,0.0757692381739616,0.0145450374111533,-0.994487226009369,0.103844851255417,0.0162531435489655,-0.993677854537964,0.111086033284664,-0.201092049479485,-0.963698744773865,0.175632804632187,-0.332098931074142,-0.942826271057129,0.0280898362398148,-0.323687851428986,-0.938299179077148,0.121740728616714,-0.000306911795632914,-0.970240473747253,0.242143213748932,-0.323687851428986,-0.938299179077148,0.121740728616714,-0.286930620670319,-0.957880735397339,-0.0116304745897651,-0.286930620670319,-0.957880735397339,-0.0116304745897651,-0.323687851428986,-0.938299179077148,0.121740728616714, +-0.332098931074142,-0.942826271057129,0.0280898362398148,0.116543255746365,-0.944480717182159,0.307203412055969,0.274337321519852,-0.903198480606079,0.33010858297348,0.420569211244583,-0.797414064407349,0.432726740837097,0.0903470069169998,-0.956471085548401,0.277489632368088,0.420569211244583,-0.797414064407349,0.432726740837097,0.274337321519852,-0.903198480606079,0.33010858297348,0.116543255746365,-0.944480717182159,0.307203412055969,0.420569211244583,-0.797414064407349,0.432726740837097,0.332479029893875,-0.819000780582428,0.467648804187775,0.189538642764091,-0.894932746887207,0.403943747282028,0.332479029893875,-0.819000780582428,0.467648804187775,0.420569211244583,-0.797414064407349,0.432726740837097,-0.0342703685164452,-0.985438704490662,0.166541829705238,-0.306419491767883,-0.943503856658936,0.126125201582909,0.148310318589211,-0.963147163391113,0.224391609430313,-0.143916547298431,-0.988428592681885,0.0479268468916416,0.148310318589211,-0.963147163391113,0.224391609430313,-0.306419491767883,-0.943503856658936,0.126125201582909,0.130346417427063,-0.887000560760498,0.442989706993103,0.138860911130905,-0.917361557483673,0.373048961162567,-0.0265752859413624,-0.979492962360382,0.199718236923218,-0.127547279000282,-0.989003658294678,0.0748561471700668,-0.0265752859413624,-0.979492962360382,0.199718236923218,0.0903470069169998,-0.956471085548401,0.277489632368088,0.0903470069169998,-0.956471085548401,0.277489632368088,-0.0265752859413624,-0.979492962360382,0.199718236923218,0.138860911130905,-0.917361557483673,0.373048961162567,-0.000251702993409708,-0.985339105129242,0.170607581734657,-0.0265752859413624,-0.979492962360382,0.199718236923218,-0.127547279000282,-0.989003658294678,0.0748561471700668,0.336774975061417,-0.795884728431702,0.503140389919281,0.274337321519852,-0.903198480606079,0.33010858297348,0.34589159488678,-0.786720991134644,0.511301457881927,0.454182893037796,-0.711275696754456,0.536474466323853,0.148310318589211,-0.963147163391113,0.224391609430313,0.274337321519852,-0.903198480606079,0.33010858297348, +0.274337321519852,-0.903198480606079,0.33010858297348,0.148310318589211,-0.963147163391113,0.224391609430313,0.34589159488678,-0.786720991134644,0.511301457881927,-0.000306911795632914,-0.970240473747253,0.242143213748932,0.34589159488678,-0.786720991134644,0.511301457881927,0.148310318589211,-0.963147163391113,0.224391609430313,0.116543255746365,-0.944480717182159,0.307203412055969,0.399577498435974,-0.807992875576019,0.432995796203613,0.274337321519852,-0.903198480606079,0.33010858297348,0.454182893037796,-0.711275696754456,0.536474466323853,0.274337321519852,-0.903198480606079,0.33010858297348,0.399577498435974,-0.807992875576019,0.432995796203613,0.575447559356689,-0.75773686170578,0.307725548744202,0.723123967647552,-0.504738688468933,0.471519529819489,0.503557026386261,-0.795235872268677,0.337683856487274,0.0211133360862732,-0.907960534095764,0.418523490428925,0.325003057718277,-0.794204235076904,0.513432204723358,0.723123967647552,-0.504738688468933,0.471519529819489,0.503557026386261,-0.795235872268677,0.337683856487274,0.723123967647552,-0.504738688468933,0.471519529819489,0.325003057718277,-0.794204235076904,0.513432204723358,-0.192150712013245,-0.981364011764526,-0.00165367126464844,-0.0579127073287964,-0.996584057807922,0.0588768720626831,-0.286930620670319,-0.957880735397339,-0.0116304745897651,0.336774975061417,-0.795884728431702,0.503140389919281,0.34589159488678,-0.786720991134644,0.511301457881927,-0.0579127073287964,-0.996584057807922,0.0588768720626831,-0.000306911795632914,-0.970240473747253,0.242143213748932,-0.286930620670319,-0.957880735397339,-0.0116304745897651,0.34589159488678,-0.786720991134644,0.511301457881927,0.34589159488678,-0.786720991134644,0.511301457881927,-0.286930620670319,-0.957880735397339,-0.0116304745897651,-0.0579127073287964,-0.996584057807922,0.0588768720626831,0.189538642764091,-0.894932746887207,0.403943747282028,0.138860911130905,-0.917361557483673,0.373048961162567,0.0681343898177147,-0.932513475418091,0.354649782180786,0.130346417427063,-0.887000560760498,0.442989706993103, +0.0681343898177147,-0.932513475418091,0.354649782180786,0.138860911130905,-0.917361557483673,0.373048961162567,0.654361188411713,-0.745676815509796,0.125608682632446,0.269601553678513,-0.923171520233154,0.273987919092178,0.59607607126236,-0.801807522773743,0.0424055494368076,0.525897741317749,-0.84983104467392,0.0349136888980865,0.59607607126236,-0.801807522773743,0.0424055494368076,0.269601553678513,-0.923171520233154,0.273987919092178,-0.143916547298431,-0.988428592681885,0.0479268468916416,-0.201092049479485,-0.963698744773865,0.175632804632187,0.148310318589211,-0.963147163391113,0.224391609430313,0.336774975061417,-0.795884728431702,0.503140389919281,0.0161851681768894,-0.994686543941498,0.101669423282146,0.274337321519852,-0.903198480606079,0.33010858297348,-0.204321503639221,-0.973702192306519,-0.100780740380287,-0.127547279000282,-0.989003658294678,0.0748561471700668,0.0161851681768894,-0.994686543941498,0.101669423282146,0.0903470069169998,-0.956471085548401,0.277489632368088,0.274337321519852,-0.903198480606079,0.33010858297348,-0.127547279000282,-0.989003658294678,0.0748561471700668,0.274337321519852,-0.903198480606079,0.33010858297348,0.0161851681768894,-0.994686543941498,0.101669423282146,-0.127547279000282,-0.989003658294678,0.0748561471700668,0.189538642764091,-0.894932746887207,0.403943747282028,0.420569211244583,-0.797414064407349,0.432726740837097,0.138860911130905,-0.917361557483673,0.373048961162567,0.0903470069169998,-0.956471085548401,0.277489632368088,0.138860911130905,-0.917361557483673,0.373048961162567,0.420569211244583,-0.797414064407349,0.432726740837097,-0.201884791254997,-0.97884064912796,0.0333716087043285,-0.332098931074142,-0.942826271057129,0.0280898362398148,-0.0241631548851728,-0.989561319351196,0.14207261800766,-0.201092049479485,-0.963698744773865,0.175632804632187,-0.0241631548851728,-0.989561319351196,0.14207261800766,-0.332098931074142,-0.942826271057129,0.0280898362398148,-0.201092049479485,-0.963698744773865,0.175632804632187,-0.323687851428986,-0.938299179077148,0.121740728616714, +0.148310318589211,-0.963147163391113,0.224391609430313,-0.000306911795632914,-0.970240473747253,0.242143213748932,0.148310318589211,-0.963147163391113,0.224391609430313,-0.323687851428986,-0.938299179077148,0.121740728616714,-0.997572422027588,-0.0347094908356667,-0.0603697672486305,-0.977085769176483,0.0405159890651703,-0.208954095840454,-0.997673094272614,-0.0175091978162527,-0.0658929795026779,-0.828684628009796,0.196641445159912,-0.524036347866058,-0.913653492927551,0.0859971269965172,-0.397293031215668,-0.991521000862122,0.0219563022255898,-0.128078743815422,-0.997572422027588,-0.0347094908356667,-0.0603697672486305,-0.991521000862122,0.0219563022255898,-0.128078743815422,-0.977085769176483,0.0405159890651703,-0.208954095840454,0.654361188411713,-0.745676815509796,0.125608682632446,0.575447559356689,-0.75773686170578,0.307725548744202,0.269601553678513,-0.923171520233154,0.273987919092178,0.575447559356689,-0.75773686170578,0.307725548744202,0.503557026386261,-0.795235872268677,0.337683856487274,0.269601553678513,-0.923171520233154,0.273987919092178,-0.991521000862122,0.0219563022255898,-0.128078743815422,-0.913653492927551,0.0859971269965172,-0.397293031215668,-0.977085769176483,0.0405159890651703,-0.208954095840454,-0.925468802452087,0.0692155361175537,-0.372446894645691,-0.977085769176483,0.0405159890651703,-0.208954095840454,-0.913653492927551,0.0859971269965172,-0.397293031215668,-0.853092610836029,0.107416152954102,-0.510582745075226,-0.925468802452087,0.0692155361175537,-0.372446894645691,-0.913653492927551,0.0859971269965172,-0.397293031215668,0.0126365553587675,-0.962542414665222,0.270836472511292,0.010451796464622,-0.935016572475433,0.354449868202209,0.0781672596931458,-0.782634437084198,0.617554306983948,0.012784730643034,-0.923654556274414,0.383013039827347,0.0781672596931458,-0.782634437084198,0.617554306983948,0.010451796464622,-0.935016572475433,0.354449868202209,-0.0190667975693941,-0.96084851026535,0.27641761302948,-0.0176310073584318,-0.977997601032257,0.207870215177536,-0.0100259566679597,-0.944054305553436,0.329637706279755, +-0.0176310073584318,-0.977997601032257,0.207870215177536,0.0012978333979845,-0.925375044345856,0.379050642251968,-0.0100259566679597,-0.944054305553436,0.329637706279755,-0.0100259566679597,-0.944054305553436,0.329637706279755,0.0012978333979845,-0.925375044345856,0.379050642251968,0.010451796464622,-0.935016572475433,0.354449868202209,0.012784730643034,-0.923654556274414,0.383013039827347,0.010451796464622,-0.935016572475433,0.354449868202209,0.0012978333979845,-0.925375044345856,0.379050642251968,0.041206281632185,-0.927101135253906,0.372539430856705,0.0614458061754704,-0.867539644241333,0.493558019399643,-0.020106166601181,-0.964210510253906,0.264374494552612,0.0126365553587675,-0.962542414665222,0.270836472511292,0.0781672596931458,-0.782634437084198,0.617554306983948,0.0614458061754704,-0.867539644241333,0.493558019399643,-0.020106166601181,-0.964210510253906,0.264374494552612,0.0614458061754704,-0.867539644241333,0.493558019399643,0.012784730643034,-0.923654556274414,0.383013039827347,0.012784730643034,-0.923654556274414,0.383013039827347,0.0614458061754704,-0.867539644241333,0.493558019399643,0.0781672596931458,-0.782634437084198,0.617554306983948,0.0126365553587675,-0.962542414665222,0.270836472511292,0.0113002257421613,-0.904222249984741,0.42691296339035,0.010451796464622,-0.935016572475433,0.354449868202209,-0.0100259566679597,-0.944054305553436,0.329637706279755,0.010451796464622,-0.935016572475433,0.354449868202209,0.0113002257421613,-0.904222249984741,0.42691296339035,0.0329030565917492,-0.906425476074219,0.421082466840744,0.041206281632185,-0.927101135253906,0.372539430856705,0.0012978333979845,-0.925375044345856,0.379050642251968,0.041206281632185,-0.927101135253906,0.372539430856705,-0.020106166601181,-0.964210510253906,0.264374494552612,0.0012978333979845,-0.925375044345856,0.379050642251968,0.012784730643034,-0.923654556274414,0.383013039827347,0.0012978333979845,-0.925375044345856,0.379050642251968,-0.020106166601181,-0.964210510253906,0.264374494552612,0.0334875136613846,-0.973685503005981,0.225422248244286, +0.0255534090101719,-0.957516372203827,0.287244737148285,0.0297365207225084,-0.908673942089081,0.416446179151535,0.0297365207225084,-0.908673942089081,0.416446179151535,0.0255534090101719,-0.957516372203827,0.287244737148285,0.0614458061754704,-0.867539644241333,0.493558019399643,0.0126365553587675,-0.962542414665222,0.270836472511292,0.0614458061754704,-0.867539644241333,0.493558019399643,0.0255534090101719,-0.957516372203827,0.287244737148285,0.041206281632185,-0.927101135253906,0.372539430856705,0.0297365207225084,-0.908673942089081,0.416446179151535,0.0614458061754704,-0.867539644241333,0.493558019399643,0.130346417427063,-0.887000560760498,0.442989706993103,0.041206281632185,-0.927101135253906,0.372539430856705,0.0681343898177147,-0.932513475418091,0.354649782180786,0.0208832770586014,-0.956899762153625,0.289666831493378,0.0681343898177147,-0.932513475418091,0.354649782180786,0.0329030565917492,-0.906425476074219,0.421082466840744,0.0329030565917492,-0.906425476074219,0.421082466840744,0.0681343898177147,-0.932513475418091,0.354649782180786,0.041206281632185,-0.927101135253906,0.372539430856705,-0.00336125493049622,-0.990263283252716,0.139166712760925,0.0681343898177147,-0.932513475418091,0.354649782180786,0.0208832770586014,-0.956899762153625,0.289666831493378,-0.0299038328230381,-0.902209162712097,0.430260926485062,0.0012978333979845,-0.925375044345856,0.379050642251968,0.0162531435489655,-0.993677854537964,0.111086033284664,-0.0176310073584318,-0.977997601032257,0.207870215177536,0.0162531435489655,-0.993677854537964,0.111086033284664,0.0012978333979845,-0.925375044345856,0.379050642251968,-0.995139718055725,-0.00873976200819016,-0.0980842411518097,-0.998135566711426,-0.0601828210055828,-0.0101687163114548,-0.996633410453796,0.0230122860521078,-0.0786908194422722,-0.99565064907074,0.0326875150203705,-0.0872431695461273,-0.996633410453796,0.0230122860521078,-0.0786908194422722,-0.998135566711426,-0.0601828210055828,-0.0101687163114548,-0.997572422027588,-0.0347094908356667,-0.0603697672486305,-0.995139718055725,-0.00873976200819016,-0.0980842411518097, +-0.991469323635101,0.0183795373886824,-0.129038393497467,-0.997572422027588,-0.0347094908356667,-0.0603697672486305,-0.998058378696442,-0.0538769289851189,-0.0312541425228119,-0.995139718055725,-0.00873976200819016,-0.0980842411518097,0.0408331677317619,-0.950548768043518,0.307879418134689,-0.205497190356255,-0.97734010219574,-0.0507679879665375,-0.384628504514694,-0.918390870094299,-0.0928396508097649,-0.286930620670319,-0.957880735397339,-0.0116304745897651,-0.384628504514694,-0.918390870094299,-0.0928396508097649,-0.192150712013245,-0.981364011764526,-0.00165367126464844,-0.192150712013245,-0.981364011764526,-0.00165367126464844,-0.384628504514694,-0.918390870094299,-0.0928396508097649,-0.205497190356255,-0.97734010219574,-0.0507679879665375,-0.192150712013245,-0.981364011764526,-0.00165367126464844,-0.205497190356255,-0.97734010219574,-0.0507679879665375,-0.0579127073287964,-0.996584057807922,0.0588768720626831,-0.134330973029137,-0.990262746810913,0.0365364030003548,-0.202247217297554,-0.972602784633636,-0.114630118012428,-0.205497190356255,-0.97734010219574,-0.0507679879665375,-0.204321503639221,-0.973702192306519,-0.100780740380287,-0.0579127073287964,-0.996584057807922,0.0588768720626831,-0.202247217297554,-0.972602784633636,-0.114630118012428,-0.202247217297554,-0.972602784633636,-0.114630118012428,-0.0579127073287964,-0.996584057807922,0.0588768720626831,-0.205497190356255,-0.97734010219574,-0.0507679879665375,0.0408331677317619,-0.950548768043518,0.307879418134689,0.0835380628705025,-0.948269248008728,0.306279182434082,-0.205497190356255,-0.97734010219574,-0.0507679879665375,0.0568314418196678,-0.953417658805847,0.296251714229584,-0.205497190356255,-0.97734010219574,-0.0507679879665375,0.0835380628705025,-0.948269248008728,0.306279182434082,0.0568314418196678,-0.953417658805847,0.296251714229584,0.0324359498918056,-0.960752785205841,0.275503128767014,-0.205497190356255,-0.97734010219574,-0.0507679879665375,-0.134330973029137,-0.990262746810913,0.0365364030003548,-0.205497190356255,-0.97734010219574,-0.0507679879665375, +0.0324359498918056,-0.960752785205841,0.275503128767014,-0.134330973029137,-0.990262746810913,0.0365364030003548,-0.145404830574989,-0.988458514213562,0.0425114557147026,-0.202247217297554,-0.972602784633636,-0.114630118012428,-0.209112375974655,-0.977353453636169,-0.032441183924675,-0.202247217297554,-0.972602784633636,-0.114630118012428,-0.145404830574989,-0.988458514213562,0.0425114557147026,0.0568314418196678,-0.953417658805847,0.296251714229584,0.0835380628705025,-0.948269248008728,0.306279182434082,0.411215662956238,-0.830219149589539,0.376348227262497,0.0408331677317619,-0.950548768043518,0.307879418134689,0.411215662956238,-0.830219149589539,0.376348227262497,0.0835380628705025,-0.948269248008728,0.306279182434082,0.0211133360862732,-0.907960534095764,0.418523490428925,-0.145404830574989,-0.988458514213562,0.0425114557147026,-0.0492841228842735,-0.975836992263794,0.212869212031364,-0.134330973029137,-0.990262746810913,0.0365364030003548,-0.0492841228842735,-0.975836992263794,0.212869212031364,-0.145404830574989,-0.988458514213562,0.0425114557147026,0.503557026386261,-0.795235872268677,0.337683856487274,0.411215662956238,-0.830219149589539,0.376348227262497,0.269601553678513,-0.923171520233154,0.273987919092178,0.0408331677317619,-0.950548768043518,0.307879418134689,0.269601553678513,-0.923171520233154,0.273987919092178,0.411215662956238,-0.830219149589539,0.376348227262497,-0.204321503639221,-0.973702192306519,-0.100780740380287,0.0161851681768894,-0.994686543941498,0.101669423282146,-0.0579127073287964,-0.996584057807922,0.0588768720626831,0.336774975061417,-0.795884728431702,0.503140389919281,-0.0579127073287964,-0.996584057807922,0.0588768720626831,0.0161851681768894,-0.994686543941498,0.101669423282146,0.454182893037796,-0.711275696754456,0.536474466323853,0.115960001945496,-0.935802638530731,0.332906484603882,0.148310318589211,-0.963147163391113,0.224391609430313,-0.0342703685164452,-0.985438704490662,0.166541829705238,0.148310318589211,-0.963147163391113,0.224391609430313,0.115960001945496,-0.935802638530731,0.332906484603882, +-0.209112375974655,-0.977353453636169,-0.032441183924675,-0.314412415027618,-0.93782502412796,-0.147068336606026,-0.202247217297554,-0.972602784633636,-0.114630118012428,-0.000251702993409708,-0.985339105129242,0.170607581734657,-0.127547279000282,-0.989003658294678,0.0748561471700668,-0.314412415027618,-0.93782502412796,-0.147068336606026,-0.202247217297554,-0.972602784633636,-0.114630118012428,-0.314412415027618,-0.93782502412796,-0.147068336606026,-0.204321503639221,-0.973702192306519,-0.100780740380287,-0.204321503639221,-0.973702192306519,-0.100780740380287,-0.314412415027618,-0.93782502412796,-0.147068336606026,-0.127547279000282,-0.989003658294678,0.0748561471700668,-0.134330973029137,-0.990262746810913,0.0365364030003548,0.325003057718277,-0.794204235076904,0.513432204723358,-0.0492841228842735,-0.975836992263794,0.212869212031364,0.0211133360862732,-0.907960534095764,0.418523490428925,-0.0492841228842735,-0.975836992263794,0.212869212031364,0.325003057718277,-0.794204235076904,0.513432204723358,0.0568314418196678,-0.953417658805847,0.296251714229584,0.411215662956238,-0.830219149589539,0.376348227262497,0.0324359498918056,-0.960752785205841,0.275503128767014,0.503557026386261,-0.795235872268677,0.337683856487274,0.325003057718277,-0.794204235076904,0.513432204723358,0.411215662956238,-0.830219149589539,0.376348227262497,-0.134330973029137,-0.990262746810913,0.0365364030003548,0.0324359498918056,-0.960752785205841,0.275503128767014,0.325003057718277,-0.794204235076904,0.513432204723358,0.325003057718277,-0.794204235076904,0.513432204723358,0.0324359498918056,-0.960752785205841,0.275503128767014,0.411215662956238,-0.830219149589539,0.376348227262497,0.571177184581757,-0.548584282398224,0.610583364963531,0.329619228839874,-0.748004257678986,0.576056361198425,0.723123967647552,-0.504738688468933,0.471519529819489,0.0211133360862732,-0.907960534095764,0.418523490428925,0.723123967647552,-0.504738688468933,0.471519529819489,0.329619228839874,-0.748004257678986,0.576056361198425,0.929957091808319,-0.359007090330124,0.0793334916234016, +0.575447559356689,-0.75773686170578,0.307725548744202,0.90299254655838,-0.401854068040848,-0.152045175433159,0.654361188411713,-0.745676815509796,0.125608682632446,0.90299254655838,-0.401854068040848,-0.152045175433159,0.575447559356689,-0.75773686170578,0.307725548744202,0.929957091808319,-0.359007090330124,0.0793334916234016,0.992344200611115,-0.108655974268913,0.0587105005979538,0.723123967647552,-0.504738688468933,0.471519529819489,0.876480221748352,-0.189001366496086,0.442787557840347,0.723123967647552,-0.504738688468933,0.471519529819489,0.992344200611115,-0.108655974268913,0.0587105005979538,-0.828684628009796,0.196641445159912,-0.524036347866058,-0.991521000862122,0.0219563022255898,-0.128078743815422,-0.982727825641632,0.0597147420048714,-0.175157472491264 + } + BinormalsW: *3600 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + + } + LayerElementTangent: 0 { + Version: 102 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "Direct" + Tangents: *10800 { + a: -0.352859258651733,-0.201185211539268,0.913791537284851,-0.350493520498276,-0.19729782640934,0.915547966957092,-0.330864727497101,-0.294172912836075,0.896655380725861,-0.367299646139145,-0.0987402349710464,0.924846649169922,-0.348979443311691,-0.164126858115196,0.922646045684814,-0.33844518661499,-0.249363198876381,0.907343804836273,-0.33844518661499,-0.249363198876381,0.907343804836273,-0.348979443311691,-0.164126858115196,0.922646045684814,-0.330864727497101,-0.294172912836075,0.896655380725861,-0.348979443311691,-0.164126858115196,0.922646045684814,-0.354896575212479,-0.147248119115829,0.923236966133118,-0.352859258651733,-0.201185211539268,0.913791537284851,-0.313167333602905,-0.591070234775543,0.743345320224762,-0.37874111533165,-0.186244025826454,0.906569600105286,-0.371357351541519,-0.197012051939964,0.907347798347473,-0.354896575212479,-0.147248119115829,0.923236966133118,-0.371357351541519,-0.197012051939964,0.907347798347473,-0.37874111533165,-0.186244025826454,0.906569600105286,-0.348396241664886,-0.133856043219566,0.927740633487701,-0.354896575212479,-0.147248119115829,0.923236966133118,-0.349495738744736,-0.12922428548336,0.92798376083374,-0.348979443311691,-0.164126858115196,0.922646045684814,-0.4288669526577,0.362067520618439,0.82763534784317,-0.354896575212479,-0.147248119115829,0.923236966133118,-0.4288669526577,0.362067520618439,0.82763534784317,-0.349495738744736,-0.12922428548336,0.92798376083374,-0.354896575212479,-0.147248119115829,0.923236966133118,-0.371357351541519,-0.197012051939964,0.907347798347473,-0.354896575212479,-0.147248119115829,0.923236966133118,-0.348396241664886,-0.133856043219566,0.927740633487701,-0.348979443311691,-0.164126858115196,0.922646045684814,-0.478544622659683,0.447780668735504,0.75530618429184,-0.4288669526577,0.362067520618439,0.82763534784317,-0.388094127178192,0.056065745651722,0.919912874698639,-0.43645504117012,0.0423235706984997,0.898730099201202,-0.367299646139145,-0.0987402349710464,0.924846649169922,-0.449094980955124,0.354331225156784,0.820221304893494, +-0.367299646139145,-0.0987402349710464,0.924846649169922,-0.43645504117012,0.0423235706984997,0.898730099201202,-0.37874111533165,-0.186244025826454,0.906569600105286,-0.328093469142914,-0.43036487698555,0.840916633605957,-0.352859258651733,-0.201185211539268,0.913791537284851,-0.187331199645996,-0.88570374250412,0.424777507781982,-0.337206542491913,-0.2076625674963,0.918241858482361,-0.328093469142914,-0.43036487698555,0.840916633605957,-0.352859258651733,-0.201185211539268,0.913791537284851,-0.328093469142914,-0.43036487698555,0.840916633605957,-0.337206542491913,-0.2076625674963,0.918241858482361,-0.498563021421433,0.865771293640137,0.0433011390268803,-0.475120514631271,0.514124810695648,0.714098036289215,-0.624759912490845,0.776000916957855,0.0865886062383652,-0.388094127178192,0.056065745651722,0.919912874698639,-0.471228659152985,0.13591431081295,0.871476292610168,-0.475120514631271,0.514124810695648,0.714098036289215,-0.676548540592194,0.707763731479645,0.203353434801102,-0.624759912490845,0.776000916957855,0.0865886062383652,-0.471228659152985,0.13591431081295,0.871476292610168,-0.471228659152985,0.13591431081295,0.871476292610168,-0.624759912490845,0.776000916957855,0.0865886062383652,-0.475120514631271,0.514124810695648,0.714098036289215,-0.354896575212479,-0.147248119115829,0.923236966133118,-0.37874111533165,-0.186244025826454,0.906569600105286,-0.352859258651733,-0.201185211539268,0.913791537284851,-0.348979443311691,-0.164126858115196,0.922646045684814,-0.352859258651733,-0.201185211539268,0.913791537284851,-0.330864727497101,-0.294172912836075,0.896655380725861,-0.882171750068665,-0.317475110292435,-0.347825437784195,-0.89395946264267,-0.24855762720108,-0.372901618480682,-0.933468818664551,-0.195164114236832,-0.300910204648972,-0.916340291500092,-0.212544664740562,-0.339330494403839,-0.89294171333313,-0.253274172544479,-0.372165679931641,-0.89395946264267,-0.24855762720108,-0.372901618480682,-0.990192234516144,-0.0576703250408173,-0.127253890037537,-0.933468818664551,-0.195164114236832,-0.300910204648972, +-0.89294171333313,-0.253274172544479,-0.372165679931641,-0.89294171333313,-0.253274172544479,-0.372165679931641,-0.933468818664551,-0.195164114236832,-0.300910204648972,-0.89395946264267,-0.24855762720108,-0.372901618480682,-0.187684699892998,-0.82847011089325,0.527647316455841,-0.328093469142914,-0.43036487698555,0.840916633605957,-0.37874111533165,-0.186244025826454,0.906569600105286,-0.343852460384369,-0.140414223074913,0.928466200828552,-0.332735508680344,-0.121886573731899,0.935110032558441,-0.258232831954956,-0.62635463476181,0.735524117946625,0.00917268730700016,-0.981457412242889,-0.191460818052292,-0.258232831954956,-0.62635463476181,0.735524117946625,-0.203673824667931,-0.787172019481659,0.582131624221802,-0.203673824667931,-0.787172019481659,0.582131624221802,-0.258232831954956,-0.62635463476181,0.735524117946625,-0.332735508680344,-0.121886573731899,0.935110032558441,0.024440448731184,-0.944593727588654,-0.327330857515335,-0.258232831954956,-0.62635463476181,0.735524117946625,0.00917268730700016,-0.981457412242889,-0.191460818052292,-0.343852460384369,-0.140414223074913,0.928466200828552,-0.258232831954956,-0.62635463476181,0.735524117946625,-0.375925928354263,-0.179900944232941,0.909018874168396,-0.0989218652248383,-0.9385706782341,0.330605030059814,-0.375925928354263,-0.179900944232941,0.909018874168396,0.024440448731184,-0.944593727588654,-0.327330857515335,0.024440448731184,-0.944593727588654,-0.327330857515335,-0.375925928354263,-0.179900944232941,0.909018874168396,-0.258232831954956,-0.62635463476181,0.735524117946625,-0.183097824454308,-0.827454805374146,0.530842483043671,-0.375925928354263,-0.179900944232941,0.909018874168396,-0.0989218652248383,-0.9385706782341,0.330605030059814,-0.209815591573715,-0.788751065731049,0.577796936035156,-0.094654880464077,-0.994531989097595,0.044121541082859,-0.332735508680344,-0.121886573731899,0.935110032558441,-0.203673824667931,-0.787172019481659,0.582131624221802,-0.332735508680344,-0.121886573731899,0.935110032558441,-0.094654880464077,-0.994531989097595,0.044121541082859, +-0.170882686972618,-0.921375215053558,0.349094152450562,-0.156947016716003,-0.923852205276489,0.349091470241547,-0.313167333602905,-0.591070234775543,0.743345320224762,-0.187684699892998,-0.82847011089325,0.527647316455841,-0.313167333602905,-0.591070234775543,0.743345320224762,-0.156947016716003,-0.923852205276489,0.349091470241547,-0.183097824454308,-0.827454805374146,0.530842483043671,-0.138217777013779,-0.89070862531662,0.433052092790604,-0.375925928354263,-0.179900944232941,0.909018874168396,-0.371357351541519,-0.197012051939964,0.907347798347473,-0.375925928354263,-0.179900944232941,0.909018874168396,-0.138217777013779,-0.89070862531662,0.433052092790604,-0.371357351541519,-0.197012051939964,0.907347798347473,-0.00644386373460293,-0.999975502490997,-0.00270376703701913,-0.313167333602905,-0.591070234775543,0.743345320224762,-0.170882686972618,-0.921375215053558,0.349094152450562,-0.313167333602905,-0.591070234775543,0.743345320224762,-0.00644386373460293,-0.999975502490997,-0.00270376703701913,-0.371357351541519,-0.197012051939964,0.907347798347473,-0.348396241664886,-0.133856043219566,0.927740633487701,-0.375925928354263,-0.179900944232941,0.909018874168396,-0.343852460384369,-0.140414223074913,0.928466200828552,-0.375925928354263,-0.179900944232941,0.909018874168396,-0.348396241664886,-0.133856043219566,0.927740633487701,-0.319435626268387,-0.297541201114655,0.899683356285095,-0.370750814676285,-0.141006320714951,0.917965710163116,-0.337206542491913,-0.2076625674963,0.918241858482361,-0.352859258651733,-0.201185211539268,0.913791537284851,-0.337206542491913,-0.2076625674963,0.918241858482361,-0.370750814676285,-0.141006320714951,0.917965710163116,-0.388094127178192,0.056065745651722,0.919912874698639,-0.475120514631271,0.514124810695648,0.714098036289215,-0.43645504117012,0.0423235706984997,0.898730099201202,-0.43645504117012,0.0423235706984997,0.898730099201202,-0.475120514631271,0.514124810695648,0.714098036289215,-0.465086936950684,0.719130575656891,0.516280472278595,-0.498563021421433,0.865771293640137,0.0433011390268803, +-0.465086936950684,0.719130575656891,0.516280472278595,-0.475120514631271,0.514124810695648,0.714098036289215,-0.449094980955124,0.354331225156784,0.820221304893494,-0.43645504117012,0.0423235706984997,0.898730099201202,-0.465086936950684,0.719130575656891,0.516280472278595,-0.187684699892998,-0.82847011089325,0.527647316455841,-0.37874111533165,-0.186244025826454,0.906569600105286,-0.313167333602905,-0.591070234775543,0.743345320224762,-0.343852460384369,-0.140414223074913,0.928466200828552,-0.348396241664886,-0.133856043219566,0.927740633487701,-0.332735508680344,-0.121886573731899,0.935110032558441,-0.990192234516144,-0.0576703250408173,-0.127253890037537,-0.998410224914551,0.053735788911581,0.0170174073427916,-0.933468818664551,-0.195164114236832,-0.300910204648972,-0.978868067264557,0.138710185885429,0.150255367159843,-0.975811243057251,-0.132917359471321,-0.173566713929176,-0.998410224914551,0.053735788911581,0.0170174073427916,-0.998410224914551,0.053735788911581,0.0170174073427916,-0.975811243057251,-0.132917359471321,-0.173566713929176,-0.933468818664551,-0.195164114236832,-0.300910204648972,-0.882171750068665,-0.317475110292435,-0.347825437784195,-0.933468818664551,-0.195164114236832,-0.300910204648972,-0.975811243057251,-0.132917359471321,-0.173566713929176,-0.449094980955124,0.354331225156784,0.820221304893494,-0.478544622659683,0.447780668735504,0.75530618429184,-0.367299646139145,-0.0987402349710464,0.924846649169922,-0.348979443311691,-0.164126858115196,0.922646045684814,-0.367299646139145,-0.0987402349710464,0.924846649169922,-0.478544622659683,0.447780668735504,0.75530618429184,-0.560618340969086,0.822532832622528,0.0956388413906097,-0.4288669526577,0.362067520618439,0.82763534784317,-0.478544622659683,0.447780668735504,0.75530618429184,-0.990172982215881,0.0239294338971376,0.137785732746124,-0.984574973583221,-0.0527235195040703,0.166829913854599,-0.998445868492126,0.0264486409723759,0.0490546599030495,-0.980334639549255,-0.10153966397047,0.169215351343155,-0.998445868492126,0.0264486409723759,0.0490546599030495, +-0.984574973583221,-0.0527235195040703,0.166829913854599,-0.992425382137299,0.0542922914028168,0.110200606286526,-0.98420113325119,0.049779050052166,0.169912278652191,-0.99409431219101,0.0414082892239094,0.100309453904629,-0.99409431219101,0.0414082892239094,0.100309453904629,-0.98420113325119,0.049779050052166,0.169912278652191,-0.998445868492126,0.0264486409723759,0.0490546599030495,-0.979616641998291,0.0844952091574669,0.182241037487984,-0.98420113325119,0.049779050052166,0.169912278652191,-0.992425382137299,0.0542922914028168,0.110200606286526,-0.990172982215881,0.0239294338971376,0.137785732746124,-0.998445868492126,0.0264486409723759,0.0490546599030495,-0.98420113325119,0.049779050052166,0.169912278652191,-0.980334639549255,-0.10153966397047,0.169215351343155,-0.993090569972992,-0.0150499017909169,0.116381704807281,-0.998445868492126,0.0264486409723759,0.0490546599030495,-0.99409431219101,0.0414082892239094,0.100309453904629,-0.998445868492126,0.0264486409723759,0.0490546599030495,-0.993090569972992,-0.0150499017909169,0.116381704807281,0.024440448731184,-0.944593727588654,-0.327330857515335,0.0402425043284893,-0.982758760452271,-0.180460035800934,0.0442933440208435,-0.992847383022308,-0.110870093107224,-0.187684699892998,-0.82847011089325,0.527647316455841,-0.00753277447074652,-0.994321644306183,-0.106148958206177,-0.328093469142914,-0.43036487698555,0.840916633605957,-0.187331199645996,-0.88570374250412,0.424777507781982,-0.328093469142914,-0.43036487698555,0.840916633605957,-0.00753277447074652,-0.994321644306183,-0.106148958206177,0.024440448731184,-0.944593727588654,-0.327330857515335,0.00917268730700016,-0.981457412242889,-0.191460818052292,0.0402425043284893,-0.982758760452271,-0.180460035800934,0.0107090333476663,-0.98899108171463,-0.147587180137634,0.0402425043284893,-0.982758760452271,-0.180460035800934,0.00917268730700016,-0.981457412242889,-0.191460818052292,-0.00495652575045824,-0.999127388000488,-0.0414734669029713,-0.156947016716003,-0.923852205276489,0.349091470241547,-0.015302125364542,-0.998088419437408,-0.0598768778145313, +-0.170882686972618,-0.921375215053558,0.349094152450562,-0.015302125364542,-0.998088419437408,-0.0598768778145313,-0.156947016716003,-0.923852205276489,0.349091470241547,-0.187684699892998,-0.82847011089325,0.527647316455841,-0.156947016716003,-0.923852205276489,0.349091470241547,-0.00753277447074652,-0.994321644306183,-0.106148958206177,-0.183097824454308,-0.827454805374146,0.530842483043671,-0.0989218652248383,-0.9385706782341,0.330605030059814,0.0442933440208435,-0.992847383022308,-0.110870093107224,0.024440448731184,-0.944593727588654,-0.327330857515335,0.0442933440208435,-0.992847383022308,-0.110870093107224,-0.0989218652248383,-0.9385706782341,0.330605030059814,-0.371357351541519,-0.197012051939964,0.907347798347473,-0.138217777013779,-0.89070862531662,0.433052092790604,0.0442933440208435,-0.992847383022308,-0.110870093107224,-0.183097824454308,-0.827454805374146,0.530842483043671,0.0442933440208435,-0.992847383022308,-0.110870093107224,-0.138217777013779,-0.89070862531662,0.433052092790604,-0.015302125364542,-0.998088419437408,-0.0598768778145313,-0.00644386373460293,-0.999975502490997,-0.00270376703701913,0.0402425043284893,-0.982758760452271,-0.180460035800934,0.0402425043284893,-0.982758760452271,-0.180460035800934,-0.00644386373460293,-0.999975502490997,-0.00270376703701913,0.0442933440208435,-0.992847383022308,-0.110870093107224,-0.170882686972618,-0.921375215053558,0.349094152450562,-0.00644386373460293,-0.999975502490997,-0.00270376703701913,-0.015302125364542,-0.998088419437408,-0.0598768778145313,-0.371357351541519,-0.197012051939964,0.907347798347473,0.0442933440208435,-0.992847383022308,-0.110870093107224,-0.00644386373460293,-0.999975502490997,-0.00270376703701913,-0.00753277447074652,-0.994321644306183,-0.106148958206177,-0.0257518999278545,-0.999666750431061,0.00181934155989438,0.0402425043284893,-0.982758760452271,-0.180460035800934,-0.00495652575045824,-0.999127388000488,-0.0414734669029713,0.0402425043284893,-0.982758760452271,-0.180460035800934,-0.0257518999278545,-0.999666750431061,0.00181934155989438, +-0.00495652575045824,-0.999127388000488,-0.0414734669029713,-0.015302125364542,-0.998088419437408,-0.0598768778145313,0.0402425043284893,-0.982758760452271,-0.180460035800934,-0.00753277447074652,-0.994321644306183,-0.106148958206177,-0.156947016716003,-0.923852205276489,0.349091470241547,-0.0257518999278545,-0.999666750431061,0.00181934155989438,-0.00495652575045824,-0.999127388000488,-0.0414734669029713,-0.0257518999278545,-0.999666750431061,0.00181934155989438,-0.156947016716003,-0.923852205276489,0.349091470241547,-0.00753277447074652,-0.994321644306183,-0.106148958206177,0.0402425043284893,-0.982758760452271,-0.180460035800934,0.0107090333476663,-0.98899108171463,-0.147587180137634,-0.13712677359581,0.507092773914337,0.850913047790527,-0.263128250837326,-0.140919014811516,0.954413592815399,-0.246826350688934,0.377225607633591,0.892624080181122,-0.282132774591446,0.312451839447021,0.907069385051727,-0.246826350688934,0.377225607633591,0.892624080181122,-0.263128250837326,-0.140919014811516,0.954413592815399,-0.354338049888611,-0.10865394026041,0.928783535957336,-0.489816844463348,-0.056009866297245,0.870024263858795,-0.329131811857224,-0.0421400219202042,0.943343281745911,-0.251526385545731,0.388116627931595,0.886622786521912,-0.329131811857224,-0.0421400219202042,0.943343281745911,-0.489816844463348,-0.056009866297245,0.870024263858795,-0.348396241664886,-0.133856043219566,0.927740633487701,-0.349495738744736,-0.12922428548336,0.92798376083374,-0.345103830099106,-0.127489313483238,0.929865479469299,-0.251526385545731,0.388116627931595,0.886622786521912,-0.489816844463348,-0.056009866297245,0.870024263858795,-0.223509237170219,0.322804123163223,0.919696152210236,-0.323707580566406,0.348679095506668,0.879565954208374,-0.223509237170219,0.322804123163223,0.919696152210236,-0.489816844463348,-0.056009866297245,0.870024263858795,-0.120959475636482,0.958734393119812,0.257288008928299,-0.489816844463348,-0.056009866297245,0.870024263858795,-0.109159030020237,0.99117910861969,-0.0751557424664497,-0.109159030020237,0.99117910861969,-0.0751557424664497, +-0.489816844463348,-0.056009866297245,0.870024263858795,-0.320657759904861,0.941191852092743,0.106472708284855,-0.323707580566406,0.348679095506668,0.879565954208374,-0.489816844463348,-0.056009866297245,0.870024263858795,-0.120959475636482,0.958734393119812,0.257288008928299,-0.42085200548172,0.271853417158127,0.865436017513275,-0.320657759904861,0.941191852092743,0.106472708284855,-0.489816844463348,-0.056009866297245,0.870024263858795,-0.835146188735962,-0.0825764313340187,-0.543793916702271,-0.597878634929657,-0.137809485197067,-0.789651691913605,-0.845477104187012,-0.0608533248305321,-0.530533194541931,-0.559700787067413,-0.0791498124599457,-0.824906349182129,-0.845477104187012,-0.0608533248305321,-0.530533194541931,-0.597878634929657,-0.137809485197067,-0.789651691913605,-0.354338049888611,-0.10865394026041,0.928783535957336,-0.329131811857224,-0.0421400219202042,0.943343281745911,-0.345103830099106,-0.127489313483238,0.929865479469299,-0.279207617044449,0.264779955148697,0.923003077507019,-0.345103830099106,-0.127489313483238,0.929865479469299,-0.329131811857224,-0.0421400219202042,0.943343281745911,-0.255329430103302,0.126159146428108,0.958587944507599,-0.263128250837326,-0.140919014811516,0.954413592815399,-0.170901998877525,0.475891649723053,0.862739622592926,-0.13712677359581,0.507092773914337,0.850913047790527,-0.170901998877525,0.475891649723053,0.862739622592926,-0.263128250837326,-0.140919014811516,0.954413592815399,-0.905205368995667,-0.0463414825499058,-0.422440201044083,-0.845477104187012,-0.0608533248305321,-0.530533194541931,-0.863214552402496,-0.0589790195226669,-0.501380324363709,-0.703508675098419,0.0073152263648808,-0.710649013519287,-0.863214552402496,-0.0589790195226669,-0.501380324363709,-0.845477104187012,-0.0608533248305321,-0.530533194541931,-0.282132774591446,0.312451839447021,0.907069385051727,-0.345103830099106,-0.127489313483238,0.929865479469299,-0.320327162742615,0.211413577198982,0.923414885997772,-0.279207617044449,0.264779955148697,0.923003077507019,-0.320327162742615,0.211413577198982,0.923414885997772, +-0.345103830099106,-0.127489313483238,0.929865479469299,0.450091391801834,0.787785112857819,0.420490562915802,-0.169629499316216,0.519209623336792,0.837643802165985,-0.100945807993412,0.611802756786346,0.784542739391327,-0.279207617044449,0.264779955148697,0.923003077507019,-0.329131811857224,-0.0421400219202042,0.943343281745911,-0.169629499316216,0.519209623336792,0.837643802165985,-0.169629499316216,0.519209623336792,0.837643802165985,-0.329131811857224,-0.0421400219202042,0.943343281745911,-0.100945807993412,0.611802756786346,0.784542739391327,-0.251526385545731,0.388116627931595,0.886622786521912,-0.100945807993412,0.611802756786346,0.784542739391327,-0.329131811857224,-0.0421400219202042,0.943343281745911,-0.255329430103302,0.126159146428108,0.958587944507599,-0.316134065389633,-0.111085094511509,0.942188501358032,-0.263128250837326,-0.140919014811516,0.954413592815399,-0.348396241664886,-0.133856043219566,0.927740633487701,-0.263128250837326,-0.140919014811516,0.954413592815399,-0.316134065389633,-0.111085094511509,0.942188501358032,-0.348396241664886,-0.133856043219566,0.927740633487701,-0.345103830099106,-0.127489313483238,0.929865479469299,-0.263128250837326,-0.140919014811516,0.954413592815399,-0.282132774591446,0.312451839447021,0.907069385051727,-0.263128250837326,-0.140919014811516,0.954413592815399,-0.345103830099106,-0.127489313483238,0.929865479469299,-0.42085200548172,0.271853417158127,0.865436017513275,-0.489816844463348,-0.056009866297245,0.870024263858795,-0.354338049888611,-0.10865394026041,0.928783535957336,-0.646254658699036,-0.117738954722881,-0.753984332084656,-0.613546371459961,-0.0062872669659555,-0.789633691310883,-0.595037460327148,-0.122885622084141,-0.794247686862946,-0.579126179218292,0.00279975752346218,-0.815233170986176,-0.595037460327148,-0.122885622084141,-0.794247686862946,-0.613546371459961,-0.0062872669659555,-0.789633691310883,-0.441527903079987,-0.0577328987419605,-0.895388126373291,-0.440161168575287,-0.0766793489456177,-0.894638657569885,-0.4874587059021,-0.0793510973453522,-0.869532823562622, +-0.395194351673126,-0.0207433644682169,-0.918363273143768,-0.4874587059021,-0.0793510973453522,-0.869532823562622,-0.440161168575287,-0.0766793489456177,-0.894638657569885,-0.595037460327148,-0.122885622084141,-0.794247686862946,-0.632931530475616,-0.125378429889679,-0.763988196849823,-0.560097634792328,-0.113793186843395,-0.820573925971985,-0.646254658699036,-0.117738954722881,-0.753984332084656,-0.595037460327148,-0.122885622084141,-0.794247686862946,-0.560097634792328,-0.113793186843395,-0.820573925971985,-0.595037460327148,-0.122885622084141,-0.794247686862946,-0.597878634929657,-0.137809485197067,-0.789651691913605,-0.632931530475616,-0.125378429889679,-0.763988196849823,-0.835146188735962,-0.0825764313340187,-0.543793916702271,-0.734119594097137,-0.106231957674026,-0.670658707618713,-0.597878634929657,-0.137809485197067,-0.789651691913605,-0.597878634929657,-0.137809485197067,-0.789651691913605,-0.734119594097137,-0.106231957674026,-0.670658707618713,-0.632931530475616,-0.125378429889679,-0.763988196849823,-0.71925014257431,-0.109600037336349,-0.686051785945892,-0.632931530475616,-0.125378429889679,-0.763988196849823,-0.734119594097137,-0.106231957674026,-0.670658707618713,-0.703508675098419,0.0073152263648808,-0.710649013519287,-0.845477104187012,-0.0608533248305321,-0.530533194541931,-0.520300090312958,0.0038029586430639,-0.853974997997284,-0.559700787067413,-0.0791498124599457,-0.824906349182129,-0.520300090312958,0.0038029586430639,-0.853974997997284,-0.845477104187012,-0.0608533248305321,-0.530533194541931,-0.579126179218292,0.00279975752346218,-0.815233170986176,-0.520300090312958,0.0038029586430639,-0.853974997997284,-0.595037460327148,-0.122885622084141,-0.794247686862946,-0.520300090312958,0.0038029586430639,-0.853974997997284,-0.559700787067413,-0.0791498124599457,-0.824906349182129,-0.595037460327148,-0.122885622084141,-0.794247686862946,-0.559700787067413,-0.0791498124599457,-0.824906349182129,-0.597878634929657,-0.137809485197067,-0.789651691913605,-0.595037460327148,-0.122885622084141,-0.794247686862946, +-0.4874587059021,-0.0793510973453522,-0.869532823562622,-0.555967271327972,-0.131003424525261,-0.820815742015839,-0.523020803928375,-0.114695318043232,-0.84456741809845,-0.441527903079987,-0.0577328987419605,-0.895388126373291,-0.4874587059021,-0.0793510973453522,-0.869532823562622,-0.523020803928375,-0.114695318043232,-0.84456741809845,-0.273344576358795,0.0135074434801936,-0.961821436882019,-0.560097634792328,-0.113793186843395,-0.820573925971985,-0.4874587059021,-0.0793510973453522,-0.869532823562622,-0.560097634792328,-0.113793186843395,-0.820573925971985,-0.575364768505096,-0.118214972317219,-0.809308707714081,-0.4874587059021,-0.0793510973453522,-0.869532823562622,-0.441527903079987,-0.0577328987419605,-0.895388126373291,-0.523020803928375,-0.114695318043232,-0.84456741809845,-0.463101655244827,-0.0554868951439857,-0.884566605091095,-0.406457006931305,0.0319468788802624,-0.91311126947403,-0.463101655244827,-0.0554868951439857,-0.884566605091095,-0.523020803928375,-0.114695318043232,-0.84456741809845,-0.575364768505096,-0.118214972317219,-0.809308707714081,-0.632931530475616,-0.125378429889679,-0.763988196849823,-0.600413799285889,-0.115736462175846,-0.791270077228546,-0.560097634792328,-0.113793186843395,-0.820573925971985,-0.632931530475616,-0.125378429889679,-0.763988196849823,-0.575364768505096,-0.118214972317219,-0.809308707714081,-0.646254658699036,-0.117738954722881,-0.753984332084656,-0.560097634792328,-0.113793186843395,-0.820573925971985,-0.425545811653137,-0.0898721218109131,-0.900463163852692,-0.273344576358795,0.0135074434801936,-0.961821436882019,-0.425545811653137,-0.0898721218109131,-0.900463163852692,-0.560097634792328,-0.113793186843395,-0.820573925971985,-0.4874587059021,-0.0793510973453522,-0.869532823562622,-0.575364768505096,-0.118214972317219,-0.809308707714081,-0.555967271327972,-0.131003424525261,-0.820815742015839,-0.395194351673126,-0.0207433644682169,-0.918363273143768,-0.278298884630203,0.0333238430321217,-0.959916234016418,-0.4874587059021,-0.0793510973453522,-0.869532823562622,-0.273344576358795,0.0135074434801936,-0.961821436882019, +-0.4874587059021,-0.0793510973453522,-0.869532823562622,-0.278298884630203,0.0333238430321217,-0.959916234016418,-0.96550464630127,0.168114796280861,0.198841765522957,-0.992442846298218,0.0420274958014488,0.115285858511925,-0.993786096572876,-0.051257710903883,0.0988020971417427,-0.993869960308075,-0.0154618723317981,0.109468780457973,-0.993786096572876,-0.051257710903883,0.0988020971417427,-0.992442846298218,0.0420274958014488,0.115285858511925,-0.998975515365601,-0.0334661938250065,0.0304616279900074,-0.993786096572876,-0.051257710903883,0.0988020971417427,-0.993869960308075,-0.0154618723317981,0.109468780457973,-0.338942259550095,-0.0534134209156036,0.939289689064026,-0.332735508680344,-0.121886573731899,0.935110032558441,-0.316134065389633,-0.111085094511509,0.942188501358032,0.0671751201152802,-0.788559257984161,-0.611278772354126,0.0619702972471714,-0.808480739593506,-0.585250854492188,0.0546449087560177,-0.806915760040283,-0.588133275508881,-0.184501022100449,-0.788263738155365,0.587026059627533,-0.313161909580231,-0.121511168777943,0.941894114017487,-0.104060955345631,-0.994429111480713,-0.0167990028858185,-0.0967304483056068,-0.993351757526398,0.0624144859611988,-0.104060955345631,-0.994429111480713,-0.0167990028858185,-0.291533619165421,-0.841622948646545,0.454619616270065,-0.291533619165421,-0.841622948646545,0.454619616270065,-0.104060955345631,-0.994429111480713,-0.0167990028858185,-0.313161909580231,-0.121511168777943,0.941894114017487,-0.00894478522241116,-0.983045399188995,-0.183143764734268,-0.0310179330408573,-0.997568488121033,-0.0624107979238033,-0.104060955345631,-0.994429111480713,-0.0167990028858185,-0.184501022100449,-0.788263738155365,0.587026059627533,-0.104060955345631,-0.994429111480713,-0.0167990028858185,-0.0310179330408573,-0.997568488121033,-0.0624107979238033,-0.184501022100449,-0.788263738155365,0.587026059627533,-0.0310179330408573,-0.997568488121033,-0.0624107979238033,-0.156720668077469,-0.857912838459015,0.489309996366501,-0.126567795872688,-0.895749688148499,0.426160991191864, +-0.156720668077469,-0.857912838459015,0.489309996366501,-0.0310179330408573,-0.997568488121033,-0.0624107979238033,-0.338942259550095,-0.0534134209156036,0.939289689064026,-0.355438232421875,-0.0610804297029972,0.932701885700226,-0.332735508680344,-0.121886573731899,0.935110032558441,-0.184501022100449,-0.788263738155365,0.587026059627533,-0.156720668077469,-0.857912838459015,0.489309996366501,-0.355438232421875,-0.0610804297029972,0.932701885700226,-0.126567795872688,-0.895749688148499,0.426160991191864,-0.355438232421875,-0.0610804297029972,0.932701885700226,-0.156720668077469,-0.857912838459015,0.489309996366501,-0.322683125734329,-0.0146086541935802,0.946394264698029,-0.294151961803436,-0.121616840362549,0.947989404201508,-0.313161909580231,-0.121511168777943,0.941894114017487,-0.291533619165421,-0.841622948646545,0.454619616270065,-0.313161909580231,-0.121511168777943,0.941894114017487,-0.294151961803436,-0.121616840362549,0.947989404201508,-0.184501022100449,-0.788263738155365,0.587026059627533,-0.355438232421875,-0.0610804297029972,0.932701885700226,-0.313161909580231,-0.121511168777943,0.941894114017487,-0.322683125734329,-0.0146086541935802,0.946394264698029,-0.313161909580231,-0.121511168777943,0.941894114017487,-0.338942259550095,-0.0534134209156036,0.939289689064026,-0.338942259550095,-0.0534134209156036,0.939289689064026,-0.313161909580231,-0.121511168777943,0.941894114017487,-0.355438232421875,-0.0610804297029972,0.932701885700226,0.0989546626806259,-0.00822480302304029,-0.995057940483093,-0.286137849092484,-0.108513042330742,-0.952024221420288,0.0269694831222296,-0.0975334420800209,-0.994866728782654,-0.406457006931305,0.0319468788802624,-0.91311126947403,-0.523020803928375,-0.114695318043232,-0.84456741809845,-0.37603360414505,0.127280727028847,-0.917822659015656,-0.510747253894806,-0.0914202257990837,-0.854856491088867,-0.37603360414505,0.127280727028847,-0.917822659015656,-0.523020803928375,-0.114695318043232,-0.84456741809845,-0.555967271327972,-0.131003424525261,-0.820815742015839,-0.286137849092484,-0.108513042330742,-0.952024221420288, +-0.523020803928375,-0.114695318043232,-0.84456741809845,-0.510747253894806,-0.0914202257990837,-0.854856491088867,-0.523020803928375,-0.114695318043232,-0.84456741809845,-0.286137849092484,-0.108513042330742,-0.952024221420288,0.411391258239746,-0.00921609904617071,-0.911412239074707,0.0269694831222296,-0.0975334420800209,-0.994866728782654,0.203633382916451,-0.122029148042202,-0.971412599086761,-0.286137849092484,-0.108513042330742,-0.952024221420288,-0.21734693646431,-0.132673367857933,-0.96703577041626,0.0269694831222296,-0.0975334420800209,-0.994866728782654,0.203633382916451,-0.122029148042202,-0.971412599086761,0.0269694831222296,-0.0975334420800209,-0.994866728782654,-0.113297797739506,-0.168922185897827,-0.979095876216888,-0.113297797739506,-0.168922185897827,-0.979095876216888,0.0269694831222296,-0.0975334420800209,-0.994866728782654,-0.21734693646431,-0.132673367857933,-0.96703577041626,0.4966661632061,-0.0699060410261154,-0.865121901035309,0.203633382916451,-0.122029148042202,-0.971412599086761,-0.113297797739506,-0.168922185897827,-0.979095876216888,0.0989546626806259,-0.00822480302304029,-0.995057940483093,-0.17781537771225,0.0779615342617035,-0.980970799922943,-0.286137849092484,-0.108513042330742,-0.952024221420288,-0.510747253894806,-0.0914202257990837,-0.854856491088867,-0.286137849092484,-0.108513042330742,-0.952024221420288,-0.17781537771225,0.0779615342617035,-0.980970799922943,-0.916340291500092,-0.212544664740562,-0.339330494403839,-0.954071938991547,-0.0816318094730377,-0.288240939378738,-0.89294171333313,-0.253274172544479,-0.372165679931641,-0.954071938991547,-0.0816318094730377,-0.288240939378738,-0.927846729755402,-0.147409811615944,-0.342594146728516,-0.89294171333313,-0.253274172544479,-0.372165679931641,-0.930197060108185,-0.152161359786987,-0.334036707878113,-0.89294171333313,-0.253274172544479,-0.372165679931641,-0.927846729755402,-0.147409811615944,-0.342594146728516,-0.333795547485352,0.0316823981702328,0.942112922668457,-0.341879308223724,-0.173971772193909,0.923500120639801,-0.338942259550095,-0.0534134209156036,0.939289689064026, +-0.344476282596588,-0.17548830807209,0.922247290611267,-0.338942259550095,-0.0534134209156036,0.939289689064026,-0.341879308223724,-0.173971772193909,0.923500120639801,0.411391258239746,-0.00921609904617071,-0.911412239074707,0.679546773433685,0.210585221648216,-0.70275890827179,0.593647420406342,0.115890592336655,-0.796336770057678,0.381191492080688,-0.119250513613224,-0.916772782802582,0.593647420406342,0.115890592336655,-0.796336770057678,0.679546773433685,0.210585221648216,-0.70275890827179,-0.333795547485352,0.0316823981702328,0.942112922668457,-0.338942259550095,-0.0534134209156036,0.939289689064026,-0.316134065389633,-0.111085094511509,0.942188501358032,0.411391258239746,-0.00921609904617071,-0.911412239074707,0.593647420406342,0.115890592336655,-0.796336770057678,0.0269694831222296,-0.0975334420800209,-0.994866728782654,0.418172508478165,0.159683331847191,-0.894222021102905,0.0269694831222296,-0.0975334420800209,-0.994866728782654,0.548785984516144,0.12427069991827,-0.826674461364746,0.548785984516144,0.12427069991827,-0.826674461364746,0.0269694831222296,-0.0975334420800209,-0.994866728782654,0.593647420406342,0.115890592336655,-0.796336770057678,0.0989546626806259,-0.00822480302304029,-0.995057940483093,0.0269694831222296,-0.0975334420800209,-0.994866728782654,0.418172508478165,0.159683331847191,-0.894222021102905,-0.322683125734329,-0.0146086541935802,0.946394264698029,-0.338942259550095,-0.0534134209156036,0.939289689064026,-0.336766242980957,-0.0266996435821056,0.941209673881531,-0.344476282596588,-0.17548830807209,0.922247290611267,-0.336766242980957,-0.0266996435821056,0.941209673881531,-0.338942259550095,-0.0534134209156036,0.939289689064026,-0.255329430103302,0.126159146428108,0.958587944507599,-0.23279170691967,0.204975068569183,0.950680434703827,-0.316134065389633,-0.111085094511509,0.942188501358032,-0.252341270446777,0.264844834804535,0.930688500404358,-0.316134065389633,-0.111085094511509,0.942188501358032,-0.23279170691967,0.204975068569183,0.950680434703827,0.869065940380096,0.372184932231903,-0.325887858867645, +0.758053302764893,0.0843752920627594,-0.646711647510529,0.947249531745911,0.0321078710258007,-0.318884581327438,0.497007548809052,-0.0693245604634285,-0.864972591400146,0.947249531745911,0.0321078710258007,-0.318884581327438,0.758053302764893,0.0843752920627594,-0.646711647510529,0.4966661632061,-0.0699060410261154,-0.865121901035309,0.485776126384735,0.0256251264363527,-0.873707592487335,0.203633382916451,-0.122029148042202,-0.971412599086761,0.500448405742645,-0.0756908133625984,-0.862451255321503,0.485776126384735,0.0256251264363527,-0.873707592487335,0.4966661632061,-0.0699060410261154,-0.865121901035309,0.411391258239746,-0.00921609904617071,-0.911412239074707,0.203633382916451,-0.122029148042202,-0.971412599086761,0.485776126384735,0.0256251264363527,-0.873707592487335,0.16723820567131,-0.078409418463707,-0.982793629169464,0.37285253405571,-0.158400148153305,-0.914270460605621,0.388248980045319,-0.0877091139554977,-0.917371153831482,0.56957221031189,-0.158639684319496,-0.806486845016479,0.388248980045319,-0.0877091139554977,-0.917371153831482,0.37285253405571,-0.158400148153305,-0.914270460605621,0.381191492080688,-0.119250513613224,-0.916772782802582,0.679546773433685,0.210585221648216,-0.70275890827179,0.485776126384735,0.0256251264363527,-0.873707592487335,0.411391258239746,-0.00921609904617071,-0.911412239074707,0.485776126384735,0.0256251264363527,-0.873707592487335,0.679546773433685,0.210585221648216,-0.70275890827179,0.381191492080688,-0.119250513613224,-0.916772782802582,0.485776126384735,0.0256251264363527,-0.873707592487335,0.184999734163284,-0.117741733789444,-0.975659728050232,0.500448405742645,-0.0756908133625984,-0.862451255321503,0.184999734163284,-0.117741733789444,-0.975659728050232,0.485776126384735,0.0256251264363527,-0.873707592487335,0.721703886985779,-0.559968948364258,-0.406913191080093,0.708946704864502,-0.355338484048843,-0.609203636646271,0.37285253405571,-0.158400148153305,-0.914270460605621,0.56957221031189,-0.158639684319496,-0.806486845016479,0.37285253405571,-0.158400148153305,-0.914270460605621, +0.708946704864502,-0.355338484048843,-0.609203636646271,0.947249531745911,0.0321078710258007,-0.318884581327438,0.211164459586143,-0.061729222536087,-0.975499391555786,0.973948895931244,-0.14485003054142,-0.174476400017738,0.973948895931244,-0.14485003054142,-0.174476400017738,0.211164459586143,-0.061729222536087,-0.975499391555786,0.388248980045319,-0.0877091139554977,-0.917371153831482,0.497007548809052,-0.0693245604634285,-0.864972591400146,0.211164459586143,-0.061729222536087,-0.975499391555786,0.947249531745911,0.0321078710258007,-0.318884581327438,0.497007548809052,-0.0693245604634285,-0.864972591400146,0.184999734163284,-0.117741733789444,-0.975659728050232,0.211164459586143,-0.061729222536087,-0.975499391555786,0.500448405742645,-0.0756908133625984,-0.862451255321503,0.297992408275604,-0.0895669162273407,-0.950356900691986,0.184999734163284,-0.117741733789444,-0.975659728050232,0.211164459586143,-0.061729222536087,-0.975499391555786,0.184999734163284,-0.117741733789444,-0.975659728050232,0.297992408275604,-0.0895669162273407,-0.950356900691986,0.0255676340311766,-0.900050699710846,-0.435034424066544,-0.0073871398344636,-0.981086313724518,-0.193429693579674,-0.0164633952081203,-0.884346961975098,-0.466539978981018,-0.103092566132545,-0.937721312046051,-0.331738948822021,-0.0164633952081203,-0.884346961975098,-0.466539978981018,-0.0073871398344636,-0.981086313724518,-0.193429693579674,0.337645322084427,-0.127740532159805,-0.932565331459045,0.4966661632061,-0.0699060410261154,-0.865121901035309,-0.113297797739506,-0.168922185897827,-0.979095876216888,0.500448405742645,-0.0756908133625984,-0.862451255321503,0.636034429073334,-0.110885985195637,-0.763652086257935,0.297992408275604,-0.0895669162273407,-0.950356900691986,-0.0073871398344636,-0.981086313724518,-0.193429693579674,-0.104060955345631,-0.994429111480713,-0.0167990028858185,-0.0400632284581661,-0.998725473880768,-0.0306977480649948,-0.0400632284581661,-0.998725473880768,-0.0306977480649948,-0.104060955345631,-0.994429111480713,-0.0167990028858185,-0.0967304483056068,-0.993351757526398,0.0624144859611988, +-0.00894478522241116,-0.983045399188995,-0.183143764734268,-0.104060955345631,-0.994429111480713,-0.0167990028858185,-0.0073871398344636,-0.981086313724518,-0.193429693579674,-0.103092566132545,-0.937721312046051,-0.331738948822021,-0.0073871398344636,-0.981086313724518,-0.193429693579674,-0.0231860019266605,-0.988272130489349,-0.150932237505913,-0.0400632284581661,-0.998725473880768,-0.0306977480649948,-0.0231860019266605,-0.988272130489349,-0.150932237505913,-0.0073871398344636,-0.981086313724518,-0.193429693579674,-0.0579744540154934,-0.201769441366196,-0.977715730667114,0.0546449087560177,-0.806915760040283,-0.588133275508881,-0.0878813117742538,-0.0181848891079426,-0.99596494436264,0.028187483549118,-0.627393066883087,-0.778192400932312,-0.0878813117742538,-0.0181848891079426,-0.99596494436264,0.0546449087560177,-0.806915760040283,-0.588133275508881,0.500448405742645,-0.0756908133625984,-0.862451255321503,0.4966661632061,-0.0699060410261154,-0.865121901035309,0.636034429073334,-0.110885985195637,-0.763652086257935,0.337645322084427,-0.127740532159805,-0.932565331459045,0.636034429073334,-0.110885985195637,-0.763652086257935,0.4966661632061,-0.0699060410261154,-0.865121901035309,0.297992408275604,-0.0895669162273407,-0.950356900691986,0.474534928798676,-0.132547676563263,-0.870199799537659,0.388248980045319,-0.0877091139554977,-0.917371153831482,0.16723820567131,-0.078409418463707,-0.982793629169464,0.388248980045319,-0.0877091139554977,-0.917371153831482,0.474534928798676,-0.132547676563263,-0.870199799537659,0.211164459586143,-0.061729222536087,-0.975499391555786,0.297992408275604,-0.0895669162273407,-0.950356900691986,0.388248980045319,-0.0877091139554977,-0.917371153831482,-0.00894478522241116,-0.983045399188995,-0.183143764734268,-0.0073871398344636,-0.981086313724518,-0.193429693579674,0.0160724390298128,-0.968095421791077,-0.250066012144089,0.427024483680725,0.00399404671043158,-0.904231250286102,0.485796064138412,-0.00253362441435456,-0.874068558216095,0.439549207687378,-0.108784809708595,-0.891606628894806, +0.593647420406342,0.115890592336655,-0.796336770057678,0.439549207687378,-0.108784809708595,-0.891606628894806,0.548785984516144,0.12427069991827,-0.826674461364746,0.548785984516144,0.12427069991827,-0.826674461364746,0.439549207687378,-0.108784809708595,-0.891606628894806,0.485796064138412,-0.00253362441435456,-0.874068558216095,0.381191492080688,-0.119250513613224,-0.916772782802582,0.439549207687378,-0.108784809708595,-0.891606628894806,0.593647420406342,0.115890592336655,-0.796336770057678,0.427024483680725,0.00399404671043158,-0.904231250286102,0.443760097026825,-0.0825816318392754,-0.892332553863525,0.536304235458374,0.0828882828354836,-0.839944779872894,0.497007548809052,-0.0693245604634285,-0.864972591400146,0.758053302764893,0.0843752920627594,-0.646711647510529,0.443760097026825,-0.0825816318392754,-0.892332553863525,0.536304235458374,0.0828882828354836,-0.839944779872894,0.443760097026825,-0.0825816318392754,-0.892332553863525,0.869065940380096,0.372184932231903,-0.325887858867645,0.869065940380096,0.372184932231903,-0.325887858867645,0.443760097026825,-0.0825816318392754,-0.892332553863525,0.758053302764893,0.0843752920627594,-0.646711647510529,0.973948895931244,-0.14485003054142,-0.174476400017738,0.388248980045319,-0.0877091139554977,-0.917371153831482,0.870112895965576,-0.144583523273468,-0.471167832612991,0.56957221031189,-0.158639684319496,-0.806486845016479,0.870112895965576,-0.144583523273468,-0.471167832612991,0.388248980045319,-0.0877091139554977,-0.917371153831482,0.439549207687378,-0.108784809708595,-0.891606628894806,0.381191492080688,-0.119250513613224,-0.916772782802582,0.443760097026825,-0.0825816318392754,-0.892332553863525,0.381191492080688,-0.119250513613224,-0.916772782802582,0.184999734163284,-0.117741733789444,-0.975659728050232,0.443760097026825,-0.0825816318392754,-0.892332553863525,0.497007548809052,-0.0693245604634285,-0.864972591400146,0.443760097026825,-0.0825816318392754,-0.892332553863525,0.184999734163284,-0.117741733789444,-0.975659728050232,0.427024483680725,0.00399404671043158,-0.904231250286102, +0.439549207687378,-0.108784809708595,-0.891606628894806,0.443760097026825,-0.0825816318392754,-0.892332553863525,-0.316134065389633,-0.111085094511509,0.942188501358032,-0.332735508680344,-0.121886573731899,0.935110032558441,-0.348396241664886,-0.133856043219566,0.927740633487701,0.000139355062856339,-0.979174137115479,-0.203022390604019,-0.00894478522241116,-0.983045399188995,-0.183143764734268,0.0127805257216096,-0.982652127742767,-0.18501715362072,0.0160724390298128,-0.968095421791077,-0.250066012144089,0.0127805257216096,-0.982652127742767,-0.18501715362072,-0.00894478522241116,-0.983045399188995,-0.183143764734268,-0.999800443649292,0.0199687983840704,0.000448584236437455,-0.998239517211914,0.0287207271903753,0.0518921799957752,-0.999395608901978,0.0308424476534128,0.0160326175391674,-0.209815591573715,-0.788751065731049,0.577796936035156,-0.101387962698936,-0.990117192268372,0.096894159913063,-0.094654880464077,-0.994531989097595,0.044121541082859,0.000139355062856339,-0.979174137115479,-0.203022390604019,-0.094654880464077,-0.994531989097595,0.044121541082859,-0.101387962698936,-0.990117192268372,0.096894159913063,-0.00894478522241116,-0.983045399188995,-0.183143764734268,-0.101387962698936,-0.990117192268372,0.096894159913063,-0.0310179330408573,-0.997568488121033,-0.0624107979238033,0.000139355062856339,-0.979174137115479,-0.203022390604019,-0.101387962698936,-0.990117192268372,0.096894159913063,-0.00894478522241116,-0.983045399188995,-0.183143764734268,-0.126567795872688,-0.895749688148499,0.426160991191864,-0.0310179330408573,-0.997568488121033,-0.0624107979238033,-0.101387962698936,-0.990117192268372,0.096894159913063,-0.203673824667931,-0.787172019481659,0.582131624221802,-0.094654880464077,-0.994531989097595,0.044121541082859,0.00917268730700016,-0.981457412242889,-0.191460818052292,0.000139355062856339,-0.979174137115479,-0.203022390604019,0.00917268730700016,-0.981457412242889,-0.191460818052292,-0.094654880464077,-0.994531989097595,0.044121541082859,-0.126567795872688,-0.895749688148499,0.426160991191864, +-0.101387962698936,-0.990117192268372,0.096894159913063,-0.355438232421875,-0.0610804297029972,0.932701885700226,-0.355438232421875,-0.0610804297029972,0.932701885700226,-0.101387962698936,-0.990117192268372,0.096894159913063,-0.332735508680344,-0.121886573731899,0.935110032558441,-0.209815591573715,-0.788751065731049,0.577796936035156,-0.332735508680344,-0.121886573731899,0.935110032558441,-0.101387962698936,-0.990117192268372,0.096894159913063,-0.978868067264557,0.138710185885429,0.150255367159843,-0.96550464630127,0.168114796280861,0.198841765522957,-0.993786096572876,-0.051257710903883,0.0988020971417427,-0.916340291500092,-0.212544664740562,-0.339330494403839,-0.89395946264267,-0.24855762720108,-0.372901618480682,-0.930172979831696,-0.127397358417511,-0.344308465719223,-0.934663474559784,-0.290611684322357,-0.204814523458481,-0.930172979831696,-0.127397358417511,-0.344308465719223,-0.89395946264267,-0.24855762720108,-0.372901618480682,0.0160724390298128,-0.968095421791077,-0.250066012144089,-0.0073871398344636,-0.981086313724518,-0.193429693579674,0.0325177721679211,-0.895088136196136,-0.444702088832855,0.0255676340311766,-0.900050699710846,-0.435034424066544,0.0325177721679211,-0.895088136196136,-0.444702088832855,-0.0073871398344636,-0.981086313724518,-0.193429693579674,0.0228633284568787,-0.959683239459991,-0.280152291059494,0.0160724390298128,-0.968095421791077,-0.250066012144089,0.0325177721679211,-0.895088136196136,-0.444702088832855,-0.990192234516144,-0.0576703250408173,-0.127253890037537,-0.89294171333313,-0.253274172544479,-0.372165679931641,-0.977730751037598,-0.0766442641615868,-0.195366576313972,-0.930197060108185,-0.152161359786987,-0.334036707878113,-0.977730751037598,-0.0766442641615868,-0.195366576313972,-0.89294171333313,-0.253274172544479,-0.372165679931641,-0.555967271327972,-0.131003424525261,-0.820815742015839,-0.575364768505096,-0.118214972317219,-0.809308707714081,-0.523204863071442,-0.117500297725201,-0.844067692756653,-0.575364768505096,-0.118214972317219,-0.809308707714081,-0.600413799285889,-0.115736462175846,-0.791270077228546, +-0.523204863071442,-0.117500297725201,-0.844067692756653,-0.555967271327972,-0.131003424525261,-0.820815742015839,-0.434042185544968,-0.123190730810165,-0.892430126667023,-0.286137849092484,-0.108513042330742,-0.952024221420288,-0.286137849092484,-0.108513042330742,-0.952024221420288,-0.434042185544968,-0.123190730810165,-0.892430126667023,-0.21734693646431,-0.132673367857933,-0.96703577041626,-0.113297797739506,-0.168922185897827,-0.979095876216888,-0.21734693646431,-0.132673367857933,-0.96703577041626,0.337645322084427,-0.127740532159805,-0.932565331459045,0.337645322084427,-0.127740532159805,-0.932565331459045,-0.21734693646431,-0.132673367857933,-0.96703577041626,-0.0967196077108383,-0.123642072081566,-0.987602055072784,-0.434042185544968,-0.123190730810165,-0.892430126667023,-0.430486649274826,-0.118919134140015,-0.89472883939743,-0.0967196077108383,-0.123642072081566,-0.987602055072784,-0.21734693646431,-0.132673367857933,-0.96703577041626,-0.434042185544968,-0.123190730810165,-0.892430126667023,-0.0967196077108383,-0.123642072081566,-0.987602055072784,-0.430486649274826,-0.118919134140015,-0.89472883939743,-0.340390413999558,-0.116295926272869,-0.933064639568329,-0.0967196077108383,-0.123642072081566,-0.987602055072784,0.571960926055908,-0.147749394178391,-0.806864857673645,0.474534928798676,-0.132547676563263,-0.870199799537659,0.733716189861298,-0.167612746357918,-0.65845787525177,0.297992408275604,-0.0895669162273407,-0.950356900691986,0.733716189861298,-0.167612746357918,-0.65845787525177,0.474534928798676,-0.132547676563263,-0.870199799537659,0.36761075258255,-0.158485054969788,-0.916375875473022,0.670780062675476,-0.198680579662323,-0.714548885822296,0.571960926055908,-0.147749394178391,-0.806864857673645,0.571960926055908,-0.147749394178391,-0.806864857673645,0.670780062675476,-0.198680579662323,-0.714548885822296,0.474534928798676,-0.132547676563263,-0.870199799537659,0.531138241291046,-0.18735845386982,-0.826310575008392,0.670780062675476,-0.198680579662323,-0.714548885822296,0.36761075258255,-0.158485054969788,-0.916375875473022, +0.571960926055908,-0.147749394178391,-0.806864857673645,0.733716189861298,-0.167612746357918,-0.65845787525177,0.362425684928894,-0.11724591255188,-0.924608528614044,0.636034429073334,-0.110885985195637,-0.763652086257935,0.362425684928894,-0.11724591255188,-0.924608528614044,0.297992408275604,-0.0895669162273407,-0.950356900691986,0.297992408275604,-0.0895669162273407,-0.950356900691986,0.362425684928894,-0.11724591255188,-0.924608528614044,0.733716189861298,-0.167612746357918,-0.65845787525177,0.337645322084427,-0.127740532159805,-0.932565331459045,0.362425684928894,-0.11724591255188,-0.924608528614044,0.636034429073334,-0.110885985195637,-0.763652086257935,-0.340390413999558,-0.116295926272869,-0.933064639568329,0.362425684928894,-0.11724591255188,-0.924608528614044,-0.0967196077108383,-0.123642072081566,-0.987602055072784,0.571960926055908,-0.147749394178391,-0.806864857673645,0.362425684928894,-0.11724591255188,-0.924608528614044,0.36761075258255,-0.158485054969788,-0.916375875473022,-0.340390413999558,-0.116295926272869,-0.933064639568329,0.36761075258255,-0.158485054969788,-0.916375875473022,0.362425684928894,-0.11724591255188,-0.924608528614044,0.337645322084427,-0.127740532159805,-0.932565331459045,-0.0967196077108383,-0.123642072081566,-0.987602055072784,0.362425684928894,-0.11724591255188,-0.924608528614044,-0.523204863071442,-0.117500297725201,-0.844067692756653,-0.430486649274826,-0.118919134140015,-0.89472883939743,-0.555967271327972,-0.131003424525261,-0.820815742015839,-0.555967271327972,-0.131003424525261,-0.820815742015839,-0.430486649274826,-0.118919134140015,-0.89472883939743,-0.434042185544968,-0.123190730810165,-0.892430126667023,-0.523204863071442,-0.117500297725201,-0.844067692756653,-0.572483062744141,-0.123317196965218,-0.810589969158173,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.523204863071442,-0.117500297725201,-0.844067692756653,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.430486649274826,-0.118919134140015,-0.89472883939743,-0.353241384029388,-0.128360733389854,-0.926684498786926, +-0.340390413999558,-0.116295926272869,-0.933064639568329,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.340390413999558,-0.116295926272869,-0.933064639568329,-0.430486649274826,-0.118919134140015,-0.89472883939743,-0.523204863071442,-0.117500297725201,-0.844067692756653,-0.600413799285889,-0.115736462175846,-0.791270077228546,-0.572483062744141,-0.123317196965218,-0.810589969158173,0.853923678398132,-0.418672949075699,-0.309075146913528,0.879148244857788,-0.376549512147903,-0.292076736688614,0.117701858282089,-0.250396341085434,-0.960961997509003,0.117701858282089,-0.250396341085434,-0.960961997509003,0.879148244857788,-0.376549512147903,-0.292076736688614,0.609960198402405,-0.225487649440765,-0.759673476219177,0.811742544174194,-0.254123508930206,-0.525828301906586,0.609960198402405,-0.225487649440765,-0.759673476219177,0.879148244857788,-0.376549512147903,-0.292076736688614,0.0391803458333015,-0.863842248916626,-0.502236485481262,-0.012361285276711,-0.698921799659729,-0.715091347694397,0.0374919474124908,-0.837516248226166,-0.545124769210815,-0.134690552949905,-0.647113740444183,-0.750401496887207,0.0374919474124908,-0.837516248226166,-0.545124769210815,-0.012361285276711,-0.698921799659729,-0.715091347694397,0.580073595046997,-0.186295121908188,-0.792974650859833,0.486285328865051,-0.157774090766907,-0.859438121318817,0.531138241291046,-0.18735845386982,-0.826310575008392,0.531138241291046,-0.18735845386982,-0.826310575008392,0.486285328865051,-0.157774090766907,-0.859438121318817,0.670780062675476,-0.198680579662323,-0.714548885822296,0.0922143012285233,-0.906984448432922,-0.410945147275925,0.0391803458333015,-0.863842248916626,-0.502236485481262,0.0325177721679211,-0.895088136196136,-0.444702088832855,0.0331387706100941,-0.853317260742188,-0.520337879657745,-0.012361285276711,-0.698921799659729,-0.715091347694397,0.0391803458333015,-0.863842248916626,-0.502236485481262,0.0922143012285233,-0.906984448432922,-0.410945147275925,0.0325177721679211,-0.895088136196136,-0.444702088832855, +0.0550652109086514,-0.896338224411011,-0.439938277006149,0.0733887478709221,-0.901489913463593,-0.426532447338104,0.0550652109086514,-0.896338224411011,-0.439938277006149,0.0325177721679211,-0.895088136196136,-0.444702088832855,0.0255676340311766,-0.900050699710846,-0.435034424066544,0.0221564490348101,-0.815194547176361,-0.5787633061409,0.0325177721679211,-0.895088136196136,-0.444702088832855,0.0733887478709221,-0.901489913463593,-0.426532447338104,0.0325177721679211,-0.895088136196136,-0.444702088832855,0.0221564490348101,-0.815194547176361,-0.5787633061409,0.580073595046997,-0.186295121908188,-0.792974650859833,0.560105979442596,-0.172874599695206,-0.810182511806488,0.678340077400208,-0.251233547925949,-0.690461099147797,0.678340077400208,-0.251233547925949,-0.690461099147797,0.560105979442596,-0.172874599695206,-0.810182511806488,0.811742544174194,-0.254123508930206,-0.525828301906586,0.811742544174194,-0.254123508930206,-0.525828301906586,0.560105979442596,-0.172874599695206,-0.810182511806488,0.609960198402405,-0.225487649440765,-0.759673476219177,0.16723820567131,-0.078409418463707,-0.982793629169464,0.474534928798676,-0.132547676563263,-0.870199799537659,0.486285328865051,-0.157774090766907,-0.859438121318817,0.670780062675476,-0.198680579662323,-0.714548885822296,0.486285328865051,-0.157774090766907,-0.859438121318817,0.474534928798676,-0.132547676563263,-0.870199799537659,0.032207977026701,-0.146018803119659,-0.988757431507111,0.560105979442596,-0.172874599695206,-0.810182511806488,0.531138241291046,-0.18735845386982,-0.826310575008392,0.580073595046997,-0.186295121908188,-0.792974650859833,0.531138241291046,-0.18735845386982,-0.826310575008392,0.560105979442596,-0.172874599695206,-0.810182511806488,0.678340077400208,-0.251233547925949,-0.690461099147797,0.37285253405571,-0.158400148153305,-0.914270460605621,0.486285328865051,-0.157774090766907,-0.859438121318817,0.16723820567131,-0.078409418463707,-0.982793629169464,0.486285328865051,-0.157774090766907,-0.859438121318817,0.37285253405571,-0.158400148153305,-0.914270460605621, +0.580073595046997,-0.186295121908188,-0.792974650859833,0.678340077400208,-0.251233547925949,-0.690461099147797,0.486285328865051,-0.157774090766907,-0.859438121318817,0.0659183189272881,-0.414588809013367,-0.907618284225464,0.0546449087560177,-0.806915760040283,-0.588133275508881,0.025329327210784,-0.283852189779282,-0.958533525466919,-0.0579744540154934,-0.201769441366196,-0.977715730667114,0.025329327210784,-0.283852189779282,-0.958533525466919,0.0546449087560177,-0.806915760040283,-0.588133275508881,0.678340077400208,-0.251233547925949,-0.690461099147797,0.686399161815643,-0.395239323377609,-0.610444188117981,0.37285253405571,-0.158400148153305,-0.914270460605621,0.721703886985779,-0.559968948364258,-0.406913191080093,0.37285253405571,-0.158400148153305,-0.914270460605621,0.686399161815643,-0.395239323377609,-0.610444188117981,0.0538161918520927,-0.135387897491455,-0.989330112934113,-0.340390413999558,-0.116295926272869,-0.933064639568329,-0.353241384029388,-0.128360733389854,-0.926684498786926,0.609960198402405,-0.225487649440765,-0.759673476219177,0.032207977026701,-0.146018803119659,-0.988757431507111,0.117701858282089,-0.250396341085434,-0.960961997509003,0.609960198402405,-0.225487649440765,-0.759673476219177,0.560105979442596,-0.172874599695206,-0.810182511806488,0.032207977026701,-0.146018803119659,-0.988757431507111,0.531138241291046,-0.18735845386982,-0.826310575008392,0.36761075258255,-0.158485054969788,-0.916375875473022,0.0538161918520927,-0.135387897491455,-0.989330112934113,-0.340390413999558,-0.116295926272869,-0.933064639568329,0.0538161918520927,-0.135387897491455,-0.989330112934113,0.36761075258255,-0.158485054969788,-0.916375875473022,0.032207977026701,-0.146018803119659,-0.988757431507111,0.531138241291046,-0.18735845386982,-0.826310575008392,0.0538161918520927,-0.135387897491455,-0.989330112934113,0.811742544174194,-0.254123508930206,-0.525828301906586,0.866346955299377,-0.349196434020996,-0.357078105211258,0.678340077400208,-0.251233547925949,-0.690461099147797,0.0331387706100941,-0.853317260742188,-0.520337879657745, +0.0612267181277275,-0.746398389339447,-0.662677049636841,-0.012361285276711,-0.698921799659729,-0.715091347694397,-0.189026013016701,-0.499220907688141,-0.84560489654541,-0.012361285276711,-0.698921799659729,-0.715091347694397,0.0612267181277275,-0.746398389339447,-0.662677049636841,-0.203672289848328,-0.157616883516312,-0.966268301010132,-0.145846202969551,-0.136802345514297,-0.979803025722504,-0.352302342653275,-0.114340014755726,-0.928875386714935,0.0538161918520927,-0.135387897491455,-0.989330112934113,-0.353241384029388,-0.128360733389854,-0.926684498786926,0.032207977026701,-0.146018803119659,-0.988757431507111,-0.0843329504132271,-0.116458840668201,-0.989608645439148,0.676142752170563,-0.33905366063118,-0.65412050485611,0.117701858282089,-0.250396341085434,-0.960961997509003,0.853923678398132,-0.418672949075699,-0.309075146913528,0.117701858282089,-0.250396341085434,-0.960961997509003,0.676142752170563,-0.33905366063118,-0.65412050485611,0.117701858282089,-0.250396341085434,-0.960961997509003,-0.353241384029388,-0.128360733389854,-0.926684498786926,-0.0843329504132271,-0.116458840668201,-0.989608645439148,-0.0843329504132271,-0.116458840668201,-0.989608645439148,-0.353241384029388,-0.128360733389854,-0.926684498786926,-0.145846202969551,-0.136802345514297,-0.979803025722504,0.032207977026701,-0.146018803119659,-0.988757431507111,-0.353241384029388,-0.128360733389854,-0.926684498786926,0.117701858282089,-0.250396341085434,-0.960961997509003,-0.352302342653275,-0.114340014755726,-0.928875386714935,-0.145846202969551,-0.136802345514297,-0.979803025722504,-0.353241384029388,-0.128360733389854,-0.926684498786926,-0.369912207126617,0.087733693420887,0.924915075302124,-0.354326039552689,0.0156215848401189,0.934991538524628,-0.349495738744736,-0.12922428548336,0.92798376083374,-0.361468315124512,0.072344534099102,0.929573476314545,-0.349495738744736,-0.12922428548336,0.92798376083374,-0.354326039552689,0.0156215848401189,0.934991538524628,-0.42085200548172,0.271853417158127,0.865436017513275,-0.354338049888611,-0.10865394026041,0.928783535957336, +-0.358328402042389,0.183362141251564,0.91541200876236,-0.361468315124512,0.072344534099102,0.929573476314545,-0.358328402042389,0.183362141251564,0.91541200876236,-0.354338049888611,-0.10865394026041,0.928783535957336,-0.369912207126617,0.087733693420887,0.924915075302124,-0.349495738744736,-0.12922428548336,0.92798376083374,-0.4288669526577,0.362067520618439,0.82763534784317,-0.349495738744736,-0.12922428548336,0.92798376083374,-0.354338049888611,-0.10865394026041,0.928783535957336,-0.345103830099106,-0.127489313483238,0.929865479469299,-0.985879719257355,-0.0517898313701153,-0.159244492650032,-0.987586677074432,-0.0308620743453503,-0.154013276100159,-0.962675273418427,-0.0471467822790146,-0.266520947217941,-0.962675273418427,-0.0471467822790146,-0.266520947217941,-0.987586677074432,-0.0308620743453503,-0.154013276100159,-0.991886973381042,-0.0358068346977234,-0.12197583168745,-0.989338159561157,-0.105931378901005,-0.0999436676502228,-0.987586677074432,-0.0308620743453503,-0.154013276100159,-0.985879719257355,-0.0517898313701153,-0.159244492650032,-0.98398894071579,-0.0793911591172218,-0.159571453928947,-0.987586677074432,-0.0308620743453503,-0.154013276100159,-0.989897727966309,0.00626133801415563,-0.14164474606514,-0.987491369247437,-0.0840553939342499,-0.133400052785873,-0.989897727966309,0.00626133801415563,-0.14164474606514,-0.987586677074432,-0.0308620743453503,-0.154013276100159,-0.361468315124512,0.072344534099102,0.929573476314545,-0.354338049888611,-0.10865394026041,0.928783535957336,-0.349495738744736,-0.12922428548336,0.92798376083374,-0.987491369247437,-0.0840553939342499,-0.133400052785873,-0.987586677074432,-0.0308620743453503,-0.154013276100159,-0.990273714065552,-0.025730699300766,-0.136733502149582,-0.989338159561157,-0.105931378901005,-0.0999436676502228,-0.990273714065552,-0.025730699300766,-0.136733502149582,-0.987586677074432,-0.0308620743453503,-0.154013276100159,-0.991886973381042,-0.0358068346977234,-0.12197583168745,-0.987586677074432,-0.0308620743453503,-0.154013276100159,-0.992912232875824,-0.0766872316598892,-0.0907994508743286, +-0.98398894071579,-0.0793911591172218,-0.159571453928947,-0.992912232875824,-0.0766872316598892,-0.0907994508743286,-0.987586677074432,-0.0308620743453503,-0.154013276100159,-0.81376188993454,-0.0509299039840698,-0.578962683677673,-0.864662230014801,-0.0496996566653252,-0.499889105558395,-0.847721338272095,-0.0466218255460262,-0.528389036655426,-0.962675273418427,-0.0471467822790146,-0.266520947217941,-0.847721338272095,-0.0466218255460262,-0.528389036655426,-0.864662230014801,-0.0496996566653252,-0.499889105558395,-0.71925014257431,-0.109600037336349,-0.686051785945892,-0.734119594097137,-0.106231957674026,-0.670658707618713,-0.864662230014801,-0.0496996566653252,-0.499889105558395,-0.835146188735962,-0.0825764313340187,-0.543793916702271,-0.864662230014801,-0.0496996566653252,-0.499889105558395,-0.734119594097137,-0.106231957674026,-0.670658707618713,-0.81376188993454,-0.0509299039840698,-0.578962683677673,-0.71925014257431,-0.109600037336349,-0.686051785945892,-0.864662230014801,-0.0496996566653252,-0.499889105558395,-0.76984316110611,-0.0512775108218193,-0.636169791221619,-0.700289726257324,-0.0435487851500511,-0.712529122829437,-0.975282192230225,-0.0551497340202332,-0.213969841599464,-0.694142282009125,-0.0346047356724739,-0.719005584716797,-0.975282192230225,-0.0551497340202332,-0.213969841599464,-0.700289726257324,-0.0435487851500511,-0.712529122829437,-0.962675273418427,-0.0471467822790146,-0.266520947217941,-0.991886973381042,-0.0358068346977234,-0.12197583168745,-0.847721338272095,-0.0466218255460262,-0.528389036655426,-0.694142282009125,-0.0346047356724739,-0.719005584716797,-0.847721338272095,-0.0466218255460262,-0.528389036655426,-0.975282192230225,-0.0551497340202332,-0.213969841599464,-0.975282192230225,-0.0551497340202332,-0.213969841599464,-0.847721338272095,-0.0466218255460262,-0.528389036655426,-0.991886973381042,-0.0358068346977234,-0.12197583168745,-0.835146188735962,-0.0825764313340187,-0.543793916702271,-0.845477104187012,-0.0608533248305321,-0.530533194541931,-0.864662230014801,-0.0496996566653252,-0.499889105558395, +-0.845477104187012,-0.0608533248305321,-0.530533194541931,-0.905205368995667,-0.0463414825499058,-0.422440201044083,-0.864662230014801,-0.0496996566653252,-0.499889105558395,-0.905205368995667,-0.0463414825499058,-0.422440201044083,-0.985879719257355,-0.0517898313701153,-0.159244492650032,-0.864662230014801,-0.0496996566653252,-0.499889105558395,-0.962675273418427,-0.0471467822790146,-0.266520947217941,-0.864662230014801,-0.0496996566653252,-0.499889105558395,-0.985879719257355,-0.0517898313701153,-0.159244492650032,-0.76984316110611,-0.0512775108218193,-0.636169791221619,-0.731573104858398,-0.0770570710301399,-0.677394270896912,-0.700289726257324,-0.0435487851500511,-0.712529122829437,-0.694142282009125,-0.0346047356724739,-0.719005584716797,-0.700289726257324,-0.0435487851500511,-0.712529122829437,-0.731573104858398,-0.0770570710301399,-0.677394270896912,-0.999301671981812,-0.0228601731359959,-0.0295546315610409,-0.975282192230225,-0.0551497340202332,-0.213969841599464,-0.991886973381042,-0.0358068346977234,-0.12197583168745,-0.697605550289154,-0.114206239581108,-0.707321345806122,-0.731573104858398,-0.0770570710301399,-0.677394270896912,-0.695595383644104,-0.106218323111534,-0.710538387298584,-0.719372391700745,-0.0853397995233536,-0.689362406730652,-0.695595383644104,-0.106218323111534,-0.710538387298584,-0.731573104858398,-0.0770570710301399,-0.677394270896912,-0.998239517211914,0.0287207271903753,0.0518921799957752,-0.992442846298218,0.0420274958014488,0.115285858511925,-0.999395608901978,0.0308424476534128,0.0160326175391674,-0.81376188993454,-0.0509299039840698,-0.578962683677673,-0.847721338272095,-0.0466218255460262,-0.528389036655426,-0.731573104858398,-0.0770570710301399,-0.677394270896912,-0.694142282009125,-0.0346047356724739,-0.719005584716797,-0.731573104858398,-0.0770570710301399,-0.677394270896912,-0.847721338272095,-0.0466218255460262,-0.528389036655426,-0.632931530475616,-0.125378429889679,-0.763988196849823,-0.71925014257431,-0.109600037336349,-0.686051785945892,-0.731573104858398,-0.0770570710301399,-0.677394270896912, +-0.81376188993454,-0.0509299039840698,-0.578962683677673,-0.731573104858398,-0.0770570710301399,-0.677394270896912,-0.71925014257431,-0.109600037336349,-0.686051785945892,-0.632931530475616,-0.125378429889679,-0.763988196849823,-0.731573104858398,-0.0770570710301399,-0.677394270896912,-0.697605550289154,-0.114206239581108,-0.707321345806122,-0.991617381572723,-0.0251621846109629,-0.126735508441925,-0.999395608901978,0.0308424476534128,0.0160326175391674,-0.977730751037598,-0.0766442641615868,-0.195366576313972,-0.990192234516144,-0.0576703250408173,-0.127253890037537,-0.977730751037598,-0.0766442641615868,-0.195366576313972,-0.999395608901978,0.0308424476534128,0.0160326175391674,-0.632931530475616,-0.125378429889679,-0.763988196849823,-0.697605550289154,-0.114206239581108,-0.707321345806122,-0.600413799285889,-0.115736462175846,-0.791270077228546,-0.999301671981812,-0.0228601731359959,-0.0295546315610409,-0.994791567325592,0.00788875296711922,0.101624839007854,-0.993214130401611,0.0155620127916336,0.115254737436771,-0.971835732460022,0.039994977414608,0.232240676879883,-0.993214130401611,0.0155620127916336,0.115254737436771,-0.994791567325592,0.00788875296711922,0.101624839007854,-0.994791567325592,0.00788875296711922,0.101624839007854,-0.991886973381042,-0.0358068346977234,-0.12197583168745,-0.992912232875824,-0.0766872316598892,-0.0907994508743286,-0.999888062477112,0.0146675212308764,-0.00299118738621473,-0.994791567325592,0.00788875296711922,0.101624839007854,-0.992912232875824,-0.0766872316598892,-0.0907994508743286,-0.971835732460022,0.039994977414608,0.232240676879883,-0.994791567325592,0.00788875296711922,0.101624839007854,-0.990172982215881,0.0239294338971376,0.137785732746124,-0.994791567325592,0.00788875296711922,0.101624839007854,-0.984574973583221,-0.0527235195040703,0.166829913854599,-0.990172982215881,0.0239294338971376,0.137785732746124,-0.999888062477112,0.0146675212308764,-0.00299118738621473,-0.984574973583221,-0.0527235195040703,0.166829913854599,-0.994791567325592,0.00788875296711922,0.101624839007854, +-0.995955348014832,0.0248187705874443,0.0863529145717621,-0.987600862979889,-0.00398285174742341,-0.156935036182404,-0.993214130401611,0.0155620127916336,0.115254737436771,-0.989334166049957,-0.0200422406196594,-0.144278019666672,-0.993214130401611,0.0155620127916336,0.115254737436771,-0.987600862979889,-0.00398285174742341,-0.156935036182404,-0.999301671981812,-0.0228601731359959,-0.0295546315610409,-0.993214130401611,0.0155620127916336,0.115254737436771,-0.989334166049957,-0.0200422406196594,-0.144278019666672,-0.816500604152679,-0.0819969028234482,-0.571492195129395,-0.689119517803192,-0.0663453340530396,-0.721604108810425,-0.987600862979889,-0.00398285174742341,-0.156935036182404,-0.987600862979889,-0.00398285174742341,-0.156935036182404,-0.689119517803192,-0.0663453340530396,-0.721604108810425,-0.989334166049957,-0.0200422406196594,-0.144278019666672,-0.76984316110611,-0.0512775108218193,-0.636169791221619,-0.989334166049957,-0.0200422406196594,-0.144278019666672,-0.689119517803192,-0.0663453340530396,-0.721604108810425,-0.999301671981812,-0.0228601731359959,-0.0295546315610409,-0.991886973381042,-0.0358068346977234,-0.12197583168745,-0.994791567325592,0.00788875296711922,0.101624839007854,-0.86411839723587,-0.0628079921007156,-0.499354064464569,-0.987600862979889,-0.00398285174742341,-0.156935036182404,-0.942165553569794,-0.0325048826634884,-0.333567947149277,-0.942165553569794,-0.0325048826634884,-0.333567947149277,-0.987600862979889,-0.00398285174742341,-0.156935036182404,-0.996681392192841,0.00354645890183747,-0.0813242495059967,-0.996681392192841,0.00354645890183747,-0.0813242495059967,-0.987600862979889,-0.00398285174742341,-0.156935036182404,-0.995955348014832,0.0248187705874443,0.0863529145717621,-0.719372391700745,-0.0853397995233536,-0.689362406730652,-0.731573104858398,-0.0770570710301399,-0.677394270896912,-0.689119517803192,-0.0663453340530396,-0.721604108810425,-0.76984316110611,-0.0512775108218193,-0.636169791221619,-0.689119517803192,-0.0663453340530396,-0.721604108810425,-0.731573104858398,-0.0770570710301399,-0.677394270896912, +-0.999301671981812,-0.0228601731359959,-0.0295546315610409,-0.989334166049957,-0.0200422406196594,-0.144278019666672,-0.975282192230225,-0.0551497340202332,-0.213969841599464,-0.76984316110611,-0.0512775108218193,-0.636169791221619,-0.975282192230225,-0.0551497340202332,-0.213969841599464,-0.989334166049957,-0.0200422406196594,-0.144278019666672,0.0495102591812611,-0.862685143947601,-0.503312051296234,0.0375759229063988,-0.947219669818878,-0.318375378847122,0.0449853986501694,-0.915119886398315,-0.400664448738098,0.0325177721679211,-0.895088136196136,-0.444702088832855,0.0449853986501694,-0.915119886398315,-0.400664448738098,0.0228633284568787,-0.959683239459991,-0.280152291059494,0.0495102591812611,-0.862685143947601,-0.503312051296234,0.0449853986501694,-0.915119886398315,-0.400664448738098,0.0468597784638405,-0.87277889251709,-0.48586106300354,0.00225075241178274,-0.991407096385956,-0.130793303251266,0.0107090333476663,-0.98899108171463,-0.147587180137634,0.0127805257216096,-0.982652127742767,-0.18501715362072,-0.990192234516144,-0.0576703250408173,-0.127253890037537,-0.999395608901978,0.0308424476534128,0.0160326175391674,-0.96550464630127,0.168114796280861,0.198841765522957,-0.992442846298218,0.0420274958014488,0.115285858511925,-0.96550464630127,0.168114796280861,0.198841765522957,-0.999395608901978,0.0308424476534128,0.0160326175391674,0.00225075241178274,-0.991407096385956,-0.130793303251266,0.0173498839139938,-0.977898061275482,-0.20836116373539,0.0107090333476663,-0.98899108171463,-0.147587180137634,0.0228633284568787,-0.959683239459991,-0.280152291059494,0.0375759229063988,-0.947219669818878,-0.318375378847122,0.00225075241178274,-0.991407096385956,-0.130793303251266,0.0375759229063988,-0.947219669818878,-0.318375378847122,0.0527306422591209,-0.890755176544189,-0.451414078474045,0.0173498839139938,-0.977898061275482,-0.20836116373539,0.0375086702406406,-0.93682599067688,-0.347778975963593,0.0173498839139938,-0.977898061275482,-0.20836116373539,0.0527306422591209,-0.890755176544189,-0.451414078474045,0.000139355062856339,-0.979174137115479,-0.203022390604019, +0.0127805257216096,-0.982652127742767,-0.18501715362072,0.00917268730700016,-0.981457412242889,-0.191460818052292,0.0107090333476663,-0.98899108171463,-0.147587180137634,0.00917268730700016,-0.981457412242889,-0.191460818052292,0.0127805257216096,-0.982652127742767,-0.18501715362072,0.00225075241178274,-0.991407096385956,-0.130793303251266,0.0375759229063988,-0.947219669818878,-0.318375378847122,0.0173498839139938,-0.977898061275482,-0.20836116373539,0.0495102591812611,-0.862685143947601,-0.503312051296234,0.0527306422591209,-0.890755176544189,-0.451414078474045,0.0375759229063988,-0.947219669818878,-0.318375378847122,0.0160724390298128,-0.968095421791077,-0.250066012144089,0.0228633284568787,-0.959683239459991,-0.280152291059494,0.0127805257216096,-0.982652127742767,-0.18501715362072,0.0127805257216096,-0.982652127742767,-0.18501715362072,0.0228633284568787,-0.959683239459991,-0.280152291059494,0.00225075241178274,-0.991407096385956,-0.130793303251266,0.0228633284568787,-0.959683239459991,-0.280152291059494,0.0449853986501694,-0.915119886398315,-0.400664448738098,0.0375759229063988,-0.947219669818878,-0.318375378847122,-0.978868067264557,0.138710185885429,0.150255367159843,-0.998410224914551,0.053735788911581,0.0170174073427916,-0.96550464630127,0.168114796280861,0.198841765522957,-0.990192234516144,-0.0576703250408173,-0.127253890037537,-0.96550464630127,0.168114796280861,0.198841765522957,-0.998410224914551,0.053735788911581,0.0170174073427916,-0.801923334598541,-0.114225007593632,-0.586405813694,-0.813394665718079,-0.103324167430401,-0.572462439537048,-0.786619305610657,-0.109818041324615,-0.607593595981598,-0.936777353286743,-0.0517357997596264,-0.346080422401428,-0.942165553569794,-0.0325048826634884,-0.333567947149277,-0.996681392192841,0.00354645890183747,-0.0813242495059967,-0.731913506984711,-0.116142950952053,-0.671426475048065,-0.723098874092102,-0.124341666698456,-0.679460883140564,-0.695595383644104,-0.106218323111534,-0.710538387298584,-0.796681463718414,-0.109233826398849,-0.594446361064911,-0.751597821712494,-0.12341221421957,-0.647973835468292, +-0.723098874092102,-0.124341666698456,-0.679460883140564,-0.695595383644104,-0.106218323111534,-0.710538387298584,-0.719372391700745,-0.0853397995233536,-0.689362406730652,-0.86411839723587,-0.0628079921007156,-0.499354064464569,-0.86411839723587,-0.0628079921007156,-0.499354064464569,-0.719372391700745,-0.0853397995233536,-0.689362406730652,-0.987600862979889,-0.00398285174742341,-0.156935036182404,-0.816500604152679,-0.0819969028234482,-0.571492195129395,-0.987600862979889,-0.00398285174742341,-0.156935036182404,-0.719372391700745,-0.0853397995233536,-0.689362406730652,-0.723098874092102,-0.124341666698456,-0.679460883140564,-0.697605550289154,-0.114206239581108,-0.707321345806122,-0.695595383644104,-0.106218323111534,-0.710538387298584,-0.82379561662674,-0.0995793491601944,-0.55807226896286,-0.786619305610657,-0.109818041324615,-0.607593595981598,-0.936777353286743,-0.0517357997596264,-0.346080422401428,-0.822476863861084,-0.102608397603035,-0.559467136859894,-0.936777353286743,-0.0517357997596264,-0.346080422401428,-0.786619305610657,-0.109818041324615,-0.607593595981598,-0.816500604152679,-0.0819969028234482,-0.571492195129395,-0.719372391700745,-0.0853397995233536,-0.689362406730652,-0.689119517803192,-0.0663453340530396,-0.721604108810425,-0.813394665718079,-0.103324167430401,-0.572462439537048,-0.731913506984711,-0.116142950952053,-0.671426475048065,-0.786619305610657,-0.109818041324615,-0.607593595981598,-0.942165553569794,-0.0325048826634884,-0.333567947149277,-0.786619305610657,-0.109818041324615,-0.607593595981598,-0.731913506984711,-0.116142950952053,-0.671426475048065,-0.822476863861084,-0.102608397603035,-0.559467136859894,-0.786619305610657,-0.109818041324615,-0.607593595981598,-0.942165553569794,-0.0325048826634884,-0.333567947149277,-0.731913506984711,-0.116142950952053,-0.671426475048065,-0.695595383644104,-0.106218323111534,-0.710538387298584,-0.86411839723587,-0.0628079921007156,-0.499354064464569,-0.822476863861084,-0.102608397603035,-0.559467136859894,-0.942165553569794,-0.0325048826634884,-0.333567947149277, +-0.936777353286743,-0.0517357997596264,-0.346080422401428,-0.572483062744141,-0.123317196965218,-0.810589969158173,-0.600413799285889,-0.115736462175846,-0.791270077228546,-0.751597821712494,-0.12341221421957,-0.647973835468292,-0.697605550289154,-0.114206239581108,-0.707321345806122,-0.751597821712494,-0.12341221421957,-0.647973835468292,-0.600413799285889,-0.115736462175846,-0.791270077228546,-0.731913506984711,-0.116142950952053,-0.671426475048065,-0.86411839723587,-0.0628079921007156,-0.499354064464569,-0.942165553569794,-0.0325048826634884,-0.333567947149277,-0.723098874092102,-0.124341666698456,-0.679460883140564,-0.751597821712494,-0.12341221421957,-0.647973835468292,-0.697605550289154,-0.114206239581108,-0.707321345806122,-0.731913506984711,-0.116142950952053,-0.671426475048065,-0.665885388851166,-0.149190992116928,-0.730984747409821,-0.723098874092102,-0.124341666698456,-0.679460883140564,-0.813394665718079,-0.103324167430401,-0.572462439537048,-0.665885388851166,-0.149190992116928,-0.730984747409821,-0.731913506984711,-0.116142950952053,-0.671426475048065,-0.998421788215637,0.0071390476077795,-0.055703304708004,-0.999800443649292,0.0199687983840704,0.000448584236437455,-0.999395608901978,0.0308424476534128,0.0160326175391674,-0.991617381572723,-0.0251621846109629,-0.126735508441925,-0.998421788215637,0.0071390476077795,-0.055703304708004,-0.999395608901978,0.0308424476534128,0.0160326175391674,-0.851800322532654,-0.101205341517925,-0.513997793197632,-0.800780653953552,-0.110698103904724,-0.588639199733734,-0.801923334598541,-0.114225007593632,-0.586405813694,-0.801923334598541,-0.114225007593632,-0.586405813694,-0.800780653953552,-0.110698103904724,-0.588639199733734,-0.813394665718079,-0.103324167430401,-0.572462439537048,-0.82379561662674,-0.0995793491601944,-0.55807226896286,-0.801923334598541,-0.114225007593632,-0.586405813694,-0.786619305610657,-0.109818041324615,-0.607593595981598,0.30680188536644,-0.361951023340225,-0.880263566970825,0.266131699085236,-0.360868006944656,-0.893839001655579,0.0747319832444191,-0.25764000415802,-0.963346660137177, +0.216600254178047,-0.385887295007706,-0.896758198738098,0.0747319832444191,-0.25764000415802,-0.963346660137177,0.266131699085236,-0.360868006944656,-0.893839001655579,0.321668088436127,-0.370324075222015,-0.871429741382599,0.481267362833023,-0.482979774475098,-0.731513619422913,0.266131699085236,-0.360868006944656,-0.893839001655579,0.401256144046783,-0.484811693429947,-0.777142882347107,0.266131699085236,-0.360868006944656,-0.893839001655579,0.481267362833023,-0.482979774475098,-0.731513619422913,0.0131383398547769,-0.700740218162537,-0.713295698165894,0.0380315221846104,-0.766055703163147,-0.641648054122925,-0.0280161183327436,-0.693484663963318,-0.719926476478577,-0.00284591503441334,-0.687017500400543,-0.726635277271271,-0.0280161183327436,-0.693484663963318,-0.719926476478577,0.0380315221846104,-0.766055703163147,-0.641648054122925,0.0316806547343731,-0.780782580375671,-0.623999178409576,0.0757079124450684,-0.793041884899139,-0.604444146156311,0.0380315221846104,-0.766055703163147,-0.641648054122925,-0.00284591503441334,-0.687017500400543,-0.726635277271271,0.0380315221846104,-0.766055703163147,-0.641648054122925,0.0757079124450684,-0.793041884899139,-0.604444146156311,0.0468597784638405,-0.87277889251709,-0.48586106300354,0.0391803458333015,-0.863842248916626,-0.502236485481262,0.0374919474124908,-0.837516248226166,-0.545124769210815,0.0374919474124908,-0.837516248226166,-0.545124769210815,0.0506339110434055,-0.78458309173584,-0.617952823638916,0.0468597784638405,-0.87277889251709,-0.48586106300354,-0.2147346585989,-0.52148824930191,-0.825796008110046,0.0241757314652205,-0.730629563331604,-0.682345867156982,0.00163192057516426,-0.670496344566345,-0.741911053657532,0.0380315221846104,-0.766055703163147,-0.641648054122925,0.00163192057516426,-0.670496344566345,-0.741911053657532,0.0241757314652205,-0.730629563331604,-0.682345867156982,-0.775188624858856,-0.224998787045479,-0.590303480625153,-0.677146375179291,-0.231847390532494,-0.698369324207306,-0.815813362598419,-0.122110530734062,-0.565276622772217,-0.423096865415573,-0.630638837814331,-0.650602519512177, +-0.151771157979965,-0.745165348052979,-0.649379670619965,-0.755361258983612,-0.155352234840393,-0.636627793312073,-0.156426206231117,-0.46775296330452,-0.869906902313232,-0.755361258983612,-0.155352234840393,-0.636627793312073,-0.151771157979965,-0.745165348052979,-0.649379670619965,0.401256144046783,-0.484811693429947,-0.777142882347107,0.371540933847427,-0.515459060668945,-0.77217823266983,0.266131699085236,-0.360868006944656,-0.893839001655579,0.216600254178047,-0.385887295007706,-0.896758198738098,0.266131699085236,-0.360868006944656,-0.893839001655579,0.371540933847427,-0.515459060668945,-0.77217823266983,-0.0567441247403622,-0.583265602588654,-0.810296952724457,0.0142615856602788,-0.752252757549286,-0.658720254898071,0.0241757314652205,-0.730629563331604,-0.682345867156982,0.0380315221846104,-0.766055703163147,-0.641648054122925,0.0241757314652205,-0.730629563331604,-0.682345867156982,0.0142615856602788,-0.752252757549286,-0.658720254898071,-0.00887571461498737,-0.53778600692749,-0.843034625053406,0.0693644434213638,-0.783041179180145,-0.618089854717255,0.0142615856602788,-0.752252757549286,-0.658720254898071,0.0506339110434055,-0.78458309173584,-0.617952823638916,0.0142615856602788,-0.752252757549286,-0.658720254898071,0.0693644434213638,-0.783041179180145,-0.618089854717255,0.0380315221846104,-0.766055703163147,-0.641648054122925,0.0142615856602788,-0.752252757549286,-0.658720254898071,0.0506339110434055,-0.78458309173584,-0.617952823638916,-0.999800443649292,0.0199687983840704,0.000448584236437455,-0.998421788215637,0.0071390476077795,-0.055703304708004,-0.999181091785431,0.0149246491491795,-0.0376077145338058,0.0131383398547769,-0.700740218162537,-0.713295698165894,0.00163192057516426,-0.670496344566345,-0.741911053657532,0.0380315221846104,-0.766055703163147,-0.641648054122925,-0.815813362598419,-0.122110530734062,-0.565276622772217,-0.677146375179291,-0.231847390532494,-0.698369324207306,-0.755361258983612,-0.155352234840393,-0.636627793312073,-0.423096865415573,-0.630638837814331,-0.650602519512177,-0.755361258983612,-0.155352234840393,-0.636627793312073, +-0.677146375179291,-0.231847390532494,-0.698369324207306,0.130694687366486,-0.656821429729462,-0.742633461952209,-0.402574956417084,-0.225135609507561,-0.887269556522369,-0.0416248925030231,-0.68214339017868,-0.730032682418823,-0.0416248925030231,-0.68214339017868,-0.730032682418823,-0.402574956417084,-0.225135609507561,-0.887269556522369,-0.755361258983612,-0.155352234840393,-0.636627793312073,-0.534957051277161,-0.188763201236725,-0.823522567749023,-0.755361258983612,-0.155352234840393,-0.636627793312073,-0.402574956417084,-0.225135609507561,-0.887269556522369,-0.156426206231117,-0.46775296330452,-0.869906902313232,-0.0416248925030231,-0.68214339017868,-0.730032682418823,-0.755361258983612,-0.155352234840393,-0.636627793312073,0.0374919474124908,-0.837516248226166,-0.545124769210815,0.0380315221846104,-0.766055703163147,-0.641648054122925,0.0506339110434055,-0.78458309173584,-0.617952823638916,0.0316806547343731,-0.780782580375671,-0.623999178409576,0.0380315221846104,-0.766055703163147,-0.641648054122925,-0.00558184646070004,-0.718038082122803,-0.695981442928314,-0.00558184646070004,-0.718038082122803,-0.695981442928314,0.0380315221846104,-0.766055703163147,-0.641648054122925,0.0374919474124908,-0.837516248226166,-0.545124769210815,-0.134690552949905,-0.647113740444183,-0.750401496887207,-0.00558184646070004,-0.718038082122803,-0.695981442928314,0.0374919474124908,-0.837516248226166,-0.545124769210815,0.0449853986501694,-0.915119886398315,-0.400664448738098,0.0391803458333015,-0.863842248916626,-0.502236485481262,0.0468597784638405,-0.87277889251709,-0.48586106300354,0.0325177721679211,-0.895088136196136,-0.444702088832855,0.0391803458333015,-0.863842248916626,-0.502236485481262,0.0449853986501694,-0.915119886398315,-0.400664448738098,0.0468597784638405,-0.87277889251709,-0.48586106300354,0.0506339110434055,-0.78458309173584,-0.617952823638916,0.0495102591812611,-0.862685143947601,-0.503312051296234,-0.801923334598541,-0.114225007593632,-0.586405813694,-0.86408543586731,-0.088718481361866,-0.495464831590652,-0.851800322532654,-0.101205341517925,-0.513997793197632, +-0.46019384264946,-0.115543484687805,-0.880267739295959,-0.523430049419403,-0.127819836139679,-0.842426896095276,-0.349025636911392,-0.106548003852367,-0.931036353111267,-0.813394665718079,-0.103324167430401,-0.572462439537048,-0.800780653953552,-0.110698103904724,-0.588639199733734,-0.796681463718414,-0.109233826398849,-0.594446361064911,-0.800780653953552,-0.110698103904724,-0.588639199733734,-0.703184008598328,-0.12795478105545,-0.699399590492249,-0.796681463718414,-0.109233826398849,-0.594446361064911,-0.703184008598328,-0.12795478105545,-0.699399590492249,-0.761515557765961,-0.112121410667896,-0.638375043869019,-0.796681463718414,-0.109233826398849,-0.594446361064911,-0.46019384264946,-0.115543484687805,-0.880267739295959,-0.751597821712494,-0.12341221421957,-0.647973835468292,-0.523430049419403,-0.127819836139679,-0.842426896095276,-0.665885388851166,-0.149190992116928,-0.730984747409821,-0.813394665718079,-0.103324167430401,-0.572462439537048,-0.796681463718414,-0.109233826398849,-0.594446361064911,-0.523430049419403,-0.127819836139679,-0.842426896095276,-0.406784415245056,-0.134622871875763,-0.903550326824188,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.367025285959244,-0.137090981006622,-0.920053541660309,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.406784415245056,-0.134622871875763,-0.903550326824188,-0.796681463718414,-0.109233826398849,-0.594446361064911,-0.761515557765961,-0.112121410667896,-0.638375043869019,-0.751597821712494,-0.12341221421957,-0.647973835468292,-0.665885388851166,-0.149190992116928,-0.730984747409821,-0.796681463718414,-0.109233826398849,-0.594446361064911,-0.723098874092102,-0.124341666698456,-0.679460883140564,-0.751597821712494,-0.12341221421957,-0.647973835468292,-0.761515557765961,-0.112121410667896,-0.638375043869019,-0.591713190078735,-0.136468544602394,-0.794513523578644,-0.401289045810699,-0.162772193551064,-0.901372492313385,-0.591713190078735,-0.136468544602394,-0.794513523578644,-0.761515557765961,-0.112121410667896,-0.638375043869019,-0.523430049419403,-0.127819836139679,-0.842426896095276, +-0.591713190078735,-0.136468544602394,-0.794513523578644,-0.406784415245056,-0.134622871875763,-0.903550326824188,-0.367025285959244,-0.137090981006622,-0.920053541660309,-0.406784415245056,-0.134622871875763,-0.903550326824188,-0.591713190078735,-0.136468544602394,-0.794513523578644,0.321668088436127,-0.370324075222015,-0.871429741382599,0.266131699085236,-0.360868006944656,-0.893839001655579,0.169757306575775,-0.322396576404572,-0.931258797645569,0.30680188536644,-0.361951023340225,-0.880263566970825,0.169757306575775,-0.322396576404572,-0.931258797645569,0.266131699085236,-0.360868006944656,-0.893839001655579,-0.203672289848328,-0.157616883516312,-0.966268301010132,0.0747319832444191,-0.25764000415802,-0.963346660137177,-0.145846202969551,-0.136802345514297,-0.979803025722504,-0.207957088947296,-0.207507222890854,-0.955873727798462,0.169757306575775,-0.322396576404572,-0.931258797645569,-0.20823460817337,-0.18832340836525,-0.959777414798737,-0.20823460817337,-0.18832340836525,-0.959777414798737,0.169757306575775,-0.322396576404572,-0.931258797645569,0.0747319832444191,-0.25764000415802,-0.963346660137177,0.30680188536644,-0.361951023340225,-0.880263566970825,0.0747319832444191,-0.25764000415802,-0.963346660137177,0.169757306575775,-0.322396576404572,-0.931258797645569,-0.203672289848328,-0.157616883516312,-0.966268301010132,-0.20823460817337,-0.18832340836525,-0.959777414798737,0.0747319832444191,-0.25764000415802,-0.963346660137177,-0.207957088947296,-0.207507222890854,-0.955873727798462,-0.402574956417084,-0.225135609507561,-0.887269556522369,0.227501556277275,-0.395565271377563,-0.889815270900726,0.130694687366486,-0.656821429729462,-0.742633461952209,0.227501556277275,-0.395565271377563,-0.889815270900726,-0.402574956417084,-0.225135609507561,-0.887269556522369,-0.751597821712494,-0.12341221421957,-0.647973835468292,-0.591713190078735,-0.136468544602394,-0.794513523578644,-0.523430049419403,-0.127819836139679,-0.842426896095276,0.321668088436127,-0.370324075222015,-0.871429741382599,0.169757306575775,-0.322396576404572,-0.931258797645569, +0.227501556277275,-0.395565271377563,-0.889815270900726,-0.207957088947296,-0.207507222890854,-0.955873727798462,0.227501556277275,-0.395565271377563,-0.889815270900726,0.169757306575775,-0.322396576404572,-0.931258797645569,0.216600254178047,-0.385887295007706,-0.896758198738098,0.194279968738556,-0.616430222988129,-0.763065576553345,0.0747319832444191,-0.25764000415802,-0.963346660137177,-0.0843329504132271,-0.116458840668201,-0.989608645439148,-0.145846202969551,-0.136802345514297,-0.979803025722504,0.194279968738556,-0.616430222988129,-0.763065576553345,0.194279968738556,-0.616430222988129,-0.763065576553345,-0.145846202969551,-0.136802345514297,-0.979803025722504,0.0747319832444191,-0.25764000415802,-0.963346660137177,-0.46019384264946,-0.115543484687805,-0.880267739295959,-0.349025636911392,-0.106548003852367,-0.931036353111267,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.523430049419403,-0.127819836139679,-0.842426896095276,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.349025636911392,-0.106548003852367,-0.931036353111267,-0.815813362598419,-0.122110530734062,-0.565276622772217,-0.800780653953552,-0.110698103904724,-0.588639199733734,-0.851800322532654,-0.101205341517925,-0.513997793197632,-0.401289045810699,-0.162772193551064,-0.901372492313385,-0.20823460817337,-0.18832340836525,-0.959777414798737,-0.591713190078735,-0.136468544602394,-0.794513523578644,-0.207957088947296,-0.207507222890854,-0.955873727798462,-0.20823460817337,-0.18832340836525,-0.959777414798737,-0.401289045810699,-0.162772193551064,-0.901372492313385,-0.367025285959244,-0.137090981006622,-0.920053541660309,-0.591713190078735,-0.136468544602394,-0.794513523578644,-0.20823460817337,-0.18832340836525,-0.959777414798737,-0.207957088947296,-0.207507222890854,-0.955873727798462,-0.401289045810699,-0.162772193551064,-0.901372492313385,-0.402574956417084,-0.225135609507561,-0.887269556522369,-0.402574956417084,-0.225135609507561,-0.887269556522369,-0.401289045810699,-0.162772193551064,-0.901372492313385,-0.703184008598328,-0.12795478105545,-0.699399590492249, +-0.703184008598328,-0.12795478105545,-0.699399590492249,-0.401289045810699,-0.162772193551064,-0.901372492313385,-0.761515557765961,-0.112121410667896,-0.638375043869019,-0.353241384029388,-0.128360733389854,-0.926684498786926,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.352302342653275,-0.114340014755726,-0.928875386714935,-0.367025285959244,-0.137090981006622,-0.920053541660309,-0.352302342653275,-0.114340014755726,-0.928875386714935,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.46019384264946,-0.115543484687805,-0.880267739295959,-0.403377890586853,-0.117896184325218,-0.907406628131866,-0.751597821712494,-0.12341221421957,-0.647973835468292,-0.572483062744141,-0.123317196965218,-0.810589969158173,-0.751597821712494,-0.12341221421957,-0.647973835468292,-0.403377890586853,-0.117896184325218,-0.907406628131866,-0.203672289848328,-0.157616883516312,-0.966268301010132,-0.352302342653275,-0.114340014755726,-0.928875386714935,-0.20823460817337,-0.18832340836525,-0.959777414798737,-0.367025285959244,-0.137090981006622,-0.920053541660309,-0.20823460817337,-0.18832340836525,-0.959777414798737,-0.352302342653275,-0.114340014755726,-0.928875386714935,-0.534957051277161,-0.188763201236725,-0.823522567749023,-0.800780653953552,-0.110698103904724,-0.588639199733734,-0.755361258983612,-0.155352234840393,-0.636627793312073,-0.815813362598419,-0.122110530734062,-0.565276622772217,-0.755361258983612,-0.155352234840393,-0.636627793312073,-0.800780653953552,-0.110698103904724,-0.588639199733734,-0.703184008598328,-0.12795478105545,-0.699399590492249,-0.800780653953552,-0.110698103904724,-0.588639199733734,-0.402574956417084,-0.225135609507561,-0.887269556522369,-0.534957051277161,-0.188763201236725,-0.823522567749023,-0.402574956417084,-0.225135609507561,-0.887269556522369,-0.800780653953552,-0.110698103904724,-0.588639199733734,-0.46019384264946,-0.115543484687805,-0.880267739295959,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.403377890586853,-0.117896184325218,-0.907406628131866,-0.572483062744141,-0.123317196965218,-0.810589969158173, +-0.403377890586853,-0.117896184325218,-0.907406628131866,-0.417385071516037,-0.11710113286972,-0.901153147220612,-0.0835979878902435,-0.0178054794669151,0.996340453624725,-0.130327448248863,-0.00384581461548805,0.991463601589203,-0.130971282720566,0.00857663806527853,0.991349041461945,-0.130327448248863,-0.00384581461548805,0.991463601589203,0.0261796955019236,-0.0542891062796116,0.998182058334351,-0.130971282720566,0.00857663806527853,0.991349041461945,-0.130971282720566,0.00857663806527853,0.991349041461945,0.0261796955019236,-0.0542891062796116,0.998182058334351,0.129361674189568,-0.0981635972857475,0.986726641654968,0.071643203496933,-0.0752053931355476,0.994591057300568,0.129361674189568,-0.0981635972857475,0.986726641654968,0.0261796955019236,-0.0542891062796116,0.998182058334351,-0.0661411434412003,0.0317897237837315,0.997303783893585,-0.130971282720566,0.00857663806527853,0.991349041461945,0.129361674189568,-0.0981635972857475,0.986726641654968,-0.39488485455513,0.0487683080136776,0.917435348033905,-0.467769861221313,0.0674805715680122,0.881270587444305,-0.0172781459987164,-0.134508043527603,0.990761876106262,-0.503698706626892,0.0778735354542732,0.860362350940704,-0.467769861221313,0.0674805715680122,0.881270587444305,-0.39488485455513,0.0487683080136776,0.917435348033905,-0.307287812232971,0.0574784353375435,0.949879169464111,-0.402081519365311,0.070980042219162,0.912848472595215,-0.30007129907608,0.051575880497694,0.952521502971649,-0.503698706626892,0.0778735354542732,0.860362350940704,-0.30007129907608,0.051575880497694,0.952521502971649,-0.467769861221313,0.0674805715680122,0.881270587444305,-0.467769861221313,0.0674805715680122,0.881270587444305,-0.30007129907608,0.051575880497694,0.952521502971649,-0.402081519365311,0.070980042219162,0.912848472595215,-0.39488485455513,0.0487683080136776,0.917435348033905,-0.0172781459987164,-0.134508043527603,0.990761876106262,-0.117538288235664,-0.021998006850481,0.992824733257294,0.180243566632271,-0.0534934177994728,0.982166409492493,0.129361674189568,-0.0981635972857475,0.986726641654968, +-0.0172781459987164,-0.134508043527603,0.990761876106262,-0.117538288235664,-0.021998006850481,0.992824733257294,-0.0172781459987164,-0.134508043527603,0.990761876106262,0.071643203496933,-0.0752053931355476,0.994591057300568,0.071643203496933,-0.0752053931355476,0.994591057300568,-0.0172781459987164,-0.134508043527603,0.990761876106262,0.129361674189568,-0.0981635972857475,0.986726641654968,0.180243566632271,-0.0534934177994728,0.982166409492493,0.181290656328201,-0.112891338765621,0.976928532123566,0.129361674189568,-0.0981635972857475,0.986726641654968,-0.0661411434412003,0.0317897237837315,0.997303783893585,0.129361674189568,-0.0981635972857475,0.986726641654968,0.181290656328201,-0.112891338765621,0.976928532123566,-0.973792910575867,0.0608485080301762,0.219145894050598,-0.971835732460022,0.039994977414608,0.232240676879883,-0.98420113325119,0.049779050052166,0.169912278652191,-0.993869960308075,-0.0154618723317981,0.109468780457973,-0.747144818305969,0.249080687761307,0.616225063800812,-0.958813965320587,0.165607914328575,0.230759367346764,-0.844253778457642,0.231607869267464,0.483314841985703,-0.958813965320587,0.165607914328575,0.230759367346764,-0.747144818305969,0.249080687761307,0.616225063800812,-0.857086956501007,0.0823365673422813,0.508549690246582,-0.985513925552368,0.0654556304216385,0.156453981995583,-0.973874926567078,0.048352986574173,0.22187764942646,-0.973792910575867,0.0608485080301762,0.219145894050598,-0.973874926567078,0.048352986574173,0.22187764942646,-0.985513925552368,0.0654556304216385,0.156453981995583,-0.973874926567078,0.048352986574173,0.22187764942646,-0.98420113325119,0.049779050052166,0.169912278652191,-0.979616641998291,0.0844952091574669,0.182241037487984,-0.973792910575867,0.0608485080301762,0.219145894050598,-0.98420113325119,0.049779050052166,0.169912278652191,-0.973874926567078,0.048352986574173,0.22187764942646,-0.979616641998291,0.0844952091574669,0.182241037487984,-0.992425382137299,0.0542922914028168,0.110200606286526,-0.98348480463028,0.0873459354043007,0.158519342541695, +-0.985513925552368,0.0654556304216385,0.156453981995583,-0.990922152996063,0.0548409558832645,0.122742742300034,-0.973792910575867,0.0608485080301762,0.219145894050598,-0.857086956501007,0.0823365673422813,0.508549690246582,-0.973874926567078,0.048352986574173,0.22187764942646,-0.952717483043671,0.0707901418209076,0.295496582984924,-0.117538288235664,-0.021998006850481,0.992824733257294,-0.125822246074677,-0.00448881089687347,0.992042660713196,-0.26926925778389,0.03094083070755,0.962567806243896,-0.441269963979721,0.0641669109463692,0.895077347755432,-0.26926925778389,0.03094083070755,0.962567806243896,-0.231011793017387,0.0496542789041996,0.971683025360107,-0.407080858945847,0.0563805624842644,0.911650359630585,-0.28139141201973,-0.00157060299534351,0.959591805934906,-0.00503429118543863,0.0204100627452135,0.999778985977173,-0.231011793017387,0.0496542789041996,0.971683025360107,-0.00503429118543863,0.0204100627452135,0.999778985977173,-0.28139141201973,-0.00157060299534351,0.959591805934906,-0.503698706626892,0.0778735354542732,0.860362350940704,-0.441269963979721,0.0641669109463692,0.895077347755432,-0.335805624723434,0.0328010469675064,0.941360056400299,-0.311080783605576,-0.00345195969566703,0.950377225875854,-0.335805624723434,0.0328010469675064,0.941360056400299,-0.441269963979721,0.0641669109463692,0.895077347755432,-0.117538288235664,-0.021998006850481,0.992824733257294,-0.26926925778389,0.03094083070755,0.962567806243896,-0.39488485455513,0.0487683080136776,0.917435348033905,-0.441269963979721,0.0641669109463692,0.895077347755432,-0.39488485455513,0.0487683080136776,0.917435348033905,-0.26926925778389,0.03094083070755,0.962567806243896,-0.231011793017387,0.0496542789041996,0.971683025360107,-0.0652352645993233,0.0444487445056438,0.996879458427429,-0.00503429118543863,0.0204100627452135,0.999778985977173,-0.441269963979721,0.0641669109463692,0.895077347755432,-0.231011793017387,0.0496542789041996,0.971683025360107,-0.28139141201973,-0.00157060299534351,0.959591805934906,-0.503698706626892,0.0778735354542732,0.860362350940704, +-0.39488485455513,0.0487683080136776,0.917435348033905,-0.441269963979721,0.0641669109463692,0.895077347755432,-0.407080858945847,0.0563805624842644,0.911650359630585,-0.638586282730103,0.0830946490168571,0.765050888061523,-0.28139141201973,-0.00157060299534351,0.959591805934906,-0.657297849655151,0.0929550155997276,0.747876286506653,-0.28139141201973,-0.00157060299534351,0.959591805934906,-0.638586282730103,0.0830946490168571,0.765050888061523,-0.897760570049286,0.0563617497682571,0.43686306476593,-0.707473695278168,0.210148379206657,0.674773097038269,-0.747144818305969,0.249080687761307,0.616225063800812,-0.421068251132965,0.442709863185883,0.791649878025055,-0.747144818305969,0.249080687761307,0.616225063800812,-0.707473695278168,0.210148379206657,0.674773097038269,0.071643203496933,-0.0752053931355476,0.994591057300568,0.0261796955019236,-0.0542891062796116,0.998182058334351,-0.117538288235664,-0.021998006850481,0.992824733257294,-0.130327448248863,-0.00384581461548805,0.991463601589203,-0.117538288235664,-0.021998006850481,0.992824733257294,0.0261796955019236,-0.0542891062796116,0.998182058334351,-0.503698706626892,0.0778735354542732,0.860362350940704,-0.335805624723434,0.0328010469675064,0.941360056400299,-0.246286064386368,0.00231311470270157,0.969194412231445,-0.311080783605576,-0.00345195969566703,0.950377225875854,-0.246286064386368,0.00231311470270157,0.969194412231445,-0.335805624723434,0.0328010469675064,0.941360056400299,-0.246119424700737,0.0098905423656106,0.969189047813416,-0.503698706626892,0.0778735354542732,0.860362350940704,-0.246286064386368,0.00231311470270157,0.969194412231445,-0.367595970630646,0.0646777227520943,0.927733778953552,-0.0652352645993233,0.0444487445056438,0.996879458427429,-0.26926925778389,0.03094083070755,0.962567806243896,-0.231011793017387,0.0496542789041996,0.971683025360107,-0.26926925778389,0.03094083070755,0.962567806243896,-0.0652352645993233,0.0444487445056438,0.996879458427429,-0.985513925552368,0.0654556304216385,0.156453981995583,-0.981822490692139,0.0905464217066765,0.166811034083366, +-0.990922152996063,0.0548409558832645,0.122742742300034,-0.939223647117615,0.0814745426177979,0.333497881889343,-0.854973018169403,0.0723471865057945,0.513602018356323,-0.916894793510437,0.0827568769454956,0.39045512676239,-0.471045911312103,0.0257111378014088,0.881733953952789,-0.709512293338776,0.0749931707978249,0.700691282749176,-0.854973018169403,0.0723471865057945,0.513602018356323,-0.916894793510437,0.0827568769454956,0.39045512676239,-0.854973018169403,0.0723471865057945,0.513602018356323,-0.663350403308868,0.0681347027420998,0.745200514793396,-0.663350403308868,0.0681347027420998,0.745200514793396,-0.854973018169403,0.0723471865057945,0.513602018356323,-0.709512293338776,0.0749931707978249,0.700691282749176,-0.318456292152405,0.0761191919445992,0.944876492023468,-0.57033896446228,0.051057942211628,0.819821000099182,-0.00503429118543863,0.0204100627452135,0.999778985977173,-0.407080858945847,0.0563805624842644,0.911650359630585,-0.00503429118543863,0.0204100627452135,0.999778985977173,-0.57033896446228,0.051057942211628,0.819821000099182,-0.407080858945847,0.0563805624842644,0.911650359630585,-0.709512293338776,0.0749931707978249,0.700691282749176,-0.638586282730103,0.0830946490168571,0.765050888061523,-0.657297849655151,0.0929550155997276,0.747876286506653,-0.638586282730103,0.0830946490168571,0.765050888061523,-0.709512293338776,0.0749931707978249,0.700691282749176,-0.663350403308868,0.0681347027420998,0.745200514793396,-0.709512293338776,0.0749931707978249,0.700691282749176,-0.57033896446228,0.051057942211628,0.819821000099182,-0.407080858945847,0.0563805624842644,0.911650359630585,-0.57033896446228,0.051057942211628,0.819821000099182,-0.709512293338776,0.0749931707978249,0.700691282749176,-0.939223647117615,0.0814745426177979,0.333497881889343,-0.993569493293762,0.0767600536346436,0.0832312107086182,-0.854973018169403,0.0723471865057945,0.513602018356323,-0.854973018169403,0.0723471865057945,0.513602018356323,-0.993569493293762,0.0767600536346436,0.0832312107086182,-0.981822490692139,0.0905464217066765,0.166811034083366, +-0.587822139263153,0.0588040761649609,0.80685019493103,-0.692156970500946,0.0729233995079994,0.718053460121155,-0.648949801921844,0.0622576400637627,0.758279800415039,-0.602386176586151,0.0634706765413284,0.795677244663239,-0.692156970500946,0.0729233995079994,0.718053460121155,-0.587822139263153,0.0588040761649609,0.80685019493103,-0.992339372634888,0.0696529224514961,0.102034606039524,-0.993569493293762,0.0767600536346436,0.0832312107086182,-0.916894793510437,0.0827568769454956,0.39045512676239,-0.939223647117615,0.0814745426177979,0.333497881889343,-0.916894793510437,0.0827568769454956,0.39045512676239,-0.993569493293762,0.0767600536346436,0.0832312107086182,-0.864212334156036,0.102942317724228,0.492483258247375,-0.992339372634888,0.0696529224514961,0.102034606039524,-0.916894793510437,0.0827568769454956,0.39045512676239,-0.657297849655151,0.0929550155997276,0.747876286506653,-0.673285305500031,0.0952602326869965,0.733220458030701,-0.28139141201973,-0.00157060299534351,0.959591805934906,-0.471045911312103,0.0257111378014088,0.881733953952789,-0.28139141201973,-0.00157060299534351,0.959591805934906,-0.673285305500031,0.0952602326869965,0.733220458030701,-0.311080783605576,-0.00345195969566703,0.950377225875854,-0.441269963979721,0.0641669109463692,0.895077347755432,-0.471045911312103,0.0257111378014088,0.881733953952789,-0.441269963979721,0.0641669109463692,0.895077347755432,-0.28139141201973,-0.00157060299534351,0.959591805934906,-0.471045911312103,0.0257111378014088,0.881733953952789,-0.663350403308868,0.0681347027420998,0.745200514793396,-0.648949801921844,0.0622576400637627,0.758279800415039,-0.916894793510437,0.0827568769454956,0.39045512676239,-0.597168624401093,0.039163738489151,0.801159083843231,-0.471045911312103,0.0257111378014088,0.881733953952789,-0.854973018169403,0.0723471865057945,0.513602018356323,-0.648949801921844,0.0622576400637627,0.758279800415039,-0.692156970500946,0.0729233995079994,0.718053460121155,-0.916894793510437,0.0827568769454956,0.39045512676239,-0.864212334156036,0.102942317724228,0.492483258247375, +-0.916894793510437,0.0827568769454956,0.39045512676239,-0.692156970500946,0.0729233995079994,0.718053460121155,-0.471045911312103,0.0257111378014088,0.881733953952789,-0.673285305500031,0.0952602326869965,0.733220458030701,-0.709512293338776,0.0749931707978249,0.700691282749176,-0.657297849655151,0.0929550155997276,0.747876286506653,-0.709512293338776,0.0749931707978249,0.700691282749176,-0.673285305500031,0.0952602326869965,0.733220458030701,-0.302893966436386,-0.0214595105499029,0.95278263092041,-0.437426090240479,0.0199927426874638,0.899032056331635,-0.415967732667923,0.00570197869092226,0.90936154127121,-0.415967732667923,0.00570197869092226,0.90936154127121,-0.437426090240479,0.0199927426874638,0.899032056331635,-0.305501848459244,0.00289354124106467,0.952187120914459,-0.660050213336945,0.0577673949301243,0.748997092247009,-0.305501848459244,0.00289354124106467,0.952187120914459,-0.437426090240479,0.0199927426874638,0.899032056331635,-0.660050213336945,0.0577673949301243,0.748997092247009,-0.865368366241455,0.0839176550507545,0.494060128927231,-0.552633464336395,0.0445934981107712,0.832230567932129,-0.50008088350296,0.0101536074653268,0.865919232368469,-0.552633464336395,0.0445934981107712,0.832230567932129,-0.754049301147461,-0.0254819840192795,0.656323432922363,-0.754049301147461,-0.0254819840192795,0.656323432922363,-0.552633464336395,0.0445934981107712,0.832230567932129,-0.865368366241455,0.0839176550507545,0.494060128927231,-0.456677407026291,0.00990564934909344,0.889577209949493,-0.302048891782761,-0.0240056049078703,0.952990055084229,-0.507028043270111,0.0228261202573776,0.861627340316772,-0.44976219534874,0.0084599032998085,0.893108308315277,-0.507028043270111,0.0228261202573776,0.861627340316772,-0.302048891782761,-0.0240056049078703,0.952990055084229,-0.439339607954025,0.166101917624474,0.882831156253815,-0.366559475660324,-0.165844812989235,0.91549426317215,-0.486441344022751,0.0645644813776016,0.871324419975281,-0.485364377498627,-0.157115623354912,0.860079169273376,-0.486441344022751,0.0645644813776016,0.871324419975281, +-0.366559475660324,-0.165844812989235,0.91549426317215,-0.660050213336945,0.0577673949301243,0.748997092247009,-0.552633464336395,0.0445934981107712,0.832230567932129,-0.305501848459244,0.00289354124106467,0.952187120914459,-0.498745828866959,0.00694657117128372,0.866720497608185,-0.305501848459244,0.00289354124106467,0.952187120914459,-0.552633464336395,0.0445934981107712,0.832230567932129,-0.378197610378265,-0.234636589884758,0.895495474338531,-0.373571544885635,-0.254097014665604,0.892120540142059,-0.343089699745178,-0.331972807645798,0.878682851791382,-0.504462659358978,-0.172514408826828,0.846023857593536,-0.343089699745178,-0.331972807645798,0.878682851791382,-0.373571544885635,-0.254097014665604,0.892120540142059,-0.439339607954025,0.166101917624474,0.882831156253815,-0.367299646139145,-0.0987402349710464,0.924846649169922,-0.366559475660324,-0.165844812989235,0.91549426317215,-0.33844518661499,-0.249363198876381,0.907343804836273,-0.366559475660324,-0.165844812989235,0.91549426317215,-0.367299646139145,-0.0987402349710464,0.924846649169922,-0.973874926567078,0.048352986574173,0.22187764942646,-0.979616641998291,0.0844952091574669,0.182241037487984,-0.904620110988617,0.0887243896722794,0.416881740093231,-0.504462659358978,-0.172514408826828,0.846023857593536,-0.385522872209549,-0.239994943141937,0.890940248966217,-0.343089699745178,-0.331972807645798,0.878682851791382,-0.485364377498627,-0.157115623354912,0.860079169273376,-0.366559475660324,-0.165844812989235,0.91549426317215,-0.385522872209549,-0.239994943141937,0.890940248966217,-0.385522872209549,-0.239994943141937,0.890940248966217,-0.366559475660324,-0.165844812989235,0.91549426317215,-0.343089699745178,-0.331972807645798,0.878682851791382,-0.754049301147461,-0.0254819840192795,0.656323432922363,-0.865368366241455,0.0839176550507545,0.494060128927231,-0.904620110988617,0.0887243896722794,0.416881740093231,-0.660050213336945,0.0577673949301243,0.748997092247009,-0.904620110988617,0.0887243896722794,0.416881740093231,-0.865368366241455,0.0839176550507545,0.494060128927231, +-0.498745828866959,0.00694657117128372,0.866720497608185,-0.552633464336395,0.0445934981107712,0.832230567932129,-0.507028043270111,0.0228261202573776,0.861627340316772,-0.552633464336395,0.0445934981107712,0.832230567932129,-0.50008088350296,0.0101536074653268,0.865919232368469,-0.507028043270111,0.0228261202573776,0.861627340316772,-0.456677407026291,0.00990564934909344,0.889577209949493,-0.507028043270111,0.0228261202573776,0.861627340316772,-0.50008088350296,0.0101536074653268,0.865919232368469,-0.498745828866959,0.00694657117128372,0.866720497608185,-0.507028043270111,0.0228261202573776,0.861627340316772,-0.558062434196472,0.0119759673252702,0.829712450504303,-0.44976219534874,0.0084599032998085,0.893108308315277,-0.558062434196472,0.0119759673252702,0.829712450504303,-0.507028043270111,0.0228261202573776,0.861627340316772,-0.531373500823975,0.00420538755133748,0.847127199172974,-0.498745828866959,0.00694657117128372,0.866720497608185,-0.558062434196472,0.0119759673252702,0.829712450504303,-0.439339607954025,0.166101917624474,0.882831156253815,-0.471228659152985,0.13591431081295,0.871476292610168,-0.367299646139145,-0.0987402349710464,0.924846649169922,-0.388094127178192,0.056065745651722,0.919912874698639,-0.367299646139145,-0.0987402349710464,0.924846649169922,-0.471228659152985,0.13591431081295,0.871476292610168,-0.98348480463028,0.0873459354043007,0.158519342541695,-0.901338219642639,-0.0534033142030239,0.429811060428619,-0.904620110988617,0.0887243896722794,0.416881740093231,-0.754049301147461,-0.0254819840192795,0.656323432922363,-0.904620110988617,0.0887243896722794,0.416881740093231,-0.901338219642639,-0.0534033142030239,0.429811060428619,-0.979616641998291,0.0844952091574669,0.182241037487984,-0.98348480463028,0.0873459354043007,0.158519342541695,-0.904620110988617,0.0887243896722794,0.416881740093231,-0.44976219534874,0.0084599032998085,0.893108308315277,-0.288672208786011,0.024385329335928,0.957117319107056,-0.558062434196472,0.0119759673252702,0.829712450504303,-0.307287812232971,0.0574784353375435,0.949879169464111, +-0.531373500823975,0.00420538755133748,0.847127199172974,-0.288672208786011,0.024385329335928,0.957117319107056,-0.531373500823975,0.00420538755133748,0.847127199172974,-0.558062434196472,0.0119759673252702,0.829712450504303,-0.288672208786011,0.024385329335928,0.957117319107056,-0.531373500823975,0.00420538755133748,0.847127199172974,-0.419587522745132,0.0263653341680765,0.907331883907318,-0.498745828866959,0.00694657117128372,0.866720497608185,-0.246119424700737,0.0098905423656106,0.969189047813416,-0.500186324119568,0.0191211123019457,0.8657066822052,-0.419587522745132,0.0263653341680765,0.907331883907318,-0.498745828866959,0.00694657117128372,0.866720497608185,-0.419587522745132,0.0263653341680765,0.907331883907318,-0.415967732667923,0.00570197869092226,0.90936154127121,-0.415967732667923,0.00570197869092226,0.90936154127121,-0.419587522745132,0.0263653341680765,0.907331883907318,-0.500186324119568,0.0191211123019457,0.8657066822052,-0.378197610378265,-0.234636589884758,0.895495474338531,-0.343089699745178,-0.331972807645798,0.878682851791382,-0.345492452383041,-0.305001854896545,0.887473285198212,-0.350493520498276,-0.19729782640934,0.915547966957092,-0.345492452383041,-0.305001854896545,0.887473285198212,-0.343089699745178,-0.331972807645798,0.878682851791382,-0.482747256755829,-0.199429139494896,0.852750301361084,-0.408574134111404,-0.213061183691025,0.887509047985077,-0.345492452383041,-0.305001854896545,0.887473285198212,-0.378197610378265,-0.234636589884758,0.895495474338531,-0.345492452383041,-0.305001854896545,0.887473285198212,-0.408574134111404,-0.213061183691025,0.887509047985077,-0.246119424700737,0.0098905423656106,0.969189047813416,-0.419587522745132,0.0263653341680765,0.907331883907318,-0.503698706626892,0.0778735354542732,0.860362350940704,-0.307287812232971,0.0574784353375435,0.949879169464111,-0.30007129907608,0.051575880497694,0.952521502971649,-0.419587522745132,0.0263653341680765,0.907331883907318,-0.503698706626892,0.0778735354542732,0.860362350940704,-0.419587522745132,0.0263653341680765,0.907331883907318, +-0.30007129907608,0.051575880497694,0.952521502971649,-0.352859258651733,-0.201185211539268,0.913791537284851,-0.370750814676285,-0.141006320714951,0.917965710163116,-0.350493520498276,-0.19729782640934,0.915547966957092,-0.415967732667923,0.00570197869092226,0.90936154127121,-0.305501848459244,0.00289354124106467,0.952187120914459,-0.498745828866959,0.00694657117128372,0.866720497608185,-0.343089699745178,-0.331972807645798,0.878682851791382,-0.33844518661499,-0.249363198876381,0.907343804836273,-0.350493520498276,-0.19729782640934,0.915547966957092,-0.350493520498276,-0.19729782640934,0.915547966957092,-0.33844518661499,-0.249363198876381,0.907343804836273,-0.330864727497101,-0.294172912836075,0.896655380725861,-0.366559475660324,-0.165844812989235,0.91549426317215,-0.33844518661499,-0.249363198876381,0.907343804836273,-0.343089699745178,-0.331972807645798,0.878682851791382,-0.370750814676285,-0.141006320714951,0.917965710163116,-0.389838218688965,-0.0106256129220128,0.920822143554688,-0.350493520498276,-0.19729782640934,0.915547966957092,-0.33047541975975,-0.139213934540749,0.933491051197052,-0.350493520498276,-0.19729782640934,0.915547966957092,-0.389838218688965,-0.0106256129220128,0.920822143554688,-0.307287812232971,0.0574784353375435,0.949879169464111,-0.419587522745132,0.0263653341680765,0.907331883907318,-0.531373500823975,0.00420538755133748,0.847127199172974,-0.33047541975975,-0.139213934540749,0.933491051197052,-0.325831711292267,-0.250976949930191,0.911506593227386,-0.350493520498276,-0.19729782640934,0.915547966957092,-0.345492452383041,-0.305001854896545,0.887473285198212,-0.350493520498276,-0.19729782640934,0.915547966957092,-0.317987114191055,-0.242348790168762,0.916597604751587,-0.317987114191055,-0.242348790168762,0.916597604751587,-0.350493520498276,-0.19729782640934,0.915547966957092,-0.325831711292267,-0.250976949930191,0.911506593227386,-0.302893966436386,-0.0214595105499029,0.95278263092041,-0.728333592414856,0.0691767781972885,0.681722044944763,-0.437426090240479,0.0199927426874638,0.899032056331635, +-0.660050213336945,0.0577673949301243,0.748997092247009,-0.437426090240479,0.0199927426874638,0.899032056331635,-0.857086956501007,0.0823365673422813,0.508549690246582,-0.857086956501007,0.0823365673422813,0.508549690246582,-0.437426090240479,0.0199927426874638,0.899032056331635,-0.728333592414856,0.0691767781972885,0.681722044944763,-0.857086956501007,0.0823365673422813,0.508549690246582,-0.952717483043671,0.0707901418209076,0.295496582984924,-0.904620110988617,0.0887243896722794,0.416881740093231,-0.973874926567078,0.048352986574173,0.22187764942646,-0.904620110988617,0.0887243896722794,0.416881740093231,-0.952717483043671,0.0707901418209076,0.295496582984924,-0.660050213336945,0.0577673949301243,0.748997092247009,-0.857086956501007,0.0823365673422813,0.508549690246582,-0.904620110988617,0.0887243896722794,0.416881740093231,-0.246119424700737,0.0098905423656106,0.969189047813416,-0.246286064386368,0.00231311470270157,0.969194412231445,-0.500186324119568,0.0191211123019457,0.8657066822052,-0.311080783605576,-0.00345195969566703,0.950377225875854,-0.500186324119568,0.0191211123019457,0.8657066822052,-0.246286064386368,0.00231311470270157,0.969194412231445,-0.302893966436386,-0.0214595105499029,0.95278263092041,-0.415967732667923,0.00570197869092226,0.90936154127121,-0.349913567304611,-0.0143763823434711,0.936671614646912,-0.597168624401093,0.039163738489151,0.801159083843231,-0.349913567304611,-0.0143763823434711,0.936671614646912,-0.415967732667923,0.00570197869092226,0.90936154127121,-0.597168624401093,0.039163738489151,0.801159083843231,-0.415967732667923,0.00570197869092226,0.90936154127121,-0.471045911312103,0.0257111378014088,0.881733953952789,-0.471045911312103,0.0257111378014088,0.881733953952789,-0.415967732667923,0.00570197869092226,0.90936154127121,-0.311080783605576,-0.00345195969566703,0.950377225875854,-0.311080783605576,-0.00345195969566703,0.950377225875854,-0.415967732667923,0.00570197869092226,0.90936154127121,-0.500186324119568,0.0191211123019457,0.8657066822052,-0.302893966436386,-0.0214595105499029,0.95278263092041, +-0.349913567304611,-0.0143763823434711,0.936671614646912,-0.728333592414856,0.0691767781972885,0.681722044944763,-0.597168624401093,0.039163738489151,0.801159083843231,-0.728333592414856,0.0691767781972885,0.681722044944763,-0.349913567304611,-0.0143763823434711,0.936671614646912,-0.981822490692139,0.0905464217066765,0.166811034083366,-0.985513925552368,0.0654556304216385,0.156453981995583,-0.728333592414856,0.0691767781972885,0.681722044944763,-0.857086956501007,0.0823365673422813,0.508549690246582,-0.728333592414856,0.0691767781972885,0.681722044944763,-0.985513925552368,0.0654556304216385,0.156453981995583,-0.981822490692139,0.0905464217066765,0.166811034083366,-0.728333592414856,0.0691767781972885,0.681722044944763,-0.854973018169403,0.0723471865057945,0.513602018356323,-0.597168624401093,0.039163738489151,0.801159083843231,-0.854973018169403,0.0723471865057945,0.513602018356323,-0.728333592414856,0.0691767781972885,0.681722044944763,-0.0835979878902435,-0.0178054794669151,0.996340453624725,-0.0570991896092892,-0.0804107487201691,0.995124995708466,0.0801347941160202,-0.0591643042862415,0.995026648044586,0.905144989490509,-0.265115708112717,0.332304745912552,0.0801347941160202,-0.0591643042862415,0.995026648044586,0.551225185394287,-0.342813909053802,0.760676920413971,0.551225185394287,-0.342813909053802,0.760676920413971,0.0801347941160202,-0.0591643042862415,0.995026648044586,-0.0570991896092892,-0.0804107487201691,0.995124995708466,0.52121776342392,-0.147804006934166,0.840527236461639,0.0801347941160202,-0.0591643042862415,0.995026648044586,0.905144989490509,-0.265115708112717,0.332304745912552,-0.0661411434412003,0.0317897237837315,0.997303783893585,-0.0570991896092892,-0.0804107487201691,0.995124995708466,-0.130971282720566,0.00857663806527853,0.991349041461945,-0.0835979878902435,-0.0178054794669151,0.996340453624725,-0.130971282720566,0.00857663806527853,0.991349041461945,-0.0570991896092892,-0.0804107487201691,0.995124995708466,0.452334463596344,-0.146866977214813,-0.879672467708588,0.0932252556085587,-0.765355348587036,-0.636820256710052, +0.494947165250778,0.175250649452209,-0.851066648960114,0.0671751201152802,-0.788559257984161,-0.611278772354126,0.494947165250778,0.175250649452209,-0.851066648960114,0.0932252556085587,-0.765355348587036,-0.636820256710052,0.140574023127556,0.680662035942078,-0.718984186649323,0.494947165250778,0.175250649452209,-0.851066648960114,0.0671751201152802,-0.788559257984161,-0.611278772354126,-0.0848839730024338,-0.996026754379272,0.0269345846027136,-0.0401267930865288,-0.999086618423462,-0.0146892247721553,-0.0117172216996551,-0.996949017047882,-0.0771703347563744,-0.071631133556366,-0.997394680976868,-0.00852550473064184,-0.0117172216996551,-0.996949017047882,-0.0771703347563744,-0.0401267930865288,-0.999086618423462,-0.0146892247721553,0.140574023127556,0.680662035942078,-0.718984186649323,0.0671751201152802,-0.788559257984161,-0.611278772354126,0.0814701616764069,0.38554048538208,-0.919087111949921,-0.0661411434412003,0.0317897237837315,0.997303783893585,-0.201579734683037,0.0689619407057762,0.97704142332077,-0.0570991896092892,-0.0804107487201691,0.995124995708466,-0.246631696820259,-0.129043415188789,0.960479378700256,-0.0570991896092892,-0.0804107487201691,0.995124995708466,-0.201579734683037,0.0689619407057762,0.97704142332077,0.52121776342392,-0.147804006934166,0.840527236461639,0.111748792231083,-0.068664625287056,0.991361379623413,0.0801347941160202,-0.0591643042862415,0.995026648044586,0.111748792231083,-0.068664625287056,0.991361379623413,-0.0835979878902435,-0.0178054794669151,0.996340453624725,0.0801347941160202,-0.0591643042862415,0.995026648044586,-0.187331199645996,-0.88570374250412,0.424777507781982,-0.00753277447074652,-0.994321644306183,-0.106148958206177,-0.0585308559238911,-0.994580447673798,0.0859294533729553,-0.00753277447074652,-0.994321644306183,-0.106148958206177,-0.046122457832098,-0.998115062713623,0.0404872857034206,-0.0585308559238911,-0.994580447673798,0.0859294533729553,-0.157384485006332,-0.823530256748199,0.545002937316895,-0.0585308559238911,-0.994580447673798,0.0859294533729553,-0.046122457832098,-0.998115062713623,0.0404872857034206, +-0.071631133556366,-0.997394680976868,-0.00852550473064184,-0.046122457832098,-0.998115062713623,0.0404872857034206,-0.0117172216996551,-0.996949017047882,-0.0771703347563744,-0.00753277447074652,-0.994321644306183,-0.106148958206177,-0.0117172216996551,-0.996949017047882,-0.0771703347563744,-0.046122457832098,-0.998115062713623,0.0404872857034206,0.00510698324069381,-0.988990187644959,-0.147893115878105,-0.00962084159255028,-0.989052772521973,-0.14724788069725,-0.0117172216996551,-0.996949017047882,-0.0771703347563744,-0.0848839730024338,-0.996026754379272,0.0269345846027136,-0.0117172216996551,-0.996949017047882,-0.0771703347563744,-0.00962084159255028,-0.989052772521973,-0.14724788069725,0.00510698324069381,-0.988990187644959,-0.147893115878105,-0.0117172216996551,-0.996949017047882,-0.0771703347563744,0.0107090333476663,-0.98899108171463,-0.147587180137634,-0.00753277447074652,-0.994321644306183,-0.106148958206177,0.0107090333476663,-0.98899108171463,-0.147587180137634,-0.0117172216996551,-0.996949017047882,-0.0771703347563744,0.00510698324069381,-0.988990187644959,-0.147893115878105,0.0107090333476663,-0.98899108171463,-0.147587180137634,0.0101030291989446,-0.984678089618683,-0.174089148640633,0.0173498839139938,-0.977898061275482,-0.20836116373539,0.0101030291989446,-0.984678089618683,-0.174089148640633,0.0107090333476663,-0.98899108171463,-0.147587180137634,-0.120283141732216,-0.0128569109365344,0.992656350135803,-0.0259756911545992,-0.0324253514409065,0.999136567115784,-0.288679540157318,0.0141594419255853,0.957321047782898,-0.120283141732216,-0.0128569109365344,0.992656350135803,-0.26926925778389,0.03094083070755,0.962567806243896,-0.104087859392166,-0.0201665200293064,0.99436366558075,-0.104087859392166,-0.0201665200293064,0.99436366558075,-0.26926925778389,0.03094083070755,0.962567806243896,-0.125822246074677,-0.00448881089687347,0.992042660713196,0.0671751201152802,-0.788559257984161,-0.611278772354126,0.0932252556085587,-0.765355348587036,-0.636820256710052,0.0644828900694847,-0.791198909282684,-0.608149826526642, +0.178258135914803,-0.665919840335846,-0.724413454532623,0.0644828900694847,-0.791198909282684,-0.608149826526642,0.0932252556085587,-0.765355348587036,-0.636820256710052,-0.367595970630646,0.0646777227520943,0.927733778953552,-0.26926925778389,0.03094083070755,0.962567806243896,-0.288679540157318,0.0141594419255853,0.957321047782898,-0.120283141732216,-0.0128569109365344,0.992656350135803,-0.288679540157318,0.0141594419255853,0.957321047782898,-0.26926925778389,0.03094083070755,0.962567806243896,-0.120283141732216,-0.0128569109365344,0.992656350135803,-0.0266743022948503,-0.053462203592062,0.998213469982147,-0.0259756911545992,-0.0324253514409065,0.999136567115784,0.320818841457367,-0.148476466536522,0.935430347919464,-0.0259756911545992,-0.0324253514409065,0.999136567115784,-0.0266743022948503,-0.053462203592062,0.998213469982147,-0.0313802920281887,-0.0417853444814682,0.998633682727814,-0.104087859392166,-0.0201665200293064,0.99436366558075,0.111748792231083,-0.068664625287056,0.991361379623413,-0.0835979878902435,-0.0178054794669151,0.996340453624725,0.111748792231083,-0.068664625287056,0.991361379623413,-0.104087859392166,-0.0201665200293064,0.99436366558075,0.0621586330235004,-0.834660768508911,-0.547245502471924,0.0644828900694847,-0.791198909282684,-0.608149826526642,0.0519416928291321,-0.836496293544769,-0.545505344867706,0.0519416928291321,-0.836496293544769,-0.545505344867706,0.0644828900694847,-0.791198909282684,-0.608149826526642,0.0719105303287506,-0.748898506164551,-0.658771574497223,0.104860462248325,-0.667298316955566,-0.737371861934662,0.0719105303287506,-0.748898506164551,-0.658771574497223,0.0644828900694847,-0.791198909282684,-0.608149826526642,-0.0313802920281887,-0.0417853444814682,0.998633682727814,-0.0266743022948503,-0.053462203592062,0.998213469982147,-0.104087859392166,-0.0201665200293064,0.99436366558075,-0.120283141732216,-0.0128569109365344,0.992656350135803,-0.104087859392166,-0.0201665200293064,0.99436366558075,-0.0266743022948503,-0.053462203592062,0.998213469982147,-0.0313802920281887,-0.0417853444814682,0.998633682727814, +0.111748792231083,-0.068664625287056,0.991361379623413,-0.0266743022948503,-0.053462203592062,0.998213469982147,0.706552088260651,-0.14492267370224,0.69266265630722,0.375596433877945,-0.181981652975082,0.908740878105164,0.111748792231083,-0.068664625287056,0.991361379623413,0.111748792231083,-0.068664625287056,0.991361379623413,0.375596433877945,-0.181981652975082,0.908740878105164,-0.0266743022948503,-0.053462203592062,0.998213469982147,0.320818841457367,-0.148476466536522,0.935430347919464,-0.0266743022948503,-0.053462203592062,0.998213469982147,0.375596433877945,-0.181981652975082,0.908740878105164,-0.125822246074677,-0.00448881089687347,0.992042660713196,-0.130327448248863,-0.00384581461548805,0.991463601589203,-0.104087859392166,-0.0201665200293064,0.99436366558075,-0.0835979878902435,-0.0178054794669151,0.996340453624725,-0.104087859392166,-0.0201665200293064,0.99436366558075,-0.130327448248863,-0.00384581461548805,0.991463601589203,-0.129457384347916,-0.0268367175012827,0.991221725940704,-0.0259756911545992,-0.0324253514409065,0.999136567115784,0.368127077817917,-0.068647563457489,0.927237868309021,0.368127077817917,-0.068647563457489,0.927237868309021,-0.0259756911545992,-0.0324253514409065,0.999136567115784,0.676878869533539,-0.0970696285367012,0.729666173458099,-0.288679540157318,0.0141594419255853,0.957321047782898,-0.0259756911545992,-0.0324253514409065,0.999136567115784,-0.129457384347916,-0.0268367175012827,0.991221725940704,0.320818841457367,-0.148476466536522,0.935430347919464,0.676878869533539,-0.0970696285367012,0.729666173458099,-0.0259756911545992,-0.0324253514409065,0.999136567115784,0.52121776342392,-0.147804006934166,0.840527236461639,0.620685458183289,-0.100678913295269,0.777568817138672,0.111748792231083,-0.068664625287056,0.991361379623413,0.706552088260651,-0.14492267370224,0.69266265630722,0.111748792231083,-0.068664625287056,0.991361379623413,0.620685458183289,-0.100678913295269,0.777568817138672,-0.125822246074677,-0.00448881089687347,0.992042660713196,-0.117538288235664,-0.021998006850481,0.992824733257294, +-0.130327448248863,-0.00384581461548805,0.991463601589203,-0.367595970630646,0.0646777227520943,0.927733778953552,-0.288679540157318,0.0141594419255853,0.957321047782898,-0.430827170610428,0.0706922560930252,0.899661302566528,-0.611793398857117,0.0812332183122635,0.786835312843323,-0.430827170610428,0.0706922560930252,0.899661302566528,-0.288679540157318,0.0141594419255853,0.957321047782898,-0.272082209587097,0.10096849501133,0.95696222782135,-0.318456292152405,0.0761191919445992,0.944876492023468,-0.208220511674881,0.0521862544119358,0.97668868303299,-0.0652352645993233,0.0444487445056438,0.996879458427429,-0.208220511674881,0.0521862544119358,0.97668868303299,-0.00503429118543863,0.0204100627452135,0.999778985977173,-0.00503429118543863,0.0204100627452135,0.999778985977173,-0.208220511674881,0.0521862544119358,0.97668868303299,-0.318456292152405,0.0761191919445992,0.944876492023468,-0.367595970630646,0.0646777227520943,0.927733778953552,-0.208220511674881,0.0521862544119358,0.97668868303299,-0.0652352645993233,0.0444487445056438,0.996879458427429,0.00510698324069381,-0.988990187644959,-0.147893115878105,0.0101030291989446,-0.984678089618683,-0.174089148640633,0.0129265766590834,-0.977277636528015,-0.211568742990494,-0.844253778457642,0.231607869267464,0.483314841985703,-0.747144818305969,0.249080687761307,0.616225063800812,-0.299954205751419,0.768336355686188,0.565408408641815,-0.421068251132965,0.442709863185883,0.791649878025055,-0.124933741986752,0.575813591480255,0.807979226112366,-0.747144818305969,0.249080687761307,0.616225063800812,-0.299954205751419,0.768336355686188,0.565408408641815,-0.747144818305969,0.249080687761307,0.616225063800812,-0.212303146719933,0.673730671405792,0.707823693752289,-0.212303146719933,0.673730671405792,0.707823693752289,-0.747144818305969,0.249080687761307,0.616225063800812,-0.124933741986752,0.575813591480255,0.807979226112366,-0.187331199645996,-0.88570374250412,0.424777507781982,-0.0585308559238911,-0.994580447673798,0.0859294533729553,-0.337206542491913,-0.2076625674963,0.918241858482361, +-0.319435626268387,-0.297541201114655,0.899683356285095,-0.337206542491913,-0.2076625674963,0.918241858482361,-0.157384485006332,-0.823530256748199,0.545002937316895,-0.157384485006332,-0.823530256748199,0.545002937316895,-0.337206542491913,-0.2076625674963,0.918241858482361,-0.0585308559238911,-0.994580447673798,0.0859294533729553,-0.086098775267601,-0.985505282878876,-0.146172299981117,-0.034978348761797,-0.990190088748932,-0.135278254747391,0.0252536181360483,-0.974578082561493,-0.222619920969009,-0.304192304611206,-0.951159179210663,0.0525670014321804,-0.00962084159255028,-0.989052772521973,-0.14724788069725,-0.034978348761797,-0.990190088748932,-0.135278254747391,-0.034978348761797,-0.990190088748932,-0.135278254747391,-0.00962084159255028,-0.989052772521973,-0.14724788069725,0.0252536181360483,-0.974578082561493,-0.222619920969009,0.00510698324069381,-0.988990187644959,-0.147893115878105,0.0252536181360483,-0.974578082561493,-0.222619920969009,-0.00962084159255028,-0.989052772521973,-0.14724788069725,0.0287377163767815,-0.970797657966614,-0.238172650337219,-0.0235542226582766,-0.990445494651794,-0.135878816246986,0.0252536181360483,-0.974578082561493,-0.222619920969009,-0.086098775267601,-0.985505282878876,-0.146172299981117,0.0252536181360483,-0.974578082561493,-0.222619920969009,-0.0235542226582766,-0.990445494651794,-0.135878816246986,-0.304192304611206,-0.951159179210663,0.0525670014321804,-0.242178067564964,-0.964327991008759,0.106870666146278,-0.00962084159255028,-0.989052772521973,-0.14724788069725,-0.0848839730024338,-0.996026754379272,0.0269345846027136,-0.00962084159255028,-0.989052772521973,-0.14724788069725,-0.242178067564964,-0.964327991008759,0.106870666146278,0.0287377163767815,-0.970797657966614,-0.238172650337219,0.0252536181360483,-0.974578082561493,-0.222619920969009,0.00510698324069381,-0.988990187644959,-0.147893115878105,-0.663350403308868,0.0681347027420998,0.745200514793396,-0.587822139263153,0.0588040761649609,0.80685019493103,-0.648949801921844,0.0622576400637627,0.758279800415039,-0.994783401489258,-0.00324461655691266,0.101957634091377, +-0.998786389827728,-0.0385498739778996,-0.0306532979011536,-0.999165415763855,-0.0153502952307463,0.0378519259393215,-0.912346005439758,0.0700764134526253,0.403378248214722,-0.998786389827728,-0.0385498739778996,-0.0306532979011536,-0.994783401489258,-0.00324461655691266,0.101957634091377,-0.998828828334808,-0.0404858849942684,-0.0264934971928597,-0.999165415763855,-0.0153502952307463,0.0378519259393215,-0.998786389827728,-0.0385498739778996,-0.0306532979011536,-0.429360538721085,0.0738909468054771,0.900105357170105,-0.223376423120499,0.100413359701633,0.969546318054199,-0.283271998167038,0.0388677977025509,0.958251655101776,-0.602386176586151,0.0634706765413284,0.795677244663239,-0.283271998167038,0.0388677977025509,0.958251655101776,-0.627496004104614,0.074744887650013,0.775023937225342,-0.627496004104614,0.074744887650013,0.775023937225342,-0.283271998167038,0.0388677977025509,0.958251655101776,-0.710102379322052,0.0896280631422997,0.698370516300201,-0.710102379322052,0.0896280631422997,0.698370516300201,-0.283271998167038,0.0388677977025509,0.958251655101776,-0.206757381558418,-0.000674099719617516,0.978392004966736,-0.110921628773212,0.200543805956841,0.973385155200958,-0.0474050901830196,0.0552614741027355,0.997345924377441,-0.131842657923698,0.144027128815651,0.980751574039459,-0.131842657923698,0.144027128815651,0.980751574039459,-0.0474050901830196,0.0552614741027355,0.997345924377441,-0.223376423120499,0.100413359701633,0.969546318054199,-0.283271998167038,0.0388677977025509,0.958251655101776,-0.223376423120499,0.100413359701633,0.969546318054199,-0.0474050901830196,0.0552614741027355,0.997345924377441,-0.318456292152405,0.0761191919445992,0.944876492023468,-0.572805643081665,0.0440029911696911,0.818509340286255,-0.57033896446228,0.051057942211628,0.819821000099182,-0.57033896446228,0.051057942211628,0.819821000099182,-0.572805643081665,0.0440029911696911,0.818509340286255,-0.587822139263153,0.0588040761649609,0.80685019493103,-0.429360538721085,0.0738909468054771,0.900105357170105,-0.587822139263153,0.0588040761649609,0.80685019493103, +-0.572805643081665,0.0440029911696911,0.818509340286255,-0.663350403308868,0.0681347027420998,0.745200514793396,-0.57033896446228,0.051057942211628,0.819821000099182,-0.587822139263153,0.0588040761649609,0.80685019493103,-0.429360538721085,0.0738909468054771,0.900105357170105,-0.283271998167038,0.0388677977025509,0.958251655101776,-0.587822139263153,0.0588040761649609,0.80685019493103,-0.602386176586151,0.0634706765413284,0.795677244663239,-0.587822139263153,0.0588040761649609,0.80685019493103,-0.283271998167038,0.0388677977025509,0.958251655101776,-0.710102379322052,0.0896280631422997,0.698370516300201,-0.864212334156036,0.102942317724228,0.492483258247375,-0.627496004104614,0.074744887650013,0.775023937225342,-0.627496004104614,0.074744887650013,0.775023937225342,-0.864212334156036,0.102942317724228,0.492483258247375,-0.602386176586151,0.0634706765413284,0.795677244663239,-0.602386176586151,0.0634706765413284,0.795677244663239,-0.864212334156036,0.102942317724228,0.492483258247375,-0.692156970500946,0.0729233995079994,0.718053460121155,-0.611793398857117,0.0812332183122635,0.786835312843323,-0.475388675928116,0.138399168848991,0.868821799755096,-0.430827170610428,0.0706922560930252,0.899661302566528,-0.131842657923698,0.144027128815651,0.980751574039459,-0.223376423120499,0.100413359701633,0.969546318054199,-0.475388675928116,0.138399168848991,0.868821799755096,-0.430827170610428,0.0706922560930252,0.899661302566528,-0.475388675928116,0.138399168848991,0.868821799755096,-0.272082209587097,0.10096849501133,0.95696222782135,-0.272082209587097,0.10096849501133,0.95696222782135,-0.475388675928116,0.138399168848991,0.868821799755096,-0.223376423120499,0.100413359701633,0.969546318054199,-0.695831835269928,0.167326480150223,0.698441028594971,-0.475388675928116,0.138399168848991,0.868821799755096,-0.836462438106537,0.133385702967644,0.531543850898743,-0.611793398857117,0.0812332183122635,0.786835312843323,-0.836462438106537,0.133385702967644,0.531543850898743,-0.475388675928116,0.138399168848991,0.868821799755096,-0.466281354427338,0.031123224645853,0.884088754653931, +-0.664309561252594,0.109384417533875,0.73941045999527,-0.288679540157318,0.0141594419255853,0.957321047782898,-0.611793398857117,0.0812332183122635,0.786835312843323,-0.288679540157318,0.0141594419255853,0.957321047782898,-0.664309561252594,0.109384417533875,0.73941045999527,-0.272082209587097,0.10096849501133,0.95696222782135,-0.208220511674881,0.0521862544119358,0.97668868303299,-0.430827170610428,0.0706922560930252,0.899661302566528,-0.367595970630646,0.0646777227520943,0.927733778953552,-0.430827170610428,0.0706922560930252,0.899661302566528,-0.208220511674881,0.0521862544119358,0.97668868303299,-0.318456292152405,0.0761191919445992,0.944876492023468,-0.223376423120499,0.100413359701633,0.969546318054199,-0.572805643081665,0.0440029911696911,0.818509340286255,-0.272082209587097,0.10096849501133,0.95696222782135,-0.223376423120499,0.100413359701633,0.969546318054199,-0.318456292152405,0.0761191919445992,0.944876492023468,-0.429360538721085,0.0738909468054771,0.900105357170105,-0.572805643081665,0.0440029911696911,0.818509340286255,-0.223376423120499,0.100413359701633,0.969546318054199,-0.695831835269928,0.167326480150223,0.698441028594971,-0.131842657923698,0.144027128815651,0.980751574039459,-0.475388675928116,0.138399168848991,0.868821799755096,-0.510625541210175,0.217231288552284,0.831908762454987,-0.0644077658653259,0.158538341522217,0.985249817371368,-0.0553287416696548,0.218068495392799,0.974363803863525,0.342749804258347,0.258576363325119,0.903139472007751,0.279108911752701,0.215674579143524,0.935725808143616,-0.0644077658653259,0.158538341522217,0.985249817371368,-0.0644077658653259,0.158538341522217,0.985249817371368,0.279108911752701,0.215674579143524,0.935725808143616,-0.0553287416696548,0.218068495392799,0.974363803863525,0.213425159454346,0.334729939699173,0.917826592922211,-0.0553287416696548,0.218068495392799,0.974363803863525,0.279108911752701,0.215674579143524,0.935725808143616,-0.0827607214450836,0.303859919309616,0.94911527633667,-0.0553287416696548,0.218068495392799,0.974363803863525,0.213425159454346,0.334729939699173,0.917826592922211, +0.448356688022614,0.0283742602914572,0.893404304981232,-0.495599925518036,0.0895831510424614,0.863918781280518,-0.332962095737457,0.0127651635557413,0.942853808403015,0.859305500984192,-0.0623212903738022,0.507651567459106,0.368127077817917,-0.068647563457489,0.927237868309021,0.840113878250122,-0.057655431330204,0.53933709859848,-0.510625541210175,0.217231288552284,0.831908762454987,-0.778734087944031,0.23634834587574,0.581130504608154,-0.0644077658653259,0.158538341522217,0.985249817371368,-0.67020571231842,0.148888632655144,0.727087676525116,-0.0644077658653259,0.158538341522217,0.985249817371368,-0.778734087944031,0.23634834587574,0.581130504608154,-0.324990659952164,0.0915341824293137,0.941277027130127,-0.393548995256424,0.0632597878575325,0.917124569416046,-0.495599925518036,0.0895831510424614,0.863918781280518,-0.67020571231842,0.148888632655144,0.727087676525116,-0.495599925518036,0.0895831510424614,0.863918781280518,-0.393548995256424,0.0632597878575325,0.917124569416046,-0.67020571231842,0.148888632655144,0.727087676525116,-0.664309561252594,0.109384417533875,0.73941045999527,-0.495599925518036,0.0895831510424614,0.863918781280518,-0.495599925518036,0.0895831510424614,0.863918781280518,-0.664309561252594,0.109384417533875,0.73941045999527,-0.332962095737457,0.0127651635557413,0.942853808403015,-0.466281354427338,0.031123224645853,0.884088754653931,-0.332962095737457,0.0127651635557413,0.942853808403015,-0.664309561252594,0.109384417533875,0.73941045999527,0.882202923297882,-0.107303373515606,0.45848023891449,-0.332962095737457,0.0127651635557413,0.942853808403015,0.859305500984192,-0.0623212903738022,0.507651567459106,0.859305500984192,-0.0623212903738022,0.507651567459106,-0.332962095737457,0.0127651635557413,0.942853808403015,0.368127077817917,-0.068647563457489,0.927237868309021,0.448356688022614,0.0283742602914572,0.893404304981232,-0.332962095737457,0.0127651635557413,0.942853808403015,0.882202923297882,-0.107303373515606,0.45848023891449,-0.129457384347916,-0.0268367175012827,0.991221725940704,0.368127077817917,-0.068647563457489,0.927237868309021, +-0.332962095737457,0.0127651635557413,0.942853808403015,-0.324990659952164,0.0915341824293137,0.941277027130127,-0.495599925518036,0.0895831510424614,0.863918781280518,0.0613852366805077,0.185402780771255,0.98074346780777,0.448356688022614,0.0283742602914572,0.893404304981232,0.0613852366805077,0.185402780771255,0.98074346780777,-0.495599925518036,0.0895831510424614,0.863918781280518,-0.288679540157318,0.0141594419255853,0.957321047782898,-0.129457384347916,-0.0268367175012827,0.991221725940704,-0.466281354427338,0.031123224645853,0.884088754653931,-0.129457384347916,-0.0268367175012827,0.991221725940704,-0.332962095737457,0.0127651635557413,0.942853808403015,-0.466281354427338,0.031123224645853,0.884088754653931,-0.510625541210175,0.217231288552284,0.831908762454987,-0.0553287416696548,0.218068495392799,0.974363803863525,-0.797623217105865,0.280048102140427,0.53420078754425,-0.0827607214450836,0.303859919309616,0.94911527633667,-0.797623217105865,0.280048102140427,0.53420078754425,-0.0553287416696548,0.218068495392799,0.974363803863525,-0.67020571231842,0.148888632655144,0.727087676525116,-0.393548995256424,0.0632597878575325,0.917124569416046,-0.0644077658653259,0.158538341522217,0.985249817371368,-0.0644077658653259,0.158538341522217,0.985249817371368,-0.393548995256424,0.0632597878575325,0.917124569416046,-0.116845339536667,0.145225942134857,0.982474744319916,-0.324990659952164,0.0915341824293137,0.941277027130127,-0.116845339536667,0.145225942134857,0.982474744319916,-0.393548995256424,0.0632597878575325,0.917124569416046,0.342749804258347,0.258576363325119,0.903139472007751,-0.0644077658653259,0.158538341522217,0.985249817371368,-0.116845339536667,0.145225942134857,0.982474744319916,0.674418151378632,0.441656202077866,0.591692507266998,0.213425159454346,0.334729939699173,0.917826592922211,0.279108911752701,0.215674579143524,0.935725808143616,-0.611793398857117,0.0812332183122635,0.786835312843323,-0.664309561252594,0.109384417533875,0.73941045999527,-0.836462438106537,0.133385702967644,0.531543850898743,-0.67020571231842,0.148888632655144,0.727087676525116, +-0.778734087944031,0.23634834587574,0.581130504608154,-0.664309561252594,0.109384417533875,0.73941045999527,-0.836462438106537,0.133385702967644,0.531543850898743,-0.664309561252594,0.109384417533875,0.73941045999527,-0.695831835269928,0.167326480150223,0.698441028594971,-0.695831835269928,0.167326480150223,0.698441028594971,-0.664309561252594,0.109384417533875,0.73941045999527,-0.778734087944031,0.23634834587574,0.581130504608154,0.342749804258347,0.258576363325119,0.903139472007751,-0.116845339536667,0.145225942134857,0.982474744319916,0.621336221694946,0.438842624425888,0.649121284484863,0.621336221694946,0.438842624425888,0.649121284484863,-0.116845339536667,0.145225942134857,0.982474744319916,0.0613852366805077,0.185402780771255,0.98074346780777,-0.324990659952164,0.0915341824293137,0.941277027130127,0.0613852366805077,0.185402780771255,0.98074346780777,-0.116845339536667,0.145225942134857,0.982474744319916,0.448356688022614,0.0283742602914572,0.893404304981232,0.621336221694946,0.438842624425888,0.649121284484863,0.0613852366805077,0.185402780771255,0.98074346780777,0.0134283006191254,-0.976554751396179,-0.214850068092346,0.00510698324069381,-0.988990187644959,-0.147893115878105,0.0343675203621387,-0.938802123069763,-0.342738002538681,0.0603417493402958,-0.951700925827026,-0.301038682460785,0.0200792755931616,-0.983131587505341,-0.181794598698616,0.0134283006191254,-0.976554751396179,-0.214850068092346,0.126669138669968,-0.948634564876556,-0.28990912437439,0.0134283006191254,-0.976554751396179,-0.214850068092346,0.0200792755931616,-0.983131587505341,-0.181794598698616,0.126669138669968,-0.948634564876556,-0.28990912437439,0.0586687847971916,-0.9635329246521,-0.261078953742981,0.0134283006191254,-0.976554751396179,-0.214850068092346,-0.0843698754906654,-0.987209439277649,-0.135274559259415,-0.00980463251471519,-0.986601173877716,-0.162856131792068,0.0586687847971916,-0.9635329246521,-0.261078953742981,0.0134283006191254,-0.976554751396179,-0.214850068092346,0.0586687847971916,-0.9635329246521,-0.261078953742981, +-0.00980463251471519,-0.986601173877716,-0.162856131792068,-0.835021436214447,0.244141444563866,0.49308654665947,-0.607650279998779,0.236624643206596,0.758135855197906,-0.797623217105865,0.280048102140427,0.53420078754425,-0.797623217105865,0.280048102140427,0.53420078754425,-0.607650279998779,0.236624643206596,0.758135855197906,-0.778734087944031,0.23634834587574,0.581130504608154,-0.695831835269928,0.167326480150223,0.698441028594971,-0.778734087944031,0.23634834587574,0.581130504608154,-0.607650279998779,0.236624643206596,0.758135855197906,-0.510625541210175,0.217231288552284,0.831908762454987,-0.797623217105865,0.280048102140427,0.53420078754425,-0.778734087944031,0.23634834587574,0.581130504608154,0.0134283006191254,-0.976554751396179,-0.214850068092346,-0.00980463251471519,-0.986601173877716,-0.162856131792068,0.00510698324069381,-0.988990187644959,-0.147893115878105,0.0287377163767815,-0.970797657966614,-0.238172650337219,0.00510698324069381,-0.988990187644959,-0.147893115878105,-0.00980463251471519,-0.986601173877716,-0.162856131792068,-0.990172982215881,0.0239294338971376,0.137785732746124,-0.998238623142242,0.0057767485268414,0.0590445697307587,-0.971835732460022,0.039994977414608,0.232240676879883,-0.98420113325119,0.049779050052166,0.169912278652191,-0.971835732460022,0.039994977414608,0.232240676879883,-0.998238623142242,0.0057767485268414,0.0590445697307587,-0.990172982215881,0.0239294338971376,0.137785732746124,-0.98420113325119,0.049779050052166,0.169912278652191,-0.998238623142242,0.0057767485268414,0.0590445697307587,-0.971835732460022,0.039994977414608,0.232240676879883,-0.990922152996063,0.0548409558832645,0.122742742300034,-0.993214130401611,0.0155620127916336,0.115254737436771,-0.995955348014832,0.0248187705874443,0.0863529145717621,-0.993214130401611,0.0155620127916336,0.115254737436771,-0.990922152996063,0.0548409558832645,0.122742742300034,-0.973792910575867,0.0608485080301762,0.219145894050598,-0.990922152996063,0.0548409558832645,0.122742742300034,-0.971835732460022,0.039994977414608,0.232240676879883, +-0.995955348014832,0.0248187705874443,0.0863529145717621,-0.990922152996063,0.0548409558832645,0.122742742300034,-0.993532121181488,0.0409563593566418,0.105907596647739,-0.993532121181488,0.0409563593566418,0.105907596647739,-0.990922152996063,0.0548409558832645,0.122742742300034,-0.993569493293762,0.0767600536346436,0.0832312107086182,-0.996681392192841,0.00354645890183747,-0.0813242495059967,-0.995955348014832,0.0248187705874443,0.0863529145717621,-0.993532121181488,0.0409563593566418,0.105907596647739,-0.810485601425171,0.125290483236313,0.572202146053314,-0.748298943042755,0.145901948213577,0.647117614746094,-0.766810119152069,0.189596131443977,0.613233804702759,-0.841380894184113,0.146146595478058,0.520306944847107,-0.766810119152069,0.189596131443977,0.613233804702759,-0.725268185138702,0.1476841121912,0.672439932823181,-0.725268185138702,0.1476841121912,0.672439932823181,-0.766810119152069,0.189596131443977,0.613233804702759,-0.748298943042755,0.145901948213577,0.647117614746094,-0.671459138393402,0.297277987003326,0.678799271583557,-0.766810119152069,0.189596131443977,0.613233804702759,-0.841380894184113,0.146146595478058,0.520306944847107,-0.996739149093628,0.0371172465384007,0.0716477707028389,-0.996681392192841,0.00354645890183747,-0.0813242495059967,-0.993532121181488,0.0409563593566418,0.105907596647739,-0.961259722709656,0.0463898852467537,0.271712750196457,-0.854825258255005,0.101619072258472,0.508868813514709,-0.996411263942719,-0.0176990740001202,0.0827727019786835,-0.996411263942719,-0.0176990740001202,0.0827727019786835,-0.854825258255005,0.101619072258472,0.508868813514709,-0.934780418872833,0.0389528088271618,0.353084057569504,-0.810485601425171,0.125290483236313,0.572202146053314,-0.934780418872833,0.0389528088271618,0.353084057569504,-0.854825258255005,0.101619072258472,0.508868813514709,-0.993869960308075,-0.0154618723317981,0.109468780457973,-0.996411263942719,-0.0176990740001202,0.0827727019786835,-0.934780418872833,0.0389528088271618,0.353084057569504,-0.936777353286743,-0.0517357997596264,-0.346080422401428, +-0.996681392192841,0.00354645890183747,-0.0813242495059967,-0.990745902061462,-0.00126199109945446,-0.135724231600761,-0.998975515365601,-0.0334661938250065,0.0304616279900074,-0.993869960308075,-0.0154618723317981,0.109468780457973,-0.958813965320587,0.165607914328575,0.230759367346764,-0.998483419418335,0.0356388613581657,0.0419607125222683,-0.993532121181488,0.0409563593566418,0.105907596647739,-0.999318361282349,0.0302417241036892,0.0211670286953449,-0.981822490692139,0.0905464217066765,0.166811034083366,-0.993569493293762,0.0767600536346436,0.0832312107086182,-0.990922152996063,0.0548409558832645,0.122742742300034,-0.993532121181488,0.0409563593566418,0.105907596647739,-0.993569493293762,0.0767600536346436,0.0832312107086182,-0.999318361282349,0.0302417241036892,0.0211670286953449,-0.999828338623047,-0.00136021920479834,-0.0184807069599628,-0.999318361282349,0.0302417241036892,0.0211670286953449,-0.992339372634888,0.0696529224514961,0.102034606039524,-0.992339372634888,0.0696529224514961,0.102034606039524,-0.999318361282349,0.0302417241036892,0.0211670286953449,-0.993569493293762,0.0767600536346436,0.0832312107086182,-0.993869960308075,-0.0154618723317981,0.109468780457973,-0.897760570049286,0.0563617497682571,0.43686306476593,-0.747144818305969,0.249080687761307,0.616225063800812,-0.998483419418335,0.0356388613581657,0.0419607125222683,-0.999127507209778,0.00936076417565346,-0.0407024100422859,-0.999181091785431,0.0149246491491795,-0.0376077145338058,-0.999800443649292,0.0199687983840704,0.000448584236437455,-0.999181091785431,0.0149246491491795,-0.0376077145338058,-0.999127507209778,0.00936076417565346,-0.0407024100422859,-0.998483419418335,0.0356388613581657,0.0419607125222683,-0.996739149093628,0.0371172465384007,0.0716477707028389,-0.993532121181488,0.0409563593566418,0.105907596647739,-0.996739149093628,0.0371172465384007,0.0716477707028389,-0.998483419418335,0.0356388613581657,0.0419607125222683,-0.999369502067566,0.0267180968075991,-0.0233833026140928,-0.421068251132965,0.442709863185883,0.791649878025055, +-0.707473695278168,0.210148379206657,0.674773097038269,-0.766810119152069,0.189596131443977,0.613233804702759,-0.897760570049286,0.0563617497682571,0.43686306476593,-0.934780418872833,0.0389528088271618,0.353084057569504,-0.707473695278168,0.210148379206657,0.674773097038269,-0.766810119152069,0.189596131443977,0.613233804702759,-0.707473695278168,0.210148379206657,0.674773097038269,-0.810485601425171,0.125290483236313,0.572202146053314,-0.810485601425171,0.125290483236313,0.572202146053314,-0.707473695278168,0.210148379206657,0.674773097038269,-0.934780418872833,0.0389528088271618,0.353084057569504,-0.999318361282349,0.0302417241036892,0.0211670286953449,-0.999828338623047,-0.00136021920479834,-0.0184807069599628,-0.999127507209778,0.00936076417565346,-0.0407024100422859,-0.999828338623047,-0.00136021920479834,-0.0184807069599628,-0.984933793544769,-0.0350415855646133,-0.169344216585159,-0.999127507209778,0.00936076417565346,-0.0407024100422859,-0.999318361282349,0.0302417241036892,0.0211670286953449,-0.999127507209778,0.00936076417565346,-0.0407024100422859,-0.998483419418335,0.0356388613581657,0.0419607125222683,-0.996062517166138,0.000546196708455682,0.088652104139328,-0.996411263942719,-0.0176990740001202,0.0827727019786835,-0.992442846298218,0.0420274958014488,0.115285858511925,-0.993869960308075,-0.0154618723317981,0.109468780457973,-0.992442846298218,0.0420274958014488,0.115285858511925,-0.996411263942719,-0.0176990740001202,0.0827727019786835,-0.998001754283905,0.00462910858914256,0.063015952706337,-0.996062517166138,0.000546196708455682,0.088652104139328,-0.992442846298218,0.0420274958014488,0.115285858511925,-0.961259722709656,0.0463898852467537,0.271712750196457,-0.996411263942719,-0.0176990740001202,0.0827727019786835,-0.996062517166138,0.000546196708455682,0.088652104139328,0.0585989952087402,-0.791666328907013,-0.608137130737305,0.0619702972471714,-0.808480739593506,-0.585250854492188,0.0621586330235004,-0.834660768508911,-0.547245502471924,0.00814835727214813,-0.982208907604218,-0.18761470913887,0.0476665422320366,-0.870139360427856,-0.490495145320892, +0.0129265766590834,-0.977277636528015,-0.211568742990494,0.0343675203621387,-0.938802123069763,-0.342738002538681,0.0129265766590834,-0.977277636528015,-0.211568742990494,0.0476665422320366,-0.870139360427856,-0.490495145320892,0.0375086702406406,-0.93682599067688,-0.347778975963593,0.0527306422591209,-0.890755176544189,-0.451414078474045,0.0476665422320366,-0.870139360427856,-0.490495145320892,0.0547860823571682,-0.792366206645966,-0.607580542564392,0.0476665422320366,-0.870139360427856,-0.490495145320892,0.0527306422591209,-0.890755176544189,-0.451414078474045,0.0621586330235004,-0.834660768508911,-0.547245502471924,0.0476665422320366,-0.870139360427856,-0.490495145320892,0.0585989952087402,-0.791666328907013,-0.608137130737305,0.0547860823571682,-0.792366206645966,-0.607580542564392,0.0585989952087402,-0.791666328907013,-0.608137130737305,0.0476665422320366,-0.870139360427856,-0.490495145320892,0.0495102591812611,-0.862685143947601,-0.503312051296234,0.0547860823571682,-0.792366206645966,-0.607580542564392,0.0527306422591209,-0.890755176544189,-0.451414078474045,-0.725268185138702,0.1476841121912,0.672439932823181,-0.748298943042755,0.145901948213577,0.647117614746094,-0.796338796615601,0.145037174224854,0.587204158306122,-0.810485601425171,0.125290483236313,0.572202146053314,-0.854825258255005,0.101619072258472,0.508868813514709,-0.748298943042755,0.145901948213577,0.647117614746094,-0.961259722709656,0.0463898852467537,0.271712750196457,-0.796338796615601,0.145037174224854,0.587204158306122,-0.854825258255005,0.101619072258472,0.508868813514709,-0.854825258255005,0.101619072258472,0.508868813514709,-0.796338796615601,0.145037174224854,0.587204158306122,-0.748298943042755,0.145901948213577,0.647117614746094,0.0375086702406406,-0.93682599067688,-0.347778975963593,0.0476665422320366,-0.870139360427856,-0.490495145320892,0.00814835727214813,-0.982208907604218,-0.18761470913887,0.0375086702406406,-0.93682599067688,-0.347778975963593,0.0101030291989446,-0.984678089618683,-0.174089148640633,0.0173498839139938,-0.977898061275482,-0.20836116373539, +0.0343675203621387,-0.938802123069763,-0.342738002538681,0.00510698324069381,-0.988990187644959,-0.147893115878105,0.0129265766590834,-0.977277636528015,-0.211568742990494,0.0101030291989446,-0.984678089618683,-0.174089148640633,0.00814835727214813,-0.982208907604218,-0.18761470913887,0.0129265766590834,-0.977277636528015,-0.211568742990494,-0.993869960308075,-0.0154618723317981,0.109468780457973,-0.934780418872833,0.0389528088271618,0.353084057569504,-0.897760570049286,0.0563617497682571,0.43686306476593,-0.912346005439758,0.0700764134526253,0.403378248214722,-0.782922446727753,0.140719190239906,0.605995535850525,-0.996062517166138,0.000546196708455682,0.088652104139328,-0.725268185138702,0.1476841121912,0.672439932823181,-0.796338796615601,0.145037174224854,0.587204158306122,-0.782922446727753,0.140719190239906,0.605995535850525,-0.961259722709656,0.0463898852467537,0.271712750196457,-0.996062517166138,0.000546196708455682,0.088652104139328,-0.796338796615601,0.145037174224854,0.587204158306122,-0.796338796615601,0.145037174224854,0.587204158306122,-0.996062517166138,0.000546196708455682,0.088652104139328,-0.782922446727753,0.140719190239906,0.605995535850525,0.0101030291989446,-0.984678089618683,-0.174089148640633,0.0375086702406406,-0.93682599067688,-0.347778975963593,0.00814835727214813,-0.982208907604218,-0.18761470913887,-0.996739149093628,0.0371172465384007,0.0716477707028389,-0.990745902061462,-0.00126199109945446,-0.135724231600761,-0.996681392192841,0.00354645890183747,-0.0813242495059967,-0.82379561662674,-0.0995793491601944,-0.55807226896286,-0.963908910751343,-0.0253971926867962,-0.265018075704575,-0.925809800624847,-0.0573429502546787,-0.373614966869354,-0.990745902061462,-0.00126199109945446,-0.135724231600761,-0.996739149093628,0.0371172465384007,0.0716477707028389,-0.999369502067566,0.0267180968075991,-0.0233833026140928,-0.967650353908539,-0.0390132963657379,-0.249260172247887,-0.963908910751343,-0.0253971926867962,-0.265018075704575,-0.999369502067566,0.0267180968075991,-0.0233833026140928,-0.990745902061462,-0.00126199109945446,-0.135724231600761, +-0.999369502067566,0.0267180968075991,-0.0233833026140928,-0.963908910751343,-0.0253971926867962,-0.265018075704575,-0.82379561662674,-0.0995793491601944,-0.55807226896286,-0.936777353286743,-0.0517357997596264,-0.346080422401428,-0.963908910751343,-0.0253971926867962,-0.265018075704575,-0.963908910751343,-0.0253971926867962,-0.265018075704575,-0.936777353286743,-0.0517357997596264,-0.346080422401428,-0.990745902061462,-0.00126199109945446,-0.135724231600761,-0.671459138393402,0.297277987003326,0.678799271583557,-0.436882108449936,0.420052379369736,0.795418202877045,-0.766810119152069,0.189596131443977,0.613233804702759,-0.421068251132965,0.442709863185883,0.791649878025055,-0.766810119152069,0.189596131443977,0.613233804702759,-0.436882108449936,0.420052379369736,0.795418202877045,-0.925809800624847,-0.0573429502546787,-0.373614966869354,-0.967650353908539,-0.0390132963657379,-0.249260172247887,-0.93441104888916,-0.0613814368844032,-0.350867986679077,-0.979807913303375,-0.0118495272472501,-0.199589386582375,-0.93441104888916,-0.0613814368844032,-0.350867986679077,-0.967650353908539,-0.0390132963657379,-0.249260172247887,0.0585989952087402,-0.791666328907013,-0.608137130737305,0.0547860823571682,-0.792366206645966,-0.607580542564392,0.0573632940649986,-0.778886020183563,-0.624536633491516,0.0573632940649986,-0.778886020183563,-0.624536633491516,0.0547860823571682,-0.792366206645966,-0.607580542564392,0.0506339110434055,-0.78458309173584,-0.617952823638916,0.0495102591812611,-0.862685143947601,-0.503312051296234,0.0506339110434055,-0.78458309173584,-0.617952823638916,0.0547860823571682,-0.792366206645966,-0.607580542564392,0.0573632940649986,-0.778886020183563,-0.624536633491516,0.0529670193791389,-0.797878801822662,-0.600486397743225,0.0585989952087402,-0.791666328907013,-0.608137130737305,0.0573632940649986,-0.778886020183563,-0.624536633491516,0.048309464007616,-0.779345571994781,-0.62472927570343,0.0529670193791389,-0.797878801822662,-0.600486397743225,0.0573632940649986,-0.778886020183563,-0.624536633491516,0.0506339110434055,-0.78458309173584,-0.617952823638916, +0.0648334845900536,-0.801703155040741,-0.594195902347565,0.048309464007616,-0.779345571994781,-0.62472927570343,0.0573632940649986,-0.778886020183563,-0.624536633491516,0.0648334845900536,-0.801703155040741,-0.594195902347565,-0.801923334598541,-0.114225007593632,-0.586405813694,-0.82379561662674,-0.0995793491601944,-0.55807226896286,-0.86408543586731,-0.088718481361866,-0.495464831590652,-0.925809800624847,-0.0573429502546787,-0.373614966869354,-0.86408543586731,-0.088718481361866,-0.495464831590652,-0.82379561662674,-0.0995793491601944,-0.55807226896286,-0.851800322532654,-0.101205341517925,-0.513997793197632,-0.93441104888916,-0.0613814368844032,-0.350867986679077,-0.922962427139282,-0.0770673677325249,-0.377095609903336,-0.93441104888916,-0.0613814368844032,-0.350867986679077,-0.947083234786987,-0.0465146414935589,-0.317600160837173,-0.922962427139282,-0.0770673677325249,-0.377095609903336,-0.890923976898193,-0.109687365591526,-0.440707504749298,-0.922962427139282,-0.0770673677325249,-0.377095609903336,-0.947083234786987,-0.0465146414935589,-0.317600160837173,-0.998001754283905,0.00462910858914256,0.063015952706337,-0.997962534427643,-0.00762991001829505,0.0633452236652374,-0.996062517166138,0.000546196708455682,0.088652104139328,-0.998828828334808,-0.0404858849942684,-0.0264934971928597,-0.998786389827728,-0.0385498739778996,-0.0306532979011536,-0.997962534427643,-0.00762991001829505,0.0633452236652374,-0.912346005439758,0.0700764134526253,0.403378248214722,-0.996062517166138,0.000546196708455682,0.088652104139328,-0.998786389827728,-0.0385498739778996,-0.0306532979011536,-0.998786389827728,-0.0385498739778996,-0.0306532979011536,-0.996062517166138,0.000546196708455682,0.088652104139328,-0.997962534427643,-0.00762991001829505,0.0633452236652374,-0.912346005439758,0.0700764134526253,0.403378248214722,-0.756682097911835,0.15404424071312,0.635376036167145,-0.782922446727753,0.140719190239906,0.605995535850525,-0.782922446727753,0.140719190239906,0.605995535850525,-0.756682097911835,0.15404424071312,0.635376036167145, +-0.841380894184113,0.146146595478058,0.520306944847107,-0.798788189888,0.151581943035126,0.582203149795532,-0.841380894184113,0.146146595478058,0.520306944847107,-0.756682097911835,0.15404424071312,0.635376036167145,-0.725268185138702,0.1476841121912,0.672439932823181,-0.782922446727753,0.140719190239906,0.605995535850525,-0.841380894184113,0.146146595478058,0.520306944847107,-0.815813362598419,-0.122110530734062,-0.565276622772217,-0.851800322532654,-0.101205341517925,-0.513997793197632,-0.888242781162262,-0.0837533324956894,-0.451674789190292,-0.888242781162262,-0.0837533324956894,-0.451674789190292,-0.851800322532654,-0.101205341517925,-0.513997793197632,-0.922962427139282,-0.0770673677325249,-0.377095609903336,-0.813127756118774,-0.420112252235413,-0.402900516986847,-0.869675993919373,-0.125125586986542,-0.477501034736633,-0.884249627590179,-0.129900500178337,-0.448584914207459,-0.888242781162262,-0.0837533324956894,-0.451674789190292,-0.922962427139282,-0.0770673677325249,-0.377095609903336,-0.869675993919373,-0.125125586986542,-0.477501034736633,-0.857711493968964,-0.142331883311272,-0.494036972522736,-0.884249627590179,-0.129900500178337,-0.448584914207459,-0.922962427139282,-0.0770673677325249,-0.377095609903336,-0.922962427139282,-0.0770673677325249,-0.377095609903336,-0.884249627590179,-0.129900500178337,-0.448584914207459,-0.869675993919373,-0.125125586986542,-0.477501034736633,-0.778469502925873,-0.298083782196045,-0.552386999130249,-0.922962427139282,-0.0770673677325249,-0.377095609903336,-0.815980017185211,-0.300757557153702,-0.49368155002594,-0.890923976898193,-0.109687365591526,-0.440707504749298,-0.815980017185211,-0.300757557153702,-0.49368155002594,-0.922962427139282,-0.0770673677325249,-0.377095609903336,-0.0729069411754608,-0.423899531364441,-0.902770102024078,-0.0341114364564419,-0.609157383441925,-0.792315363883972,-0.288522928953171,0.165308356285095,-0.943094730377197,-0.278061240911484,0.189055100083351,-0.94177508354187,-0.288522928953171,0.165308356285095,-0.943094730377197,-0.0341114364564419,-0.609157383441925,-0.792315363883972, +-0.778469502925873,-0.298083782196045,-0.552386999130249,-0.812343895435333,-0.222840428352356,-0.538924634456635,-0.922962427139282,-0.0770673677325249,-0.377095609903336,-0.857711493968964,-0.142331883311272,-0.494036972522736,-0.922962427139282,-0.0770673677325249,-0.377095609903336,-0.812343895435333,-0.222840428352356,-0.538924634456635,-0.00887571461498737,-0.53778600692749,-0.843034625053406,-0.166054174304008,0.0646302178502083,-0.983996331691742,0.0693644434213638,-0.783041179180145,-0.618089854717255,0.0693644434213638,-0.783041179180145,-0.618089854717255,-0.166054174304008,0.0646302178502083,-0.983996331691742,-0.0341114364564419,-0.609157383441925,-0.792315363883972,-0.278061240911484,0.189055100083351,-0.94177508354187,-0.0341114364564419,-0.609157383441925,-0.792315363883972,-0.166054174304008,0.0646302178502083,-0.983996331691742,0.047431193292141,-0.703059136867523,-0.709547698497772,0.0693644434213638,-0.783041179180145,-0.618089854717255,-0.0341114364564419,-0.609157383441925,-0.792315363883972,-0.888242781162262,-0.0837533324956894,-0.451674789190292,-0.869675993919373,-0.125125586986542,-0.477501034736633,-0.815813362598419,-0.122110530734062,-0.565276622772217,-0.775188624858856,-0.224998787045479,-0.590303480625153,-0.815813362598419,-0.122110530734062,-0.565276622772217,-0.869675993919373,-0.125125586986542,-0.477501034736633,0.0506339110434055,-0.78458309173584,-0.617952823638916,0.0693644434213638,-0.783041179180145,-0.618089854717255,0.0648334845900536,-0.801703155040741,-0.594195902347565,0.047431193292141,-0.703059136867523,-0.709547698497772,0.0648334845900536,-0.801703155040741,-0.594195902347565,0.0693644434213638,-0.783041179180145,-0.618089854717255,-0.775188624858856,-0.224998787045479,-0.590303480625153,-0.869675993919373,-0.125125586986542,-0.477501034736633,-0.789163529872894,-0.529157698154449,-0.311790347099304,-0.813127756118774,-0.420112252235413,-0.402900516986847,-0.789163529872894,-0.529157698154449,-0.311790347099304,-0.869675993919373,-0.125125586986542,-0.477501034736633, +-0.0567441247403622,-0.583265602588654,-0.810296952724457,-0.485805004835129,0.0144770750775933,-0.873947381973267,0.0142615856602788,-0.752252757549286,-0.658720254898071,-0.472498595714569,0.098977692425251,-0.875756084918976,0.0142615856602788,-0.752252757549286,-0.658720254898071,-0.485805004835129,0.0144770750775933,-0.873947381973267,-0.0729069411754608,-0.423899531364441,-0.902770102024078,0.048309464007616,-0.779345571994781,-0.62472927570343,-0.0341114364564419,-0.609157383441925,-0.792315363883972,0.047431193292141,-0.703059136867523,-0.709547698497772,-0.0341114364564419,-0.609157383441925,-0.792315363883972,0.0648334845900536,-0.801703155040741,-0.594195902347565,0.0648334845900536,-0.801703155040741,-0.594195902347565,-0.0341114364564419,-0.609157383441925,-0.792315363883972,0.048309464007616,-0.779345571994781,-0.62472927570343,-0.991617381572723,-0.0251621846109629,-0.126735508441925,-0.993742883205414,0.0755471363663673,-0.0822671502828598,-0.998331725597382,0.0289073847234249,-0.0499823205173016,-0.930197060108185,-0.152161359786987,-0.334036707878113,-0.991617381572723,-0.0251621846109629,-0.126735508441925,-0.977730751037598,-0.0766442641615868,-0.195366576313972,-0.998331725597382,0.0289073847234249,-0.0499823205173016,-0.998898506164551,0.0348305329680443,-0.0314410179853439,-0.99424409866333,0.06102704256773,0.0880603119730949,-0.997373402118683,0.0583245381712914,0.0429492890834808,-0.99424409866333,0.06102704256773,0.0880603119730949,-0.998898506164551,0.0348305329680443,-0.0314410179853439,-0.998171627521515,0.0461610592901707,0.0390217788517475,-0.998331725597382,0.0289073847234249,-0.0499823205173016,-0.99424409866333,0.06102704256773,0.0880603119730949,-0.954071938991547,-0.0816318094730377,-0.288240939378738,-0.967520117759705,-0.0356126949191093,-0.250272691249847,-0.927846729755402,-0.147409811615944,-0.342594146728516,-0.991617381572723,-0.0251621846109629,-0.126735508441925,-0.927846729755402,-0.147409811615944,-0.342594146728516,-0.987495958805084,0.0267494451254606,-0.155358195304871, +-0.987495958805084,0.0267494451254606,-0.155358195304871,-0.927846729755402,-0.147409811615944,-0.342594146728516,-0.967520117759705,-0.0356126949191093,-0.250272691249847,-0.930197060108185,-0.152161359786987,-0.334036707878113,-0.927846729755402,-0.147409811615944,-0.342594146728516,-0.991617381572723,-0.0251621846109629,-0.126735508441925,-0.987495958805084,0.0267494451254606,-0.155358195304871,-0.967520117759705,-0.0356126949191093,-0.250272691249847,-0.988629519939423,0.116495616734028,-0.0950818881392479,-0.954071938991547,-0.0816318094730377,-0.288240939378738,-0.988629519939423,0.116495616734028,-0.0950818881392479,-0.967520117759705,-0.0356126949191093,-0.250272691249847,-0.987495958805084,0.0267494451254606,-0.155358195304871,-0.993742883205414,0.0755471363663673,-0.0822671502828598,-0.991617381572723,-0.0251621846109629,-0.126735508441925,-0.947083234786987,-0.0465146414935589,-0.317600160837173,-0.979807913303375,-0.0118495272472501,-0.199589386582375,-0.993742883205414,0.0755471363663673,-0.0822671502828598,-0.998331725597382,0.0289073847234249,-0.0499823205173016,-0.993742883205414,0.0755471363663673,-0.0822671502828598,-0.979807913303375,-0.0118495272472501,-0.199589386582375,-0.912346005439758,0.0700764134526253,0.403378248214722,-0.994783401489258,-0.00324461655691266,0.101957634091377,-0.748092949390411,0.152005910873413,0.645949721336365,-0.966379940509796,-0.0137848751619458,0.256748557090759,-0.748092949390411,0.152005910873413,0.645949721336365,-0.994783401489258,-0.00324461655691266,0.101957634091377,0.0619702972471714,-0.808480739593506,-0.585250854492188,0.0585989952087402,-0.791666328907013,-0.608137130737305,0.0529670193791389,-0.797878801822662,-0.600486397743225,0.160565450787544,0.590668439865112,0.790777802467346,-0.124933741986752,0.575813591480255,0.807979226112366,0.139160618185997,0.461500138044357,0.876157462596893,0.028187483549118,-0.627393066883087,-0.778192400932312,0.0546449087560177,-0.806915760040283,-0.588133275508881,0.0529670193791389,-0.797878801822662,-0.600486397743225, +0.0619702972471714,-0.808480739593506,-0.585250854492188,0.0529670193791389,-0.797878801822662,-0.600486397743225,0.0546449087560177,-0.806915760040283,-0.588133275508881,-0.916340291500092,-0.212544664740562,-0.339330494403839,-0.930172979831696,-0.127397358417511,-0.344308465719223,-0.954071938991547,-0.0816318094730377,-0.288240939378738,-0.982228994369507,-0.0624645836651325,-0.17698660492897,-0.954071938991547,-0.0816318094730377,-0.288240939378738,-0.934663474559784,-0.290611684322357,-0.204814523458481,-0.934663474559784,-0.290611684322357,-0.204814523458481,-0.954071938991547,-0.0816318094730377,-0.288240939378738,-0.930172979831696,-0.127397358417511,-0.344308465719223,-0.957489788532257,-0.0839575082063675,-0.275979161262512,-0.978645443916321,0.0137438653036952,-0.205096051096916,-0.815980017185211,-0.300757557153702,-0.49368155002594,-0.843065500259399,-0.315422624349594,-0.43560191988945,-0.815980017185211,-0.300757557153702,-0.49368155002594,-0.978645443916321,0.0137438653036952,-0.205096051096916,-0.890923976898193,-0.109687365591526,-0.440707504749298,-0.935153663158417,-0.0917939692735672,-0.342142522335052,-0.815980017185211,-0.300757557153702,-0.49368155002594,-0.957489788532257,-0.0839575082063675,-0.275979161262512,-0.815980017185211,-0.300757557153702,-0.49368155002594,-0.935153663158417,-0.0917939692735672,-0.342142522335052,-0.843065500259399,-0.315422624349594,-0.43560191988945,-0.978645443916321,0.0137438653036952,-0.205096051096916,-0.943256795406342,-0.206504926085472,-0.260042726993561,-0.98584908246994,0.154806599020958,-0.0643162056803703,-0.943256795406342,-0.206504926085472,-0.260042726993561,-0.978645443916321,0.0137438653036952,-0.205096051096916,-0.957489788532257,-0.0839575082063675,-0.275979161262512,-0.935153663158417,-0.0917939692735672,-0.342142522335052,-0.988764703273773,0.067436583340168,-0.133403718471527,-0.890923976898193,-0.109687365591526,-0.440707504749298,-0.947083234786987,-0.0465146414935589,-0.317600160837173,-0.935153663158417,-0.0917939692735672,-0.342142522335052, +-0.947083234786987,-0.0465146414935589,-0.317600160837173,-0.988764703273773,0.067436583340168,-0.133403718471527,-0.935153663158417,-0.0917939692735672,-0.342142522335052,-0.987495958805084,0.0267494451254606,-0.155358195304871,-0.988764703273773,0.067436583340168,-0.133403718471527,-0.993742883205414,0.0755471363663673,-0.0822671502828598,-0.947083234786987,-0.0465146414935589,-0.317600160837173,-0.993742883205414,0.0755471363663673,-0.0822671502828598,-0.988764703273773,0.067436583340168,-0.133403718471527,-0.978645443916321,0.0137438653036952,-0.205096051096916,-0.988764703273773,0.067436583340168,-0.133403718471527,-0.98584908246994,0.154806599020958,-0.0643162056803703,-0.98584908246994,0.154806599020958,-0.0643162056803703,-0.988764703273773,0.067436583340168,-0.133403718471527,-0.988629519939423,0.116495616734028,-0.0950818881392479,-0.957489788532257,-0.0839575082063675,-0.275979161262512,-0.988764703273773,0.067436583340168,-0.133403718471527,-0.978645443916321,0.0137438653036952,-0.205096051096916,-0.987495958805084,0.0267494451254606,-0.155358195304871,-0.988629519939423,0.116495616734028,-0.0950818881392479,-0.988764703273773,0.067436583340168,-0.133403718471527,-0.715334832668304,-0.462459653615952,-0.52385801076889,-0.812343895435333,-0.222840428352356,-0.538924634456635,-0.743704676628113,-0.369690865278244,-0.556984841823578,-0.815980017185211,-0.300757557153702,-0.49368155002594,-0.743704676628113,-0.369690865278244,-0.556984841823578,-0.778469502925873,-0.298083782196045,-0.552386999130249,-0.778469502925873,-0.298083782196045,-0.552386999130249,-0.743704676628113,-0.369690865278244,-0.556984841823578,-0.812343895435333,-0.222840428352356,-0.538924634456635,-0.843065500259399,-0.315422624349594,-0.43560191988945,-0.743704676628113,-0.369690865278244,-0.556984841823578,-0.815980017185211,-0.300757557153702,-0.49368155002594,-0.715334832668304,-0.462459653615952,-0.52385801076889,-0.743704676628113,-0.369690865278244,-0.556984841823578,-0.82050621509552,-0.403515934944153,-0.404900461435318,-0.843065500259399,-0.315422624349594,-0.43560191988945, +-0.82050621509552,-0.403515934944153,-0.404900461435318,-0.743704676628113,-0.369690865278244,-0.556984841823578,-0.843065500259399,-0.315422624349594,-0.43560191988945,-0.943256795406342,-0.206504926085472,-0.260042726993561,-0.82050621509552,-0.403515934944153,-0.404900461435318,-0.98584908246994,0.154806599020958,-0.0643162056803703,-0.982228994369507,-0.0624645836651325,-0.17698660492897,-0.943256795406342,-0.206504926085472,-0.260042726993561,-0.82050621509552,-0.403515934944153,-0.404900461435318,-0.943256795406342,-0.206504926085472,-0.260042726993561,-0.927550971508026,-0.304080694913864,-0.21721912920475,-0.927550971508026,-0.304080694913864,-0.21721912920475,-0.943256795406342,-0.206504926085472,-0.260042726993561,-0.982228994369507,-0.0624645836651325,-0.17698660492897,-0.98584908246994,0.154806599020958,-0.0643162056803703,-0.988629519939423,0.116495616734028,-0.0950818881392479,-0.982228994369507,-0.0624645836651325,-0.17698660492897,-0.954071938991547,-0.0816318094730377,-0.288240939378738,-0.982228994369507,-0.0624645836651325,-0.17698660492897,-0.988629519939423,0.116495616734028,-0.0950818881392479,-0.934663474559784,-0.290611684322357,-0.204814523458481,-0.930604100227356,-0.343522429466248,-0.126365840435028,-0.982228994369507,-0.0624645836651325,-0.17698660492897,-0.927550971508026,-0.304080694913864,-0.21721912920475,-0.982228994369507,-0.0624645836651325,-0.17698660492897,-0.930604100227356,-0.343522429466248,-0.126365840435028,-0.0163638889789581,-0.470617473125458,-0.882185637950897,0.0529670193791389,-0.797878801822662,-0.600486397743225,0.0131648425012827,-0.529755711555481,-0.848048090934753,0.0529670193791389,-0.797878801822662,-0.600486397743225,0.048309464007616,-0.779345571994781,-0.62472927570343,0.0131648425012827,-0.529755711555481,-0.848048090934753,-0.0729069411754608,-0.423899531364441,-0.902770102024078,0.0131648425012827,-0.529755711555481,-0.848048090934753,0.048309464007616,-0.779345571994781,-0.62472927570343,-0.0163638889789581,-0.470617473125458,-0.882185637950897,0.00270299799740314,-0.592744290828705,-0.805386245250702, +0.0529670193791389,-0.797878801822662,-0.600486397743225,0.028187483549118,-0.627393066883087,-0.778192400932312,0.0529670193791389,-0.797878801822662,-0.600486397743225,0.00270299799740314,-0.592744290828705,-0.805386245250702,-0.997373402118683,0.0583245381712914,0.0429492890834808,-0.998898506164551,0.0348305329680443,-0.0314410179853439,-0.979807913303375,-0.0118495272472501,-0.199589386582375,-0.998331725597382,0.0289073847234249,-0.0499823205173016,-0.979807913303375,-0.0118495272472501,-0.199589386582375,-0.998898506164551,0.0348305329680443,-0.0314410179853439,-0.979807913303375,-0.0118495272472501,-0.199589386582375,-0.947083234786987,-0.0465146414935589,-0.317600160837173,-0.93441104888916,-0.0613814368844032,-0.350867986679077,-0.991617381572723,-0.0251621846109629,-0.126735508441925,-0.998331725597382,0.0289073847234249,-0.0499823205173016,-0.998421788215637,0.0071390476077795,-0.055703304708004,-0.998171627521515,0.0461610592901707,0.0390217788517475,-0.998421788215637,0.0071390476077795,-0.055703304708004,-0.998331725597382,0.0289073847234249,-0.0499823205173016,-0.979807913303375,-0.0118495272472501,-0.199589386582375,-0.967650353908539,-0.0390132963657379,-0.249260172247887,-0.997373402118683,0.0583245381712914,0.0429492890834808,-0.997373402118683,0.0583245381712914,0.0429492890834808,-0.967650353908539,-0.0390132963657379,-0.249260172247887,-0.999369502067566,0.0267180968075991,-0.0233833026140928,-0.967650353908539,-0.0390132963657379,-0.249260172247887,-0.925809800624847,-0.0573429502546787,-0.373614966869354,-0.963908910751343,-0.0253971926867962,-0.265018075704575,-0.999181091785431,0.0149246491491795,-0.0376077145338058,-0.997800350189209,0.00631734170019627,-0.0659899935126305,-0.99424409866333,0.06102704256773,0.0880603119730949,-0.998171627521515,0.0461610592901707,0.0390217788517475,-0.99424409866333,0.06102704256773,0.0880603119730949,-0.997800350189209,0.00631734170019627,-0.0659899935126305,-0.997373402118683,0.0583245381712914,0.0429492890834808,-0.999369502067566,0.0267180968075991,-0.0233833026140928, +-0.99424409866333,0.06102704256773,0.0880603119730949,-0.999369502067566,0.0267180968075991,-0.0233833026140928,-0.998483419418335,0.0356388613581657,0.0419607125222683,-0.99424409866333,0.06102704256773,0.0880603119730949,-0.998483419418335,0.0356388613581657,0.0419607125222683,-0.999181091785431,0.0149246491491795,-0.0376077145338058,-0.99424409866333,0.06102704256773,0.0880603119730949,-0.851800322532654,-0.101205341517925,-0.513997793197632,-0.86408543586731,-0.088718481361866,-0.495464831590652,-0.93441104888916,-0.0613814368844032,-0.350867986679077,-0.925809800624847,-0.0573429502546787,-0.373614966869354,-0.93441104888916,-0.0613814368844032,-0.350867986679077,-0.86408543586731,-0.088718481361866,-0.495464831590652,-0.998171627521515,0.0461610592901707,0.0390217788517475,-0.997800350189209,0.00631734170019627,-0.0659899935126305,-0.998421788215637,0.0071390476077795,-0.055703304708004,-0.999181091785431,0.0149246491491795,-0.0376077145338058,-0.998421788215637,0.0071390476077795,-0.055703304708004,-0.997800350189209,0.00631734170019627,-0.0659899935126305,-0.696528255939484,0.126723691821098,0.706250131130219,-0.954904973506927,0.0660208985209465,0.28947851061821,-0.206757381558418,-0.000674099719617516,0.978392004966736,-0.710102379322052,0.0896280631422997,0.698370516300201,-0.206757381558418,-0.000674099719617516,0.978392004966736,-0.954904973506927,0.0660208985209465,0.28947851061821,-0.992339372634888,0.0696529224514961,0.102034606039524,-0.864212334156036,0.102942317724228,0.492483258247375,-0.954904973506927,0.0660208985209465,0.28947851061821,-0.710102379322052,0.0896280631422997,0.698370516300201,-0.954904973506927,0.0660208985209465,0.28947851061821,-0.864212334156036,0.102942317724228,0.492483258247375,-0.741511821746826,0.0319859310984612,0.670176923274994,-0.78558087348938,0.00699297059327364,0.618719458580017,-0.611388027667999,0.196897834539413,0.76644366979599,-0.257565319538116,0.169719263911247,0.951238930225372,-0.611388027667999,0.196897834539413,0.76644366979599,-0.78558087348938,0.00699297059327364,0.618719458580017, +-0.696528255939484,0.126723691821098,0.706250131130219,-0.78558087348938,0.00699297059327364,0.618719458580017,-0.954904973506927,0.0660208985209465,0.28947851061821,-0.826122879981995,0.0795093923807144,0.557852327823639,-0.954904973506927,0.0660208985209465,0.28947851061821,-0.78558087348938,0.00699297059327364,0.618719458580017,-0.826122879981995,0.0795093923807144,0.557852327823639,-0.495741724967957,0.270060688257217,0.825413525104523,-0.987963080406189,-0.0135821485891938,0.154092088341713,-0.491434842348099,0.269697636365891,0.828103244304657,-0.987963080406189,-0.0135821485891938,0.154092088341713,-0.495741724967957,0.270060688257217,0.825413525104523,-0.0474050901830196,0.0552614741027355,0.997345924377441,0.201996430754662,-0.0350874066352844,0.978757500648499,-0.206757381558418,-0.000674099719617516,0.978392004966736,-0.696528255939484,0.126723691821098,0.706250131130219,-0.206757381558418,-0.000674099719617516,0.978392004966736,0.201996430754662,-0.0350874066352844,0.978757500648499,-0.283271998167038,0.0388677977025509,0.958251655101776,-0.0474050901830196,0.0552614741027355,0.997345924377441,-0.206757381558418,-0.000674099719617516,0.978392004966736,-0.696528255939484,0.126723691821098,0.706250131130219,0.201996430754662,-0.0350874066352844,0.978757500648499,-0.78558087348938,0.00699297059327364,0.618719458580017,0.172108590602875,0.0754011124372482,0.982187986373901,-0.78558087348938,0.00699297059327364,0.618719458580017,-0.0474050901830196,0.0552614741027355,0.997345924377441,-0.0474050901830196,0.0552614741027355,0.997345924377441,-0.78558087348938,0.00699297059327364,0.618719458580017,0.201996430754662,-0.0350874066352844,0.978757500648499,-0.257565319538116,0.169719263911247,0.951238930225372,-0.78558087348938,0.00699297059327364,0.618719458580017,0.172108590602875,0.0754011124372482,0.982187986373901,-0.999828338623047,-0.00136021920479834,-0.0184807069599628,-0.992339372634888,0.0696529224514961,0.102034606039524,-0.971183478832245,0.0363977402448654,0.235537320375443,-0.826122879981995,0.0795093923807144,0.557852327823639, +-0.987963080406189,-0.0135821485891938,0.154092088341713,-0.954904973506927,0.0660208985209465,0.28947851061821,-0.971183478832245,0.0363977402448654,0.235537320375443,-0.954904973506927,0.0660208985209465,0.28947851061821,-0.987963080406189,-0.0135821485891938,0.154092088341713,-0.971183478832245,0.0363977402448654,0.235537320375443,-0.992339372634888,0.0696529224514961,0.102034606039524,-0.954904973506927,0.0660208985209465,0.28947851061821,-0.971183478832245,0.0363977402448654,0.235537320375443,-0.99590927362442,0.00556635903194547,0.0901873931288719,-0.999828338623047,-0.00136021920479834,-0.0184807069599628,-0.998337805271149,0.00762821454554796,0.0571265034377575,-0.999828338623047,-0.00136021920479834,-0.0184807069599628,-0.99590927362442,0.00556635903194547,0.0901873931288719,-0.995402991771698,0.00819619465619326,0.0954232141375542,-0.999832153320313,0.00572534557431936,0.0174005962908268,-0.99590927362442,0.00556635903194547,0.0901873931288719,-0.989224970340729,-0.0294432193040848,-0.143411934375763,-0.99590927362442,0.00556635903194547,0.0901873931288719,-0.995814800262451,0.0640825778245926,0.0651632770895958,-0.995814800262451,0.0640825778245926,0.0651632770895958,-0.99590927362442,0.00556635903194547,0.0901873931288719,-0.999832153320313,0.00572534557431936,0.0174005962908268,-0.998337805271149,0.00762821454554796,0.0571265034377575,-0.99590927362442,0.00556635903194547,0.0901873931288719,-0.989224970340729,-0.0294432193040848,-0.143411934375763,-0.998337805271149,0.00762821454554796,0.0571265034377575,-0.989224970340729,-0.0294432193040848,-0.143411934375763,-0.999828338623047,-0.00136021920479834,-0.0184807069599628,-0.741511821746826,0.0319859310984612,0.670176923274994,-0.747990012168884,-0.0143109587952495,0.663555681705475,-0.78558087348938,0.00699297059327364,0.618719458580017,-0.826122879981995,0.0795093923807144,0.557852327823639,-0.78558087348938,0.00699297059327364,0.618719458580017,-0.747990012168884,-0.0143109587952495,0.663555681705475,-0.995814800262451,0.0640825778245926,0.0651632770895958, +-0.984933793544769,-0.0350415855646133,-0.169344216585159,-0.989224970340729,-0.0294432193040848,-0.143411934375763,-0.999828338623047,-0.00136021920479834,-0.0184807069599628,-0.989224970340729,-0.0294432193040848,-0.143411934375763,-0.984933793544769,-0.0350415855646133,-0.169344216585159,-0.110921628773212,0.200543805956841,0.973385155200958,-0.607650279998779,0.236624643206596,0.758135855197906,-0.179722473025322,0.187298133969307,0.96572208404541,-0.38829043507576,0.223259538412094,0.894083619117737,-0.179722473025322,0.187298133969307,0.96572208404541,-0.835021436214447,0.244141444563866,0.49308654665947,-0.835021436214447,0.244141444563866,0.49308654665947,-0.179722473025322,0.187298133969307,0.96572208404541,-0.607650279998779,0.236624643206596,0.758135855197906,-0.826122879981995,0.0795093923807144,0.557852327823639,-0.634800136089325,0.0877626314759254,0.767676115036011,-0.476955622434616,0.211404517292976,0.853124499320984,-0.407728731632233,0.218684732913971,0.886529326438904,-0.476955622434616,0.211404517292976,0.853124499320984,-0.634800136089325,0.0877626314759254,0.767676115036011,-0.826122879981995,0.0795093923807144,0.557852327823639,-0.476955622434616,0.211404517292976,0.853124499320984,-0.495741724967957,0.270060688257217,0.825413525104523,-0.491434842348099,0.269697636365891,0.828103244304657,-0.495741724967957,0.270060688257217,0.825413525104523,-0.476955622434616,0.211404517292976,0.853124499320984,-0.257565319538116,0.169719263911247,0.951238930225372,0.172108590602875,0.0754011124372482,0.982187986373901,-0.211731150746346,0.190714702010155,0.958539485931396,-0.0474050901830196,0.0552614741027355,0.997345924377441,-0.211731150746346,0.190714702010155,0.958539485931396,0.172108590602875,0.0754011124372482,0.982187986373901,-0.966379940509796,-0.0137848751619458,0.256748557090759,-0.304636627435684,0.318863123655319,0.897509217262268,-0.748092949390411,0.152005910873413,0.645949721336365,-0.541589438915253,0.132675841450691,0.83010721206665,-0.748092949390411,0.152005910873413,0.645949721336365, +-0.407728731632233,0.218684732913971,0.886529326438904,-0.407728731632233,0.218684732913971,0.886529326438904,-0.748092949390411,0.152005910873413,0.645949721336365,-0.304636627435684,0.318863123655319,0.897509217262268,-0.912346005439758,0.0700764134526253,0.403378248214722,-0.748092949390411,0.152005910873413,0.645949721336365,-0.541589438915253,0.132675841450691,0.83010721206665,-0.790645301342011,0.0511548593640327,0.610133707523346,-0.634800136089325,0.0877626314759254,0.767676115036011,-0.770179629325867,0.0731770023703575,0.633615493774414,-0.741511821746826,0.0319859310984612,0.670176923274994,-0.211731150746346,0.190714702010155,0.958539485931396,-0.634800136089325,0.0877626314759254,0.767676115036011,-0.634800136089325,0.0877626314759254,0.767676115036011,-0.211731150746346,0.190714702010155,0.958539485931396,-0.770179629325867,0.0731770023703575,0.633615493774414,-0.38829043507576,0.223259538412094,0.894083619117737,-0.770179629325867,0.0731770023703575,0.633615493774414,-0.211731150746346,0.190714702010155,0.958539485931396,-0.826122879981995,0.0795093923807144,0.557852327823639,-0.747990012168884,-0.0143109587952495,0.663555681705475,-0.634800136089325,0.0877626314759254,0.767676115036011,-0.741511821746826,0.0319859310984612,0.670176923274994,-0.634800136089325,0.0877626314759254,0.767676115036011,-0.747990012168884,-0.0143109587952495,0.663555681705475,0.139160618185997,0.461500138044357,0.876157462596893,-0.124933741986752,0.575813591480255,0.807979226112366,0.0451541841030121,0.414545208215714,0.90890771150589,-0.671459138393402,0.297277987003326,0.678799271583557,-0.352575540542603,0.402010291814804,0.845031559467316,-0.124933741986752,0.575813591480255,0.807979226112366,0.0451541841030121,0.414545208215714,0.90890771150589,-0.124933741986752,0.575813591480255,0.807979226112366,-0.352575540542603,0.402010291814804,0.845031559467316,-0.919819712638855,0.179512485861778,0.348865389823914,-0.955683052539825,0.072394460439682,0.285357713699341,-0.835021436214447,0.244141444563866,0.49308654665947,-0.790645301342011,0.0511548593640327,0.610133707523346, +-0.770179629325867,0.0731770023703575,0.633615493774414,-0.955683052539825,0.072394460439682,0.285357713699341,-0.38829043507576,0.223259538412094,0.894083619117737,-0.835021436214447,0.244141444563866,0.49308654665947,-0.770179629325867,0.0731770023703575,0.633615493774414,-0.770179629325867,0.0731770023703575,0.633615493774414,-0.835021436214447,0.244141444563866,0.49308654665947,-0.955683052539825,0.072394460439682,0.285357713699341,-0.491434842348099,0.269697636365891,0.828103244304657,-0.304636627435684,0.318863123655319,0.897509217262268,-0.987963080406189,-0.0135821485891938,0.154092088341713,-0.966379940509796,-0.0137848751619458,0.256748557090759,-0.987963080406189,-0.0135821485891938,0.154092088341713,-0.304636627435684,0.318863123655319,0.897509217262268,0.510368168354034,0.558079957962036,0.654271364212036,0.213425159454346,0.334729939699173,0.917826592922211,0.692911744117737,0.540367841720581,0.477363497018814,0.674418151378632,0.441656202077866,0.591692507266998,0.692911744117737,0.540367841720581,0.477363497018814,0.213425159454346,0.334729939699173,0.917826592922211,-0.0474050901830196,0.0552614741027355,0.997345924377441,-0.110921628773212,0.200543805956841,0.973385155200958,-0.211731150746346,0.190714702010155,0.958539485931396,-0.790645301342011,0.0511548593640327,0.610133707523346,-0.706745028495789,0.0605469197034836,0.704872608184814,-0.634800136089325,0.0877626314759254,0.767676115036011,-0.836422085762024,0.120166584849358,0.534750521183014,-0.541589438915253,0.132675841450691,0.83010721206665,-0.706745028495789,0.0605469197034836,0.704872608184814,-0.407728731632233,0.218684732913971,0.886529326438904,-0.634800136089325,0.0877626314759254,0.767676115036011,-0.541589438915253,0.132675841450691,0.83010721206665,-0.634800136089325,0.0877626314759254,0.767676115036011,-0.706745028495789,0.0605469197034836,0.704872608184814,-0.541589438915253,0.132675841450691,0.83010721206665,-0.491434842348099,0.269697636365891,0.828103244304657,-0.476955622434616,0.211404517292976,0.853124499320984,-0.304636627435684,0.318863123655319,0.897509217262268, +-0.407728731632233,0.218684732913971,0.886529326438904,-0.304636627435684,0.318863123655319,0.897509217262268,-0.476955622434616,0.211404517292976,0.853124499320984,-0.695831835269928,0.167326480150223,0.698441028594971,-0.607650279998779,0.236624643206596,0.758135855197906,-0.131842657923698,0.144027128815651,0.980751574039459,-0.110921628773212,0.200543805956841,0.973385155200958,-0.131842657923698,0.144027128815651,0.980751574039459,-0.607650279998779,0.236624643206596,0.758135855197906,-0.110921628773212,0.200543805956841,0.973385155200958,-0.179722473025322,0.187298133969307,0.96572208404541,-0.211731150746346,0.190714702010155,0.958539485931396,-0.38829043507576,0.223259538412094,0.894083619117737,-0.211731150746346,0.190714702010155,0.958539485931396,-0.179722473025322,0.187298133969307,0.96572208404541,0.0621586330235004,-0.834660768508911,-0.547245502471924,0.0343675203621387,-0.938802123069763,-0.342738002538681,0.0476665422320366,-0.870139360427856,-0.490495145320892,0.0441149137914181,-0.910395085811615,-0.411381304264069,0.0258957855403423,-0.963066577911377,-0.268015623092651,0.0519416928291321,-0.836496293544769,-0.545505344867706,0.0621586330235004,-0.834660768508911,-0.547245502471924,0.0519416928291321,-0.836496293544769,-0.545505344867706,0.0343675203621387,-0.938802123069763,-0.342738002538681,0.510368168354034,0.558079957962036,0.654271364212036,0.139160618185997,0.461500138044357,0.876157462596893,0.213425159454346,0.334729939699173,0.917826592922211,0.139160618185997,0.461500138044357,0.876157462596893,0.0451541841030121,0.414545208215714,0.90890771150589,0.213425159454346,0.334729939699173,0.917826592922211,0.0519416928291321,-0.836496293544769,-0.545505344867706,0.0258957855403423,-0.963066577911377,-0.268015623092651,0.0343675203621387,-0.938802123069763,-0.342738002538681,0.0134283006191254,-0.976554751396179,-0.214850068092346,0.0343675203621387,-0.938802123069763,-0.342738002538681,0.0258957855403423,-0.963066577911377,-0.268015623092651,0.0603417493402958,-0.951700925827026,-0.301038682460785, +0.0134283006191254,-0.976554751396179,-0.214850068092346,0.0258957855403423,-0.963066577911377,-0.268015623092651,-0.998001754283905,0.00462910858914256,0.063015952706337,-0.999878764152527,-0.0138679696246982,-0.00709903659299016,-0.974006116390228,0.0721514597535133,0.21472379565239,-0.999918222427368,-0.0117556713521481,0.00502725830301642,-0.974006116390228,0.0721514597535133,0.21472379565239,-0.999878764152527,-0.0138679696246982,-0.00709903659299016,-0.999800443649292,0.0199687983840704,0.000448584236437455,-0.999127507209778,0.00936076417565346,-0.0407024100422859,-0.998239517211914,0.0287207271903753,0.0518921799957752,-0.999127507209778,0.00936076417565346,-0.0407024100422859,-0.999832153320313,0.00572534557431936,0.0174005962908268,-0.998239517211914,0.0287207271903753,0.0518921799957752,-0.998239517211914,0.0287207271903753,0.0518921799957752,-0.999832153320313,0.00572534557431936,0.0174005962908268,-0.999878764152527,-0.0138679696246982,-0.00709903659299016,-0.999918222427368,-0.0117556713521481,0.00502725830301642,-0.999878764152527,-0.0138679696246982,-0.00709903659299016,-0.999832153320313,0.00572534557431936,0.0174005962908268,-0.994783401489258,-0.00324461655691266,0.101957634091377,-0.967053830623627,0.0706474259495735,0.244572758674622,-0.961154758930206,0.0914466083049774,0.260420888662338,-0.998001754283905,0.00462910858914256,0.063015952706337,-0.974006116390228,0.0721514597535133,0.21472379565239,-0.967053830623627,0.0706474259495735,0.244572758674622,-0.961154758930206,0.0914466083049774,0.260420888662338,-0.967053830623627,0.0706474259495735,0.244572758674622,-0.999918222427368,-0.0117556713521481,0.00502725830301642,-0.999918222427368,-0.0117556713521481,0.00502725830301642,-0.967053830623627,0.0706474259495735,0.244572758674622,-0.974006116390228,0.0721514597535133,0.21472379565239,-0.998001754283905,0.00462910858914256,0.063015952706337,-0.992442846298218,0.0420274958014488,0.115285858511925,-0.999878764152527,-0.0138679696246982,-0.00709903659299016,-0.998239517211914,0.0287207271903753,0.0518921799957752, +-0.999878764152527,-0.0138679696246982,-0.00709903659299016,-0.992442846298218,0.0420274958014488,0.115285858511925,-0.995402991771698,0.00819619465619326,0.0954232141375542,-0.994783401489258,-0.00324461655691266,0.101957634091377,-0.999832153320313,0.00572534557431936,0.0174005962908268,-0.994783401489258,-0.00324461655691266,0.101957634091377,-0.961154758930206,0.0914466083049774,0.260420888662338,-0.999832153320313,0.00572534557431936,0.0174005962908268,-0.999918222427368,-0.0117556713521481,0.00502725830301642,-0.999832153320313,0.00572534557431936,0.0174005962908268,-0.961154758930206,0.0914466083049774,0.260420888662338,-0.998828828334808,-0.0404858849942684,-0.0264934971928597,-0.997962534427643,-0.00762991001829505,0.0633452236652374,-0.999165415763855,-0.0153502952307463,0.0378519259393215,-0.999165415763855,-0.0153502952307463,0.0378519259393215,-0.997962534427643,-0.00762991001829505,0.0633452236652374,-0.967053830623627,0.0706474259495735,0.244572758674622,-0.998001754283905,0.00462910858914256,0.063015952706337,-0.967053830623627,0.0706474259495735,0.244572758674622,-0.997962534427643,-0.00762991001829505,0.0633452236652374,-0.994783401489258,-0.00324461655691266,0.101957634091377,-0.999165415763855,-0.0153502952307463,0.0378519259393215,-0.967053830623627,0.0706474259495735,0.244572758674622,-0.966379940509796,-0.0137848751619458,0.256748557090759,-0.994783401489258,-0.00324461655691266,0.101957634091377,-0.987963080406189,-0.0135821485891938,0.154092088341713,-0.99590927362442,0.00556635903194547,0.0901873931288719,-0.987963080406189,-0.0135821485891938,0.154092088341713,-0.995402991771698,0.00819619465619326,0.0954232141375542,-0.995402991771698,0.00819619465619326,0.0954232141375542,-0.987963080406189,-0.0135821485891938,0.154092088341713,-0.994783401489258,-0.00324461655691266,0.101957634091377,-0.971183478832245,0.0363977402448654,0.235537320375443,-0.987963080406189,-0.0135821485891938,0.154092088341713,-0.99590927362442,0.00556635903194547,0.0901873931288719,-0.995814800262451,0.0640825778245926,0.0651632770895958, +-0.999832153320313,0.00572534557431936,0.0174005962908268,-0.984933793544769,-0.0350415855646133,-0.169344216585159,-0.999127507209778,0.00936076417565346,-0.0407024100422859,-0.984933793544769,-0.0350415855646133,-0.169344216585159,-0.999832153320313,0.00572534557431936,0.0174005962908268,0.0671751201152802,-0.788559257984161,-0.611278772354126,0.0546449087560177,-0.806915760040283,-0.588133275508881,0.0814701616764069,0.38554048538208,-0.919087111949921,0.0659183189272881,-0.414588809013367,-0.907618284225464,0.0814701616764069,0.38554048538208,-0.919087111949921,0.0546449087560177,-0.806915760040283,-0.588133275508881,0.0621586330235004,-0.834660768508911,-0.547245502471924,0.0671751201152802,-0.788559257984161,-0.611278772354126,0.0644828900694847,-0.791198909282684,-0.608149826526642,0.0621586330235004,-0.834660768508911,-0.547245502471924,0.0619702972471714,-0.808480739593506,-0.585250854492188,0.0671751201152802,-0.788559257984161,-0.611278772354126,-0.0827607214450836,0.303859919309616,0.94911527633667,-0.905139982700348,0.170078009366989,0.389608860015869,-0.797623217105865,0.280048102140427,0.53420078754425,-0.835021436214447,0.244141444563866,0.49308654665947,-0.797623217105865,0.280048102140427,0.53420078754425,-0.919819712638855,0.179512485861778,0.348865389823914,-0.919819712638855,0.179512485861778,0.348865389823914,-0.797623217105865,0.280048102140427,0.53420078754425,-0.905139982700348,0.170078009366989,0.389608860015869,-0.919819712638855,0.179512485861778,0.348865389823914,-0.905139982700348,0.170078009366989,0.389608860015869,-0.955683052539825,0.072394460439682,0.285357713699341,-0.918146193027496,0.138249129056931,0.371341675519943,-0.93546187877655,0.157217562198639,0.316533952951431,-0.905139982700348,0.170078009366989,0.389608860015869,-0.836422085762024,0.120166584849358,0.534750521183014,-0.955683052539825,0.072394460439682,0.285357713699341,-0.93546187877655,0.157217562198639,0.316533952951431,-0.93546187877655,0.157217562198639,0.316533952951431,-0.955683052539825,0.072394460439682,0.285357713699341, +-0.905139982700348,0.170078009366989,0.389608860015869,-0.0827607214450836,0.303859919309616,0.94911527633667,-0.555347263813019,0.210898190736771,0.804432332515717,-0.905139982700348,0.170078009366989,0.389608860015869,-0.677399098873138,0.181156933307648,0.712960541248322,-0.905139982700348,0.170078009366989,0.389608860015869,-0.555347263813019,0.210898190736771,0.804432332515717,-0.677399098873138,0.181156933307648,0.712960541248322,-0.624084413051605,0.195838466286659,0.756416499614716,-0.905139982700348,0.170078009366989,0.389608860015869,-0.918146193027496,0.138249129056931,0.371341675519943,-0.905139982700348,0.170078009366989,0.389608860015869,-0.624084413051605,0.195838466286659,0.756416499614716,-0.918146193027496,0.138249129056931,0.371341675519943,-0.841380894184113,0.146146595478058,0.520306944847107,-0.93546187877655,0.157217562198639,0.316533952951431,-0.798788189888,0.151581943035126,0.582203149795532,-0.93546187877655,0.157217562198639,0.316533952951431,-0.841380894184113,0.146146595478058,0.520306944847107,-0.677399098873138,0.181156933307648,0.712960541248322,-0.555347263813019,0.210898190736771,0.804432332515717,-0.0205841027200222,0.404308795928955,0.914390921592712,-0.0827607214450836,0.303859919309616,0.94911527633667,-0.0205841027200222,0.404308795928955,0.914390921592712,-0.555347263813019,0.210898190736771,0.804432332515717,-0.671459138393402,0.297277987003326,0.678799271583557,-0.841380894184113,0.146146595478058,0.520306944847107,-0.920027792453766,0.127307459712029,0.370596379041672,-0.918146193027496,0.138249129056931,0.371341675519943,-0.920027792453766,0.127307459712029,0.370596379041672,-0.841380894184113,0.146146595478058,0.520306944847107,0.0451541841030121,0.414545208215714,0.90890771150589,-0.0205841027200222,0.404308795928955,0.914390921592712,0.213425159454346,0.334729939699173,0.917826592922211,-0.0827607214450836,0.303859919309616,0.94911527633667,0.213425159454346,0.334729939699173,0.917826592922211,-0.0205841027200222,0.404308795928955,0.914390921592712,-0.836422085762024,0.120166584849358,0.534750521183014, +-0.706745028495789,0.0605469197034836,0.704872608184814,-0.955683052539825,0.072394460439682,0.285357713699341,-0.790645301342011,0.0511548593640327,0.610133707523346,-0.955683052539825,0.072394460439682,0.285357713699341,-0.706745028495789,0.0605469197034836,0.704872608184814,-0.741511821746826,0.0319859310984612,0.670176923274994,-0.611388027667999,0.196897834539413,0.76644366979599,-0.211731150746346,0.190714702010155,0.958539485931396,-0.257565319538116,0.169719263911247,0.951238930225372,-0.211731150746346,0.190714702010155,0.958539485931396,-0.611388027667999,0.196897834539413,0.76644366979599,-0.798788189888,0.151581943035126,0.582203149795532,-0.756682097911835,0.15404424071312,0.635376036167145,-0.93546187877655,0.157217562198639,0.316533952951431,-0.912346005439758,0.0700764134526253,0.403378248214722,-0.541589438915253,0.132675841450691,0.83010721206665,-0.756682097911835,0.15404424071312,0.635376036167145,-0.93546187877655,0.157217562198639,0.316533952951431,-0.756682097911835,0.15404424071312,0.635376036167145,-0.836422085762024,0.120166584849358,0.534750521183014,-0.836422085762024,0.120166584849358,0.534750521183014,-0.756682097911835,0.15404424071312,0.635376036167145,-0.541589438915253,0.132675841450691,0.83010721206665,-0.918146193027496,0.138249129056931,0.371341675519943,-0.352575540542603,0.402010291814804,0.845031559467316,-0.920027792453766,0.127307459712029,0.370596379041672,-0.671459138393402,0.297277987003326,0.678799271583557,-0.920027792453766,0.127307459712029,0.370596379041672,-0.352575540542603,0.402010291814804,0.845031559467316,-0.677399098873138,0.181156933307648,0.712960541248322,-0.0205841027200222,0.404308795928955,0.914390921592712,-0.624084413051605,0.195838466286659,0.756416499614716,0.0451541841030121,0.414545208215714,0.90890771150589,-0.352575540542603,0.402010291814804,0.845031559467316,-0.0205841027200222,0.404308795928955,0.914390921592712,-0.918146193027496,0.138249129056931,0.371341675519943,-0.624084413051605,0.195838466286659,0.756416499614716,-0.352575540542603,0.402010291814804,0.845031559467316, +-0.352575540542603,0.402010291814804,0.845031559467316,-0.624084413051605,0.195838466286659,0.756416499614716,-0.0205841027200222,0.404308795928955,0.914390921592712,-0.421068251132965,0.442709863185883,0.791649878025055,-0.436882108449936,0.420052379369736,0.795418202877045,-0.124933741986752,0.575813591480255,0.807979226112366,-0.671459138393402,0.297277987003326,0.678799271583557,-0.124933741986752,0.575813591480255,0.807979226112366,-0.436882108449936,0.420052379369736,0.795418202877045,0.160565450787544,0.590668439865112,0.790777802467346,0.139160618185997,0.461500138044357,0.876157462596893,0.394372403621674,0.634766161441803,0.664486587047577,0.510368168354034,0.558079957962036,0.654271364212036,0.394372403621674,0.634766161441803,0.664486587047577,0.139160618185997,0.461500138044357,0.876157462596893,0.160565450787544,0.590668439865112,0.790777802467346,0.0492176339030266,0.783918023109436,0.618910551071167,-0.124933741986752,0.575813591480255,0.807979226112366,-0.212303146719933,0.673730671405792,0.707823693752289,-0.124933741986752,0.575813591480255,0.807979226112366,0.0492176339030266,0.783918023109436,0.618910551071167,0.0441149137914181,-0.910395085811615,-0.411381304264069,0.0519416928291321,-0.836496293544769,-0.545505344867706,0.0719105303287506,-0.748898506164551,-0.658771574497223 + } + TangentsW: *3600 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementUV: 0 { + Version: 101 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "IndexToDirect" + UV: *1456 { + a: 0.685669720172882,0.593090832233429,0.654972910881042,0.649261474609375,0.55296128988266,0.706069767475128,0.722138106822968,0.559724867343903,0.754129886627197,0.564500391483307,0.655973732471466,0.555386245250702,0.637479245662689,0.547448813915253,0.688790798187256,0.530814349651337,0.619869410991669,0.632616102695465,0.630598425865173,0.775030374526978,0.781877040863037,0.598396420478821,0.761546015739441,0.579115688800812,0.537941694259644,0.575858950614929,0.543008387088776,0.545580804347992,0.773428797721863,0.564315259456635,0.767760455608368,0.568075239658356,0.765184342861176,0.545581817626953,0.754759609699249,0.531433403491974,0.55642706155777,0.799380898475647,0.572385609149933,0.823157250881195,0.570742428302765,0.754116714000702,0.420673787593842,0.0148582169786096,0.404752045869827,0.0227830428630114,0.431081980466843,0.0318043678998947,0.419880509376526,0.0346589349210262,0.391524374485016,0.0368354208767414,0.549723029136658,0.647741556167603,0.545924186706543,0.61013251543045,0.561646401882172,0.655934274196625,0.555278837680817,0.755058646202087,0.544755160808563,0.771461009979248,0.542640268802643,0.740759789943695,0.556401073932648,0.737372517585754,0.548219919204712,0.735557973384857,0.550947368144989,0.731062650680542,0.563067138195038,0.828724324703217,0.555293202400208,0.81566309928894,0.542526602745056,0.673978328704834,0.547005534172058,0.665483772754669,0.551160395145416,0.721585929393768,0.551850855350494,0.689275801181793,0.545362710952759,0.690413296222687,0.778267025947571,0.581195890903473,0.784605801105499,0.690548181533813,0.37962082028389,0.0241248197853565,0.37497079372406,0.0125314109027386,0.398966103792191,0.011218330822885,0.397372156381607,0.464638262987137,0.422832876443863,0.468321532011032,0.442058891057968,0.469326198101044,0.793410897254944,0.620423138141632,0.801942706108093,0.636768817901611,0.384990960359573,0.449666500091553,0.363132268190384,0.456076323986053,0.316706597805023,0.424132704734802,0.380433112382889,0.45774120092392,0.50665819644928, +0.679294764995575,0.525475203990936,0.658283531665802,0.536271929740906,0.66735577583313,0.476367682218552,0.713939666748047,0.541943311691284,0.726918160915375,0.515801429748535,0.645934522151947,0.79842221736908,0.718063473701477,0.740013360977173,0.887778162956238,0.739393889904022,0.867305874824524,0.745774924755096,0.873327434062958,0.752894341945648,0.862555325031281,0.819924056529999,0.729970812797546,0.805670857429504,0.799342036247253,0.819708287715912,0.776436269283295,0.826241314411163,0.748914182186127,0.825286567211151,0.768336534500122,0.831686496734619,0.751637816429138,0.827620625495911,0.758510231971741,0.828644573688507,0.741312801837921,0.589071929454803,0.442538768053055,0.597062408924103,0.455131739377975,0.599681973457336,0.463370442390442,0.565638542175293,0.471655011177063,0.789589524269104,0.818978250026703,0.754085123538971,0.840501129627228,0.781769990921021,0.838692605495453,0.716779410839081,0.914666056632996,0.728026926517487,0.90077269077301,0.572579741477966,0.475124061107636,0.588924944400787,0.469422549009323,0.583110153675079,0.475543558597565,0.764902651309967,0.850868225097656,0.796489238739014,0.826262533664703,0.792734861373901,0.829415321350098,0.798780143260956,0.818880498409271,0.63844621181488,0.45880976319313,0.64873343706131,0.460467159748077,0.64149796962738,0.463115334510803,0.621413290500641,0.470012217760086,0.695277333259583,0.448341697454453,0.628728628158569,0.407495468854904,0.73116260766983,0.450131446123123,0.716751515865326,0.456090182065964,0.704382359981537,0.459529638290405,0.78560084104538,0.43015268445015,0.600384056568146,0.426946371793747,0.593950867652893,0.47468963265419,0.709939122200012,0.393210291862488,0.668120443820953,0.461113810539246,0.661246478557587,0.454590916633606,0.748850166797638,0.448785066604614,0.766610682010651,0.4471395611763,0.359154969453812,0.0513101555407047,0.653649866580963,0.461089938879013,0.664525091648102,0.349387019872665,0.688775241374969,0.459003269672394,0.271441429853439,0.0443687625229359,0.309522598981857,0.01682024076581, +0.683572173118591,0.931514620780945,0.126687988638878,0.693968772888184,0.104711480438709,0.642381548881531,0.108414970338345,0.58033698797226,0.107106171548367,0.612851500511169,0.565578401088715,0.9668790102005,0.578406929969788,0.90966135263443,0.585577964782715,0.939843654632568,0.584104120731354,0.957602500915527,0.513872146606445,0.886563658714294,0.579925715923309,0.940273404121399,0.563435435295105,0.895617067813873,0.571883916854858,0.890482604503632,0.570002675056458,0.878733515739441,0.579453468322754,0.886602640151978,0.611053586006165,0.948963105678558,0.593618631362915,0.952064871788025,0.633372366428375,0.932640492916107,0.802801728248596,0.433324366807938,0.793491840362549,0.441484928131104,0.829978346824646,0.438465625047684,0.841961085796356,0.429402023553848,0.854806184768677,0.418665498495102,0.783252775669098,0.443889409303665,0.852153360843658,0.406541973352432,0.83967137336731,0.387896418571472,0.848898768424988,0.39892852306366,0.821368813514709,0.3787961602211,0.808512151241302,0.454569131135941,0.465678960084915,0.0372138097882271,0.454387843608856,0.046421080827713,0.441837906837463,0.049207229167223,0.672398269176483,0.953857719898224,0.654817759990692,0.94979989528656,0.642465651035309,0.952727794647217,0.863871872425079,0.437201112508774,0.872343361377716,0.426082015037537,0.867799162864685,0.416945427656174,0.878023266792297,0.415422439575195,0.850821554660797,0.442652881145477,0.629871070384979,0.945525646209717,0.700987815856934,0.936807513237,0.704978764057159,0.927096128463745,0.917199373245239,0.422462999820709,0.908452272415161,0.411077409982681,0.898809134960175,0.404197573661804,0.915863811969757,0.400974273681641,0.914381265640259,0.372542351484299,0.870457589626312,0.395240545272827,0.875856935977936,0.407512247562408,0.897995412349701,0.358358025550842,0.879951000213623,0.338514775037766,0.875735640525818,0.309364140033722,0.903511345386505,0.342178672552109,0.883139789104462,0.404818385839462,0.888180196285248,0.305316478013992,0.896532237529755,0.324322283267975,0.888603746891022, +0.373397767543793,0.537154138088226,0.96954756975174,0.466450691223145,0.964379012584686,0.487148433923721,0.96781325340271,0.507768213748932,0.960939347743988,0.505658805370331,0.973411977291107,0.839820921421051,0.368397623300552,0.867605805397034,0.375496089458466,0.869951546192169,0.35879510641098,0.517162382602692,0.970567047595978,0.11003053933382,0.6826531291008,0.118060685694218,0.69809502363205,0.128531947731972,0.724742114543915,0.895274758338928,0.436208844184875,0.878014147281647,0.44109919667244,0.87911593914032,0.428687781095505,0.904984951019287,0.42043799161911,0.911210358142853,0.430719584226608,0.908641755580902,0.352952390909195,0.372950166463852,0.032265942543745,0.493219137191772,0.799006998538971,0.524846374988556,0.815808475017548,0.384941607713699,0.0535093285143375,0.562724530696869,0.852351605892181,0.343213140964508,0.0182818677276373,0.465485662221909,0.873248994350433,0.448922902345657,0.0254945680499077,0.438700020313263,0.017742058262229,0.468027114868164,0.0183798763900995,0.446232289075851,0.940206289291382,0.733244001865387,0.340917766094208,0.419673383235931,0.0461103431880474,0.792225956916809,0.374139219522476,0.781958818435669,0.339896559715271,0.80375599861145,0.2916239798069,0.849600970745087,0.346103012561798,0.857109665870667,0.350901573896408,0.85471123456955,0.322053372859955,0.841578304767609,0.323292762041092,0.846992671489716,0.357616186141968,0.864353239536285,0.34117728471756,0.832256674766541,0.362372189760208,0.751040160655975,0.399783581495285,0.687247395515442,0.292325079441071,0.778982222080231,0.2536780834198,0.824844896793365,0.228817880153656,0.846765160560608,0.239131346344948,0.815718770027161,0.238731577992439,0.85449481010437,0.266703814268112,0.826588869094849,0.256837636232376,0.367505252361298,0.97810161113739,0.341350585222244,0.973725259304047,0.325064927339554,0.958655118942261,0.846892774105072,0.291190624237061,0.852904558181763,0.309957355260849,0.836618959903717,0.30406641960144,0.414247751235962,0.969264090061188,0.386534154415131,0.963971078395844, +0.429115027189255,0.962494969367981,0.442788004875183,0.966182410717011,0.456236004829407,0.961412847042084,0.871083676815033,0.289041727781296,0.108143448829651,0.66291868686676,0.882898271083832,0.296484470367432,0.818178296089172,0.274578273296356,0.831376552581787,0.28123864531517,0.812745749950409,0.283517211675644,0.86769825220108,0.275725066661835,0.359566122293472,0.98430722951889,0.349067866802216,0.988258004188538,0.757558524608612,0.215098962187767,0.778115749359131,0.220957696437836,0.803494989871979,0.223256751894951,0.814721882343292,0.225660055875778,0.804041028022766,0.664677619934082,0.803591191768646,0.685177683830261,0.808641076087952,0.701268255710602,0.81298965215683,0.71098405122757,0.544005513191223,0.447045296430588,0.540727436542511,0.476243793964386,0.4704629778862,0.477245330810547,0.510500192642212,0.471608430147171,0.491469293832779,0.481262803077698,0.508827805519104,0.480637788772583,0.804522156715393,0.650573432445526,0.555065333843231,0.471904277801514,0.519392848014832,0.477978944778442,0.456375151872635,0.472854763269424,0.565554559230804,0.423859149217606,0.557450532913208,0.434954255819321,0.54037743806839,0.426015436649323,0.529038906097412,0.402897357940674,0.53512704372406,0.385737419128418,0.538227140903473,0.39453911781311,0.540485680103302,0.407437831163406,0.523787617683411,0.434760272502899,0.487141132354736,0.391602396965027,0.572725892066956,0.388962239027023,0.626421749591827,0.342778414487839,0.572482049465179,0.314994603395462,0.605415284633636,0.408002883195877,0.451553076505661,0.0915484428405762,0.40686959028244,0.389571338891983,0.456705629825592,0.400832951068878,0.393962562084198,0.376130372285843,0.462177842855453,0.363901078701019,0.529023230075836,0.367147475481033,0.542307019233704,0.344409734010696,0.539888024330139,0.363078594207764,0.459356755018234,0.327952653169632,0.564976096153259,0.301547795534134,0.534242987632751,0.337538719177246,0.554360866546631,0.259966671466827,0.377116113901138,0.814869403839111,0.350801140069962,0.836642563343048,0.383959144353867, +0.766020357608795,0.422363877296448,0.835167944431305,0.303525924682617,0.73671293258667,0.32440572977066,0.778036713600159,0.410654008388519,0.769663333892822,0.355316817760468,0.700661718845367,0.554123163223267,0.243588492274284,0.572819650173187,0.236700087785721,0.593088746070862,0.232429459691048,0.535642504692078,0.230150461196899,0.580009996891022,0.264091610908508,0.554775774478912,0.331425726413727,0.607297003269196,0.240655392408371,0.617649376392365,0.246824771165848,0.390338331460953,0.102689333260059,0.639566540718079,0.291390180587769,0.754309773445129,0.185493066906929,0.75831001996994,0.172260776162148,0.788578808307648,0.188491076231003,0.760380387306213,0.204388484358788,0.741321086883545,0.154130384325981,0.757336378097534,0.155302092432976,0.767086446285248,0.163827151060104,0.227618053555489,0.942336618900299,0.24981515109539,0.949079275131226,0.26732125878334,0.951455473899841,0.294248819351196,0.945886790752411,0.281229078769684,0.943492889404297,0.240065783262253,0.830554902553558,0.321235209703445,0.936104357242584,0.624552249908447,0.116936713457108,0.20451931655407,0.927864909172058,0.198424905538559,0.92165869474411,0.183370694518089,0.910148501396179,0.2836654484272,0.934856295585632,0.622854173183441,0.0871439874172211,0.625721871852875,0.0794058367609978,0.636758506298065,0.084710918366909,0.682586967945099,0.123016342520714,0.669048130512238,0.1074034050107,0.658780753612518,0.0949163734912872,0.676948964595795,0.104596242308617,0.683839201927185,0.111256346106529,0.777070820331573,0.170696631073952,0.161324888467789,0.858570754528046,0.415951311588287,0.141382813453674,0.708085298538208,0.128259494900703,0.698864996433258,0.12913915514946,0.692892134189606,0.116709105670452,0.213324621319771,0.93259459733963,0.306640297174454,0.947046339511871,0.699411690235138,0.264673560857773,0.70925498008728,0.246158853173256,0.712976455688477,0.225719511508942,0.634086430072784,0.248135164380074,0.682905554771423,0.165019184350967,0.68494725227356,0.264727264642715,0.719993889331818,0.227576076984406, +0.727104961872101,0.227253392338753,0.690775096416473,0.186658829450607,0.708424270153046,0.196045339107513,0.749447882175446,0.228576973080635,0.725400269031525,0.171904817223549,0.741144001483917,0.198927044868469,0.725509822368622,0.144924491643906,0.6616490483284,0.14085479080677,0.711277425289154,0.214146554470062,0.741714060306549,0.180699363350868,0.797776579856873,0.208356514573097,0.733822405338287,0.289936512708664,0.69201672077179,0.277546852827072,0.0818674713373184,0.412359535694122,0.118473179638386,0.428462475538254,0.547900259494781,0.51372241973877,0.569986462593079,0.517868340015411,0.115427441895008,0.379790067672729,0.136182114481926,0.39884814620018,0.145390823483467,0.39044064283371,0.148120075464249,0.394438534975052,0.13789002597332,0.422997504472733,0.154096737504005,0.382877230644226,0.173186913132668,0.3713239133358,0.206040918827057,0.370892226696014,0.186012968420982,0.413577854633331,0.166046440601349,0.419943779706955,0.178535282611847,0.417558372020721,0.204215928912163,0.423635065555573,0.192444115877151,0.414643496274948,0.204297319054604,0.397733509540558,0.144807040691376,0.406461775302887,0.153158262372017,0.424671202898026,0.367796540260315,0.358305394649506,0.373948991298676,0.389178872108459,0.281896889209747,0.0201177801936865,0.260120362043381,0.0222583394497633,0.27111491560936,0.388459265232086,0.302655726671219,0.412934601306915,0.343401998281479,0.450233608484268,0.324976980686188,0.449031412601471,0.285251945257187,0.401580512523651,0.167160734534264,0.339408487081528,0.204151809215546,0.302959710359573,0.181391850113869,0.289525747299194,0.210537031292915,0.359532445669174,0.204874381422997,0.353534668684006,0.21731124818325,0.353099912405014,0.191023722290993,0.335863143205643,0.154517665505409,0.29083064198494,0.171300545334816,0.289490342140198,0.21589495241642,0.310864835977554,0.221559107303619,0.314690947532654,0.209911495447159,0.317739129066467,0.248672872781754,0.0418332554399967,0.241584345698357,0.0450374409556389,0.225530922412872,0.0532812736928463,0.216349884867668, +0.368648022413254,0.214063555002213,0.381339430809021,0.265882194042206,0.352355867624283,0.238235905766487,0.29619437456131,0.255499094724655,0.278076261281967,0.265376806259155,0.297580242156982,0.239765897393227,0.311863094568253,0.202343299984932,0.290580302476883,0.252436131238937,0.321102112531662,0.251486480236053,0.257869601249695,0.266982674598694,0.251844823360443,0.227004662156105,0.320862084627151,0.249238550662994,0.340935230255127,0.235174119472504,0.328521907329559,0.268186926841736,0.272378325462341,0.249297335743904,0.376290768384933,0.253434598445892,0.389523088932037,0.262748181819916,0.404598593711853,0.234836012125015,0.385305732488632,0.265012979507446,0.425739198923111,0.273868292570114,0.427859723567963,0.274907946586609,0.447407156229019,0.233751237392426,0.410312712192535,0.240316838026047,0.439403742551804,0.229066520929337,0.434325814247131,0.220030605792999,0.430297464132309,0.717523396015167,0.500753343105316,0.696986079216003,0.49332121014595,0.691711843013763,0.496752232313156,0.684099078178406,0.489618718624115,0.235728546977043,0.400074750185013,0.253145068883896,0.442464888095856,0.646643936634064,0.483545333147049,0.657577812671661,0.485822319984436,0.662676095962524,0.485978722572327,0.305584520101547,0.446053981781006,0.672015964984894,0.488680601119995,0.225968644022942,0.422231286764145,0.217750623822212,0.420099914073944,0.310738861560822,0.452246397733688,0.214896276593208,0.428787618875504,0.218258142471313,0.409143596887589,0.22091817855835,0.372051358222961,0.610519468784332,0.491714954376221,0.621145367622375,0.484853357076645,0.660814106464386,0.49187096953392,0.627231359481812,0.478916764259338,0.633525431156158,0.478176832199097,0.583031833171844,0.515793144702911,0.58777129650116,0.508543789386749,0.210223108530045,0.397760003805161,0.60305380821228,0.503674328327179,0.743138670921326,0.524421989917755,0.248843014240265,0.361708909273148,0.14939446747303,0.520718991756439,0.166650205850601,0.520338237285614,0.17890328168869,0.502014875411987,0.204019412398338,0.605349957942963, +0.26003098487854,0.374669343233109,0.267584413290024,0.369233965873718,0.0893066450953484,0.391788810491562,0.079852819442749,0.38989320397377,0.0848383083939552,0.366062134504318,0.0992846935987473,0.417388498783112,0.109896950423718,0.338772028684616,0.119797639548779,0.535090565681458,0.132971808314323,0.530023813247681,0.115363977849483,0.553924739360809,0.454244405031204,0.50591254234314,0.472198218107224,0.507164835929871,0.485853791236877,0.504070281982422,0.478839814662933,0.518848955631256,0.508894264698029,0.62469619512558,0.131537303328514,0.428840965032578,0.531723022460938,0.54219651222229,0.530104100704193,0.516917169094086,0.507940113544464,0.513707756996155,0.092640332877636,0.312206417322159,0.108411051332951,0.291555523872375,0.134337484836578,0.305252730846405,0.150542736053467,0.347419410943985,0.129850909113884,0.253394901752472,0.11423459649086,0.327761471271515,0.0961275026202202,0.3505779504776,0.127929896116257,0.279562592506409,0.217587873339653,0.516594767570496,0.0810328722000122,0.335825055837631,0.0878384411334991,0.322139114141464,0.142054170370102,0.381723642349243,0.125138103961945,0.34367248415947,0.0963030308485031,0.28553107380867,0.0830031186342239,0.352763056755066,0.16070069372654,0.266826599836349,0.16327428817749,0.245233803987503,0.190508186817169,0.257759004831314,0.198744967579842,0.277361512184143,0.170999243855476,0.27192211151123,0.385665506124496,0.542144000530243,0.304612964391708,0.598271369934082,0.242791905999184,0.0240769982337952,0.208929762244225,0.0533048510551453,0.2219368070364,0.0316022150218487,0.388146549463272,0.47645777463913,0.407033681869507,0.484556764364243,0.434192031621933,0.487701535224915,0.429704278707504,0.503162920475006,0.380365341901779,0.48985368013382,0.360832095146179,0.480952262878418,0.375791370868683,0.480650067329407,0.440881133079529,0.497174888849258,0.229392200708389,0.250575125217438,0.244145214557648,0.239609658718109,0.245253428816795,0.263228416442871,0.286983847618103,0.101455539464951,0.262714982032776,0.0912294983863831,0.282432705163956, +0.097020149230957,0.28728649020195,0.0991067290306091,0.216764315962791,0.239733695983887,0.204633802175522,0.223538383841515,0.253056764602661,0.241497173905373,0.254988074302673,0.229007378220558,0.201892599463463,0.17307385802269,0.235830321907997,0.185771912336349,0.213778868317604,0.266606062650681,0.260814875364304,0.269034206867218,0.182037204504013,0.22709433734417,0.177626773715019,0.197592243552208,0.172452583909035,0.218841284513474,0.262247413396835,0.0802921652793884,0.310134440660477,0.0868400856852531,0.164732605218887,0.159557014703751,0.124614790081978,0.163066521286964,0.146179631352425,0.119926981627941,0.178065404295921,0.119558371603489,0.170029059052467,0.139072373509407,0.118629820644856,0.239338368177414,0.119136080145836,0.220054537057877,0.117857374250889,0.199426218867302,0.0998224914073944,0.253205537796021,0.100161142647266,0.237922191619873,0.103792585432529,0.265983909368515,0.160172998905182,0.175785481929779,0.153581216931343,0.18439108133316,0.142241477966309,0.171811267733574,0.129586011171341,0.183062463998795,0.138242393732071,0.180784910917282,0.127335861325264,0.192725211381912,0.157865405082703,0.213714376091957,0.128310456871986,0.141198858618736,0.131541430950165,0.123149141669273,0.109983891248703,0.218173339962959,0.124513529241085,0.187470003962517,0.177740499377251,0.141958296298981,0.135199591517448,0.174893453717232,0.191202864050865,0.180890083312988,0.118444725871086,0.179116263985634,0.294206887483597,0.487807869911194,0.294250071048737,0.47174870967865,0.259764283895493,0.479677766561508,0.274997353553772,0.476292461156845,0.309518784284592,0.468243628740311,0.325309216976166,0.460092663764954,0.341455936431885,0.470906674861908,0.389690518379211,0.387187331914902,0.360416352748871,0.336097687482834,0.403119206428528,0.277307331562042,0.497139245271683,0.270691245794296,0.449819207191467,0.22628465294838,0.245231509208679,0.0608797930181026,0.240334093570709,0.0708851888775826,0.242020905017853,0.0813729241490364,0.213510453701019,0.0688474029302597,0.254106432199478, +0.0695135593414307,0.250227212905884,0.0642825365066528,0.264967143535614,0.0614113509654999,0.254749983549118,0.0531584583222866,0.303549557924271,0.196652308106422,0.337009012699127,0.243165627121925,0.286686271429062,0.288206845521927,0.276170551776886,0.235150471329689,0.249215871095657,0.0347259230911732,0.385780304670334,0.225025579333305,0.481173783540726,0.165204003453255,0.227561995387077,0.0612159669399261,0.273918777704239,0.747742831707001,0.223915323615074,0.7307248711586,0.248663172125816,0.0752386748790741,0.31900629401207,0.645678818225861,0.278332471847534,0.601182520389557,0.375656813383102,0.640049755573273,0.322224378585815,0.693657755851746,0.24986444413662,0.0849293246865273,0.486330270767212,0.140481665730476,0.518159031867981,0.180956408381462,0.491292595863342,0.24412639439106,0.557967722415924,0.192392483353615,0.218252122402191,0.0601115375757217,0.476375699043274,0.122349232435226,0.213067933917046,0.783373475074768,0.188005790114403,0.833141624927521,0.509133815765381,0.137439861893654,0.575102090835571,0.081149697303772,0.552752017974854,0.0779301151633263,0.29239809513092,0.0967320129275322,0.2460927516222,0.0959643498063087,0.23473171889782,0.0961535423994064,0.59953248500824,0.0811252146959305,0.593026101589203,0.135740295052528,0.606198906898499,0.0639332830905914,0.595457792282104,0.0645309016108513,0.583732128143311,0.0624400526285172,0.546958148479462,0.0655197277665138,0.533587217330933,0.0655857399106026,0.145299226045609,0.808927059173584,0.146898567676544,0.826644122600555,0.157243892550468,0.840066313743591,0.149686962366104,0.839678943157196,0.557635188102722,0.0437428876757622,0.572060227394104,0.0553461797535419,0.155693054199219,0.849816799163818,0.170629352331162,0.844953417778015,0.160749241709709,0.807532429695129,0.609055161476135,0.0734745338559151,0.618728816509247,0.0742416754364967,0.16815273463726,0.851617097854614,0.16926620900631,0.891278266906738,0.162818238139153,0.881947696208954,0.161416068673134,0.873832523822784,0.438451021909714,0.124158710241318,0.46816873550415, +0.113137654960155,0.470837116241455,0.0739564523100853,0.466410487890244,0.123640939593315,0.461279839277267,0.135076984763145,0.436650723218918,0.14232537150383,0.47055259346962,0.0530087053775787,0.498101770877838,0.0469095595180988,0.483340173959732,0.0439265221357346,0.172126352787018,0.647052586078644,0.266444206237793,0.11190190911293,0.286896944046021,0.111636966466904,0.269338071346283,0.125536799430847,0.151939988136292,0.760367691516876,0.187121823430061,0.0544073581695557,0.169408366084099,0.065443255007267,0.483064085245132,0.0317531526088715,0.517843127250671,0.0672389939427376,0.520720899105072,0.0589113347232342,0.521977007389069,0.0527343489229679,0.490088194608688,0.0917503833770752,0.530802488327026,0.0728880688548088,0.509986698627472,0.0484622232615948,0.506882607936859,0.0777281448245049,0.533369839191437,0.0466929189860821,0.530751168727875,0.0336009673774242,0.497315973043442,0.0269815232604742,0.128529131412506,0.754704833030701,0.481338173151016,0.020694462582469,0.136574760079384,0.784142911434174,0.131166160106659,0.738146066665649,0.430207997560501,0.0978313013911247,0.470024645328522,0.091790571808815,0.553628444671631,0.169162034988403,0.42789089679718,0.130860522389412,0.249335959553719,0.203655809164047,0.255301743745804,0.212224021553993,0.242876142263412,0.16315259039402,0.23868365585804,0.17014878988266,0.244623079895973,0.182969883084297,0.238101914525032,0.172990888357162,0.309059917926788,0.151842102408409,0.261804193258286,0.162780806422234,0.251344531774521,0.215967491269112,0.27941033244133,0.165308371186256,0.27129864692688,0.153320983052254,0.265959411859512,0.155106276273727,0.268027007579803,0.149518445134163,0.244142487645149,0.19574086368084,0.236943304538727,0.178607925772667,0.304587572813034,0.1733138859272,0.321264266967773,0.159080058336258,0.312960028648376,0.167514204978943,0.294265270233154,0.16919419169426,0.328607469797134,0.156533375382423,0.249815329909325,0.164242535829544,0.20830012857914,0.161572322249413,0.203546717762947,0.138523504137993,0.212232261896133, +0.149802014231682,0.253468096256256,0.147283494472504,0.227277547121048,0.133325189352036,0.239794090390205,0.13553948700428,0.249450534582138,0.136210903525352,0.230183750391006,0.163606211543083,0.267377495765686,0.14144167304039,0.217967063188553,0.141779556870461,0.231560185551643,0.115561284124851,0.246902227401733,0.108094617724419,0.203251525759697,0.0811071246862412,0.196911230683327,0.125317275524139,0.146344587206841,0.0747499465942383,0.134167835116386,0.100443176925182,0.227059617638588,0.126906961202621,0.258245229721069,0.550776779651642,0.219999983906746,0.50129634141922,0.190037310123444,0.0897415578365326,0.244796827435493,0.491988211870193,0.343435376882553,0.0949715375900269,0.326068252325058,0.0893828347325325,0.311753243207932,0.0970018208026886,0.310376644134521,0.105258010327816,0.34962186217308,0.14547424018383,0.298983126878738,0.100298777222633,0.300812482833862,0.111397191882133,0.330667614936829,0.1439009308815,0.116620324552059,0.573624908924103,0.186629235744476,0.118565134704113,0.214067801833153,0.130527079105377,0.205529510974884,0.091062143445015,0.217763766646385,0.105041086673737,0.185991689562798,0.112750232219696,0.189776912331581,0.109352841973305,0.195442393422127,0.102173998951912,0.182354688644409,0.105562880635262,0.210227251052856,0.0824989154934883,0.221323996782303,0.092772550880909,0.165089190006256,0.0609166510403156,0.201924741268158,0.032780084758997,0.198475822806358,0.502565979957581 + } + UVIndex: *3600 { + a: 8,6,5,3,0,7,7,0,5,0,1,8,40,28,2,1,2,28,9,1,43,0,255,1,255,43,1,2,1,9,0,50,255,4,11,3,10,3,11,28,27,8,12,13,27,8,27,13,14,15,16,4,453,15,17,16,453,453,16,15,1,28,8,0,8,5,21,198,22,23,24,198,25,22,24,24,22,198,26,27,28,20,19,29,30,29,18,18,29,19,31,29,30,20,29,32,33,32,31,31,32,29,34,32,33,35,36,19,18,19,36,37,38,40,26,40,38,34,39,32,2,32,39,2,41,40,37,40,41,2,9,32,20,32,9,359,360,13,8,13,360,4,15,11,11,15,42,14,42,15,10,11,42,26,28,40,20,9,19,25,44,22,45,46,44,44,46,22,21,22,46,10,50,3,0,3,50,51,255,50,273,48,52,47,52,48,383,378,53,53,378,52,54,378,383,273,52,378,47,55,52,53,52,55,31,56,60,26,473,27,12,27,473,31,30,56,59,56,30,57,38,58,37,58,38,26,38,473,34,33,60,31,60,33,2,39,60,34,60,39,58,41,56,56,41,60,37,41,58,2,60,41,473,61,56,57,56,61,57,58,56,473,38,61,57,61,38,473,56,59,63,64,65,66,65,64,62,70,79,68,79,70,9,43,80,68,70,69,71,69,70,73,70,72,72,70,74,71,70,73,67,74,70,75,76,85,77,85,76,62,79,80,81,80,79,82,64,83,63,83,64,78,85,84,86,84,85,66,80,87,81,87,80,88,89,90,81,79,89,89,79,90,68,90,79,82,114,64,9,64,114,9,80,64,66,64,80,67,70,62,92,93,91,94,91,93,97,98,95,99,95,98,91,96,105,92,91,105,91,76,96,75,101,76,76,101,96,271,96,101,86,85,102,77,102,85,94,102,91,102,77,91,77,76,91,95,213,100,97,95,100,104,105,95,105,103,95,97,100,106,107,106,100,103,96,110,105,96,103,92,105,109,104,109,105,95,103,213,99,111,95,104,95,111,190,108,195,112,195,108,113,195,112,131,19,114,714,638,115,120,121,124,119,124,122,122,124,121,123,125,124,120,124,125,120,125,126,127,126,125,131,128,19,120,126,128,127,128,126,129,130,121,122,121,130,120,128,121,129,121,131,131,121,128,134,132,135,107,100,137,133,137,100,213,132,100,133,100,132,136,135,138,132,141,135,138,135,139,139,135,141,140,138,139,134,142,132,133,132,142,23,143,24,143,144,24,145,24,144,146,147,131,148,131,147,136,151,150,152,150,151,146,131,114,136,150,135,153,135,149,149,135,150,134,135,153,129,131,154,148,154,131,82,156,114,155,114,156,157,158,160,159,160,158,140,163,138,162,163,140,136,138,163,165,166,164,167,164,166,152,151,163,136,163,151,152, +163,168,162,168,163,169,170,166,167,166,170,160,171,161,161,171,164,159,171,160,159,168,171,162,179,168,171,168,179,173,175,174,176,174,175,177,140,139,162,178,179,175,124,172,172,124,119,123,124,175,176,175,180,172,180,175,181,115,182,183,182,115,162,140,178,177,178,140,179,211,164,165,164,211,171,179,164,123,175,196,184,185,186,150,186,149,149,186,185,152,186,150,184,187,188,159,158,187,188,187,157,157,187,158,161,164,189,167,189,164,186,152,187,152,168,187,159,187,168,184,186,187,114,19,9,192,123,191,196,191,123,300,706,193,35,194,36,192,36,194,123,194,125,192,194,123,127,125,194,18,36,30,192,30,36,127,194,128,128,194,19,35,19,194,45,190,195,23,198,197,199,197,198,196,175,200,173,200,175,287,196,200,25,24,202,145,202,24,213,103,201,103,110,201,213,203,132,132,203,141,139,141,177,177,141,212,203,204,212,141,203,212,204,205,212,206,211,207,179,207,211,209,208,206,206,208,211,226,208,209,206,207,210,178,210,179,179,210,207,177,210,178,205,210,212,206,210,209,205,209,210,177,212,210,201,204,213,213,204,203,201,214,355,201,355,204,215,205,355,355,205,204,201,110,214,216,217,218,218,217,220,219,220,217,228,222,315,223,315,222,224,225,226,226,225,208,227,228,200,221,222,228,227,200,229,230,229,200,173,231,200,230,200,231,224,236,232,232,236,219,219,236,220,165,211,225,208,225,211,235,236,226,224,226,236,232,166,225,165,225,166,224,232,225,116,115,233,181,233,115,232,234,166,169,166,234,237,205,215,220,235,218,220,236,235,226,209,237,205,237,209,235,226,237,219,238,232,221,239,222,240,222,239,241,242,347,237,215,235,243,244,218,216,218,244,218,215,243,243,215,242,235,215,218,347,242,215,245,246,43,247,43,246,67,62,248,247,248,62,245,43,255,43,62,80,256,252,249,249,252,266,250,252,256,251,252,253,254,253,252,247,62,43,254,252,257,250,257,252,266,252,258,251,258,252,259,260,261,249,261,260,271,101,260,75,260,101,259,271,260,263,264,262,265,262,264,249,266,261,265,261,262,262,261,266,75,85,260,85,78,260,78,256,260,249,260,256,263,268,264,265,264,268,267,262,266,269,268,270,297,270,268,706,108,193,259,261,268,265,268,261,96, +271,268,259,268,271,96,268,269,272,193,202,25,202,193,96,269,110,267,274,276,275,276,274,274,266,258,49,274,258,275,274,273,274,48,273,49,48,274,280,282,276,277,276,282,267,276,277,278,279,282,282,279,277,263,277,279,267,266,274,281,282,283,283,282,567,567,282,280,297,268,279,263,279,268,267,277,262,263,262,277,289,286,284,200,284,287,289,284,285,290,59,191,25,193,190,108,190,193,290,291,59,287,286,290,286,288,291,591,291,288,192,191,30,59,30,191,290,286,291,289,288,286,196,287,191,191,287,290,287,284,286,45,44,190,25,190,44,294,298,293,295,283,567,296,301,270,340,342,301,270,297,281,281,297,282,278,282,297,301,269,270,596,293,295,292,295,293,278,297,279,298,296,293,283,293,296,292,293,283,296,270,281,292,283,295,214,110,342,269,342,110,296,281,283,301,342,269,296,299,301,298,299,296,660,300,193,272,660,193,316,351,294,294,351,298,596,294,293,302,303,305,304,305,303,306,307,303,308,303,307,309,320,310,311,310,320,312,313,320,311,320,313,285,228,315,315,314,285,317,318,335,320,335,318,322,323,321,326,327,325,328,325,327,308,329,303,304,303,329,319,628,318,320,318,628,330,625,628,314,628,625,320,628,314,300,660,331,309,335,320,321,323,325,326,325,323,332,333,334,334,333,325,324,325,333,328,334,325,315,320,314,312,320,336,336,320,315,223,336,315,284,228,285,200,228,284,285,314,289,294,608,316,337,339,338,298,351,340,351,341,340,341,345,340,337,342,339,299,298,340,339,343,355,344,355,343,340,345,342,299,340,301,342,345,352,346,352,345,339,352,343,344,343,352,306,303,353,302,353,303,241,305,242,348,353,349,349,353,305,302,305,353,241,349,305,348,333,350,332,350,333,342,352,339,306,353,350,348,350,353,304,354,305,243,242,354,354,242,305,337,338,355,339,355,338,321,351,316,346,349,352,348,349,346,344,352,349,348,346,333,333,346,341,341,346,345,215,355,347,344,347,355,337,356,342,214,342,356,241,347,349,344,349,347,324,351,325,321,325,351,341,351,333,324,333,351,337,355,356,214,356,355,361,489,362,489,363,362,362,363,375,364,375,363,365,362,375,367,369,371,368,369,367,372,373,374,368,374,369,369,374,373,367,371,366,370,375, +371,366,371,364,364,371,375,370,376,375,365,375,376,377,275,378,112,581,379,380,379,581,381,460,382,377,382,460,382,378,54,377,378,382,54,383,384,460,565,377,381,382,385,366,481,386,390,386,392,387,397,388,392,388,397,368,390,389,391,389,390,366,386,367,390,367,386,392,394,388,390,392,397,368,367,390,387,395,397,396,397,395,398,399,581,400,581,399,364,363,366,489,366,363,368,389,401,391,401,389,402,368,401,393,394,386,392,386,394,460,403,565,406,409,415,414,407,409,415,409,404,404,409,407,496,408,388,387,388,408,387,407,395,396,395,407,404,407,408,387,408,407,406,579,409,409,579,403,513,525,405,410,525,513,580,579,415,406,415,579,411,580,415,396,412,397,414,397,412,391,390,414,390,397,414,404,405,415,413,414,409,405,525,415,411,415,525,414,412,407,396,407,412,416,417,419,419,417,431,418,431,417,418,421,420,432,420,422,422,420,421,424,425,438,426,438,425,427,429,428,430,428,429,418,420,431,423,431,420,433,434,446,435,446,434,427,3,429,7,429,3,382,54,436,435,437,446,430,429,437,437,429,446,422,421,436,418,436,421,423,420,438,420,432,438,424,438,432,423,438,439,426,439,438,442,423,439,427,453,3,4,3,453,384,440,436,422,436,440,54,384,436,426,441,439,372,442,441,442,439,441,442,451,423,402,443,451,423,451,419,419,451,443,433,446,445,6,445,446,447,448,445,433,445,448,402,451,368,372,374,451,368,451,374,8,360,6,419,431,423,446,7,6,6,7,5,429,7,446,360,449,6,450,6,449,372,451,442,450,452,6,445,6,444,444,6,452,416,459,417,418,417,381,381,417,459,381,385,436,382,436,385,418,381,436,402,401,443,391,443,401,416,419,454,413,454,419,413,419,414,414,419,391,391,419,443,416,454,459,413,459,454,403,460,459,381,459,460,403,459,409,413,409,459,361,464,461,462,461,357,357,461,464,463,461,462,365,464,362,361,362,464,466,467,468,714,468,467,117,468,714,469,470,472,471,472,470,117,714,118,365,474,464,358,464,474,463,484,461,484,361,461,12,473,475,473,477,475,476,475,477,471,477,472,473,472,477,498,506,472,469,472,506,498,472,59,473,59,472,498,59,590,291,590,59,480,479,485,480,386,490,490,386,481,714,467,456,455,456,467,393,386,485,480,485, +386,480,483,479,478,479,483,465,490,484,361,484,490,458,456,486,486,456,727,457,727,456,465,483,490,480,490,483,465,484,483,487,488,484,484,488,483,478,483,488,481,489,490,361,490,489,536,479,541,541,479,491,485,479,536,478,491,479,463,492,484,487,484,492,481,366,489,393,485,493,494,493,485,495,496,497,394,497,388,388,497,496,393,497,394,498,590,499,380,581,500,400,501,581,500,581,502,502,581,501,12,475,13,359,13,476,476,13,475,503,504,507,505,506,504,504,506,507,498,507,506,508,509,507,503,507,509,505,510,506,469,506,510,508,507,498,404,513,405,640,516,514,515,516,640,517,514,516,511,518,512,410,512,520,520,512,521,521,512,672,522,523,519,519,523,518,512,518,523,496,524,408,408,524,513,511,513,524,404,408,513,511,512,513,410,513,512,521,411,520,520,411,410,410,411,525,494,526,493,519,518,526,493,526,495,495,526,518,527,526,528,494,528,526,482,548,485,494,485,548,495,497,493,393,493,497,496,518,524,495,518,496,511,524,518,527,519,526,531,544,535,532,549,544,544,549,535,533,535,549,534,535,533,538,547,537,540,541,539,531,542,544,543,544,542,545,546,547,543,547,546,543,548,547,547,548,537,482,537,548,551,537,540,540,537,541,538,537,551,536,541,537,545,547,552,538,552,547,485,536,482,536,537,482,531,535,553,534,553,535,543,546,544,544,546,554,545,554,546,532,544,554,550,533,549,494,548,528,543,542,548,528,548,527,527,548,542,532,554,556,556,554,552,545,552,554,538,556,552,557,498,702,559,560,557,558,557,560,558,561,557,562,563,561,557,561,563,686,555,553,553,555,542,527,542,555,531,553,542,557,563,498,508,498,563,273,564,275,378,275,564,273,378,564,275,565,276,280,276,565,377,565,275,280,565,566,566,565,579,567,280,566,569,570,584,724,584,571,571,584,570,572,584,724,568,567,566,573,574,575,575,574,576,569,576,574,112,575,576,295,567,595,113,112,379,582,566,578,403,579,565,566,579,578,577,578,580,580,578,579,112,398,581,582,710,331,300,331,710,582,568,566,568,582,583,400,399,584,398,576,399,584,399,569,569,399,576,578,577,710,577,683,710,578,710,582,529,575,108,112,108,575,530,529,108,573,575,529,586,638,458,588,589,499, +702,499,589,591,288,589,585,589,288,458,589,586,585,586,589,289,585,288,571,570,587,569,574,570,573,587,574,574,587,570,591,589,588,591,590,291,702,498,499,590,588,499,112,576,398,515,592,529,571,587,592,573,529,587,587,529,592,590,591,588,568,595,567,596,594,662,595,568,583,593,594,583,595,583,594,596,295,594,594,295,595,572,597,584,400,584,597,662,593,601,598,601,593,586,585,599,599,585,314,289,314,585,599,642,586,599,622,642,599,314,600,622,599,600,294,596,608,662,608,596,316,601,602,601,649,602,603,602,649,530,604,529,517,516,604,515,529,516,516,529,604,515,605,592,592,605,724,606,724,605,571,592,724,321,316,607,607,316,602,609,623,610,607,602,623,611,610,602,602,610,623,612,602,613,603,613,602,614,616,615,617,615,616,612,619,602,611,602,619,330,620,625,625,620,616,617,616,620,621,625,616,607,623,321,322,321,623,314,625,600,621,600,625,322,623,624,609,624,623,319,626,628,627,628,626,614,622,616,621,616,600,600,616,622,272,661,630,145,272,202,630,632,634,633,634,632,629,630,634,143,635,144,272,144,631,631,144,635,145,144,272,631,635,637,143,637,635,631,661,272,649,598,661,630,661,598,515,640,639,641,639,640,638,586,642,643,501,644,183,115,642,638,642,115,23,197,143,645,143,199,199,143,197,646,647,613,648,613,647,603,650,613,646,613,650,648,647,651,636,651,647,646,650,652,603,649,650,649,652,650,631,652,661,649,661,652,647,652,636,636,652,637,646,652,647,631,637,652,618,619,653,613,653,612,612,653,619,648,653,613,618,653,654,648,654,653,648,651,654,636,645,651,654,651,655,655,651,645,636,637,645,143,645,637,199,657,645,655,645,657,656,642,658,642,622,658,614,658,622,656,659,642,183,642,659,633,632,598,630,598,632,598,649,601,272,630,660,629,660,630,598,593,633,633,593,583,593,662,594,331,663,634,629,634,663,633,583,634,583,582,634,582,331,634,316,608,601,662,601,608,629,663,660,331,660,663,664,665,672,521,672,665,580,411,665,521,665,411,666,668,667,669,667,668,664,668,665,671,665,668,671,675,674,676,674,675,523,677,672,664,672,677,512,523,672,664,677,668,678,668,523,523,668,677,669,668,678,577,580,673,671,674,665, +673,665,674,673,580,665,673,682,577,679,577,682,670,713,682,681,682,680,680,682,713,679,682,681,679,681,577,666,684,668,671,668,684,680,683,681,577,681,683,522,555,685,687,685,686,686,685,555,671,690,688,691,688,690,671,688,675,676,675,688,669,678,692,523,692,678,641,693,639,696,639,691,691,639,693,515,639,696,689,690,694,666,692,690,690,692,694,687,694,692,671,684,690,666,690,684,644,501,704,572,697,501,704,501,697,698,716,686,689,694,716,687,686,694,694,686,716,676,693,674,641,674,693,699,533,700,550,700,533,523,522,692,689,701,690,695,696,701,691,690,696,690,701,696,676,688,693,691,693,688,527,555,519,522,519,555,522,685,692,687,692,685,458,702,589,703,705,486,458,486,702,699,644,533,644,704,533,486,705,702,557,702,705,559,557,705,530,707,708,709,708,707,300,710,706,710,713,706,706,713,707,709,707,713,640,711,712,530,708,711,712,711,709,709,711,708,530,108,707,706,707,108,670,640,713,640,712,713,709,713,712,517,604,514,514,604,711,530,711,604,640,514,711,641,640,674,682,674,670,670,674,640,673,674,682,680,713,683,710,683,713,714,115,118,116,118,115,458,714,456,458,638,714,534,715,553,686,553,698,698,553,715,698,715,716,717,718,715,695,716,718,718,716,715,534,719,715,720,715,719,720,721,715,717,715,721,717,724,718,606,718,724,720,719,722,534,722,719,572,724,723,717,723,724,704,722,533,534,533,722,695,701,716,689,716,701,666,667,692,669,692,667,606,605,718,515,696,605,718,605,695,695,605,696,717,697,723,572,723,697,720,722,721,704,697,722,717,721,697,697,721,722,400,597,501,572,501,597,643,644,725,699,725,644,643,726,501,502,501,726,703,486,727 + } + } + LayerElementSmoothing: 0 { + Version: 102 + Name: "" + MappingInformationType: "ByEdge" + ReferenceInformationType: "Direct" + Smoothing: *1800 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementMaterial: 0 { + Version: 101 + Name: "" + MappingInformationType: "AllSame" + ReferenceInformationType: "IndexToDirect" + Materials: *1 { + a: 0 + } + } + Layer: 0 { + Version: 100 + LayerElement: { + Type: "LayerElementNormal" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementBinormal" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementTangent" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementMaterial" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementSmoothing" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementUV" + TypedIndex: 0 + } + } + } + Geometry: 664391653536, "Geometry::", "Mesh" { + Vertices: *903 { + a: 53.8716583251953,-47.2680969238281,-5.02901554107666,16.9935531616211,-45.6243476867676,-54.4050712585449,17.698600769043,-55.7559928894043,36.9414825439453,29.7865219116211,-55.520378112793,36.1006469726563,16.8806953430176,-52.1357460021973,-13.4003782272339,43.5165596008301,-51.1639709472656,35.3437194824219,27.8316040039063,103.188484191895,9.08074188232422,39.0630302429199,-55.5878982543945,21.6009101867676,30.0010261535645,-53.073486328125,36.9719085693359,23.1708526611328,-42.746337890625,-54.4329681396484,29.0974998474121,103.907516479492,4.49119710922241,-69.0972518920898,-58.5790901184082,-8.0590124130249,-14.2433853149414,-58.5655899047852,25.4676055908203,-41.2160835266113,-58.8725547790527,32.3906440734863,-54.3833122253418,-59.7586898803711,18.3323211669922,-46.333065032959,-60.6065483093262,29.1505126953125,23.1345138549805,99.8368530273438,12.783504486084,-61.8694953918457,-57.7532958984375,11.2883892059326,-75.7869033813477,-56.9898147583008,-15.7952461242676,-64.7102127075195,-58.730224609375,4.87572908401489,14.2875080108643,102.083511352539,2.54586577415466,-82.5479507446289,-57.1590347290039,-26.7976303100586,-59.2694816589355,-56.7189102172852,13.8582601547241,-55.4677696228027,-53.0502243041992,-71.106689453125,-90.5327453613281,-56.7641563415527,-46.9989128112793,-97.6856002807617,-40.142707824707,-52.5575294494629,-87.9192810058594,-56.0310020446777,-34.7330360412598,-94.2769241333008,-52.5138778686523,-57.0901031494141,-92.0289535522461,-43.6393852233887,-62.6034164428711,-89.52783203125,-48.1057891845703,-72.6506576538086,-81.770637512207,-53.3918571472168,-75.9966125488281,-84.8960723876953,-36.6725273132324,-77.0381164550781,-86.3886871337891,-54.9889488220215,-57.0373115539551,-81.3576965332031,-54.9353256225586,-66.9919204711914,-85.9978485107422,-25.7236366271973,-74.8610000610352,1.48617124557495,93.3672866821289,7.15737628936768,-94.4254760742188,-24.7172470092773,-57.7030181884766,-97.3744583129883,-32.6124687194824,-53.4822654724121,-93.987419128418,-0.065363883972168,-46.8493118286133, +-89.1133728027344,-16.7536354064941,-58.2217597961426,-83.7976760864258,-5.73158264160156,-64.5970993041992,-85.5193786621094,3.53093528747559,-60.06396484375,-83.0400772094727,-12.5274715423584,-69.7527389526367,-93.3418960571289,8.82772350311279,-53.5505332946777,-89.3415985107422,18.4682025909424,-51.634521484375,-92.9610366821289,22.2950325012207,-46.186351776123,-32.4391174316406,-59.6006660461426,32.380729675293,-7.84535360336304,-59.2746620178223,35.5940322875977,-21.0445671081543,-59.7277221679688,32.3425941467285,1.84002637863159,-57.25341796875,38.5580368041992,-38.7113571166992,-45.1768188476563,32.9150924682617,-52.9764976501465,24.2099208831787,11.5919017791748,-47.6582260131836,17.6394786834717,22.4465141296387,-15.0922298431396,-28.4198246002197,42.2529945373535,-74.3000793457031,-5.65992975234985,-66.6917572021484,-10.697961807251,16.7566814422607,-54.762077331543,-82.7452545166016,31.43385887146,-42.8475723266602,-67.2224578857422,73.8065948486328,-11.747802734375,-80.8111801147461,47.9280662536621,-29.8128223419189,-73.3264312744141,66.7197113037109,-15.7671756744385,-74.9297943115234,45.0054664611816,-35.3903274536133,-78.3315505981445,59.7339630126953,-20.9950733184814,-78.5370254516602,40.9125442504883,-36.7165641784668,51.9197235107422,103.901840209961,4.4446234703064,-81.0893325805664,39.6196441650391,-33.2576446533203,-83.7571868896484,25.1417121887207,-13.965030670166,-83.722526550293,29.5261402130127,-13.9008474349976,68.5574188232422,101.749404907227,3.28607416152954,73.1136245727539,-43.5393562316895,-24.0417385101318,73.9104919433594,96.5120391845703,7.04238224029541,76.376091003418,-41.0809173583984,0.596641540527344,79.6336059570313,-32.3338584899902,-13.4710292816162,47.1009216308594,-42.1588897705078,34.9709625244141,86.0945892333984,3.69687271118164,1.51076078414917,72.906982421875,-23.758861541748,10.6799116134644,74.1947784423828,-18.1445465087891,11.7411594390869,71.4443664550781,-6.46144533157349,24.1512985229492,84.4189376831055,-1.16395473480225,10.242395401001,59.7531242370605,-52.1703948974609,28.0571708679199, +67.6082611083984,-49.7420654296875,18.1512222290039,63.6192398071289,-44.5446586608887,26.1010246276855,68.3517532348633,-39.1370887756348,15.4878768920898,71.0577239990234,-46.6217193603516,11.6383094787598,73.458740234375,-44.3191909790039,6.58889675140381,73.4704284667969,-42.3389854431152,-16.7338809967041,76.2896423339844,-43.0934677124023,-6.66795253753662,68.8737258911133,-29.7585849761963,16.0949478149414,83.2869110107422,-23.0748481750488,-35.3066635131836,85.6788940429688,11.2951793670654,-6.5612964630127,83.0875854492188,-11.5760250091553,-35.4980430603027,88.7160034179688,-4.83618497848511,-31.3172416687012,44.0165328979492,-42.3239059448242,-43.6140403747559,90.894287109375,21.4898681640625,-25.5449333190918,80.5267028808594,26.3131103515625,-1.33498668670654,80.9472045898438,51.6552352905273,5.70755195617676,73.7731704711914,28.2182540893555,24.8451728820801,68.3520278930664,19.9012470245361,26.6399593353271,92.0117263793945,48.3829650878906,-4.21016025543213,93.2750091552734,45.0562744140625,-18.5102577209473,95.26953125,26.8954124450684,-19.2414817810059,91.1131286621094,57.8833160400391,-18.0321788787842,84.5696258544922,84.7820281982422,2.66999530792236,81.9227447509766,37.0699996948242,-4.32074928283691,97.4256896972656,33.5915298461914,-19.05419921875,28.4168319702148,-17.5716762542725,30.8474540710449,74.7300872802734,84.5010833740234,11.2502470016479,-41.3859786987305,81.5521469116211,1.96423304080963,-46.1690292358398,80.8498687744141,-10.2771224975586,-57.005500793457,80.1256561279297,-7.13019943237305,-31.1843223571777,88.7082214355469,-5.61773920059204,-41.5601119995117,84.2038497924805,-5.07155323028564,-48.7638549804688,82.412971496582,-8.33373641967773,6.01948404312134,62.0804977416992,22.3496284484863,-8.43203163146973,69.4287567138672,19.6551094055176,-0.850710868835449,96.8674163818359,-2.99260258674622,-22.9664821624756,93.0951766967773,4.48961734771729,-8.38562965393066,93.7497100830078,4.06721782684326,82.2391204833984,84.073600769043,-7.94479465484619,-11.7112464904785,95.3723754882813,-2.16698408126831, +80.6978378295898,91.2709732055664,3.13374257087708,82.5681228637695,78.7918548583984,-12.8711547851563,49.6648101806641,55.7783508300781,26.396635055542,56.1284332275391,50.5579414367676,27.6344738006592,72.8145751953125,60.9932594299316,10.1671524047852,75.781867980957,61.258415222168,6.12025356292725,74.9158248901367,68.6092376708984,5.37470531463623,69.3029479980469,61.559944152832,20.4930458068848,87.0485305786133,76.2287445068359,3.27984857559204,74.7134628295898,92.9690551757813,-2.46494317054749,80.0453643798828,49.7102470397949,18.0005474090576,94.5436325073242,63.9845275878906,-1.60617303848267,91.5403671264648,68.6519775390625,1.07870554924011,70.1954193115234,14.0328149795532,-36.3531646728516,14.7903060913086,38.3633766174316,-42.9852638244629,82.4300994873047,88.232421875,-1.51666259765625,84.1679382324219,-2.61355590820313,-34.507740020752,90.7173767089844,16.023229598999,-26.0740833282471,75.8798294067383,19.4206161499023,15.736855506897,69.6282653808594,13.110728263855,25.4770889282227,78.4201202392578,44.6583938598633,17.6610260009766,83.6856307983398,8.73483371734619,7.34961032867432,70.1037521362305,79.2641143798828,14.9135475158691,94.1825637817383,41.8603820800781,-13.9186429977417,95.8618316650391,39.2899971008301,-15.43616771698,88.2517395019531,29.9454536437988,-6.68543672561646,92.03759765625,52.2294692993164,-18.2705039978027,94.0260238647461,28.11008644104,-22.2023944854736,90.198844909668,42.9114151000977,-6.30356359481812,94.868537902832,39.6123962402344,-19.6062488555908,88.4269638061523,45.7435607910156,-21.8942413330078,20.7564582824707,-27.4181804656982,35.8794898986816,-18.228982925415,16.3559303283691,33.112548828125,73.0818634033203,86.9940948486328,12.0291862487793,60.364372253418,6.80455160140991,28.4743919372559,-11.0813426971436,54.9382019042969,26.12917137146,-37.593147277832,52.8185234069824,19.1424903869629,80.6038360595703,88.5853424072266,5.12218427658081,74.0176773071289,80.8107223510742,11.7610006332397,-45.5305213928223,83.2912673950195,-6.46064710617065,-36.9357070922852,85.7451553344727,-5.031409740448, +-54.2238235473633,81.328971862793,-7.34694385528564,61.1396102905273,76.0938262939453,15.5267553329468,-13.3552913665771,88.597297668457,-7.7183723449707,-7.36547994613647,96.3419036865234,0.615142107009888,-27.205738067627,87.9740142822266,5.69975137710571,-18.4225082397461,84.7184982299805,10.7807950973511,-22.3237972259521,91.784309387207,-3.47111558914185,-5.5589017868042,95.0855102539063,-2.9065408706665,1.13879346847534,79.7074966430664,16.3695125579834,-12.9923543930054,80.5957946777344,15.3863773345947,69.0928573608398,57.8976364135742,23.6896095275879,77.231559753418,37.8241577148438,23.3174686431885,78.0221862792969,54.1747589111328,18.3911666870117,86.6488800048828,63.4273300170898,-17.9951457977295,52.3100357055664,77.154655456543,16.8846168518066,56.8763465881348,75.7869415283203,16.3853416442871,54.6256408691406,103.562744140625,1.60211181640625,92.0890197753906,65.0492935180664,0.703113794326782,83.8885192871094,59.3384208679199,3.18077325820923,81.3431854248047,76.3674926757813,5.16920614242554,78.4373931884766,-39.4644355773926,-37.2482376098633,37.0560989379883,-51.2092781066895,36.0771713256836,-33.5185470581055,-48.8150825500488,-69.4469909667969,10.2977924346924,97.1455612182617,6.07586765289307,2.74967336654663,-46.0315322875977,-61.1675186157227,-28.5316677093506,-45.9834480285645,-68.4462509155273,23.8083152770996,-53.4263076782227,36.9930953979492,8.63710784912109,-56.9636535644531,38.0571441650391,25.3798713684082,-43.7587356567383,-51.612491607666,4.46746492385864,-42.2472267150879,-61.5966415405273,32.6428375244141,-32.6479072570801,-50.0317840576172,-68.9544830322266,-58.899959564209,-13.30943775177,-71.3640975952148,-57.1307487487793,-12.0999774932861,-39.7689323425293,-60.6602554321289,32.1279067993164,-43.2337036132813,-60.2767066955566,31.1784782409668,-37.5803070068359,-58.8305282592773,33.003547668457,-51.5775680541992,-56.8006324768066,25.6490364074707,-59.02392578125,-59.7741432189941,10.1899690628052,-66.4085922241211,-57.5017776489258,-2.55000400543213,-78.5620727539063,-56.448127746582,-21.6479358673096, +-62.7305717468262,-58.2067108154297,9.7682523727417,-52.3887977600098,-36.4003524780273,21.4774971008301,-89.2448120117188,-52.8584289550781,-31.7045097351074,-49.0233612060547,-48.5041313171387,27.9279556274414,-48.374454498291,-60.0943450927734,26.2099742889404,-70.1359024047852,-55.3241653442383,-4.04374599456787,-64.6623382568359,-56.2022972106934,7.36102676391602,-84.2179107666016,-56.1732482910156,-40.3202705383301,10.4151239395142,98.2370910644531,-2.51571989059448,40.0176391601563,102.990097045898,4.832350730896,-75.2486953735352,-54.160228729248,-74.7141342163086,-51.6821441650391,-50.8849029541016,-73.0441970825195,-80.5479278564453,-54.4699974060059,-72.8998413085938,-78.2461471557617,-55.1906509399414,-57.7697105407715,-84.9149703979492,-55.4085693359375,-32.353759765625,-86.8983383178711,-55.6509246826172,-52.4606170654297,-86.0579528808594,-53.4828758239746,-62.8060684204102,-82.2992477416992,-54.4094696044922,-60.402759552002,-84.5330047607422,-46.8299522399902,-76.6675491333008,-91.0579223632813,-48.0653610229492,-64.1609191894531,-88.3378601074219,-31.1566276550293,-72.6639022827148,-85.7864532470703,-13.0980606079102,-65.8117141723633,-84.0229034423828,-19.6574287414551,-72.1647338867188,-81.3576889038086,-26.3134746551514,-75.5586013793945,-84.8871917724609,-29.7576751708984,-75.1843185424805,8.91298866271973,98.9684906005859,0.594467401504517,-85.0065460205078,-53.3841247558594,-72.711540222168,-42.2353401184082,-47.831615447998,-70.6443023681641,-53.9815216064453,-29.6665058135986,-72.5046005249023,-93.5125122070313,-32.5947875976563,-35.641731262207,-89.3259887695313,-24.0595169067383,-60.9534187316895,-84.0554122924805,12.6344709396362,-55.3702239990234,-87.9548721313477,25.557014465332,-45.0584259033203,-91.4240112304688,-0.365775108337402,-53.208080291748,-82.7904510498047,-0.930887699127197,-63.009391784668,-81.9405670166016,-9.60839366912842,-67.514762878418,-91.7117385864258,20.670825958252,-49.7968826293945,-14.8855876922607,-58.6776123046875,32.7469177246094,-24.9576988220215,-59.1341552734375,32.5177230834961, +-22.1703853607178,-58.0232467651367,35.0426330566406,-3.15281009674072,-58.4581718444824,37.7726135253906,-30.4557819366455,-33.0275535583496,38.98486328125,-33.1483192443848,-26.6199626922607,38.7267456054688,-16.2548332214355,37.7122802734375,-47.405647277832,-38.6495933532715,19.5837383270264,26.08909034729,-36.0684547424316,-11.0930128097534,36.106632232666,-89.4785385131836,26.9347553253174,-29.9827861785889,-77.9866104125977,44.95556640625,-34.0856742858887,-79.8843688964844,52.4170150756836,-25.1658668518066,-74.789680480957,34.1345901489258,-43.9563407897949,-71.1908187866211,68.8380661010742,-14.6485805511475,-56.9728851318359,78.2580261230469,-4.66860008239746,-60.3656997680664,78.0636291503906,-8.53117656707764,-78.662353515625,37.177116394043,-39.3126564025879,-74.9367752075195,64.0533905029297,-17.7411193847656,-84.6739349365234,39.3296051025391,-27.3876342773438,-71.3280563354492,69.6548309326172,-11.6708908081055,-76.9701843261719,7.16517734527588,-6.1615571975708,-78.2569198608398,60.4672737121582,-17.6713218688965,75.219108581543,-41.2858200073242,2.64138412475586,73.6211471557617,-34.7116851806641,8.68922901153564,77.5845565795898,-37.821159362793,-14.0955410003662,73.0526657104492,-42.4980850219727,-10.758394241333,61.4606704711914,102.386856079102,3.93909406661987,82.9148559570313,-14.3364334106445,-4.4057765007019,81.8435897827148,-6.47207832336426,11.9840412139893,79.8433990478516,-4.99211645126343,15.81822681427,77.5862350463867,-6.96393966674805,16.8842353820801,67.1425094604492,-31.4752388000488,22.5606956481934,68.9173812866211,-47.8916282653809,14.262638092041,64.6855087280273,-50.7639961242676,21.8176879882813,64.7498245239258,-51.843921661377,19.7380237579346,71.689338684082,-46.0514373779297,9.93833541870117,72.613525390625,-38.7431907653809,11.6849699020386,47.9769897460938,-52.4690093994141,33.4413299560547,77.1131286621094,-42.6634674072266,-2.04280281066895,70.1403274536133,-48.0681114196777,10.1176948547363,71.6884613037109,-42.7864761352539,-19.3940734863281,75.216438293457,87.6785507202148,-5.97157001495361, +66.7958297729492,-26.0422267913818,24.8853511810303,63.1140899658203,-30.6643753051758,27.4763164520264,79.7082138061523,-31.2907485961914,-36.510684967041,77.348014831543,-41.3624458312988,-30.8953666687012,70.9266357421875,97.8697357177734,0.716343402862549,81.7716293334961,-18.0557861328125,-34.9658966064453,78.5046310424805,-20.3749961853027,-37.8694229125977,92.0924377441406,11.4128952026367,-26.0911865234375,86.2479476928711,-10.1396360397339,-23.5380191802979,90.9133605957031,6.2423152923584,-17.4075660705566,83.5273284912109,72.5420761108398,-17.5103168487549,85.3397827148438,-6.86966514587402,-32.8843040466309,89.6042709350586,4.85874080657959,-28.9224128723145,-0.0306196212768555,-47.4806518554688,-60.3654174804688,-59.8949432373047,-58.4542350769043,13.2114601135254,21.5675601959229,102.739097595215,3.34343075752258,82.0483856201172,-32.7647247314453,-34.1891403198242,84.2181701660156,-17.6984786987305,-30.7826061248779,84.4883193969727,9.73207664489746,-2.89718246459961,78.5512390136719,45.7589683532715,20.6376762390137,68.7275390625,71.7695159912109,16.2503719329834,79.8566589355469,59.2365493774414,6.61362266540527 + } + PolygonVertexIndex: *1794 { + a: 271,7,-1,4,1,-189,292,4,-13,7,240,-5,240,12,-5,1,4,-293,7,187,-241,2,7,-4,188,91,-5,4,91,-181,8,3,-182,5,181,-275,274,181,-4,7,4,-1,16,20,-184,183,20,-226,189,292,-186,185,292,-183,184,292,-190,9,188,-2,1,292,-185,282,68,-181,4,180,-69,8,186,-4,2,3,-187,16,6,-21,10,294,-7,6,294,-21,2,187,-8,49,240,-188,150,187,-187,2,186,-188,181,150,-9,8,150,-187,72,150,-182,188,190,-92,1,184,-190,190,9,-190,1,189,-10,9,190,-189,18,191,-193,11,192,-192,12,193,-198,14,197,-194,292,12,-199,14,193,-205,15,204,-194,194,193,-14,13,193,-196,15,193,-195,46,195,-194,203,196,-16,12,197,-199,19,198,-198,21,191,-200,18,199,-192,13,15,-195,17,200,-294,19,197,-201,200,197,-294,14,293,-198,21,207,-192,292,191,-208,292,198,-192,11,191,-199,46,193,-13,17,293,-23,14,22,-294,18,192,-206,11,205,-193,22,201,-207,17,22,-207,22,196,-202,196,203,-202,196,204,-16,14,204,-23,204,196,-23,18,205,-203,19,206,-206,18,202,-200,21,199,-203,205,201,-258,206,201,-206,17,206,-201,19,200,-207,11,198,-206,19,205,-199,69,209,-7,63,209,-70,213,182,-208,218,210,-31,228,211,-211,23,210,-212,213,23,-183,33,212,-211,30,210,-213,33,210,-214,213,210,-24,21,202,-215,26,214,-203,27,24,-26,26,25,-25,24,207,-27,116,35,-184,24,215,-214,32,213,-216,27,219,-217,24,213,-208,27,216,-25,215,24,-33,32,24,-217,33,213,-218,32,217,-214,21,214,-208,26,207,-215,30,29,-219,28,219,-26,27,25,-220,230,221,-221,34,220,-222,42,222,-222,34,221,-223,218,220,-32,29,220,-219,29,219,-221,220,219,-29,42,223,-223,34,222,-224,223,210,-32,31,210,-219,228,210,-224,34,223,-225,31,224,-224,20,208,-226,114,225,-209,37,28,-26,28,230,-221,33,217,-217,32,216,-218,33,226,-213,212,226,-31,30,226,-30,31,220,-225,34,224,-221,216,219,-227,29,226,-220,33,216,-227,207,182,-293,182,227,-186,228,185,-228,228,227,-212,228,189,-186,211,227,-24,23,227,-183,10,6,-210,228,223,-55,42,54,-224,55,228,-55,16,183,-36,205,257,-203,202,229,-27,26,229,-26,25,229,-38,229,38,-38,28,36,-231,233,39,-37,36,39,-231,37,36,-29,38,36,-38,38,233,-37,202,257,-230,257,38,-230,44,231,-44,41,43,-232,231,232,-250,56,249,-233,41, +231,-55,44,232,-232,41,54,-235,40,234,-55,42,235,-55,40,54,-236,40,233,-42,41,233,-44,40,221,-40,230,39,-222,233,40,-40,10,208,-295,20,294,-209,40,235,-222,42,221,-236,41,234,-41,44,236,-233,45,232,-237,45,236,-44,44,43,-237,43,38,-46,45,38,-247,233,38,-44,47,237,-13,48,12,-238,46,12,-239,48,238,-13,47,12,-241,195,239,-51,50,239,-242,46,239,-196,47,239,-238,48,237,-240,48,239,-239,46,238,-240,241,239,-241,47,240,-240,201,203,-51,203,15,-51,15,13,-51,13,195,-51,51,242,-246,174,6,-17,241,242,-51,50,242,-202,201,242,-52,168,16,-36,201,51,-258,53,241,-241,49,53,-241,53,187,-151,49,187,-54,242,53,-246,52,245,-245,244,245,-152,151,245,-54,53,242,-242,55,190,-229,55,133,-191,190,189,-229,243,133,-56,52,51,-246,51,52,-245,251,256,-52,155,51,-245,56,246,-65,58,247,-65,62,64,-248,61,60,-249,58,248,-61,62,247,-61,58,60,-248,243,231,-250,249,107,-244,59,250,-255,60,254,-251,108,252,-252,57,250,-257,59,256,-251,62,253,-65,56,64,-254,57,160,-251,60,250,-161,111,107,-161,60,160,-108,16,168,-113,61,254,-61,251,252,-257,57,256,-253,61,258,-255,254,258,-257,59,254,-257,249,60,-108,62,60,-254,253,60,-250,56,253,-250,55,231,-244,54,231,-56,256,66,-52,51,66,-258,58,64,-256,64,246,-256,255,258,-249,61,248,-259,257,66,-66,58,255,-249,56,232,-247,45,246,-233,255,246,-67,65,66,-247,255,66,-259,38,257,-247,65,246,-258,66,256,-259,295,71,-262,264,70,-276,74,70,-265,83,259,-261,74,260,-71,70,260,-260,264,275,-72,85,261,-276,71,275,-262,85,262,-262,84,261,-263,67,263,-70,104,72,-281,104,150,-73,72,181,-6,75,264,-266,77,265,-74,74,264,-76,77,266,-266,88,73,-265,265,264,-74,267,266,-77,77,73,-141,76,266,-141,77,140,-267,76,153,-281,96,153,-139,76,138,-154,266,267,-266,75,265,-268,279,267,-77,86,268,-82,80,81,-269,270,80,-79,78,271,-271,79,270,-272,83,272,-277,82,276,-273,78,7,-272,82,269,-277,79,271,-270,269,271,-277,78,80,-275,81,80,-270,80,270,-270,79,269,-271,81,269,-274,82,273,-270,78,274,-8,3,7,-275,72,5,-275,82,272,-274,83,273,-273,273,260,-82,81,260,-87,86,260,-75,83,276,-276,0,275,-277,70,259,-276,83,275,-260,4,68,-1,276,271,-1,68,277,-1, +84,0,-278,83,260,-274,84,262,-1,275,0,-86,85,0,-263,80,268,-281,280,268,-280,72,274,-281,80,280,-275,279,268,-87,279,86,-268,267,86,-76,75,86,-75,280,279,-77,281,295,-181,180,295,-283,87,295,-282,84,282,-262,295,261,-283,67,283,-264,176,263,-284,63,263,-177,89,284,-286,87,285,-285,63,176,-210,84,277,-283,68,282,-278,87,296,-296,91,190,-181,190,281,-181,87,281,-286,190,285,-282,132,135,-286,89,285,-136,132,285,-191,132,190,-134,287,286,-289,176,283,-279,128,278,-284,88,264,-289,287,288,-265,90,286,-288,295,296,-288,176,278,-290,289,278,-121,117,120,-279,89,290,-297,296,290,-288,90,287,-291,264,71,-288,295,287,-72,288,286,-100,90,291,-287,87,284,-297,89,296,-285,73,297,-141,88,297,-74,67,69,-284,119,134,-70,283,69,-129,128,69,-135,286,291,-137,90,135,-292,291,135,-137,132,136,-136,90,290,-136,89,135,-291,92,136,-133,138,137,-96,95,137,-172,94,139,-94,93,139,-138,137,138,-141,76,140,-139,95,96,-139,88,93,-298,297,93,-138,99,144,-289,88,288,-145,297,137,-141,97,142,-131,98,145,-143,142,145,-131,100,130,-146,103,143,-100,92,286,-137,97,147,-143,147,143,-143,147,144,-144,143,144,-100,146,99,-93,92,99,-287,103,99,-147,88,144,-94,93,144,-103,102,144,-148,98,142,-149,148,142,-144,103,148,-144,149,132,-290,100,145,-150,98,149,-146,98,148,-150,103,146,-149,149,148,-147,178,94,-98,97,94,-148,102,147,-95,149,146,-133,92,132,-147,150,104,-54,53,104,-152,151,104,-154,179,156,-158,157,156,-106,101,156,-180,63,69,-264,280,153,-105,122,153,-97,153,121,-113,16,112,-122,151,153,-155,119,69,-157,156,69,-106,105,69,-153,153,122,-122,141,152,-7,69,6,-153,174,141,-7,243,289,-134,176,289,-244,289,132,-134,152,141,-106,105,141,-158,113,155,-155,151,154,-156,155,244,-152,107,162,-244,107,109,-163,51,155,-252,251,113,-107,113,169,-107,174,161,-142,111,160,-159,110,158,-107,106,158,-161,109,158,-160,110,159,-159,164,159,-107,110,106,-160,111,158,-108,106,160,-252,108,251,-161,57,252,-161,108,160,-253,107,158,-110,168,169,-114,168,35,-117,141,161,-300,126,299,-162,176,243,-163,117,134,-121,114,208,-163,176,162,-209,183,225,-117,163,116,-115,114, +116,-226,115,164,-166,106,169,-165,169,165,-165,168,165,-170,115,165,-117,168,116,-166,109,159,-116,164,115,-160,109,115,-167,116,163,-116,166,115,-119,118,115,-164,114,167,-164,118,163,-168,118,162,-167,162,109,-167,118,167,-163,114,162,-168,112,168,-114,113,154,-113,154,153,-113,155,113,-252,95,171,-97,172,298,-130,170,171,-299,137,139,-172,129,298,-140,139,298,-172,122,171,-171,122,96,-172,170,298,-173,300,94,-179,125,299,-124,123,299,-127,141,299,-126,124,123,-301,172,129,-124,123,129,-301,170,172,-124,120,134,-131,130,134,-102,124,300,-179,289,100,-174,139,94,-130,123,124,-126,170,123,-127,102,94,-94,300,129,-95,289,120,-101,120,130,-101,149,289,-174,100,149,-174,16,121,-175,175,174,-122,122,161,-122,161,175,-122,174,175,-162,126,161,-171,122,170,-162,176,208,-210,10,209,-209,130,177,-98,178,97,-178,127,179,-178,125,178,-180,179,178,-178,130,131,-178,127,177,-132,101,179,-128,125,124,-179,141,125,-158,179,157,-126,127,131,-102,101,131,-131,119,156,-135,101,134,-157,117,278,-135,128,134,-279 + } + Edges: *897 { + a: 8,11,17,311,9,74,476,5,23,38,21,29,40,68,80,404,35,59,24,78,30,89,69,84,57,62,110,134,154,131,137,168,155,159,162,186,125,194,197,120,165,164,133,128,161,129,143,149,140,152,236,242,201,233,206,122,123,200,207,210,245,171,176,234,561,46,235,215,173,180,222,464,278,264,267,290,284,282,287,299,305,302,42,306,314,183,297,296,320,317,315,300,377,407,357,405,318,346,350,395,396,392,386,356,369,272,383,368,359,399,345,336,335,360,365,372,417,319,413,188,273,53,449,378,402,468,487,44,303,408,493,362,490,504,480,519,536,530,548,539,545,540,516,521,495,518,354,552,581,576,527,531,593,584,621,146,600,599,626,605,606,150,597,602,611,618,641,640,617,653,672,665,675,635,87,695,473,710,700,699,722,716,728,725,737,717,524,732,726,731,752,782,746,723,756,762,734,794,786,750,770,765,755,759,761,740,779,776,525,747,266,822,854,729,830,795,834,857,829,836,735,842,579,1122,878,891,875,881,893,874,876,1235,104,903,906,32,914,919,925,920,917,918,923,927,924,962,935,947,938,945,1001,992,968,981,998,1022,977,975,1076,971,972,1121,1173,984,1190,987,879,1040,978,983,980,1241,1026,897,902,1037,1011,1059,1010,1043,1061,1056,997,1196,960,1088,1172,900,872,1109,1107,1110,1105,28,1140,1128,1146,1124,1127,1157,1163,1175,1116,1181,870,1182,1178,1187,929,1169,1197,1205,1125,1130,1184,1199,1214,1160,1225,1356,1166,65,1244,1215,1155,1245,1262,1265,1432,1277,941,1268,1289,1271,905,1443,1343,1433,1295,1313,1310,1301,1311,1312,1314,1304,1299,1318,1320,1302,1260,1346,1382,1284,1331,1349,1353,1358,1361,1376,1362,1373,1337,680,1403,1406,1397,1415,1416,654,1421,785,708,1427,1424,1466,1470,758,777,1500,1493,1490,1503,1499,1491,1517,771,1532,1527,1541,1556,1547,1562,1569,1505,1682,1580,1595,1596,1601,1602,1586,1592,1574,719,1477,1616,1529,1679,1281,1644,1634,1267,1636,1646,1655,1697,1661,1670,1664,1535,1685,1667,1652,1640,1653,1676,1687,1688,1538,1712,1721,1686,1722,1485,1233,1542,1752,1743,1751,1754,1459,1631,1766,1763,1404,1194,3,0,1,7,10,19,22,6,12,25,31,47,54,64,70,4,52,76,82,18,91,92,96,106,113,105,56,112,121,127,136,141,145,157,163,172, +178,184,190,126,199,205,211,212,217,220,138,226,216,238,243,244,250,232,256,262,261,268,1550,275,274,280,283,276,279,295,301,307,313,269,325,312,334,340,349,355,361,366,373,348,379,384,270,394,400,412,418,424,427,433,434,445,451,50,447,444,466,467,310,478,481,484,492,501,497,511,489,523,529,522,535,541,546,550,499,553,554,562,568,507,537,577,583,588,592,598,604,612,616,622,628,634,643,614,657,658,661,651,674,90,678,684,652,688,685,75,453,702,471,692,689,711,720,724,727,733,739,748,751,757,760,766,656,772,778,666,784,753,790,800,804,812,744,816,826,670,835,841,853,859,862,823,799,63,873,880,887,889,892,898,904,907,102,33,916,915,928,890,908,951,934,937,940,946,949,950,959,955,933,964,965,969,973,966,979,988,1000,1003,1009,1015,1024,1030,882,1039,1045,1051,994,1057,1029,1066,1041,1079,1081,1090,1078,1101,1111,1117,1119,1126,1135,1144,1103,1150,1156,1152,703,1168,1171,1177,1167,1186,1141,1192,1201,1207,1213,1216,1219,1224,1231,1234,1243,1249,1255,1251,1264,1274,1273,1276,1263,1291,1227,1300,1306,1308,1324,1290,1329,1339,1323,1321,1352,1360,1366,1369,1378,1317,1384,1390,909,1393,1396,1402,1398,1413,1417,1418,263,1423,1426,1439,1437,1447,1446,1451,1357,1462,1461,1471,1473,1474,1480,1483,1489,1496,1498,1504,1513,1519,1497,1482,668,309,1534,1543,1546,1554,1552,1561,1564,1566,1579,1560,1585,1588,1597,1603,1609,1463,1618,1479,1627,1630,1633,1269,1632,1629,1536,1656,1666,1672,1678,1681,1665,1693,1690,1705,1719,1723,1725,1732,1738,1132,1748,1750,1759,1758,1749,1400,1783,1789,1193,34,43,49,48,79,97,111,142,175,153,271,289,328,367,385,332,421,457,496,513,517,547,589,613,646,691,687,718,796,808,832,847,871,883,963,970,991,1033,2,1069,1075,1093,1102,1189,1198,1237,1246,1270,1285,1303,1330,1342,1348,1375,1399,948,1429,1438,1456,1486,1481,1492,1510,1555,1573,1591,1639,1435,1374,1657,1669,1658,1717,1744,1753,1771,1777 + } + GeometryVersion: 124 + LayerElementNormal: 0 { + Version: 102 + Name: "" + MappingInformationType: "ByVertice" + ReferenceInformationType: "Direct" + Normals: *903 { + a: 0.157322779297829,-0.976883888244629,-0.144732654094696,0.20200814306736,-0.954576313495636,-0.219035968184471,0.133600741624832,-0.955933213233948,0.261424154043198,0.0911286771297455,-0.98224949836731,0.163955718278885,0.0801465213298798,-0.987669050693512,-0.134485214948654,0.198319062590599,-0.156124636530876,0.967623233795166,0.119034208357334,0.615834951400757,0.778831362724304,0.0882723107933998,-0.988213837146759,-0.125065371394157,0.0717625394463539,0.0268547367304564,0.997060120105743,0.399958044290543,-0.077326126396656,-0.913265645503998,0.051683496683836,0.865733861923218,-0.497829109430313,-0.434094935655594,-0.872330188751221,0.224947899580002,0.0560377314686775,-0.991973280906677,-0.113352552056313,-0.431272506713867,0.0216005612164736,0.90196305513382,-0.390118449926376,-0.879015982151031,0.274113893508911,-0.509965479373932,-0.169524550437927,0.843324720859528,-0.0380578488111496,0.382243871688843,0.92327743768692,-0.763112246990204,0.0947711765766144,0.639279365539551,-0.593048810958862,-0.730084121227264,0.33951473236084,-0.519406318664551,-0.845190942287445,0.12597419321537,-0.34296989440918,0.925282180309296,0.161939844489098,-0.227467089891434,-0.971459746360779,0.0672650635242462,-0.798825740814209,0.0301550701260567,0.60080623626709,0.160237431526184,-0.987068176269531,0.00451769819483161,-0.690107405185699,-0.712618350982666,0.126201882958412,-0.980312049388886,-0.160072714090347,0.115607716143131,-0.876224160194397,-0.407158076763153,0.257785975933075,-0.82309764623642,-0.534392893314362,-0.192183747887611,-0.911515831947327,0.0383781529963017,-0.40947037935257,-0.895390510559082,-0.128989860415459,-0.426189482212067,-0.126449465751648,-0.390834271907806,-0.911734104156494,-0.00472681131213903,0.0232280883938074,-0.999719023704529,-0.108282335102558,-0.971994698047638,-0.208569526672363,-0.0835540145635605,-0.99553769826889,-0.0438558608293533,-0.753450393676758,0.291356295347214,-0.58942699432373,-0.305734038352966,0.566295921802521,0.765398919582367,-0.823030114173889,0.161908254027367,-0.544432997703552, +-0.997897982597351,0.0644018724560738,-0.00720923719927669,-0.954169273376465,0.0560929402709007,0.293963521718979,-0.693781077861786,0.177870959043503,-0.697875142097473,-0.707432985305786,0.201752901077271,-0.677373111248016,-0.436527580022812,0.33410769701004,-0.835353672504425,-0.171601891517639,0.424765706062317,-0.88889080286026,-0.886497437953949,0.119732819497585,-0.446974724531174,-0.0799281522631645,0.510950207710266,-0.855886280536652,-0.97862446308136,0.177664235234261,0.103584431111813,0.079597033560276,-0.941871464252472,0.326408267021179,0.0607781708240509,-0.991113662719727,0.118320740759373,-0.00867374148219824,-0.99868506193161,0.0505271181464195,0.0164042767137289,-0.149483978748322,0.988628029823303,-0.463094711303711,-0.0767057910561562,0.882983326911926,-0.650469183921814,0.135791823267937,0.747295439243317,-0.759885311126709,0.120594501495361,0.638773202896118,0.0866061672568321,0.106292359530926,0.990556001663208,0.0357698574662209,0.404380053281784,-0.913891315460205,0.195381566882133,0.209785938262939,-0.958027005195618,-0.681110501289368,0.615439891815186,-0.396638631820679,-0.333654791116714,0.776019811630249,-0.535226821899414,-0.712925791740417,0.510939180850983,-0.480289489030838,-0.743329286575317,0.635712802410126,-0.208160609006882,-0.124680824577808,0.625659227371216,-0.770068228244781,-0.40343564748764,0.649001657962799,-0.645008862018585,-0.631263315677643,0.468405693769455,-0.618144750595093,-0.000375739968148991,0.593437016010284,0.804880321025848,-0.809861600399017,0.425638377666473,-0.403678506612778,-0.917503595352173,-0.1612209379673,0.363586276769638,-0.691288530826569,0.143082171678543,0.708270967006683,0.29478245973587,0.951342284679413,0.0897279530763626,0.13406440615654,-0.973145484924316,-0.187121793627739,0.231894731521606,0.542764186859131,0.807237207889557,0.885549306869507,-0.130098104476929,0.445956230163574,0.967220664024353,-0.240273579955101,0.0821748450398445,0.231777235865593,0.173776671290398,0.957121133804321,0.996144592761993,-0.0844751521945,0.0236600115895271, +0.868099570274353,-0.143461257219315,0.475207328796387,0.864381909370422,-0.404402762651443,0.298834711313248,0.573805868625641,-0.0111307827755809,0.818915724754334,0.904455065727234,-0.010189414024353,0.426447242498398,0.324363857507706,-0.844575047492981,0.426005840301514,0.924660801887512,-0.283793419599533,0.253896981477737,0.640954077243805,-0.0885759294033051,0.762451410293579,0.8830286860466,-0.0724378377199173,0.463695049285889,0.843962371349335,-0.282023519277573,0.456278800964355,0.908990025520325,-0.278050392866135,0.310523986816406,0.467209786176682,-0.882558405399323,0.0529685392975807,0.36546117067337,-0.923398315906525,-0.117360688745975,0.894043147563934,-0.21590967476368,0.392517387866974,0.844079673290253,-0.0560619719326496,-0.533279001712799,0.903265535831451,-0.0642911717295647,0.424238264560699,0.689677238464355,-0.0782430171966553,-0.719877302646637,0.953349888324738,-0.265800058841705,-0.143087938427925,0.165379375219345,-0.901628732681274,-0.399643927812576,0.510116696357727,0.18648162484169,-0.839646100997925,0.921014487743378,0.00156996631994843,0.389525324106216,0.9268479347229,-0.0894282758235931,0.36463063955307,0.80555921792984,-0.194914326071739,0.559537887573242,0.21602775156498,0.029452646151185,0.975942969322205,0.7621009349823,-0.275661587715149,0.585843801498413,0.847907900810242,0.239082172513008,-0.473172217607498,0.914028167724609,-0.1615379601717,0.372099488973618,0.800590455532074,0.34441140294075,-0.490342378616333,0.870736360549927,0.401120334863663,0.284465789794922,0.76099020242691,-0.171729058027267,0.625622093677521,0.979634881019592,-0.0230925045907497,-0.199454948306084,0.115018911659718,0.0960220247507095,0.988711476325989,0.64239913225174,0.156096994876862,0.750304698944092,-0.438811808824539,0.339307367801666,0.832054495811462,-0.0966795012354851,0.623951971530914,-0.775459110736847,-0.481414198875427,0.815421462059021,0.321447312831879,-0.201819390058517,0.773992300033569,-0.60017067193985,-0.31011775135994,0.890555799007416,0.33277228474617,-0.178816333413124,0.845734834671021,-0.502749741077423, +0.00599746918305755,0.21438455581665,0.97673088312149,-0.224497780203819,0.418974459171295,0.879807472229004,-0.163646548986435,0.883235156536102,-0.439449071884155,-0.27602019906044,0.820831000804901,0.500049412250519,-0.091844730079174,0.689831972122192,0.718119978904724,0.374296724796295,0.695095598697662,-0.61379486322403,-0.172108948230743,0.880076587200165,-0.442542135715485,0.731944501399994,0.676220595836639,0.0835637822747231,0.761218369007111,0.48076468706131,-0.435214817523956,-0.0495276115834713,0.132097437977791,0.989998638629913,0.0598510093986988,0.139072746038437,0.988471865653992,0.761106133460999,0.4529929459095,0.464235723018646,0.531510651111603,0.33221822977066,0.779183804988861,0.539338290691376,-0.0931184962391853,0.836924850940704,0.795482337474823,0.340059190988541,0.501565039157867,0.459055155515671,0.0798648446798325,0.884810745716095,0.469633311033249,0.744427025318146,-0.474629163742065,0.954214990139008,0.134977877140045,0.266935914754868,0.936802446842194,0.308577358722687,-0.164867475628853,0.792645990848541,0.253353357315063,0.554548859596252,0.222821488976479,0.188272923231125,-0.956506073474884,0.198837161064148,0.254289031028748,-0.946467638015747,0.76623409986496,0.557625889778137,-0.319278329610825,0.34450751543045,0.153871387243271,-0.926087558269501,0.426388949155808,0.186328008770943,-0.885140895843506,0.932252585887909,-0.00460399454459548,0.361779004335403,0.692411839962006,-0.0180184096097946,0.721277475357056,0.981113135814667,-0.109361782670021,0.159552112221718,0.865393936634064,0.245909795165062,0.43660244345665,0.182753175497055,0.2581906914711,0.948651134967804,0.996920049190521,0.0758256912231445,0.0200226455926895,0.881207764148712,-0.075648620724678,0.466637074947357,0.745946764945984,-0.0990786775946617,0.658594608306885,0.9319207072258,0.125975236296654,-0.340079545974731,0.469931542873383,0.139212295413017,-0.871656000614166,0.629829227924347,-0.331807523965836,0.702295482158661,0.631707668304443,0.237287491559982,-0.737997353076935,0.379458010196686,0.199515283107758,-0.903440773487091, +0.160202533006668,0.164036840200424,0.973358690738678,0.0132718607783318,0.175271555781364,0.984430730342865,0.118385091423988,0.387284427881241,0.914328038692474,0.075115978717804,0.0501668937504292,0.995912075042725,-0.0166983995586634,0.224081367254257,0.974427342414856,-0.458789825439453,0.313838273286819,0.831274628639221,0.676262676715851,0.232560202479362,0.698988139629364,0.644946455955505,-0.169079542160034,0.745289266109467,-0.275706738233566,0.960753560066223,-0.0306341294199228,-0.442644476890564,0.847374975681305,0.293294340372086,-0.254009008407593,0.76877772808075,-0.58690732717514,0.101096384227276,0.283774733543396,0.953546822071075,-0.0428007878363132,0.615659773349762,-0.786848843097687,0.0060493522323668,0.953773617744446,0.30046483874321,-0.455545395612717,0.497064709663391,0.738515436649323,-0.0762397199869156,0.616649150848389,0.783537805080414,-0.204611673951149,0.864116907119751,-0.459821671247482,-0.211709827184677,0.78679370880127,-0.579771101474762,-0.136326521635056,0.393961787223816,0.908960580825806,-0.303241074085236,0.318205833435059,0.898214876651764,0.237486377358437,0.338788837194443,0.910396814346313,0.515306234359741,0.0231819935142994,0.856692433357239,0.706036925315857,0.55680900812149,0.437579244375229,0.395131468772888,0.199240803718567,-0.89675772190094,0.132075980305672,0.367023110389709,0.920787692070007,0.180573910474777,0.379012912511826,0.907602488994598,0.0331422835588455,0.584841847419739,-0.81046998500824,0.421344578266144,-0.145104676485062,0.895216941833496,0.447848349809647,-0.092379167675972,0.889324486255646,0.429015576839447,-0.102882690727711,0.897419035434723,0.248375430703163,-0.761839807033539,-0.598255515098572,0.0959655195474625,-0.00160758697893471,0.995383381843567,0.085639625787735,-0.985753297805786,-0.144762888550758,-0.341244012117386,0.853421211242676,0.393985837697983,0.294115632772446,-0.549820423126221,-0.78178858757019,0.201399475336075,0.0281268805265427,-0.979105234146118,0.0446157827973366,0.0273345019668341,0.998630106449127,0.163392305374146,-0.297759532928467,0.940554141998291, +0.25129508972168,-0.92403370141983,-0.288118869066238,0.255778849124908,0.280696511268616,-0.92508739233017,0.238298311829567,0.120814099907875,-0.96364814043045,0.108014293015003,-0.991580784320831,-0.0714169666171074,-0.387013018131256,-0.882849335670471,0.26607882976532,0.0552235916256905,-0.995937764644623,-0.0711222440004349,-0.418182104825974,-0.462546914815903,0.781776249408722,-0.126997515559196,-0.0503280833363533,0.990625381469727,-0.797832787036896,-0.0637890696525574,0.599494576454163,0.0759027451276779,-0.980008244514465,-0.183908864855766,0.0632939413189888,-0.993309557437897,-0.0965919122099876,-0.530113935470581,-0.782496094703674,0.326617479324341,-0.572804629802704,-0.743591785430908,0.344914466142654,-0.736974954605103,0.0334244966506958,0.675093114376068,-0.842758119106293,-0.0924863591790199,0.530287742614746,-0.584661245346069,0.13322214782238,0.800264358520508,-0.392547011375427,-0.893506407737732,0.218066707253456,-0.815338313579559,-0.0725991427898407,0.574415147304535,-0.864399671554565,0.152249485254288,0.47920086979866,0.0752310231328011,-0.990785479545593,-0.112625285983086,0.0168625917285681,0.483928680419922,-0.874944984912872,0.0256049148738384,0.99792617559433,0.0590570904314518,0.12245000898838,-0.448177009820938,-0.885518729686737,0.133989408612251,-0.0503473542630672,-0.989702999591827,-0.0887716859579086,-0.984106957912445,-0.153795316815376,0.121110811829567,-0.992575407028198,-0.0112343123182654,-0.474733978509903,-0.877107858657837,0.0728647857904434,-0.0433873757719994,-0.976759791374207,-0.209899812936783,-0.473043888807297,-0.848039746284485,-0.23886850476265,-0.155442342162132,-0.984306275844574,-0.0835396870970726,-0.258569777011871,-0.0562752075493336,-0.964352011680603,-0.901283264160156,-0.246150761842728,-0.356508672237396,-0.94200074672699,0.14642222225666,-0.301985412836075,-0.907352983951569,0.266471892595291,-0.325120151042938,-0.460601836442947,0.420852988958359,-0.78149139881134,0.124069631099701,0.172546222805977,-0.977156341075897,-0.452399283647537,0.145002484321594,-0.879948437213898, +-0.270934253931046,0.949540615081787,0.158010199666023,-0.599641859531403,-0.761497974395752,-0.246069744229317,0.173561230301857,-0.0221251901239157,-0.984574496746063,0.165290832519531,0.184038937091827,-0.968921363353729,-0.908579170703888,-0.006054253783077,0.417668908834457,-0.888561844825745,0.198243319988251,-0.413711756467819,-0.0649756342172623,0.485046029090881,-0.872071385383606,-0.42779877781868,0.687809586524963,-0.586435079574585,-0.850495338439941,0.0572040863335133,-0.522862553596497,-0.194549456238747,0.422530502080917,-0.885222256183624,-0.371827006340027,0.530658781528473,-0.761673152446747,-0.563555121421814,0.493223398923874,-0.662673652172089,-0.00826657563447952,-0.999873816967011,0.0135728940367699,0.035833116620779,-0.995064377784729,0.0925350189208984,-0.166528597474098,-0.223597273230553,0.960350155830383,0.00885468721389771,-0.974031865596771,0.226237595081329,-0.225084975361824,-0.185178399085999,0.956580221652985,-0.611235082149506,0.0839018598198891,0.786989331245422,-0.0192163735628128,0.537116229534149,-0.843289375305176,-0.402309685945511,0.235188916325569,0.884778499603271,-0.411247164011002,0.13286504149437,0.901788592338562,-0.952724874019623,0.0214445386081934,0.303076773881912,-0.567791700363159,0.464022576808929,-0.679923295974731,-0.792996644973755,0.453140497207642,-0.407210052013397,-0.0923816934227943,0.56743860244751,-0.818216979503632,-0.190105140209198,0.666731059551239,-0.720645308494568,-0.509177446365356,0.310856848955154,0.802562296390533,-0.604092299938202,0.717072188854218,0.347677916288376,-0.461111754179001,0.619428813457489,-0.63536125421524,-0.35839381814003,0.692234933376312,-0.626390218734741,-0.960847198963165,0.261968433856964,0.0902505218982697,-0.590140640735626,0.192921414971352,0.78391021490097,-0.776149570941925,0.0294096302241087,0.629862487316132,-0.858577787876129,0.24096217751503,0.452527761459351,0.914797067642212,-0.10836211591959,0.389106541872025,0.904705166816711,-0.0251983739435673,0.425292462110519,0.875555753707886,-0.482174426317215,0.0301656369119883, +0.278590679168701,-0.946800529956818,-0.16110847890377,0.238874211907387,0.942313551902771,0.234487265348434,0.946122825145721,-0.234758779406548,0.223024755716324,0.87463241815567,-0.386022984981537,0.293264895677567,0.688440561294556,0.166964843869209,0.70581316947937,0.781149864196777,-0.322735249996185,0.534459412097931,0.900870084762573,-0.10090859234333,0.422197163105011,0.883145391941071,-0.156048163771629,0.442383527755737,0.836440026760101,-0.272447139024735,0.475542455911636,0.156342148780823,-0.970371246337891,-0.184219345450401,0.906718254089355,-0.310891211032867,0.284971445798874,0.832090973854065,0.0346587039530277,0.553555309772491,0.315225005149841,-0.770890295505524,0.553499221801758,0.648918211460114,-0.75743693113327,-0.0720726549625397,0.234776720404625,-0.937163054943085,-0.258079916238785,0.35051155090332,-0.926379859447479,0.137702435255051,0.259151518344879,0.663451015949249,-0.70190691947937,0.821667075157166,-0.250208288431168,0.512112259864807,0.221346244215965,0.0540804751217365,0.973694503307343,0.306409180164337,-0.0401454344391823,-0.951053023338318,0.808431088924408,-0.587377786636353,0.0377691760659218,0.313612133264542,0.651035964488983,-0.691230475902557,0.779949426651001,-0.0221296939998865,-0.62545108795166,0.249292194843292,0.0582226738333702,-0.966676592826843,0.976597726345062,-0.179963499307632,-0.117771476507187,0.962922334671021,-0.257654815912247,0.0799657329916954,0.948096036911011,-0.184911265969276,0.258692443370819,0.132839813828468,0.462906002998352,-0.876397013664246,0.871371984481812,-0.264619588851929,-0.413143187761307,0.592229068279266,0.142564475536346,-0.793057441711426,0.0775511413812637,-0.982461869716644,-0.169571250677109,-0.577820837497711,-0.67799311876297,0.454365849494934,-0.0752923861145973,0.955092549324036,-0.286581993103027,0.958270311355591,-0.284833818674088,0.0242420118302107,0.971186995506287,-0.104965433478355,-0.213958069682121,0.910177052021027,0.285751074552536,0.299873411655426,0.652562499046326,0.149350702762604,0.742870450019836,0.636434078216553,0.183219417929649,0.749254524707794, +0.686774075031281,0.518648684024811,0.509259223937988 + } + NormalsW: *301 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementBinormal: 0 { + Version: 102 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "Direct" + Binormals: *5382 { + a: -0.919784188270569,-0.0750680193305016,-0.385177731513977,-0.927255272865295,-0.0356558300554752,-0.372728109359741,-0.923153817653656,-0.0934207811951637,-0.372907251119614,-0.931048691272736,-0.0259924717247486,-0.363968282938004,-0.899373173713684,-0.092270515859127,-0.427333742380142,-0.871617794036865,-0.0866017192602158,-0.482475697994232,-0.935709059238434,-0.0130141209810972,-0.352532774209976,-0.931048691272736,-0.0259924717247486,-0.363968282938004,-0.933824300765991,-0.0118974857032299,-0.357534170150757,-0.927255272865295,-0.0356558300554752,-0.372728109359741,-0.918993949890137,-0.0971103087067604,-0.382125407457352,-0.931048691272736,-0.0259924717247486,-0.363968282938004,-0.918993949890137,-0.0971103087067604,-0.382125407457352,-0.933824300765991,-0.0118974857032299,-0.357534170150757,-0.931048691272736,-0.0259924717247486,-0.363968282938004,-0.899373173713684,-0.092270515859127,-0.427333742380142,-0.931048691272736,-0.0259924717247486,-0.363968282938004,-0.935709059238434,-0.0130141209810972,-0.352532774209976,-0.927255272865295,-0.0356558300554752,-0.372728109359741,-0.678195059299469,-0.726280272006989,-0.11210947483778,-0.918993949890137,-0.0971103087067604,-0.382125407457352,-0.907260000705719,-0.224121898412704,-0.355877459049225,-0.927255272865295,-0.0356558300554752,-0.372728109359741,-0.833268642425537,-0.165366142988205,-0.527557969093323,-0.871617794036865,-0.0866017192602158,-0.482475697994232,-0.923770308494568,0.000299409060971811,-0.382947146892548,-0.931048691272736,-0.0259924717247486,-0.363968282938004,-0.931048691272736,-0.0259924717247486,-0.363968282938004,-0.923770308494568,0.000299409060971811,-0.382947146892548,-0.925285935401917,-0.00384508119896054,-0.379250943660736,-0.865134656429291,-0.495805978775024,0.0756213143467903,-0.833268642425537,-0.165366142988205,-0.527557969093323,-0.77165150642395,-0.631799042224884,0.0733750090003014,-0.707107305526733,-0.706428945064545,0.0309437662363052,-0.77165150642395,-0.631799042224884,0.0733750090003014,-0.810511112213135,-0.522077620029449,-0.265531003475189, +-0.810511112213135,-0.522077620029449,-0.265531003475189,-0.77165150642395,-0.631799042224884,0.0733750090003014,-0.833268642425537,-0.165366142988205,-0.527557969093323,-0.927255272865295,-0.0356558300554752,-0.372728109359741,-0.931048691272736,-0.0259924717247486,-0.363968282938004,-0.923153817653656,-0.0934207811951637,-0.372907251119614,0.0339155048131943,-0.92292046546936,0.383494049310684,-0.259842336177826,-0.259121268987656,0.930235505104065,-0.219428271055222,-0.479889631271362,0.849445283412933,-0.219428271055222,-0.479889631271362,0.849445283412933,-0.259842336177826,-0.259121268987656,0.930235505104065,-0.322461992502213,-0.244194895029068,0.914542078971863,-0.964950025081635,0.0159999933093786,-0.261945694684982,-0.935709059238434,-0.0130141209810972,-0.352532774209976,-0.978339314460754,0.054617527872324,-0.199672937393188,-0.978339314460754,0.054617527872324,-0.199672937393188,-0.935709059238434,-0.0130141209810972,-0.352532774209976,-0.856777369976044,0.00129643094260246,-0.515685021877289,-0.940793037414551,-0.0223060697317123,-0.338246941566467,-0.935709059238434,-0.0130141209810972,-0.352532774209976,-0.964950025081635,0.0159999933093786,-0.261945694684982,-0.916378796100616,-0.0154340313747525,-0.400014638900757,-0.871617794036865,-0.0866017192602158,-0.482475697994232,-0.899373173713684,-0.092270515859127,-0.427333742380142,-0.899373173713684,-0.092270515859127,-0.427333742380142,-0.935709059238434,-0.0130141209810972,-0.352532774209976,-0.940793037414551,-0.0223060697317123,-0.338246941566467,-0.519721269607544,-0.74248743057251,-0.422613710165024,-0.923241853713989,-0.0540441274642944,-0.38039967417717,-0.925285935401917,-0.00384508119896054,-0.379250943660736,-0.931048691272736,-0.0259924717247486,-0.363968282938004,-0.925285935401917,-0.00384508119896054,-0.379250943660736,-0.923241853713989,-0.0540441274642944,-0.38039967417717,-0.865134656429291,-0.495805978775024,0.0756213143467903,-0.917039096355438,-0.395419865846634,0.0517939738929272,-0.833268642425537,-0.165366142988205,-0.527557969093323, +-0.907260000705719,-0.224121898412704,-0.355877459049225,-0.833268642425537,-0.165366142988205,-0.527557969093323,-0.917039096355438,-0.395419865846634,0.0517939738929272,0.0339155048131943,-0.92292046546936,0.383494049310684,0.0338201858103275,-0.786468029022217,0.616704404354095,-0.259842336177826,-0.259121268987656,0.930235505104065,0.0082433233037591,0.498108565807343,0.867075622081757,-0.19706130027771,0.267478108406067,0.943198025226593,0.0338201858103275,-0.786468029022217,0.616704404354095,0.0338201858103275,-0.786468029022217,0.616704404354095,-0.19706130027771,0.267478108406067,0.943198025226593,-0.259842336177826,-0.259121268987656,0.930235505104065,-0.907260000705719,-0.224121898412704,-0.355877459049225,-0.678195059299469,-0.726280272006989,-0.11210947483778,-0.927255272865295,-0.0356558300554752,-0.372728109359741,-0.828043580055237,-0.55623072385788,-0.0703642964363098,-0.918993949890137,-0.0971103087067604,-0.382125407457352,-0.678195059299469,-0.726280272006989,-0.11210947483778,-0.0160088520497084,-0.98553341627121,0.168723449110985,-0.051262404769659,-0.954640865325928,-0.293313831090927,-0.0213622134178877,-0.999370932579041,0.028309179469943,-0.187214806675911,-0.283383727073669,-0.940555334091187,-0.0213622134178877,-0.999370932579041,0.028309179469943,-0.051262404769659,-0.954640865325928,-0.293313831090927,-0.0494007840752602,-0.998774170875549,0.00314969616010785,-0.0160088520497084,-0.98553341627121,0.168723449110985,-0.0391556806862354,-0.998791098594666,0.0297195557504892,-0.0391556806862354,-0.998791098594666,0.0297195557504892,-0.0160088520497084,-0.98553341627121,0.168723449110985,-0.0213622134178877,-0.999370932579041,0.028309179469943,-0.0136912651360035,-0.983234047889709,0.181833267211914,-0.0160088520497084,-0.98553341627121,0.168723449110985,-0.0494007840752602,-0.998774170875549,0.00314969616010785,-0.871617794036865,-0.0866017192602158,-0.482475697994232,-0.971190929412842,0.0311234891414642,-0.236261546611786,-0.923770308494568,0.000299409060971811,-0.382947146892548,-0.899373173713684,-0.092270515859127,-0.427333742380142, +-0.940793037414551,-0.0223060697317123,-0.338246941566467,-0.964950025081635,0.0159999933093786,-0.261945694684982,-0.971190929412842,0.0311234891414642,-0.236261546611786,-0.916378796100616,-0.0154340313747525,-0.400014638900757,-0.964950025081635,0.0159999933093786,-0.261945694684982,-0.899373173713684,-0.092270515859127,-0.427333742380142,-0.964950025081635,0.0159999933093786,-0.261945694684982,-0.916378796100616,-0.0154340313747525,-0.400014638900757,-0.916378796100616,-0.0154340313747525,-0.400014638900757,-0.971190929412842,0.0311234891414642,-0.236261546611786,-0.871617794036865,-0.0866017192602158,-0.482475697994232,-0.793403685092926,0.458076447248459,-0.400844901800156,-0.960944890975952,-0.0857257544994354,-0.263127565383911,-0.888424277305603,0.279781877994537,-0.363901704549789,-0.868732213973999,0.339252233505249,-0.360849380493164,-0.888424277305603,0.279781877994537,-0.363901704549789,-0.960944890975952,-0.0857257544994354,-0.263127565383911,-0.933824300765991,-0.0118974857032299,-0.357534170150757,-0.867934465408325,-0.0126685108989477,-0.49651712179184,-0.943141996860504,-0.0107032330706716,-0.332217842340469,-0.885743856430054,0.276941061019897,-0.372507184743881,-0.943141996860504,-0.0107032330706716,-0.332217842340469,-0.867934465408325,-0.0126685108989477,-0.49651712179184,-0.935709059238434,-0.0130141209810972,-0.352532774209976,-0.933824300765991,-0.0118974857032299,-0.357534170150757,-0.926505625247955,-0.0225122198462486,-0.375606954097748,-0.885743856430054,0.276941061019897,-0.372507184743881,-0.867934465408325,-0.0126685108989477,-0.49651712179184,-0.894318103790283,0.315465152263641,-0.317296266555786,-0.428817063570023,0.899983406066895,-0.0783952176570892,-0.894318103790283,0.315465152263641,-0.317296266555786,-0.867934465408325,-0.0126685108989477,-0.49651712179184,-0.88180023431778,0.000106468796730042,-0.471623241901398,-0.867934465408325,-0.0126685108989477,-0.49651712179184,-0.895978331565857,-0.127660676836967,-0.425353646278381,-0.895978331565857,-0.127660676836967,-0.425353646278381, +-0.867934465408325,-0.0126685108989477,-0.49651712179184,-0.937389135360718,-0.320440858602524,-0.136452451348305,-0.428817063570023,0.899983406066895,-0.0783952176570892,-0.867934465408325,-0.0126685108989477,-0.49651712179184,-0.88180023431778,0.000106468796730042,-0.471623241901398,-0.905335247516632,-0.205342516303062,-0.371756076812744,-0.937389135360718,-0.320440858602524,-0.136452451348305,-0.867934465408325,-0.0126685108989477,-0.49651712179184,-0.00693767517805099,-0.987209975719452,0.159274905920029,0.0978259146213531,-0.994906187057495,0.0243281237781048,0.134280025959015,-0.98405796289444,-0.116614393889904,-0.933824300765991,-0.0118974857032299,-0.357534170150757,-0.943141996860504,-0.0107032330706716,-0.332217842340469,-0.926505625247955,-0.0225122198462486,-0.375606954097748,-0.818402290344238,0.449602723121643,-0.357876062393188,-0.926505625247955,-0.0225122198462486,-0.375606954097748,-0.943141996860504,-0.0107032330706716,-0.332217842340469,-0.939715802669525,0.200872495770454,-0.276739358901978,-0.960944890975952,-0.0857257544994354,-0.263127565383911,-0.830525040626526,0.401530772447586,-0.386007010936737,-0.793403685092926,0.458076447248459,-0.400844901800156,-0.830525040626526,0.401530772447586,-0.386007010936737,-0.960944890975952,-0.0857257544994354,-0.263127565383911,0.0311309266835451,-0.998761892318726,0.0388039499521255,0.134280025959015,-0.98405796289444,-0.116614393889904,0.291274696588516,-0.883478105068207,-0.366913437843323,-0.46376445889473,0.608615696430206,-0.643824219703674,-0.801948070526123,0.421298623085022,-0.423540830612183,-0.809896945953369,0.407458871603012,-0.421952992677689,-0.818402290344238,0.449602723121643,-0.357876062393188,-0.943141996860504,-0.0107032330706716,-0.332217842340469,-0.801948070526123,0.421298623085022,-0.423540830612183,-0.801948070526123,0.421298623085022,-0.423540830612183,-0.943141996860504,-0.0107032330706716,-0.332217842340469,-0.809896945953369,0.407458871603012,-0.421952992677689,-0.885743856430054,0.276941061019897,-0.372507184743881,-0.809896945953369,0.407458871603012,-0.421952992677689, +-0.943141996860504,-0.0107032330706716,-0.332217842340469,-0.939715802669525,0.200872495770454,-0.276739358901978,-0.947091102600098,-0.0356541238725185,-0.31897845864296,-0.960944890975952,-0.0857257544994354,-0.263127565383911,-0.935709059238434,-0.0130141209810972,-0.352532774209976,-0.960944890975952,-0.0857257544994354,-0.263127565383911,-0.947091102600098,-0.0356541238725185,-0.31897845864296,-0.935709059238434,-0.0130141209810972,-0.352532774209976,-0.926505625247955,-0.0225122198462486,-0.375606954097748,-0.960944890975952,-0.0857257544994354,-0.263127565383911,-0.868732213973999,0.339252233505249,-0.360849380493164,-0.960944890975952,-0.0857257544994354,-0.263127565383911,-0.926505625247955,-0.0225122198462486,-0.375606954097748,-0.905335247516632,-0.205342516303062,-0.371756076812744,-0.867934465408325,-0.0126685108989477,-0.49651712179184,-0.933824300765991,-0.0118974857032299,-0.357534170150757,0.00381209747865796,-0.98851203918457,0.151094362139702,0.538222968578339,-0.735041320323944,-0.412347316741943,0.0503863841295242,-0.991879343986511,0.116776630282402,0.715835511684418,-0.47678405046463,-0.510153412818909,0.0503863841295242,-0.991879343986511,0.116776630282402,0.538222968578339,-0.735041320323944,-0.412347316741943,0.673309862613678,-0.680914103984833,-0.288114100694656,0.810234010219574,-0.463354408740997,-0.358920127153397,0.106164298951626,-0.994032859802246,0.0250583402812481,0.806341648101807,-0.487585514783859,-0.334774196147919,0.106164298951626,-0.994032859802246,0.0250583402812481,0.810234010219574,-0.463354408740997,-0.358920127153397,0.0503863841295242,-0.991879343986511,0.116776630282402,0.0444036237895489,-0.994225025177002,0.0976988673210144,-0.0742170810699463,-0.981249094009399,0.177882492542267,0.00381209747865796,-0.98851203918457,0.151094362139702,0.0503863841295242,-0.991879343986511,0.116776630282402,-0.0742170810699463,-0.981249094009399,0.177882492542267,0.0503863841295242,-0.991879343986511,0.116776630282402,0.0978259146213531,-0.994906187057495,0.0243281237781048,0.0444036237895489,-0.994225025177002,0.0976988673210144, +0.0978259146213531,-0.994906187057495,0.0243281237781048,-0.00693767517805099,-0.987209975719452,0.159274905920029,0.0444036237895489,-0.994225025177002,0.0976988673210144,0.0978259146213531,-0.994906187057495,0.0243281237781048,0.77377063035965,-0.449000775814056,-0.44685286283493,0.134280025959015,-0.98405796289444,-0.116614393889904,0.715835511684418,-0.47678405046463,-0.510153412818909,0.77377063035965,-0.449000775814056,-0.44685286283493,0.0503863841295242,-0.991879343986511,0.116776630282402,0.77377063035965,-0.449000775814056,-0.44685286283493,0.0978259146213531,-0.994906187057495,0.0243281237781048,0.0503863841295242,-0.991879343986511,0.116776630282402,0.673309862613678,-0.680914103984833,-0.288114100694656,0.106164298951626,-0.994032859802246,0.0250583402812481,0.103255592286587,-0.994610786437988,-0.00936932489275932,0.812260568141937,-0.534110903739929,-0.23443204164505,-0.0742170810699463,-0.981249094009399,0.177882492542267,0.106164298951626,-0.994032859802246,0.0250583402812481,0.673309862613678,-0.680914103984833,-0.288114100694656,0.103255592286587,-0.994610786437988,-0.00936932489275932,0.710292935371399,-0.620178282260895,-0.332960873842239,0.884901940822601,-0.235043108463287,-0.402123481035233,0.710292935371399,-0.620178282260895,-0.332960873842239,0.103255592286587,-0.994610786437988,-0.00936932489275932,0.106164298951626,-0.994032859802246,0.0250583402812481,0.0444036237895489,-0.994225025177002,0.0976988673210144,0.054352730512619,-0.992073237895966,0.113298311829567,-0.0742170810699463,-0.981249094009399,0.177882492542267,0.0444036237895489,-0.994225025177002,0.0976988673210144,0.106164298951626,-0.994032859802246,0.0250583402812481,0.00381209747865796,-0.98851203918457,0.151094362139702,-0.0742170810699463,-0.981249094009399,0.177882492542267,0.700575172901154,-0.662566363811493,-0.264953196048737,0.812260568141937,-0.534110903739929,-0.23443204164505,0.700575172901154,-0.662566363811493,-0.264953196048737,-0.0742170810699463,-0.981249094009399,0.177882492542267,0.806341648101807,-0.487585514783859,-0.334774196147919, +0.949071228504181,0.0898404493927956,-0.301980942487717,0.106164298951626,-0.994032859802246,0.0250583402812481,0.812260568141937,-0.534110903739929,-0.23443204164505,0.106164298951626,-0.994032859802246,0.0250583402812481,0.949071228504181,0.0898404493927956,-0.301980942487717,0.0490017458796501,-0.835322916507721,0.547571539878845,0.118019483983517,-0.061680905520916,0.991093754768372,0.0338201858103275,-0.786468029022217,0.616704404354095,0.0250593312084675,-0.804621994495392,0.593258321285248,0.118019483983517,-0.061680905520916,0.991093754768372,0.0490017458796501,-0.835322916507721,0.547571539878845,-0.932656288146973,-0.109910503029823,-0.343616127967834,-0.856777369976044,0.00129643094260246,-0.515685021877289,-0.947091102600098,-0.0356541238725185,-0.31897845864296,-0.963876068592072,0.0810785517096519,0.253710806369781,-0.96320253610611,0.161432862281799,-0.214896261692047,-0.949201226234436,0.314653247594833,-0.0032370095141232,-0.986242532730103,0.0329862534999847,-0.161980226635933,-0.973888039588928,0.178011819720268,-0.140903994441032,-0.96320253610611,0.161432862281799,-0.214896261692047,-0.871611356735229,-0.143639653921127,-0.468680649995804,-0.96320253610611,0.161432862281799,-0.214896261692047,-0.973888039588928,0.178011819720268,-0.140903994441032,-0.932656288146973,-0.109910503029823,-0.343616127967834,-0.871611356735229,-0.143639653921127,-0.468680649995804,-0.856777369976044,0.00129643094260246,-0.515685021877289,-0.942811965942383,0.0932265892624855,-0.320022642612457,-0.951627194881439,0.129393830895424,-0.278680890798569,-0.96320253610611,0.161432862281799,-0.214896261692047,-0.949201226234436,0.314653247594833,-0.0032370095141232,-0.96320253610611,0.161432862281799,-0.214896261692047,-0.951627194881439,0.129393830895424,-0.278680890798569,-0.942811965942383,0.0932265892624855,-0.320022642612457,-0.96320253610611,0.161432862281799,-0.214896261692047,-0.932656288146973,-0.109910503029823,-0.343616127967834,-0.932656288146973,-0.109910503029823,-0.343616127967834,-0.96320253610611,0.161432862281799,-0.214896261692047, +-0.871611356735229,-0.143639653921127,-0.468680649995804,0.884901940822601,-0.235043108463287,-0.402123481035233,0.103255592286587,-0.994610786437988,-0.00936932489275932,0.79575526714325,-0.463121265172958,-0.390246570110321,0.416086554527283,-0.909070193767548,-0.021530183032155,0.79575526714325,-0.463121265172958,-0.390246570110321,0.103255592286587,-0.994610786437988,-0.00936932489275932,0.495140075683594,-0.841026723384857,0.217968940734863,0.723658680915833,-0.677473068237305,0.131713584065437,0.17580272257328,-0.974140226840973,0.141930416226387,0.416086554527283,-0.909070193767548,-0.021530183032155,0.17580272257328,-0.974140226840973,0.141930416226387,0.723658680915833,-0.677473068237305,0.131713584065437,0.723658680915833,-0.677473068237305,0.131713584065437,0.986987769603729,0.0900829955935478,-0.133192375302315,0.416086554527283,-0.909070193767548,-0.021530183032155,-0.171323105692863,-0.72136116027832,0.671033918857574,-0.0843598544597626,-0.816841840744019,0.570659995079041,-0.219428271055222,-0.479889631271362,0.849445283412933,-0.722839593887329,0.670183539390564,-0.168395802378654,-0.938627660274506,0.111814752221107,-0.326305985450745,-0.932656288146973,-0.109910503029823,-0.343616127967834,-0.93331390619278,0.171646431088448,-0.315376847982407,-0.932656288146973,-0.109910503029823,-0.343616127967834,-0.938627660274506,0.111814752221107,-0.326305985450745,0.495140075683594,-0.841026723384857,0.217968940734863,0.203417330980301,-0.966999292373657,0.153407126665115,0.753982186317444,-0.529920935630798,0.38819408416748,-0.722839593887329,0.670183539390564,-0.168395802378654,-0.932656288146973,-0.109910503029823,-0.343616127967834,-0.947091102600098,-0.0356541238725185,-0.31897845864296,0.495140075683594,-0.841026723384857,0.217968940734863,0.753982186317444,-0.529920935630798,0.38819408416748,0.723658680915833,-0.677473068237305,0.131713584065437,0.913581967353821,-0.123819336295128,0.387345850467682,0.723658680915833,-0.677473068237305,0.131713584065437,0.882569849491119,-0.190554112195969,0.429836809635162, +0.882569849491119,-0.190554112195969,0.429836809635162,0.723658680915833,-0.677473068237305,0.131713584065437,0.753982186317444,-0.529920935630798,0.38819408416748,-0.942811965942383,0.0932265892624855,-0.320022642612457,-0.932656288146973,-0.109910503029823,-0.343616127967834,-0.928669035434723,0.174437180161476,-0.327330887317657,-0.93331390619278,0.171646431088448,-0.315376847982407,-0.928669035434723,0.174437180161476,-0.327330887317657,-0.932656288146973,-0.109910503029823,-0.343616127967834,-0.939715802669525,0.200872495770454,-0.276739358901978,-0.848784863948822,0.434358030557632,-0.301492094993591,-0.947091102600098,-0.0356541238725185,-0.31897845864296,-0.460450112819672,0.865191996097565,-0.198566347360611,-0.947091102600098,-0.0356541238725185,-0.31897845864296,-0.848784863948822,0.434358030557632,-0.301492094993591,0.435094863176346,-0.847834825515747,0.303098678588867,0.102404415607452,-0.991119503974915,0.0848271250724792,0.0309388041496277,-0.998272061347961,0.0499590709805489,-0.0725270807743073,-0.995032668113709,0.068190686404705,0.203417330980301,-0.966999292373657,0.153407126665115,0.17580272257328,-0.974140226840973,0.141930416226387,0.495140075683594,-0.841026723384857,0.217968940734863,0.17580272257328,-0.974140226840973,0.141930416226387,0.203417330980301,-0.966999292373657,0.153407126665115,-0.229704648256302,-0.972881197929382,0.0271677076816559,-0.295940488576889,-0.954199612140656,0.0438457764685154,-0.156770557165146,-0.987582623958588,0.0101791033521295,-0.328481525182724,-0.943368911743164,-0.0464213155210018,-0.156770557165146,-0.987582623958588,0.0101791033521295,-0.295940488576889,-0.954199612140656,0.0438457764685154,-0.670593976974487,-0.711343050003052,-0.210463330149651,-0.534079134464264,-0.834636032581329,-0.134692788124084,-0.295940488576889,-0.954199612140656,0.0438457764685154,-0.328481525182724,-0.943368911743164,-0.0464213155210018,-0.295940488576889,-0.954199612140656,0.0438457764685154,-0.534079134464264,-0.834636032581329,-0.134692788124084,0.0309388041496277,-0.998272061347961,0.0499590709805489, +-0.156770557165146,-0.987582623958588,0.0101791033521295,-0.165780648589134,-0.985914528369904,-0.0221235118806362,0.102404415607452,-0.991119503974915,0.0848271250724792,-0.156770557165146,-0.987582623958588,0.0101791033521295,0.0309388041496277,-0.998272061347961,0.0499590709805489,0.102404415607452,-0.991119503974915,0.0848271250724792,0.203417330980301,-0.966999292373657,0.153407126665115,-0.156770557165146,-0.987582623958588,0.0101791033521295,-0.156770557165146,-0.987582623958588,0.0101791033521295,0.203417330980301,-0.966999292373657,0.153407126665115,-0.0725270807743073,-0.995032668113709,0.068190686404705,-0.984834611415863,-0.0973795801401138,0.143590167164803,-0.992175579071045,0.035408154129982,-0.119724251329899,-0.887454152107239,-0.202023133635521,0.414260447025299,-0.649372458457947,-0.189183264970779,0.736563146114349,-0.887454152107239,-0.202023133635521,0.414260447025299,-0.992175579071045,0.035408154129982,-0.119724251329899,-0.992175579071045,0.035408154129982,-0.119724251329899,-0.96320253610611,0.161432862281799,-0.214896261692047,-0.998603940010071,0.0524876192212105,0.00594106828793883,-0.998603940010071,0.0524876192212105,0.00594106828793883,-0.96320253610611,0.161432862281799,-0.214896261692047,-0.963876068592072,0.0810785517096519,0.253710806369781,-0.986242532730103,0.0329862534999847,-0.161980226635933,-0.96320253610611,0.161432862281799,-0.214896261692047,-0.992175579071045,0.035408154129982,-0.119724251329899,-0.649372458457947,-0.189183264970779,0.736563146114349,-0.992175579071045,0.035408154129982,-0.119724251329899,-0.89151406288147,-0.0478791519999504,0.450455635786057,-0.998603940010071,0.0524876192212105,0.00594106828793883,-0.89151406288147,-0.0478791519999504,0.450455635786057,-0.992175579071045,0.035408154129982,-0.119724251329899,-0.911314487457275,-0.369554758071899,0.181481048464775,-0.999074995517731,-0.0264668539166451,-0.033893633633852,-0.952822625637054,-0.287879228591919,0.0962008535861969,-0.986499786376953,-0.143726155161858,0.0784921273589134,-0.952822625637054,-0.287879228591919,0.0962008535861969, +-0.999074995517731,-0.0264668539166451,-0.033893633633852,-0.0647911056876183,-0.993734776973724,0.0910679921507835,-0.0725270807743073,-0.995032668113709,0.068190686404705,0.17580272257328,-0.974140226840973,0.141930416226387,-0.0725270807743073,-0.995032668113709,0.068190686404705,-0.229704648256302,-0.972881197929382,0.0271677076816559,-0.156770557165146,-0.987582623958588,0.0101791033521295,0.900371491909027,-0.0942796766757965,0.424785256385803,0.860139489173889,-0.17645052075386,0.478565961122513,0.753982186317444,-0.529920935630798,0.38819408416748,0.882569849491119,-0.190554112195969,0.429836809635162,0.753982186317444,-0.529920935630798,0.38819408416748,0.860139489173889,-0.17645052075386,0.478565961122513,0.900371491909027,-0.0942796766757965,0.424785256385803,0.66999363899231,-0.64586216211319,0.366019994020462,0.839343428611755,-0.157044410705566,0.520422637462616,0.839343428611755,-0.157044410705566,0.520422637462616,0.66999363899231,-0.64586216211319,0.366019994020462,0.435094863176346,-0.847834825515747,0.303098678588867,0.435094863176346,-0.847834825515747,0.303098678588867,0.66999363899231,-0.64586216211319,0.366019994020462,0.102404415607452,-0.991119503974915,0.0848271250724792,-0.165780648589134,-0.985914528369904,-0.0221235118806362,-0.156770557165146,-0.987582623958588,0.0101791033521295,-0.195546537637711,-0.978810489177704,-0.0607590526342392,-0.328481525182724,-0.943368911743164,-0.0464213155210018,-0.195546537637711,-0.978810489177704,-0.0607590526342392,-0.156770557165146,-0.987582623958588,0.0101791033521295,0.753982186317444,-0.529920935630798,0.38819408416748,0.203417330980301,-0.966999292373657,0.153407126665115,0.66999363899231,-0.64586216211319,0.366019994020462,0.102404415607452,-0.991119503974915,0.0848271250724792,0.66999363899231,-0.64586216211319,0.366019994020462,0.203417330980301,-0.966999292373657,0.153407126665115,0.900371491909027,-0.0942796766757965,0.424785256385803,0.753982186317444,-0.529920935630798,0.38819408416748,0.66999363899231,-0.64586216211319,0.366019994020462, +-0.947091102600098,-0.0356541238725185,-0.31897845864296,-0.856777369976044,0.00129643094260246,-0.515685021877289,-0.935709059238434,-0.0130141209810972,-0.352532774209976,-0.856777369976044,0.00129643094260246,-0.515685021877289,-0.978163480758667,0.112196072936058,-0.17495234310627,-0.978339314460754,0.054617527872324,-0.199672937393188,-0.986242532730103,0.0329862534999847,-0.161980226635933,-0.978339314460754,0.054617527872324,-0.199672937393188,-0.978163480758667,0.112196072936058,-0.17495234310627,-0.986242532730103,0.0329862534999847,-0.161980226635933,-0.978163480758667,0.112196072936058,-0.17495234310627,-0.973888039588928,0.178011819720268,-0.140903994441032,-0.986242532730103,0.0329862534999847,-0.161980226635933,-0.964950025081635,0.0159999933093786,-0.261945694684982,-0.978339314460754,0.054617527872324,-0.199672937393188,-0.973888039588928,0.178011819720268,-0.140903994441032,-0.978163480758667,0.112196072936058,-0.17495234310627,-0.871611356735229,-0.143639653921127,-0.468680649995804,-0.871611356735229,-0.143639653921127,-0.468680649995804,-0.978163480758667,0.112196072936058,-0.17495234310627,-0.856777369976044,0.00129643094260246,-0.515685021877289,0.0082433233037591,0.498108565807343,0.867075622081757,0.0338201858103275,-0.786468029022217,0.616704404354095,0.118019483983517,-0.061680905520916,0.991093754768372,-0.986242532730103,0.0329862534999847,-0.161980226635933,-0.992175579071045,0.035408154129982,-0.119724251329899,-0.998916268348694,-0.0127835581079125,-0.0447542369365692,-0.984834611415863,-0.0973795801401138,0.143590167164803,-0.998916268348694,-0.0127835581079125,-0.0447542369365692,-0.992175579071045,0.035408154129982,-0.119724251329899,-0.980663120746613,0.030616719275713,-0.193293660879135,-0.986242532730103,0.0329862534999847,-0.161980226635933,-0.998916268348694,-0.0127835581079125,-0.0447542369365692,0.0339155048131943,-0.92292046546936,0.383494049310684,-0.219428271055222,-0.479889631271362,0.849445283412933,-0.0843598544597626,-0.816841840744019,0.570659995079041,0.106164298951626,-0.994032859802246,0.0250583402812481, +0.054352730512619,-0.992073237895966,0.113298311829567,0.103255592286587,-0.994610786437988,-0.00936932489275932,0.103255592286587,-0.994610786437988,-0.00936932489275932,0.0307065322995186,-0.998157739639282,0.0523290485143662,0.416086554527283,-0.909070193767548,-0.021530183032155,0.416086554527283,-0.909070193767548,-0.021530183032155,0.0307065322995186,-0.998157739639282,0.0523290485143662,0.17580272257328,-0.974140226840973,0.141930416226387,0.17580272257328,-0.974140226840973,0.141930416226387,0.0307065322995186,-0.998157739639282,0.0523290485143662,-0.0647911056876183,-0.993734776973724,0.0910679921507835,0.0307065322995186,-0.998157739639282,0.0523290485143662,-0.0165000054985285,-0.990643501281738,0.135473638772964,-0.0647911056876183,-0.993734776973724,0.0910679921507835,-0.0725270807743073,-0.995032668113709,0.068190686404705,-0.214634001255035,-0.976096153259277,0.034186452627182,-0.229704648256302,-0.972881197929382,0.0271677076816559,-0.141031429171562,-0.982469737529755,0.121915958821774,-0.263071894645691,-0.964649081230164,0.0156636014580727,-0.214634001255035,-0.976096153259277,0.034186452627182,-0.214634001255035,-0.976096153259277,0.034186452627182,-0.263071894645691,-0.964649081230164,0.0156636014580727,-0.229704648256302,-0.972881197929382,0.0271677076816559,-0.0647911056876183,-0.993734776973724,0.0910679921507835,-0.214634001255035,-0.976096153259277,0.034186452627182,-0.0725270807743073,-0.995032668113709,0.068190686404705,-0.0165000054985285,-0.990643501281738,0.135473638772964,-0.214634001255035,-0.976096153259277,0.034186452627182,-0.0647911056876183,-0.993734776973724,0.0910679921507835,-0.0165000054985285,-0.990643501281738,0.135473638772964,-0.141031429171562,-0.982469737529755,0.121915958821774,-0.214634001255035,-0.976096153259277,0.034186452627182,0.103255592286587,-0.994610786437988,-0.00936932489275932,0.054352730512619,-0.992073237895966,0.113298311829567,0.0307065322995186,-0.998157739639282,0.0523290485143662,0.054352730512619,-0.992073237895966,0.113298311829567,-0.0165000054985285,-0.990643501281738,0.135473638772964, +0.0307065322995186,-0.998157739639282,0.0523290485143662,-0.491169780492783,-0.767347753047943,-0.41222557425499,-0.442974984645844,-0.797111809253693,-0.410348653793335,-0.199727177619934,-0.970340013504028,0.136195793747902,-0.387966275215149,-0.907630622386932,-0.160277515649796,-0.199727177619934,-0.970340013504028,0.136195793747902,-0.442974984645844,-0.797111809253693,-0.410348653793335,-0.997064292430878,-0.0670352056622505,0.0370035357773304,-0.903074741363525,-0.297969430685043,0.309306234121323,-0.995087325572968,-0.0819869190454483,0.055492989718914,-0.716959595680237,-0.450726270675659,0.53180342912674,-0.995087325572968,-0.0819869190454483,0.055492989718914,-0.903074741363525,-0.297969430685043,0.309306234121323,-0.894952654838562,-0.256420403718948,0.36511418223381,-0.997064292430878,-0.0670352056622505,0.0370035357773304,-0.998916268348694,-0.0127835581079125,-0.0447542369365692,-0.996065020561218,-0.0739206373691559,0.0488895177841187,-0.903074741363525,-0.297969430685043,0.309306234121323,-0.997064292430878,-0.0670352056622505,0.0370035357773304,-0.894952654838562,-0.256420403718948,0.36511418223381,-0.998916268348694,-0.0127835581079125,-0.0447542369365692,-0.979345977306366,-0.134334713220596,0.151115402579308,-0.697141885757446,-0.356923371553421,0.621770799160004,-0.979345977306366,-0.134334713220596,0.151115402579308,-0.998916268348694,-0.0127835581079125,-0.0447542369365692,-0.984834611415863,-0.0973795801401138,0.143590167164803,-0.928037643432617,-0.232075795531273,0.291353821754456,-0.998916268348694,-0.0127835581079125,-0.0447542369365692,-0.697141885757446,-0.356923371553421,0.621770799160004,-0.998916268348694,-0.0127835581079125,-0.0447542369365692,-0.928037643432617,-0.232075795531273,0.291353821754456,-0.305278569459915,-0.951605200767517,0.0353941209614277,-0.141031429171562,-0.982469737529755,0.121915958821774,-0.387966275215149,-0.907630622386932,-0.160277515649796,-0.387966275215149,-0.907630622386932,-0.160277515649796,-0.141031429171562,-0.982469737529755,0.121915958821774,-0.199727177619934,-0.970340013504028,0.136195793747902, +-0.305278569459915,-0.951605200767517,0.0353941209614277,-0.295940488576889,-0.954199612140656,0.0438457764685154,-0.263071894645691,-0.964649081230164,0.0156636014580727,-0.229704648256302,-0.972881197929382,0.0271677076816559,-0.263071894645691,-0.964649081230164,0.0156636014580727,-0.295940488576889,-0.954199612140656,0.0438457764685154,-0.141031429171562,-0.982469737529755,0.121915958821774,-0.305278569459915,-0.951605200767517,0.0353941209614277,-0.263071894645691,-0.964649081230164,0.0156636014580727,-0.99713933467865,0.0172046981751919,-0.0736014768481255,-0.999074995517731,-0.0264668539166451,-0.033893633633852,-0.996799886226654,-0.0798288956284523,-0.00416125170886517,-0.911314487457275,-0.369554758071899,0.181481048464775,-0.996799886226654,-0.0798288956284523,-0.00416125170886517,-0.999074995517731,-0.0264668539166451,-0.033893633633852,-0.305278569459915,-0.951605200767517,0.0353941209614277,-0.624980747699738,-0.749791443347931,-0.217283084988594,-0.295940488576889,-0.954199612140656,0.0438457764685154,-0.670593976974487,-0.711343050003052,-0.210463330149651,-0.295940488576889,-0.954199612140656,0.0438457764685154,-0.624980747699738,-0.749791443347931,-0.217283084988594,-0.387966275215149,-0.907630622386932,-0.160277515649796,-0.4599928855896,-0.836379051208496,-0.298122078180313,-0.305278569459915,-0.951605200767517,0.0353941209614277,-0.996065020561218,-0.0739206373691559,0.0488895177841187,-0.818823218345642,-0.439609050750732,0.369150906801224,-0.903074741363525,-0.297969430685043,0.309306234121323,-0.0948595851659775,-0.836853682994843,0.539145350456238,-0.903074741363525,-0.297969430685043,0.309306234121323,-0.818823218345642,-0.439609050750732,0.369150906801224,-0.161368727684021,-0.975613653659821,0.148789286613464,-0.539422214031219,-0.827270746231079,-0.156993001699448,-0.199727177619934,-0.970340013504028,0.136195793747902,-0.491169780492783,-0.767347753047943,-0.41222557425499,-0.199727177619934,-0.970340013504028,0.136195793747902,-0.539422214031219,-0.827270746231079,-0.156993001699448, +-0.199727177619934,-0.970340013504028,0.136195793747902,-0.0165000054985285,-0.990643501281738,0.135473638772964,-0.161368727684021,-0.975613653659821,0.148789286613464,-0.161368727684021,-0.975613653659821,0.148789286613464,-0.0165000054985285,-0.990643501281738,0.135473638772964,0.0390189662575722,-0.980611026287079,0.192040741443634,-0.141031429171562,-0.982469737529755,0.121915958821774,-0.0165000054985285,-0.990643501281738,0.135473638772964,-0.199727177619934,-0.970340013504028,0.136195793747902,-0.927076578140259,-0.0999829173088074,-0.361292719841003,-0.935085475444794,0.0029199484270066,-0.354410439729691,-0.933824300765991,-0.0118974857032299,-0.357534170150757,-0.935856819152832,-0.00969340279698372,-0.35224723815918,-0.933824300765991,-0.0118974857032299,-0.357534170150757,-0.935085475444794,0.0029199484270066,-0.354410439729691,-0.905335247516632,-0.205342516303062,-0.371756076812744,-0.933824300765991,-0.0118974857032299,-0.357534170150757,-0.932429850101471,-0.0666053295135498,-0.355159819126129,-0.935856819152832,-0.00969340279698372,-0.35224723815918,-0.932429850101471,-0.0666053295135498,-0.355159819126129,-0.933824300765991,-0.0118974857032299,-0.357534170150757,-0.927076578140259,-0.0999829173088074,-0.361292719841003,-0.933824300765991,-0.0118974857032299,-0.357534170150757,-0.918993949890137,-0.0971103087067604,-0.382125407457352,0.0496089495718479,-0.997784435749054,-0.0443319603800774,0.0675251707434654,-0.974249482154846,-0.215124309062958,0.0694601088762283,-0.996324837207794,-0.050122432410717,0.0694601088762283,-0.996324837207794,-0.050122432410717,0.0675251707434654,-0.974249482154846,-0.215124309062958,0.0664495676755905,-0.982405006885529,-0.174541965126991,0.12886244058609,-0.314977198839188,-0.940310478210449,0.0675251707434654,-0.974249482154846,-0.215124309062958,0.0496089495718479,-0.997784435749054,-0.0443319603800774,0.167547047138214,-0.106727831065655,-0.980069994926453,0.0675251707434654,-0.974249482154846,-0.215124309062958,0.14154189825058,-0.0146066937595606,-0.989824533462524, +0.13778281211853,-0.0512406751513481,-0.989136219024658,0.14154189825058,-0.0146066937595606,-0.989824533462524,0.0675251707434654,-0.974249482154846,-0.215124309062958,0.13778281211853,-0.0512406751513481,-0.989136219024658,0.0675251707434654,-0.974249482154846,-0.215124309062958,0.137641757726669,-0.0867979452013969,-0.986671626567841,0.12886244058609,-0.314977198839188,-0.940310478210449,0.137641757726669,-0.0867979452013969,-0.986671626567841,0.0675251707434654,-0.974249482154846,-0.215124309062958,0.0664495676755905,-0.982405006885529,-0.174541965126991,0.0675251707434654,-0.974249482154846,-0.215124309062958,0.138694629073143,-0.222863391041756,-0.964933097362518,0.167547047138214,-0.106727831065655,-0.980069994926453,0.138694629073143,-0.222863391041756,-0.964933097362518,0.0675251707434654,-0.974249482154846,-0.215124309062958,0.0444036237895489,-0.994225025177002,0.0976988673210144,-0.00693767517805099,-0.987209975719452,0.159274905920029,0.0694601088762283,-0.996324837207794,-0.050122432410717,-0.00693767517805099,-0.987209975719452,0.159274905920029,0.134280025959015,-0.98405796289444,-0.116614393889904,0.0694601088762283,-0.996324837207794,-0.050122432410717,0.134280025959015,-0.98405796289444,-0.116614393889904,0.0311309266835451,-0.998761892318726,0.0388039499521255,0.0694601088762283,-0.996324837207794,-0.050122432410717,0.0311309266835451,-0.998761892318726,0.0388039499521255,0.0496089495718479,-0.997784435749054,-0.0443319603800774,0.0694601088762283,-0.996324837207794,-0.050122432410717,0.00411863625049591,-0.983243405818939,0.182251155376434,0.00606647133827209,-0.993839144706726,0.110666036605835,0.0289732664823532,-0.9869145154953,0.158619895577431,0.0171623751521111,-0.929632902145386,0.36808705329895,0.0338201858103275,-0.786468029022217,0.616704404354095,0.0339155048131943,-0.92292046546936,0.383494049310684,0.0664495676755905,-0.982405006885529,-0.174541965126991,0.00606647133827209,-0.993839144706726,0.110666036605835,0.0694601088762283,-0.996324837207794,-0.050122432410717,0.0694601088762283,-0.996324837207794,-0.050122432410717, +0.00606647133827209,-0.993839144706726,0.110666036605835,0.0444036237895489,-0.994225025177002,0.0976988673210144,0.0444036237895489,-0.994225025177002,0.0976988673210144,0.00606647133827209,-0.993839144706726,0.110666036605835,0.00411863625049591,-0.983243405818939,0.182251155376434,-0.0538437962532043,-0.919116914272308,0.390288203954697,0.0339155048131943,-0.92292046546936,0.383494049310684,-0.0843598544597626,-0.816841840744019,0.570659995079041,0.0444036237895489,-0.994225025177002,0.0976988673210144,0.00411863625049591,-0.983243405818939,0.182251155376434,0.054352730512619,-0.992073237895966,0.113298311829567,-0.00365045201033354,-0.994251549243927,0.107008077204227,0.0664495676755905,-0.982405006885529,-0.174541965126991,0.138694629073143,-0.222863391041756,-0.964933097362518,-0.0126068731769919,-0.988713443279266,-0.149287700653076,-0.00365045201033354,-0.994251549243927,0.107008077204227,0.138694629073143,-0.222863391041756,-0.964933097362518,-0.00365045201033354,-0.994251549243927,0.107008077204227,-0.051262404769659,-0.954640865325928,-0.293313831090927,-0.0160088520497084,-0.98553341627121,0.168723449110985,-0.0126068731769919,-0.988713443279266,-0.149287700653076,-0.051262404769659,-0.954640865325928,-0.293313831090927,-0.00365045201033354,-0.994251549243927,0.107008077204227,0.00606647133827209,-0.993839144706726,0.110666036605835,-0.00365045201033354,-0.994251549243927,0.107008077204227,0.0289732664823532,-0.9869145154953,0.158619895577431,0.00351600395515561,-0.981864929199219,0.189549714326859,0.0289732664823532,-0.9869145154953,0.158619895577431,-0.0471390970051289,-0.970478713512421,0.236535280942917,-0.0471390970051289,-0.970478713512421,0.236535280942917,0.0289732664823532,-0.9869145154953,0.158619895577431,-0.0183371603488922,-0.984309136867523,0.175497129559517,-0.0183371603488922,-0.984309136867523,0.175497129559517,0.0289732664823532,-0.9869145154953,0.158619895577431,-0.00365045201033354,-0.994251549243927,0.107008077204227,-0.00365045201033354,-0.994251549243927,0.107008077204227,0.00606647133827209,-0.993839144706726,0.110666036605835, +0.0664495676755905,-0.982405006885529,-0.174541965126991,-0.980663120746613,0.030616719275713,-0.193293660879135,-0.971190929412842,0.0311234891414642,-0.236261546611786,-0.986242532730103,0.0329862534999847,-0.161980226635933,-0.980663120746613,0.030616719275713,-0.193293660879135,-0.979677438735962,0.0255741700530052,-0.198942944407463,-0.971190929412842,0.0311234891414642,-0.236261546611786,-0.971190929412842,0.0311234891414642,-0.236261546611786,-0.964950025081635,0.0159999933093786,-0.261945694684982,-0.986242532730103,0.0329862534999847,-0.161980226635933,-0.998479664325714,-0.0538928993046284,-0.0115732438862324,-0.979677438735962,0.0255741700530052,-0.198942944407463,-0.980663120746613,0.030616719275713,-0.193293660879135,0.00351600395515561,-0.981864929199219,0.189549714326859,0.00411863625049591,-0.983243405818939,0.182251155376434,0.0289732664823532,-0.9869145154953,0.158619895577431,0.00411863625049591,-0.983243405818939,0.182251155376434,0.00351600395515561,-0.981864929199219,0.189549714326859,-0.0471390970051289,-0.970478713512421,0.236535280942917,-0.0839578807353973,-0.945987462997437,0.313143581151962,0.0870492309331894,-0.950158715248108,0.299367517232895,0.00411863625049591,-0.983243405818939,0.182251155376434,-0.0749380737543106,-0.945879638195038,0.315746903419495,0.00411863625049591,-0.983243405818939,0.182251155376434,-0.0471390970051289,-0.970478713512421,0.236535280942917,-0.704479992389679,-0.698450744152069,0.125994369387627,0.0390189662575722,-0.980611026287079,0.192040741443634,-0.526595771312714,-0.830722749233246,0.180545136332512,-0.623110353946686,-0.775758564472198,0.0996607542037964,-0.66782808303833,-0.74257230758667,0.0509129986166954,-0.526595771312714,-0.830722749233246,0.180545136332512,-0.663701891899109,-0.738616108894348,0.11809316277504,-0.526595771312714,-0.830722749233246,0.180545136332512,-0.66782808303833,-0.74257230758667,0.0509129986166954,-0.914913773536682,-0.296243250370026,0.274176776409149,-0.991435170173645,-0.108969077467918,0.0719877108931541,-0.608629107475281,-0.55966854095459,0.562442779541016, +-0.701233744621277,-0.516670167446136,0.491246581077576,-0.608629107475281,-0.55966854095459,0.562442779541016,-0.991435170173645,-0.108969077467918,0.0719877108931541,-0.774921298027039,-0.413490951061249,0.478039920330048,-0.819683492183685,-0.394674003124237,0.415152490139008,-0.991435170173645,-0.108969077467918,0.0719877108931541,-0.701233744621277,-0.516670167446136,0.491246581077576,-0.991435170173645,-0.108969077467918,0.0719877108931541,-0.819683492183685,-0.394674003124237,0.415152490139008,-0.998479664325714,-0.0538928993046284,-0.0115732438862324,-0.997064292430878,-0.0670352056622505,0.0370035357773304,-0.995087325572968,-0.0819869190454483,0.055492989718914,-0.995087325572968,-0.0819869190454483,0.055492989718914,-0.994334816932678,-0.0951277911663055,0.0474256165325642,-0.998479664325714,-0.0538928993046284,-0.0115732438862324,-0.633522391319275,-0.569139063358307,0.524147033691406,-0.981466054916382,-0.147139593958855,0.122777737677097,-0.933569073677063,-0.266918540000916,0.239172071218491,-0.991435170173645,-0.108969077467918,0.0719877108931541,-0.933569073677063,-0.266918540000916,0.239172071218491,-0.981466054916382,-0.147139593958855,0.122777737677097,-0.4405697286129,-0.542167365550995,0.715508878231049,-0.420173019170761,-0.657308340072632,0.625620067119598,-0.0839578807353973,-0.945987462997437,0.313143581151962,-0.842415332794189,0.00937615428119898,0.538747310638428,-0.969961643218994,-0.014077240601182,0.242850333452225,0.0870492309331894,-0.950158715248108,0.299367517232895,-0.650378704071045,-0.61406546831131,0.447136640548706,0.0870492309331894,-0.950158715248108,0.299367517232895,-0.969961643218994,-0.014077240601182,0.242850333452225,-0.663701891899109,-0.738616108894348,0.11809316277504,-0.805812180042267,-0.5921231508255,0.00754107534885406,-0.526595771312714,-0.830722749233246,0.180545136332512,-0.704479992389679,-0.698450744152069,0.125994369387627,-0.526595771312714,-0.830722749233246,0.180545136332512,-0.805812180042267,-0.5921231508255,0.00754107534885406,-0.940985977649689,-0.239988505840302,0.238643959164619, +-0.966858386993408,-0.18565633893013,0.175261527299881,-0.981466054916382,-0.147139593958855,0.122777737677097,-0.991435170173645,-0.108969077467918,0.0719877108931541,-0.981466054916382,-0.147139593958855,0.122777737677097,-0.966858386993408,-0.18565633893013,0.175261527299881,-0.983742535114288,-0.145066067576408,0.105861432850361,-0.994334816932678,-0.0951277911663055,0.0474256165325642,-0.966858386993408,-0.18565633893013,0.175261527299881,-0.991435170173645,-0.108969077467918,0.0719877108931541,-0.966858386993408,-0.18565633893013,0.175261527299881,-0.994334816932678,-0.0951277911663055,0.0474256165325642,0.0339155048131943,-0.92292046546936,0.383494049310684,-0.0538437962532043,-0.919116914272308,0.390288203954697,-0.020503481850028,-0.976516783237457,0.214463457465172,-0.914913773536682,-0.296243250370026,0.274176776409149,-0.933569073677063,-0.266918540000916,0.239172071218491,-0.991435170173645,-0.108969077467918,0.0719877108931541,-0.0839578807353973,-0.945987462997437,0.313143581151962,-0.420173019170761,-0.657308340072632,0.625620067119598,0.0870492309331894,-0.950158715248108,0.299367517232895,-0.842415332794189,0.00937615428119898,0.538747310638428,0.0870492309331894,-0.950158715248108,0.299367517232895,-0.420173019170761,-0.657308340072632,0.625620067119598,-0.905626058578491,-0.383904099464417,0.180164113640785,-0.101957477629185,-0.945285677909851,0.309902876615524,-0.932642161846161,-0.235565811395645,0.27329021692276,-0.932642161846161,-0.235565811395645,0.27329021692276,-0.101957477629185,-0.945285677909851,0.309902876615524,0.0870492309331894,-0.950158715248108,0.299367517232895,-0.650378704071045,-0.61406546831131,0.447136640548706,-0.932642161846161,-0.235565811395645,0.27329021692276,0.0870492309331894,-0.950158715248108,0.299367517232895,-0.995087325572968,-0.0819869190454483,0.055492989718914,-0.991435170173645,-0.108969077467918,0.0719877108931541,-0.994334816932678,-0.0951277911663055,0.0474256165325642,-0.774921298027039,-0.413490951061249,0.478039920330048,-0.991435170173645,-0.108969077467918,0.0719877108931541, +-0.887324512004852,-0.317378759384155,0.334553331136703,-0.887324512004852,-0.317378759384155,0.334553331136703,-0.991435170173645,-0.108969077467918,0.0719877108931541,-0.995087325572968,-0.0819869190454483,0.055492989718914,-0.716959595680237,-0.450726270675659,0.53180342912674,-0.887324512004852,-0.317378759384155,0.334553331136703,-0.995087325572968,-0.0819869190454483,0.055492989718914,-0.980663120746613,0.030616719275713,-0.193293660879135,-0.997064292430878,-0.0670352056622505,0.0370035357773304,-0.998479664325714,-0.0538928993046284,-0.0115732438862324,-0.998916268348694,-0.0127835581079125,-0.0447542369365692,-0.997064292430878,-0.0670352056622505,0.0370035357773304,-0.980663120746613,0.030616719275713,-0.193293660879135,0.0870492309331894,-0.950158715248108,0.299367517232895,-0.0177703872323036,-0.983268797397614,0.181291878223419,0.00411863625049591,-0.983243405818939,0.182251155376434,0.00411863625049591,-0.983243405818939,0.182251155376434,-0.0177703872323036,-0.983268797397614,0.181291878223419,0.054352730512619,-0.992073237895966,0.113298311829567,-0.623110353946686,-0.775758564472198,0.0996607542037964,-0.526595771312714,-0.830722749233246,0.180545136332512,-0.228545442223549,-0.933476090431213,0.276386439800262,-0.526595771312714,-0.830722749233246,0.180545136332512,0.0390189662575722,-0.980611026287079,0.192040741443634,-0.228545442223549,-0.933476090431213,0.276386439800262,-0.228545442223549,-0.933476090431213,0.276386439800262,-0.101957477629185,-0.945285677909851,0.309902876615524,-0.568656265735626,-0.790386259555817,0.227859050035477,-0.905626058578491,-0.383904099464417,0.180164113640785,-0.568656265735626,-0.790386259555817,0.227859050035477,-0.101957477629185,-0.945285677909851,0.309902876615524,0.054352730512619,-0.992073237895966,0.113298311829567,-0.0177703872323036,-0.983268797397614,0.181291878223419,0.19491907954216,-0.979119777679443,0.0577148981392384,-0.623110353946686,-0.775758564472198,0.0996607542037964,-0.228545442223549,-0.933476090431213,0.276386439800262,-0.568656265735626,-0.790386259555817,0.227859050035477, +-0.704479992389679,-0.698450744152069,0.125994369387627,-0.885038137435913,-0.450515031814575,0.117233216762543,0.0390189662575722,-0.980611026287079,0.192040741443634,-0.161368727684021,-0.975613653659821,0.148789286613464,0.0390189662575722,-0.980611026287079,0.192040741443634,-0.885038137435913,-0.450515031814575,0.117233216762543,-0.228545442223549,-0.933476090431213,0.276386439800262,0.0390189662575722,-0.980611026287079,0.192040741443634,-0.0177703872323036,-0.983268797397614,0.181291878223419,0.19491907954216,-0.979119777679443,0.0577148981392384,-0.0177703872323036,-0.983268797397614,0.181291878223419,0.0390189662575722,-0.980611026287079,0.192040741443634,-0.228545442223549,-0.933476090431213,0.276386439800262,-0.0177703872323036,-0.983268797397614,0.181291878223419,-0.101957477629185,-0.945285677909851,0.309902876615524,-0.0165000054985285,-0.990643501281738,0.135473638772964,0.054352730512619,-0.992073237895966,0.113298311829567,0.0390189662575722,-0.980611026287079,0.192040741443634,0.19491907954216,-0.979119777679443,0.0577148981392384,0.0390189662575722,-0.980611026287079,0.192040741443634,0.054352730512619,-0.992073237895966,0.113298311829567,-0.0177703872323036,-0.983268797397614,0.181291878223419,0.0870492309331894,-0.950158715248108,0.299367517232895,-0.101957477629185,-0.945285677909851,0.309902876615524,-0.283577382564545,-0.957885921001434,-0.0451494604349136,-0.23740890622139,-0.970450520515442,-0.0431619323790073,-0.480799347162247,-0.875763952732086,-0.0432392247021198,-0.234162345528603,-0.971749782562256,-0.029505480080843,-0.147168800234795,-0.989104568958282,0.00368782132863998,-0.760805428028107,-0.644838869571686,-0.073199637234211,-0.151039615273476,-0.988273143768311,-0.0224354304373264,-0.147168800234795,-0.989104568958282,0.00368782132863998,-0.234162345528603,-0.971749782562256,-0.029505480080843,-0.279470473527908,-0.959283769130707,-0.0408771857619286,-0.125874549150467,-0.991850256919861,0.0197135861963034,-0.0413136631250381,-0.998733639717102,0.0287101678550243,-0.151039615273476,-0.988273143768311,-0.0224354304373264, +-0.0413136631250381,-0.998733639717102,0.0287101678550243,-0.147168800234795,-0.989104568958282,0.00368782132863998,-0.147168800234795,-0.989104568958282,0.00368782132863998,-0.0413136631250381,-0.998733639717102,0.0287101678550243,-0.125874549150467,-0.991850256919861,0.0197135861963034,-0.234162345528603,-0.971749782562256,-0.029505480080843,-0.760805428028107,-0.644838869571686,-0.073199637234211,-0.23740890622139,-0.970450520515442,-0.0431619323790073,-0.913208842277527,-0.380097180604935,0.146886840462685,-0.480799347162247,-0.875763952732086,-0.0432392247021198,-0.760805428028107,-0.644838869571686,-0.073199637234211,-0.23740890622139,-0.970450520515442,-0.0431619323790073,-0.760805428028107,-0.644838869571686,-0.073199637234211,-0.480799347162247,-0.875763952732086,-0.0432392247021198,-0.913208842277527,-0.380097180604935,0.146886840462685,-0.943144202232361,-0.301370650529861,0.140195608139038,-0.480799347162247,-0.875763952732086,-0.0432392247021198,-0.87917172908783,-0.470092862844467,-0.0779090076684952,-0.480799347162247,-0.875763952732086,-0.0432392247021198,-0.943144202232361,-0.301370650529861,0.140195608139038,0.415990352630615,-0.212297707796097,0.884240865707397,0.126698657870293,-0.269658595323563,0.954584538936615,0.0490017458796501,-0.835322916507721,0.547571539878845,-0.0296426173299551,-0.994542121887207,0.100036673247814,-0.0136912651360035,-0.983234047889709,0.181833267211914,-0.0576105192303658,-0.995992183685303,0.0684153065085411,-0.0296426173299551,-0.994542121887207,0.100036673247814,-0.0160088520497084,-0.98553341627121,0.168723449110985,-0.0136912651360035,-0.983234047889709,0.181833267211914,-0.0136912651360035,-0.983234047889709,0.181833267211914,-0.0494007840752602,-0.998774170875549,0.00314969616010785,-0.0810519158840179,-0.986463129520416,-0.142552435398102,-0.382818818092346,-0.914579451084137,-0.130362346768379,-0.234162345528603,-0.971749782562256,-0.029505480080843,-0.375359505414963,-0.922074913978577,-0.0942510440945625,-0.0346724055707455,-0.998162865638733,0.0496871322393417, +-0.375359505414963,-0.922074913978577,-0.0942510440945625,-0.0851865708827972,-0.99588668346405,0.030873354524374,-0.151039615273476,-0.988273143768311,-0.0224354304373264,-0.234162345528603,-0.971749782562256,-0.029505480080843,-0.382818818092346,-0.914579451084137,-0.130362346768379,-0.0346724055707455,-0.998162865638733,0.0496871322393417,0.0655825883150101,-0.983486413955688,0.16868194937706,-0.375359505414963,-0.922074913978577,-0.0942510440945625,-0.0885760188102722,-0.995353877544403,0.0377504825592041,-0.0851865708827972,-0.99588668346405,0.030873354524374,-0.234162345528603,-0.971749782562256,-0.029505480080843,-0.375359505414963,-0.922074913978577,-0.0942510440945625,-0.234162345528603,-0.971749782562256,-0.029505480080843,-0.0851865708827972,-0.99588668346405,0.030873354524374,-0.3001689016819,-0.944741249084473,-0.131767511367798,0.0655825883150101,-0.983486413955688,0.16868194937706,-0.0741475373506546,-0.996507287025452,0.0384097956120968,-0.0346724055707455,-0.998162865638733,0.0496871322393417,-0.0851865708827972,-0.99588668346405,0.030873354524374,0.177732199430466,-0.965286493301392,0.191398441791534,-0.0741475373506546,-0.996507287025452,0.0384097956120968,0.0655825883150101,-0.983486413955688,0.16868194937706,0.177732199430466,-0.965286493301392,0.191398441791534,-0.0346724055707455,-0.998162865638733,0.0496871322393417,0.177732199430466,-0.965286493301392,0.191398441791534,0.0655825883150101,-0.983486413955688,0.16868194937706,-0.0741475373506546,-0.996507287025452,0.0384097956120968,-0.0463299416005611,-0.997479617595673,0.0537402592599392,-0.0576105192303658,-0.995992183685303,0.0684153065085411,-0.0848916098475456,-0.995193243026733,0.0488245896995068,-0.0463299416005611,-0.997479617595673,0.0537402592599392,-0.0696190744638443,-0.996691942214966,0.0419343002140522,-0.0741475373506546,-0.996507287025452,0.0384097956120968,-0.0696190744638443,-0.996691942214966,0.0419343002140522,-0.0463299416005611,-0.997479617595673,0.0537402592599392,0.0655825883150101,-0.983486413955688,0.16868194937706, +-0.3001689016819,-0.944741249084473,-0.131767511367798,-0.375359505414963,-0.922074913978577,-0.0942510440945625,-0.382818818092346,-0.914579451084137,-0.130362346768379,-0.375359505414963,-0.922074913978577,-0.0942510440945625,-0.3001689016819,-0.944741249084473,-0.131767511367798,-0.234039798378944,-0.967363476753235,-0.0971262976527214,-0.3001689016819,-0.944741249084473,-0.131767511367798,-0.0741475373506546,-0.996507287025452,0.0384097956120968,-0.198940917849541,-0.976408660411835,-0.083956316113472,-0.100297778844833,-0.994674682617188,-0.0237234085798264,-0.0658972263336182,-0.997365832328796,-0.030317097902298,-0.11457085609436,-0.993231952190399,-0.0190724097192287,-0.0658972263336182,-0.997365832328796,-0.030317097902298,-0.100297778844833,-0.994674682617188,-0.0237234085798264,-0.2273830473423,-0.961996078491211,-0.151197418570518,-0.11457085609436,-0.993231952190399,-0.0190724097192287,-0.57369077205658,-0.533718526363373,-0.621307909488678,-0.816236972808838,-0.47750523686409,-0.325186222791672,-0.919784188270569,-0.0750680193305016,-0.385177731513977,-0.268500864505768,-0.960132002830505,-0.0778066143393517,-0.214006394147873,-0.938791036605835,-0.269949555397034,-0.268500864505768,-0.960132002830505,-0.0778066143393517,-0.919784188270569,-0.0750680193305016,-0.385177731513977,-0.176131755113602,-0.931435525417328,-0.31844237446785,-0.204328596591949,-0.914944052696228,-0.348033487796783,-0.907937705516815,-0.116596631705761,-0.402559757232666,-0.153748407959938,-0.942122280597687,-0.297937959432602,-0.907937705516815,-0.116596631705761,-0.402559757232666,-0.204328596591949,-0.914944052696228,-0.348033487796783,-0.816236972808838,-0.47750523686409,-0.325186222791672,-0.927255272865295,-0.0356558300554752,-0.372728109359741,-0.919784188270569,-0.0750680193305016,-0.385177731513977,-0.153748407959938,-0.942122280597687,-0.297937959432602,-0.0294303968548775,-0.959622204303741,-0.279748141765594,-0.907937705516815,-0.116596631705761,-0.402559757232666,-0.214006394147873,-0.938791036605835,-0.269949555397034, +-0.919784188270569,-0.0750680193305016,-0.385177731513977,-0.0294303968548775,-0.959622204303741,-0.279748141765594,-0.0294303968548775,-0.959622204303741,-0.279748141765594,-0.919784188270569,-0.0750680193305016,-0.385177731513977,-0.907937705516815,-0.116596631705761,-0.402559757232666,-0.57369077205658,-0.533718526363373,-0.621307909488678,-0.11457085609436,-0.993231952190399,-0.0190724097192287,-0.379861056804657,-0.636966824531555,-0.670804679393768,-0.0658972263336182,-0.997365832328796,-0.030317097902298,-0.11457085609436,-0.993231952190399,-0.0190724097192287,-0.137714669108391,-0.987741470336914,-0.07349544018507,-0.11457085609436,-0.993231952190399,-0.0190724097192287,-0.2273830473423,-0.961996078491211,-0.151197418570518,-0.137714669108391,-0.987741470336914,-0.07349544018507,-0.21202777326107,-0.937548398971558,-0.275766581296921,-0.137714669108391,-0.987741470336914,-0.07349544018507,-0.2273830473423,-0.961996078491211,-0.151197418570518,-0.0658972263336182,-0.997365832328796,-0.030317097902298,-0.137714669108391,-0.987741470336914,-0.07349544018507,0.0137516977265477,-0.999028086662292,0.0418790206313133,-0.268999308347702,-0.95845764875412,-0.0948593318462372,0.0137516977265477,-0.999028086662292,0.0418790206313133,-0.137714669108391,-0.987741470336914,-0.07349544018507,-0.816236972808838,-0.47750523686409,-0.325186222791672,-0.810511112213135,-0.522077620029449,-0.265531003475189,-0.927255272865295,-0.0356558300554752,-0.372728109359741,-0.833268642425537,-0.165366142988205,-0.527557969093323,-0.927255272865295,-0.0356558300554752,-0.372728109359741,-0.810511112213135,-0.522077620029449,-0.265531003475189,-0.0136912651360035,-0.983234047889709,0.181833267211914,-0.0810519158840179,-0.986463129520416,-0.142552435398102,-0.379861056804657,-0.636966824531555,-0.670804679393768,-0.268999308347702,-0.95845764875412,-0.0948593318462372,-0.299151360988617,-0.950410485267639,-0.08501997590065,0.0137516977265477,-0.999028086662292,0.0418790206313133,-0.279470473527908,-0.959283769130707,-0.0408771857619286, +0.0137516977265477,-0.999028086662292,0.0418790206313133,-0.299151360988617,-0.950410485267639,-0.08501997590065,0.0137516977265477,-0.999028086662292,0.0418790206313133,-0.0413136631250381,-0.998733639717102,0.0287101678550243,-0.0658972263336182,-0.997365832328796,-0.030317097902298,-0.0658972263336182,-0.997365832328796,-0.030317097902298,-0.0413136631250381,-0.998733639717102,0.0287101678550243,-0.198940917849541,-0.976408660411835,-0.083956316113472,-0.198940917849541,-0.976408660411835,-0.083956316113472,-0.0413136631250381,-0.998733639717102,0.0287101678550243,-0.151039615273476,-0.988273143768311,-0.0224354304373264,-0.176131755113602,-0.931435525417328,-0.31844237446785,-0.907937705516815,-0.116596631705761,-0.402559757232666,-0.70222407579422,-0.559752762317657,-0.43995264172554,-0.923153817653656,-0.0934207811951637,-0.372907251119614,-0.70222407579422,-0.559752762317657,-0.43995264172554,-0.907937705516815,-0.116596631705761,-0.402559757232666,-0.0213478952646255,-0.970366716384888,-0.240692362189293,-0.0122460946440697,-0.970338881015778,-0.241438448429108,-0.70222407579422,-0.559752762317657,-0.43995264172554,-0.176131755113602,-0.931435525417328,-0.31844237446785,-0.70222407579422,-0.559752762317657,-0.43995264172554,-0.0122460946440697,-0.970338881015778,-0.241438448429108,-0.931048691272736,-0.0259924717247486,-0.363968282938004,-0.923241853713989,-0.0540441274642944,-0.38039967417717,-0.923153817653656,-0.0934207811951637,-0.372907251119614,-0.907937705516815,-0.116596631705761,-0.402559757232666,-0.919784188270569,-0.0750680193305016,-0.385177731513977,-0.923153817653656,-0.0934207811951637,-0.372907251119614,-0.923241853713989,-0.0540441274642944,-0.38039967417717,-0.851567924022675,-0.376440465450287,-0.364862680435181,-0.923153817653656,-0.0934207811951637,-0.372907251119614,-0.815282225608826,-0.453226238489151,-0.360417991876602,-0.923153817653656,-0.0934207811951637,-0.372907251119614,-0.851567924022675,-0.376440465450287,-0.364862680435181,-0.279470473527908,-0.959283769130707,-0.0408771857619286, +-0.0413136631250381,-0.998733639717102,0.0287101678550243,0.0137516977265477,-0.999028086662292,0.0418790206313133,-0.815282225608826,-0.453226238489151,-0.360417991876602,-0.903449475765228,-0.201442986726761,-0.378417491912842,-0.923153817653656,-0.0934207811951637,-0.372907251119614,-0.70222407579422,-0.559752762317657,-0.43995264172554,-0.923153817653656,-0.0934207811951637,-0.372907251119614,-0.874827027320862,-0.297661691904068,-0.382197886705399,-0.874827027320862,-0.297661691904068,-0.382197886705399,-0.923153817653656,-0.0934207811951637,-0.372907251119614,-0.903449475765228,-0.201442986726761,-0.378417491912842,-0.11457085609436,-0.993231952190399,-0.0190724097192287,-0.100297778844833,-0.994674682617188,-0.0237234085798264,-0.0576105192303658,-0.995992183685303,0.0684153065085411,-0.0576105192303658,-0.995992183685303,0.0684153065085411,-0.100297778844833,-0.994674682617188,-0.0237234085798264,-0.234039798378944,-0.967363476753235,-0.0971262976527214,-0.0136912651360035,-0.983234047889709,0.181833267211914,-0.379861056804657,-0.636966824531555,-0.670804679393768,-0.0576105192303658,-0.995992183685303,0.0684153065085411,-0.11457085609436,-0.993231952190399,-0.0190724097192287,-0.0576105192303658,-0.995992183685303,0.0684153065085411,-0.379861056804657,-0.636966824531555,-0.670804679393768,-0.234039798378944,-0.967363476753235,-0.0971262976527214,-0.100297778844833,-0.994674682617188,-0.0237234085798264,-0.198940917849541,-0.976408660411835,-0.083956316113472,-0.234039798378944,-0.967363476753235,-0.0971262976527214,-0.198940917849541,-0.976408660411835,-0.083956316113472,-0.3001689016819,-0.944741249084473,-0.131767511367798,-0.3001689016819,-0.944741249084473,-0.131767511367798,-0.198940917849541,-0.976408660411835,-0.083956316113472,-0.382818818092346,-0.914579451084137,-0.130362346768379,-0.382818818092346,-0.914579451084137,-0.130362346768379,-0.198940917849541,-0.976408660411835,-0.083956316113472,-0.151039615273476,-0.988273143768311,-0.0224354304373264,-0.0576105192303658,-0.995992183685303,0.0684153065085411, +-0.234039798378944,-0.967363476753235,-0.0971262976527214,-0.0741475373506546,-0.996507287025452,0.0384097956120968,-0.263217151165009,-0.963727116584778,-0.0441225804388523,-0.283577382564545,-0.957885921001434,-0.0451494604349136,-0.855691194534302,-0.462016820907593,0.233094573020935,-0.855691194534302,-0.462016820907593,0.233094573020935,-0.283577382564545,-0.957885921001434,-0.0451494604349136,-0.584950804710388,-0.808901131153107,-0.0592582523822784,-0.125942394137383,-0.987426519393921,-0.0955378711223602,-0.283577382564545,-0.957885921001434,-0.0451494604349136,-0.263217151165009,-0.963727116584778,-0.0441225804388523,-0.87917172908783,-0.470092862844467,-0.0779090076684952,-0.584950804710388,-0.808901131153107,-0.0592582523822784,-0.480799347162247,-0.875763952732086,-0.0432392247021198,-0.283577382564545,-0.957885921001434,-0.0451494604349136,-0.480799347162247,-0.875763952732086,-0.0432392247021198,-0.584950804710388,-0.808901131153107,-0.0592582523822784,-0.75227278470993,0.288945227861404,-0.592111945152283,-0.944204330444336,0.136666253209114,-0.299667447805405,-0.874121963977814,0.313833832740784,-0.37070107460022,-0.995859861373901,-0.049353614449501,-0.0763373523950577,-0.874121963977814,0.313833832740784,-0.37070107460022,-0.944204330444336,0.136666253209114,-0.299667447805405,-0.982938885688782,0.147824436426163,-0.109449595212936,-0.874121963977814,0.313833832740784,-0.37070107460022,-0.995859861373901,-0.049353614449501,-0.0763373523950577,-0.719124495983124,0.0425298735499382,-0.693578541278839,-0.624554812908173,0.0365542024374008,-0.780125141143799,-0.968313753604889,0.0303419530391693,-0.247886911034584,-0.531411707401276,0.045395590364933,-0.845896482467651,-0.968313753604889,0.0303419530391693,-0.247886911034584,-0.624554812908173,0.0365542024374008,-0.780125141143799,-0.982938885688782,0.147824436426163,-0.109449595212936,-0.995859861373901,-0.049353614449501,-0.0763373523950577,-0.996260166168213,0.0303497239947319,-0.0808984190225601,-0.87917172908783,-0.470092862844467,-0.0779090076684952, +-0.914607703685761,-0.370222330093384,-0.162567436695099,-0.584950804710388,-0.808901131153107,-0.0592582523822784,-0.961179256439209,-0.081741139292717,-0.263539046049118,-0.584950804710388,-0.808901131153107,-0.0592582523822784,-0.914607703685761,-0.370222330093384,-0.162567436695099,-0.125942394137383,-0.987426519393921,-0.0955378711223602,-0.124449484050274,-0.989020526409149,-0.0796920135617256,-0.283577382564545,-0.957885921001434,-0.0451494604349136,-0.923770308494568,0.000299409060971811,-0.382947146892548,-0.971190929412842,0.0311234891414642,-0.236261546611786,-0.925285935401917,-0.00384508119896054,-0.379250943660736,-0.971190929412842,0.0311234891414642,-0.236261546611786,-0.951009750366211,0.0302898250520229,-0.307673811912537,-0.925285935401917,-0.00384508119896054,-0.379250943660736,-0.531411707401276,0.045395590364933,-0.845896482467651,-0.951009750366211,0.0302898250520229,-0.307673811912537,-0.968313753604889,0.0303419530391693,-0.247886911034584,-0.971190929412842,0.0311234891414642,-0.236261546611786,-0.968313753604889,0.0303419530391693,-0.247886911034584,-0.951009750366211,0.0302898250520229,-0.307673811912537,-0.974795639514923,0.0318153612315655,-0.220819771289825,-0.938782453536987,0.0580044388771057,-0.339592486619949,-0.968313753604889,0.0303419530391693,-0.247886911034584,-0.719124495983124,0.0425298735499382,-0.693578541278839,-0.968313753604889,0.0303419530391693,-0.247886911034584,-0.938782453536987,0.0580044388771057,-0.339592486619949,-0.974795639514923,0.0318153612315655,-0.220819771289825,-0.968313753604889,0.0303419530391693,-0.247886911034584,-0.971190929412842,0.0311234891414642,-0.236261546611786,-0.974795639514923,0.0318153612315655,-0.220819771289825,-0.971190929412842,0.0311234891414642,-0.236261546611786,-0.979677438735962,0.0255741700530052,-0.198942944407463,-0.253151327371597,-0.965420067310333,-0.0622773244976997,-0.179613381624222,-0.983642399311066,0.0136680547147989,-0.179518356919289,-0.982746183872223,-0.0445323921740055,-0.995859861373901,-0.049353614449501,-0.0763373523950577, +-0.944204330444336,0.136666253209114,-0.299667447805405,-0.962255001068115,0.114826776087284,-0.246739119291306,-0.853753089904785,0.246029049158096,-0.458885043859482,-0.962255001068115,0.114826776087284,-0.246739119291306,-0.944204330444336,0.136666253209114,-0.299667447805405,-0.0885760188102722,-0.995353877544403,0.0377504825592041,-0.234162345528603,-0.971749782562256,-0.029505480080843,-0.179518356919289,-0.982746183872223,-0.0445323921740055,-0.253151327371597,-0.965420067310333,-0.0622773244976997,-0.179518356919289,-0.982746183872223,-0.0445323921740055,-0.234162345528603,-0.971749782562256,-0.029505480080843,-0.27590799331665,-0.959562718868256,-0.0558051317930222,-0.179613381624222,-0.983642399311066,0.0136680547147989,-0.253151327371597,-0.965420067310333,-0.0622773244976997,-0.283577382564545,-0.957885921001434,-0.0451494604349136,-0.124449484050274,-0.989020526409149,-0.0796920135617256,-0.253151327371597,-0.965420067310333,-0.0622773244976997,-0.995859861373901,-0.049353614449501,-0.0763373523950577,-0.962255001068115,0.114826776087284,-0.246739119291306,-0.989925742149353,0.0182536691427231,-0.140406474471092,-0.989925742149353,0.0182536691427231,-0.140406474471092,-0.962255001068115,0.114826776087284,-0.246739119291306,-0.640855073928833,0.45496678352356,-0.618312299251556,-0.922093629837036,0.208886563777924,-0.325744807720184,-0.640855073928833,0.45496678352356,-0.618312299251556,-0.962255001068115,0.114826776087284,-0.246739119291306,-0.158522576093674,-0.986344575881958,-0.0446671023964882,-0.315655142068863,-0.947026550769806,-0.0591835528612137,-0.124449484050274,-0.989020526409149,-0.0796920135617256,-0.124449484050274,-0.989020526409149,-0.0796920135617256,-0.315655142068863,-0.947026550769806,-0.0591835528612137,-0.253151327371597,-0.965420067310333,-0.0622773244976997,-0.27590799331665,-0.959562718868256,-0.0558051317930222,-0.253151327371597,-0.965420067310333,-0.0622773244976997,-0.315655142068863,-0.947026550769806,-0.0591835528612137,-0.234162345528603,-0.971749782562256,-0.029505480080843, +-0.23740890622139,-0.970450520515442,-0.0431619323790073,-0.253151327371597,-0.965420067310333,-0.0622773244976997,-0.283577382564545,-0.957885921001434,-0.0451494604349136,-0.253151327371597,-0.965420067310333,-0.0622773244976997,-0.23740890622139,-0.970450520515442,-0.0431619323790073,-0.179518356919289,-0.982746183872223,-0.0445323921740055,-0.179613381624222,-0.983642399311066,0.0136680547147989,-0.149097546935081,-0.98686558008194,-0.0621793121099472,-0.27590799331665,-0.959562718868256,-0.0558051317930222,-0.128919064998627,-0.954779863357544,-0.267909109592438,-0.179613381624222,-0.983642399311066,0.0136680547147989,-0.125942394137383,-0.987426519393921,-0.0955378711223602,-0.0801771059632301,-0.994672834873199,-0.064788892865181,-0.124449484050274,-0.989020526409149,-0.0796920135617256,-0.158522576093674,-0.986344575881958,-0.0446671023964882,-0.124449484050274,-0.989020526409149,-0.0796920135617256,-0.0801771059632301,-0.994672834873199,-0.064788892865181,-0.0851865708827972,-0.99588668346405,0.030873354524374,0.242282494902611,-0.954452395439148,0.174126282334328,0.177732199430466,-0.965286493301392,0.191398441791534,-0.0885760188102722,-0.995353877544403,0.0377504825592041,0.242282494902611,-0.954452395439148,0.174126282334328,-0.0851865708827972,-0.99588668346405,0.030873354524374,0.415990352630615,-0.212297707796097,0.884240865707397,0.0490017458796501,-0.835322916507721,0.547571539878845,0.898175358772278,0.0328161641955376,0.438411235809326,0.502278685569763,-0.618362128734589,0.604437291622162,0.634661257266998,-0.579098045825958,0.511713445186615,0.0490017458796501,-0.835322916507721,0.547571539878845,0.898175358772278,0.0328161641955376,0.438411235809326,0.0490017458796501,-0.835322916507721,0.547571539878845,0.845293045043945,-0.223985731601715,0.485087692737579,0.845293045043945,-0.223985731601715,0.485087692737579,0.0490017458796501,-0.835322916507721,0.547571539878845,0.634661257266998,-0.579098045825958,0.511713445186615,-0.0848857834935188,0.180610135197639,-0.979884922504425,-0.805755019187927,0.0988499224185944,-0.583941400051117, +-0.904431164264679,0.0726455971598625,-0.42038905620575,-0.136479467153549,0.0432696975767612,-0.989697515964508,-0.938782453536987,0.0580044388771057,-0.339592486619949,-0.805755019187927,0.0988499224185944,-0.583941400051117,-0.805755019187927,0.0988499224185944,-0.583941400051117,-0.938782453536987,0.0580044388771057,-0.339592486619949,-0.904431164264679,0.0726455971598625,-0.42038905620575,-0.974795639514923,0.0318153612315655,-0.220819771289825,-0.904431164264679,0.0726455971598625,-0.42038905620575,-0.938782453536987,0.0580044388771057,-0.339592486619949,-0.136479467153549,0.0432696975767612,-0.989697515964508,-0.426685631275177,0.00693011283874512,-0.904373466968536,-0.938782453536987,0.0580044388771057,-0.339592486619949,-0.719124495983124,0.0425298735499382,-0.693578541278839,-0.938782453536987,0.0580044388771057,-0.339592486619949,-0.426685631275177,0.00693011283874512,-0.904373466968536,-0.860051810741425,0.0997148975729942,-0.500367701053619,-0.904431164264679,0.0726455971598625,-0.42038905620575,-0.974795639514923,0.0318153612315655,-0.220819771289825,-0.0696190744638443,-0.996691942214966,0.0419343002140522,-0.0307595133781433,-0.997307419776917,0.0665711313486099,-0.184819728136063,-0.979886531829834,-0.0752597749233246,-0.184819728136063,-0.979886531829834,-0.0752597749233246,-0.0307595133781433,-0.997307419776917,0.0665711313486099,-0.0318383798003197,-0.998426198959351,0.04616829007864,-0.157822266221046,-0.97404271364212,0.162274599075317,-0.122483178973198,-0.989645004272461,0.0748377069830894,-0.0482930094003677,-0.991816699504852,0.118184052407742,-0.0482930094003677,-0.991816699504852,0.118184052407742,-0.122483178973198,-0.989645004272461,0.0748377069830894,-0.0307595133781433,-0.997307419776917,0.0665711313486099,-0.0307595133781433,-0.997307419776917,0.0665711313486099,-0.0696190744638443,-0.996691942214966,0.0419343002140522,0.177732199430466,-0.965286493301392,0.191398441791534,-0.0741475373506546,-0.996507287025452,0.0384097956120968,0.177732199430466,-0.965286493301392,0.191398441791534, +-0.0696190744638443,-0.996691942214966,0.0419343002140522,-0.184819728136063,-0.979886531829834,-0.0752597749233246,-0.0848916098475456,-0.995193243026733,0.0488245896995068,-0.0696190744638443,-0.996691942214966,0.0419343002140522,-0.0885760188102722,-0.995353877544403,0.0377504825592041,-0.0482930094003677,-0.991816699504852,0.118184052407742,0.242282494902611,-0.954452395439148,0.174126282334328,0.242282494902611,-0.954452395439148,0.174126282334328,-0.0482930094003677,-0.991816699504852,0.118184052407742,-0.0307595133781433,-0.997307419776917,0.0665711313486099,-0.149097546935081,-0.98686558008194,-0.0621793121099472,-0.146298542618752,-0.98909604549408,0.0169035717844963,-0.179518356919289,-0.982746183872223,-0.0445323921740055,-0.0885760188102722,-0.995353877544403,0.0377504825592041,-0.179518356919289,-0.982746183872223,-0.0445323921740055,-0.146298542618752,-0.98909604549408,0.0169035717844963,0.242282494902611,-0.954452395439148,0.174126282334328,-0.0307595133781433,-0.997307419776917,0.0665711313486099,0.177732199430466,-0.965286493301392,0.191398441791534,-0.322737604379654,-0.946148633956909,-0.0253620408475399,0.0712321475148201,-0.982289135456085,0.173303619027138,0.348791390657425,-0.860527634620667,0.371263653039932,0.339325666427612,-0.930506467819214,0.13789775967598,0.200613394379616,-0.96026337146759,0.194032177329063,0.0712321475148201,-0.982289135456085,0.173303619027138,0.0712321475148201,-0.982289135456085,0.173303619027138,0.200613394379616,-0.96026337146759,0.194032177329063,0.348791390657425,-0.860527634620667,0.371263653039932,0.527539074420929,-0.793205857276917,0.304182589054108,0.348791390657425,-0.860527634620667,0.371263653039932,0.200613394379616,-0.96026337146759,0.194032177329063,-0.0138873355463147,-0.998778164386749,0.0474281050264835,-0.137536436319351,-0.985438585281372,0.0999730080366135,-0.149097546935081,-0.98686558008194,-0.0621793121099472,0.0350151509046555,-0.979906558990479,-0.19635982811451,-0.179613381624222,-0.983642399311066,0.0136680547147989,0.0282929688692093,-0.980822205543518,-0.192840293049812, +-0.322737604379654,-0.946148633956909,-0.0253620408475399,-0.375047743320465,-0.921691596508026,-0.0991152226924896,0.0712321475148201,-0.982289135456085,0.173303619027138,-0.375047743320465,-0.921691596508026,-0.0991152226924896,-0.137536436319351,-0.985438585281372,0.0999730080366135,0.0712321475148201,-0.982289135456085,0.173303619027138,-0.375047743320465,-0.921691596508026,-0.0991152226924896,-0.146298542618752,-0.98909604549408,0.0169035717844963,-0.137536436319351,-0.985438585281372,0.0999730080366135,-0.137536436319351,-0.985438585281372,0.0999730080366135,-0.146298542618752,-0.98909604549408,0.0169035717844963,-0.149097546935081,-0.98686558008194,-0.0621793121099472,-0.0297055467963219,-0.984431803226471,-0.173238724470139,-0.149097546935081,-0.98686558008194,-0.0621793121099472,0.0350151509046555,-0.979906558990479,-0.19635982811451,0.0350151509046555,-0.979906558990479,-0.19635982811451,-0.149097546935081,-0.98686558008194,-0.0621793121099472,-0.179613381624222,-0.983642399311066,0.0136680547147989,-0.0138873355463147,-0.998778164386749,0.0474281050264835,-0.149097546935081,-0.98686558008194,-0.0621793121099472,-0.0297055467963219,-0.984431803226471,-0.173238724470139,-0.0885760188102722,-0.995353877544403,0.0377504825592041,-0.146298542618752,-0.98909604549408,0.0169035717844963,-0.0482930094003677,-0.991816699504852,0.118184052407742,-0.0482930094003677,-0.991816699504852,0.118184052407742,-0.146298542618752,-0.98909604549408,0.0169035717844963,-0.235290378332138,-0.97173023223877,0.0194675866514444,-0.235290378332138,-0.97173023223877,0.0194675866514444,-0.146298542618752,-0.98909604549408,0.0169035717844963,-0.375047743320465,-0.921691596508026,-0.0991152226924896,0.339325666427612,-0.930506467819214,0.13789775967598,0.0712321475148201,-0.982289135456085,0.173303619027138,0.487551003694534,-0.861756086349487,0.140252217650414,0.487551003694534,-0.861756086349487,0.140252217650414,0.0712321475148201,-0.982289135456085,0.173303619027138,-0.137536436319351,-0.985438585281372,0.0999730080366135,-0.0138873355463147,-0.998778164386749,0.0474281050264835, +0.487551003694534,-0.861756086349487,0.140252217650414,-0.137536436319351,-0.985438585281372,0.0999730080366135,-0.925143241882324,0.0701811239123344,-0.373074591159821,-0.974795639514923,0.0318153612315655,-0.220819771289825,-0.989925742149353,0.0182536691427231,-0.140406474471092,-0.566601514816284,0.168840378522873,-0.806508362293243,-0.357704758644104,0.164770811796188,-0.919183313846588,-0.925143241882324,0.0701811239123344,-0.373074591159821,-0.519095480442047,0.193152785301209,-0.832605481147766,-0.925143241882324,0.0701811239123344,-0.373074591159821,-0.357704758644104,0.164770811796188,-0.919183313846588,-0.519095480442047,0.193152785301209,-0.832605481147766,-0.772981762886047,0.120732381939888,-0.62283456325531,-0.925143241882324,0.0701811239123344,-0.373074591159821,-0.192563518881798,0.173329964280128,-0.965855062007904,-0.882648408412933,0.0850774943828583,-0.462270081043243,-0.772981762886047,0.120732381939888,-0.62283456325531,-0.925143241882324,0.0701811239123344,-0.373074591159821,-0.772981762886047,0.120732381939888,-0.62283456325531,-0.882648408412933,0.0850774943828583,-0.462270081043243,-0.178797021508217,-0.983810901641846,-0.0121549367904663,-0.157822266221046,-0.97404271364212,0.162274599075317,-0.322737604379654,-0.946148633956909,-0.0253620408475399,-0.322737604379654,-0.946148633956909,-0.0253620408475399,-0.157822266221046,-0.97404271364212,0.162274599075317,-0.375047743320465,-0.921691596508026,-0.0991152226924896,-0.235290378332138,-0.97173023223877,0.0194675866514444,-0.375047743320465,-0.921691596508026,-0.0991152226924896,-0.157822266221046,-0.97404271364212,0.162274599075317,-0.925143241882324,0.0701811239123344,-0.373074591159821,-0.882648408412933,0.0850774943828583,-0.462270081043243,-0.974795639514923,0.0318153612315655,-0.220819771289825,-0.860051810741425,0.0997148975729942,-0.500367701053619,-0.974795639514923,0.0318153612315655,-0.220819771289825,-0.882648408412933,0.0850774943828583,-0.462270081043243,-0.0160088520497084,-0.98553341627121,0.168723449110985,-0.0296426173299551,-0.994542121887207,0.100036673247814, +-0.00365045201033354,-0.994251549243927,0.107008077204227,-0.00365045201033354,-0.994251549243927,0.107008077204227,-0.0296426173299551,-0.994542121887207,0.100036673247814,-0.0183371603488922,-0.984309136867523,0.175497129559517,-0.0183371603488922,-0.984309136867523,0.175497129559517,-0.0296426173299551,-0.994542121887207,0.100036673247814,-0.0463299416005611,-0.997479617595673,0.0537402592599392,-0.173533856868744,-0.984374225139618,-0.029892772436142,-0.00975935254245996,-0.945949077606201,0.324168592691422,-0.233782038092613,-0.972118079662323,-0.018232362344861,-0.233782038092613,-0.972118079662323,-0.018232362344861,-0.00975935254245996,-0.945949077606201,0.324168592691422,-0.0280635692179203,-0.973588705062866,0.226577669382095,0.21576064825058,-0.831454634666443,0.511986792087555,-0.00975935254245996,-0.945949077606201,0.324168592691422,-0.173533856868744,-0.984374225139618,-0.029892772436142,0.0250593312084675,-0.804621994495392,0.593258321285248,0.0490017458796501,-0.835322916507721,0.547571539878845,0.126698657870293,-0.269658595323563,0.954584538936615,-0.0576105192303658,-0.995992183685303,0.0684153065085411,-0.0463299416005611,-0.997479617595673,0.0537402592599392,-0.0296426173299551,-0.994542121887207,0.100036673247814,-0.00790913868695498,-0.990149915218353,0.139787718653679,-0.0463299416005611,-0.997479617595673,0.0537402592599392,-0.0848916098475456,-0.995193243026733,0.0488245896995068,-0.0463299416005611,-0.997479617595673,0.0537402592599392,-0.0148717928677797,-0.991202831268311,0.131514102220535,-0.020503481850028,-0.976516783237457,0.214463457465172,0.0339155048131943,-0.92292046546936,0.383494049310684,-0.020503481850028,-0.976516783237457,0.214463457465172,-0.0148717928677797,-0.991202831268311,0.131514102220535,-0.0183371603488922,-0.984309136867523,0.175497129559517,-0.0463299416005611,-0.997479617595673,0.0537402592599392,-0.0320322886109352,-0.974182963371277,0.223476245999336,0.502278685569763,-0.618362128734589,0.604437291622162,0.0490017458796501,-0.835322916507721,0.547571539878845, +-0.00975935254245996,-0.945949077606201,0.324168592691422,-0.00975935254245996,-0.945949077606201,0.324168592691422,0.0490017458796501,-0.835322916507721,0.547571539878845,-0.0280635692179203,-0.973588705062866,0.226577669382095,-0.0280635692179203,-0.973588705062866,0.226577669382095,0.0490017458796501,-0.835322916507721,0.547571539878845,0.057982686907053,-0.921928346157074,0.382996261119843,-0.0463299416005611,-0.997479617595673,0.0537402592599392,-0.00790913868695498,-0.990149915218353,0.139787718653679,-0.0148717928677797,-0.991202831268311,0.131514102220535,0.0300936885178089,-0.965918064117432,0.257092744112015,0.057982686907053,-0.921928346157074,0.382996261119843,0.0338201858103275,-0.786468029022217,0.616704404354095,0.0490017458796501,-0.835322916507721,0.547571539878845,0.0338201858103275,-0.786468029022217,0.616704404354095,0.057982686907053,-0.921928346157074,0.382996261119843,0.0171623751521111,-0.929632902145386,0.36808705329895,0.0300936885178089,-0.965918064117432,0.257092744112015,0.0338201858103275,-0.786468029022217,0.616704404354095,-0.998479664325714,-0.0538928993046284,-0.0115732438862324,-0.989925742149353,0.0182536691427231,-0.140406474471092,-0.979677438735962,0.0255741700530052,-0.198942944407463,-0.995859861373901,-0.049353614449501,-0.0763373523950577,-0.989925742149353,0.0182536691427231,-0.140406474471092,-0.998479664325714,-0.0538928993046284,-0.0115732438862324,-0.989925742149353,0.0182536691427231,-0.140406474471092,-0.974795639514923,0.0318153612315655,-0.220819771289825,-0.979677438735962,0.0255741700530052,-0.198942944407463,0.057982686907053,-0.921928346157074,0.382996261119843,0.0300936885178089,-0.965918064117432,0.257092744112015,-0.0280635692179203,-0.973588705062866,0.226577669382095,-0.0280635692179203,-0.973588705062866,0.226577669382095,0.0300936885178089,-0.965918064117432,0.257092744112015,-0.233782038092613,-0.972118079662323,-0.018232362344861,-0.0776267722249031,-0.907673001289368,0.412436574697495,-0.0749380737543106,-0.945879638195038,0.315746903419495,-0.0320322886109352,-0.974182963371277,0.223476245999336, +-0.0183371603488922,-0.984309136867523,0.175497129559517,-0.0320322886109352,-0.974182963371277,0.223476245999336,-0.0749380737543106,-0.945879638195038,0.315746903419495,-0.0749380737543106,-0.945879638195038,0.315746903419495,-0.0471390970051289,-0.970478713512421,0.236535280942917,-0.0183371603488922,-0.984309136867523,0.175497129559517,-0.994334816932678,-0.0951277911663055,0.0474256165325642,-0.997558951377869,-0.0698294714093208,-0.000374767987523228,-0.998479664325714,-0.0538928993046284,-0.0115732438862324,-0.994334816932678,-0.0951277911663055,0.0474256165325642,-0.972408890724182,-0.0851422846317291,0.217190712690353,-0.997558951377869,-0.0698294714093208,-0.000374767987523228,0.00411863625049591,-0.983243405818939,0.182251155376434,-0.0749380737543106,-0.945879638195038,0.315746903419495,-0.0839578807353973,-0.945987462997437,0.313143581151962,-0.0839578807353973,-0.945987462997437,0.313143581151962,-0.0776267722249031,-0.907673001289368,0.412436574697495,-0.0576542317867279,-0.934690535068512,0.350755870342255,-0.0776267722249031,-0.907673001289368,0.412436574697495,-0.055385809391737,-0.946890234947205,0.316751301288605,-0.0576542317867279,-0.934690535068512,0.350755870342255,0.0171623751521111,-0.929632902145386,0.36808705329895,0.0316732823848724,-0.958889544010162,0.282006680965424,0.0300936885178089,-0.965918064117432,0.257092744112015,-0.498816311359406,0.362517327070236,0.787250578403473,-0.454291224479675,0.440877586603165,0.774110198020935,-0.450228691101074,-0.100913189351559,0.887192606925964,-0.394116103649139,-0.438963115215302,0.807455241680145,-0.450228691101074,-0.100913189351559,0.887192606925964,-0.0576542317867279,-0.934690535068512,0.350755870342255,-0.0576542317867279,-0.934690535068512,0.350755870342255,-0.450228691101074,-0.100913189351559,0.887192606925964,-0.454291224479675,0.440877586603165,0.774110198020935,-0.972408890724182,-0.0851422846317291,0.217190712690353,-0.942667841911316,-0.264007270336151,0.204150453209877,-0.862495303153992,-0.491815745830536,0.119243867695332,-0.909138321876526,-0.380161643028259,0.170131877064705, +-0.862495303153992,-0.491815745830536,0.119243867695332,-0.942667841911316,-0.264007270336151,0.204150453209877,-0.0706064328551292,-0.847155511379242,0.526633083820343,-0.379753440618515,-0.473452627658844,0.794751584529877,-0.0576542317867279,-0.934690535068512,0.350755870342255,-0.394116103649139,-0.438963115215302,0.807455241680145,-0.0576542317867279,-0.934690535068512,0.350755870342255,-0.379753440618515,-0.473452627658844,0.794751584529877,-0.983742535114288,-0.145066067576408,0.105861432850361,-0.942667841911316,-0.264007270336151,0.204150453209877,-0.994334816932678,-0.0951277911663055,0.0474256165325642,-0.0576542317867279,-0.934690535068512,0.350755870342255,-0.454291224479675,0.440877586603165,0.774110198020935,-0.0839578807353973,-0.945987462997437,0.313143581151962,-0.4405697286129,-0.542167365550995,0.715508878231049,-0.0839578807353973,-0.945987462997437,0.313143581151962,-0.454291224479675,0.440877586603165,0.774110198020935,-0.940985977649689,-0.239988505840302,0.238643959164619,-0.631716728210449,-0.696848511695862,0.339611768722534,-0.966858386993408,-0.18565633893013,0.175261527299881,-0.760480999946594,-0.570931971073151,0.309362769126892,-0.966858386993408,-0.18565633893013,0.175261527299881,-0.631716728210449,-0.696848511695862,0.339611768722534,-0.994334816932678,-0.0951277911663055,0.0474256165325642,-0.942667841911316,-0.264007270336151,0.204150453209877,-0.972408890724182,-0.0851422846317291,0.217190712690353,-0.0538437962532043,-0.919116914272308,0.390288203954697,-0.055385809391737,-0.946890234947205,0.316751301288605,-0.0776267722249031,-0.907673001289368,0.412436574697495,-0.0538437962532043,-0.919116914272308,0.390288203954697,-0.0843598544597626,-0.816841840744019,0.570659995079041,-0.171323105692863,-0.72136116027832,0.671033918857574,0.0300936885178089,-0.965918064117432,0.257092744112015,0.0316732823848724,-0.958889544010162,0.282006680965424,0.0358376540243626,-0.977353513240814,0.208556413650513,0.149982169270515,-0.912432014942169,0.380753636360168,0.0358376540243626,-0.977353513240814,0.208556413650513, +0.0316732823848724,-0.958889544010162,0.282006680965424,-0.995859861373901,-0.049353614449501,-0.0763373523950577,-0.998479664325714,-0.0538928993046284,-0.0115732438862324,-0.997558951377869,-0.0698294714093208,-0.000374767987523228,0.920685112476349,-0.357536315917969,0.156546592712402,0.634661257266998,-0.579098045825958,0.511713445186615,0.615994036197662,-0.745845854282379,0.253506153821945,-0.986499786376953,-0.143726155161858,0.0784921273589134,-0.999074995517731,-0.0264668539166451,-0.033893633633852,-0.997558951377869,-0.0698294714093208,-0.000374767987523228,-0.995859861373901,-0.049353614449501,-0.0763373523950577,-0.997558951377869,-0.0698294714093208,-0.000374767987523228,-0.999074995517731,-0.0264668539166451,-0.033893633633852,-0.219428271055222,-0.479889631271362,0.849445283412933,-0.322461992502213,-0.244194895029068,0.914542078971863,-0.171323105692863,-0.72136116027832,0.671033918857574,-0.139651790261269,-0.296720087528229,0.944698214530945,-0.171323105692863,-0.72136116027832,0.671033918857574,-0.187942624092102,0.409383356571198,0.892794966697693,-0.187942624092102,0.409383356571198,0.892794966697693,-0.171323105692863,-0.72136116027832,0.671033918857574,-0.322461992502213,-0.244194895029068,0.914542078971863,-0.203527823090553,-0.558377981185913,0.804232895374298,-0.0706064328551292,-0.847155511379242,0.526633083820343,-0.116972759366035,-0.785930097103119,0.607150256633759,-0.0576542317867279,-0.934690535068512,0.350755870342255,-0.055385809391737,-0.946890234947205,0.316751301288605,-0.0706064328551292,-0.847155511379242,0.526633083820343,-0.055385809391737,-0.946890234947205,0.316751301288605,-0.116972759366035,-0.785930097103119,0.607150256633759,-0.0706064328551292,-0.847155511379242,0.526633083820343,-0.0538437962532043,-0.919116914272308,0.390288203954697,-0.116972759366035,-0.785930097103119,0.607150256633759,-0.055385809391737,-0.946890234947205,0.316751301288605,-0.203527823090553,-0.558377981185913,0.804232895374298,-0.116972759366035,-0.785930097103119,0.607150256633759,-0.171323105692863,-0.72136116027832,0.671033918857574, +-0.0538437962532043,-0.919116914272308,0.390288203954697,-0.171323105692863,-0.72136116027832,0.671033918857574,-0.116972759366035,-0.785930097103119,0.607150256633759,-0.66572117805481,0.341058224439621,0.66369765996933,-0.379753440618515,-0.473452627658844,0.794751584529877,-0.203527823090553,-0.558377981185913,0.804232895374298,-0.0706064328551292,-0.847155511379242,0.526633083820343,-0.203527823090553,-0.558377981185913,0.804232895374298,-0.379753440618515,-0.473452627658844,0.794751584529877,-0.66572117805481,0.341058224439621,0.66369765996933,-0.203527823090553,-0.558377981185913,0.804232895374298,-0.553426384925842,0.285343945026398,0.782494783401489,-0.171323105692863,-0.72136116027832,0.671033918857574,-0.139651790261269,-0.296720087528229,0.944698214530945,-0.203527823090553,-0.558377981185913,0.804232895374298,-0.553426384925842,0.285343945026398,0.782494783401489,-0.203527823090553,-0.558377981185913,0.804232895374298,-0.333557516336441,0.370641469955444,0.866812705993652,-0.333557516336441,0.370641469955444,0.866812705993652,-0.203527823090553,-0.558377981185913,0.804232895374298,-0.139651790261269,-0.296720087528229,0.944698214530945,-0.187942624092102,0.409383356571198,0.892794966697693,-0.298588216304779,0.512784481048584,0.804920554161072,-0.139651790261269,-0.296720087528229,0.944698214530945,-0.333557516336441,0.370641469955444,0.866812705993652,-0.139651790261269,-0.296720087528229,0.944698214530945,-0.298588216304779,0.512784481048584,0.804920554161072,-0.984912037849426,-0.145493432879448,0.0937013849616051,-0.997558951377869,-0.0698294714093208,-0.000374767987523228,-0.978719592094421,-0.173142150044441,0.110134892165661,-0.997558951377869,-0.0698294714093208,-0.000374767987523228,-0.972408890724182,-0.0851422846317291,0.217190712690353,-0.978719592094421,-0.173142150044441,0.110134892165661,-0.984912037849426,-0.145493432879448,0.0937013849616051,-0.977328836917877,-0.172075301408768,0.123363085091114,-0.997558951377869,-0.0698294714093208,-0.000374767987523228,-0.986499786376953,-0.143726155161858,0.0784921273589134, +-0.997558951377869,-0.0698294714093208,-0.000374767987523228,-0.977328836917877,-0.172075301408768,0.123363085091114,-0.020503481850028,-0.976516783237457,0.214463457465172,-0.0538437962532043,-0.919116914272308,0.390288203954697,-0.0776267722249031,-0.907673001289368,0.412436574697495,-0.0776267722249031,-0.907673001289368,0.412436574697495,-0.0320322886109352,-0.974182963371277,0.223476245999336,-0.020503481850028,-0.976516783237457,0.214463457465172,-0.0320322886109352,-0.974182963371277,0.223476245999336,-0.0463299416005611,-0.997479617595673,0.0537402592599392,-0.020503481850028,-0.976516783237457,0.214463457465172,-0.0749380737543106,-0.945879638195038,0.315746903419495,-0.0776267722249031,-0.907673001289368,0.412436574697495,-0.0839578807353973,-0.945987462997437,0.313143581151962,-0.184819728136063,-0.979886531829834,-0.0752597749233246,-0.0318383798003197,-0.998426198959351,0.04616829007864,-0.0848916098475456,-0.995193243026733,0.0488245896995068,0.341919451951981,-0.809130966663361,0.477910339832306,0.116846330463886,-0.988490700721741,0.096089780330658,0.0767692625522614,-0.973017454147339,0.217585727572441,0.127652883529663,-0.93996649980545,0.31649312376976,-0.0318383798003197,-0.998426198959351,0.04616829007864,0.116846330463886,-0.988490700721741,0.096089780330658,-0.0307595133781433,-0.997307419776917,0.0665711313486099,-0.122483178973198,-0.989645004272461,0.0748377069830894,-0.0318383798003197,-0.998426198959351,0.04616829007864,0.0767692625522614,-0.973017454147339,0.217585727572441,0.116846330463886,-0.988490700721741,0.096089780330658,-0.122483178973198,-0.989645004272461,0.0748377069830894,-0.122483178973198,-0.989645004272461,0.0748377069830894,0.116846330463886,-0.988490700721741,0.096089780330658,-0.0318383798003197,-0.998426198959351,0.04616829007864,-0.00790913868695498,-0.990149915218353,0.139787718653679,-0.0318383798003197,-0.998426198959351,0.04616829007864,0.127652883529663,-0.93996649980545,0.31649312376976,-0.00790913868695498,-0.990149915218353,0.139787718653679,-0.0848916098475456,-0.995193243026733,0.0488245896995068, +-0.0318383798003197,-0.998426198959351,0.04616829007864,0.127652883529663,-0.93996649980545,0.31649312376976,0.116846330463886,-0.988490700721741,0.096089780330658,0.341919451951981,-0.809130966663361,0.477910339832306,0.325298994779587,-0.845848619937897,0.422753930091858,-0.157822266221046,-0.97404271364212,0.162274599075317,-0.178797021508217,-0.983810901641846,-0.0121549367904663,-0.160455018281937,-0.987022280693054,-0.00641694664955139,0.0358376540243626,-0.977353513240814,0.208556413650513,0.290279656648636,-0.877929449081421,0.380759596824646,0.290279656648636,-0.877929449081421,0.380759596824646,0.0358376540243626,-0.977353513240814,0.208556413650513,0.149982169270515,-0.912432014942169,0.380753636360168,0.0300936885178089,-0.965918064117432,0.257092744112015,0.0358376540243626,-0.977353513240814,0.208556413650513,-0.160455018281937,-0.987022280693054,-0.00641694664955139,0.150139957666397,-0.942262053489685,0.299333274364471,0.290279656648636,-0.877929449081421,0.380759596824646,0.325298994779587,-0.845848619937897,0.422753930091858,0.341919451951981,-0.809130966663361,0.477910339832306,0.0767692625522614,-0.973017454147339,0.217585727572441,0.290279656648636,-0.877929449081421,0.380759596824646,0.290279656648636,-0.877929449081421,0.380759596824646,0.0767692625522614,-0.973017454147339,0.217585727572441,0.325298994779587,-0.845848619937897,0.422753930091858,0.127652883529663,-0.93996649980545,0.31649312376976,0.341919451951981,-0.809130966663361,0.477910339832306,0.290279656648636,-0.877929449081421,0.380759596824646,0.615994036197662,-0.745845854282379,0.253506153821945,0.634661257266998,-0.579098045825958,0.511713445186615,0.348791390657425,-0.860527634620667,0.371263653039932,0.348791390657425,-0.860527634620667,0.371263653039932,0.634661257266998,-0.579098045825958,0.511713445186615,0.21576064825058,-0.831454634666443,0.511986792087555,0.150139957666397,-0.942262053489685,0.299333274364471,0.325298994779587,-0.845848619937897,0.422753930091858,-0.178797021508217,-0.983810901641846,-0.0121549367904663, +0.877067685127258,-0.466743946075439,-0.113589011132717,0.527539074420929,-0.793205857276917,0.304182589054108,0.790320515632629,-0.571333944797516,0.221294403076172,-0.122483178973198,-0.989645004272461,0.0748377069830894,-0.157822266221046,-0.97404271364212,0.162274599075317,0.0767692625522614,-0.973017454147339,0.217585727572441,0.290279656648636,-0.877929449081421,0.380759596824646,0.150139957666397,-0.942262053489685,0.299333274364471,-0.160455018281937,-0.987022280693054,-0.00641694664955139,0.127652883529663,-0.93996649980545,0.31649312376976,0.290279656648636,-0.877929449081421,0.380759596824646,0.149982169270515,-0.912432014942169,0.380753636360168,-0.235290378332138,-0.97173023223877,0.0194675866514444,-0.157822266221046,-0.97404271364212,0.162274599075317,-0.0482930094003677,-0.991816699504852,0.118184052407742,0.325298994779587,-0.845848619937897,0.422753930091858,0.0767692625522614,-0.973017454147339,0.217585727572441,-0.157822266221046,-0.97404271364212,0.162274599075317,0.877067685127258,-0.466743946075439,-0.113589011132717,0.615994036197662,-0.745845854282379,0.253506153821945,0.527539074420929,-0.793205857276917,0.304182589054108,0.615994036197662,-0.745845854282379,0.253506153821945,0.348791390657425,-0.860527634620667,0.371263653039932,0.527539074420929,-0.793205857276917,0.304182589054108,-0.925143241882324,0.0701811239123344,-0.373074591159821,-0.989925742149353,0.0182536691427231,-0.140406474471092,-0.918607234954834,0.0796912759542465,-0.38705313205719,-0.566601514816284,0.168840378522873,-0.806508362293243,-0.925143241882324,0.0701811239123344,-0.373074591159821,-0.918607234954834,0.0796912759542465,-0.38705313205719,0.0339155048131943,-0.92292046546936,0.383494049310684,-0.0148717928677797,-0.991202831268311,0.131514102220535,0.0171623751521111,-0.929632902145386,0.36808705329895,0.0368448384106159,-0.924730539321899,0.378835022449493,0.0171623751521111,-0.929632902145386,0.36808705329895,-0.0148717928677797,-0.991202831268311,0.131514102220535,-0.00790913868695498,-0.990149915218353,0.139787718653679, +0.0316732823848724,-0.958889544010162,0.282006680965424,-0.0148717928677797,-0.991202831268311,0.131514102220535,0.0316732823848724,-0.958889544010162,0.282006680965424,0.0368448384106159,-0.924730539321899,0.378835022449493,-0.0148717928677797,-0.991202831268311,0.131514102220535,0.0171623751521111,-0.929632902145386,0.36808705329895,0.0368448384106159,-0.924730539321899,0.378835022449493,0.0316732823848724,-0.958889544010162,0.282006680965424,0.149982169270515,-0.912432014942169,0.380753636360168,0.0316732823848724,-0.958889544010162,0.282006680965424,0.127652883529663,-0.93996649980545,0.31649312376976,-0.00790913868695498,-0.990149915218353,0.139787718653679,0.127652883529663,-0.93996649980545,0.31649312376976,0.0316732823848724,-0.958889544010162,0.282006680965424,-0.995859861373901,-0.049353614449501,-0.0763373523950577,-0.999074995517731,-0.0264668539166451,-0.033893633633852,-0.996260166168213,0.0303497239947319,-0.0808984190225601,-0.99713933467865,0.0172046981751919,-0.0736014768481255,-0.996260166168213,0.0303497239947319,-0.0808984190225601,-0.999074995517731,-0.0264668539166451,-0.033893633633852,0.348791390657425,-0.860527634620667,0.371263653039932,-0.231507182121277,-0.971622109413147,-0.0485274791717529,-0.322737604379654,-0.946148633956909,-0.0253620408475399,-0.178797021508217,-0.983810901641846,-0.0121549367904663,-0.322737604379654,-0.946148633956909,-0.0253620408475399,-0.231507182121277,-0.971622109413147,-0.0485274791717529,-0.0813478901982307,-0.987988412380219,0.131382569670677,-0.173533856868744,-0.984374225139618,-0.029892772436142,-0.231507182121277,-0.971622109413147,-0.0485274791717529,-0.160455018281937,-0.987022280693054,-0.00641694664955139,-0.178797021508217,-0.983810901641846,-0.0121549367904663,-0.173533856868744,-0.984374225139618,-0.029892772436142,-0.173533856868744,-0.984374225139618,-0.029892772436142,-0.178797021508217,-0.983810901641846,-0.0121549367904663,-0.231507182121277,-0.971622109413147,-0.0485274791717529,0.348791390657425,-0.860527634620667,0.371263653039932,0.0748383030295372,-0.943123698234558,0.323908805847168, +-0.231507182121277,-0.971622109413147,-0.0485274791717529,-0.0813478901982307,-0.987988412380219,0.131382569670677,-0.231507182121277,-0.971622109413147,-0.0485274791717529,0.0748383030295372,-0.943123698234558,0.323908805847168,0.21576064825058,-0.831454634666443,0.511986792087555,-0.173533856868744,-0.984374225139618,-0.029892772436142,-0.0813478901982307,-0.987988412380219,0.131382569670677,-0.160455018281937,-0.987022280693054,-0.00641694664955139,0.150139957666397,-0.942262053489685,0.299333274364471,-0.178797021508217,-0.983810901641846,-0.0121549367904663,0.0300936885178089,-0.965918064117432,0.257092744112015,-0.160455018281937,-0.987022280693054,-0.00641694664955139,-0.233782038092613,-0.972118079662323,-0.018232362344861,-0.173533856868744,-0.984374225139618,-0.029892772436142,-0.233782038092613,-0.972118079662323,-0.018232362344861,-0.160455018281937,-0.987022280693054,-0.00641694664955139,-0.0813478901982307,-0.987988412380219,0.131382569670677,0.0748383030295372,-0.943123698234558,0.323908805847168,0.21576064825058,-0.831454634666443,0.511986792087555,0.21576064825058,-0.831454634666443,0.511986792087555,0.0748383030295372,-0.943123698234558,0.323908805847168,0.348791390657425,-0.860527634620667,0.371263653039932,0.502278685569763,-0.618362128734589,0.604437291622162,-0.00975935254245996,-0.945949077606201,0.324168592691422,0.634661257266998,-0.579098045825958,0.511713445186615,0.21576064825058,-0.831454634666443,0.511986792087555,0.634661257266998,-0.579098045825958,0.511713445186615,-0.00975935254245996,-0.945949077606201,0.324168592691422,0.920685112476349,-0.357536315917969,0.156546592712402,0.964881062507629,-0.210160076618195,0.157598495483398,0.634661257266998,-0.579098045825958,0.511713445186615,0.845293045043945,-0.223985731601715,0.485087692737579,0.634661257266998,-0.579098045825958,0.511713445186615,0.964881062507629,-0.210160076618195,0.157598495483398 + } + BinormalsW: *1794 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + + } + LayerElementTangent: 0 { + Version: 102 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "Direct" + Tangents: *5382 { + a: -0.359936416149139,-0.22966156899929,0.904268443584442,-0.363875806331635,-0.148869097232819,0.919474005699158,-0.350765973329544,-0.192277252674103,0.916511058807373,-0.355984598398209,-0.154383063316345,0.921651124954224,-0.387712121009827,-0.283320009708405,0.877159774303436,-0.420872181653976,-0.372373282909393,0.827166676521301,-0.344143182039261,-0.186008781194687,0.920307636260986,-0.355984598398209,-0.154383063316345,0.921651124954224,-0.353315711021423,-0.125886768102646,0.926995456218719,-0.363875806331635,-0.148869097232819,0.919474005699158,-0.394172340631485,0.204527348279953,0.895989298820496,-0.355984598398209,-0.154383063316345,0.921651124954224,-0.394172340631485,0.204527348279953,0.895989298820496,-0.353315711021423,-0.125886768102646,0.926995456218719,-0.355984598398209,-0.154383063316345,0.921651124954224,-0.387712121009827,-0.283320009708405,0.877159774303436,-0.355984598398209,-0.154383063316345,0.921651124954224,-0.344143182039261,-0.186008781194687,0.920307636260986,-0.363875806331635,-0.148869097232819,0.919474005699158,-0.716487586498261,0.619561314582825,0.320607781410217,-0.394172340631485,0.204527348279953,0.895989298820496,-0.398785918951035,0.189634159207344,0.897222757339478,-0.363875806331635,-0.148869097232819,0.919474005699158,-0.545306265354156,0.0885435119271278,0.833547353744507,-0.420872181653976,-0.372373282909393,0.827166676521301,-0.345395773649216,-0.432510733604431,0.832848250865936,-0.355984598398209,-0.154383063316345,0.921651124954224,-0.355984598398209,-0.154383063316345,0.921651124954224,-0.345395773649216,-0.432510733604431,0.832848250865936,-0.286628097295761,-0.647754013538361,0.705874681472778,-0.496379137039185,0.868017971515656,0.0123473610728979,-0.545306265354156,0.0885435119271278,0.833547353744507,-0.628764271736145,0.7751305103302,0.0618713945150375,-0.678725898265839,0.69035017490387,0.250495135784149,-0.628764271736145,0.7751305103302,0.0618713945150375,-0.49366483092308,0.364915281534195,0.789387047290802,-0.49366483092308,0.364915281534195,0.789387047290802, +-0.628764271736145,0.7751305103302,0.0618713945150375,-0.545306265354156,0.0885435119271278,0.833547353744507,-0.363875806331635,-0.148869097232819,0.919474005699158,-0.355984598398209,-0.154383063316345,0.921651124954224,-0.350765973329544,-0.192277252674103,0.916511058807373,-0.998699843883514,-0.0459083802998066,-0.0221603699028492,-0.902692377567291,-0.276963949203491,-0.329298287630081,-0.914004266262054,-0.203416466712952,-0.351024180650711,-0.914004266262054,-0.203416466712952,-0.351024180650711,-0.902692377567291,-0.276963949203491,-0.329298287630081,-0.906980156898499,-0.196828499436378,-0.37235152721405,0.0587258525192738,-0.959663152694702,-0.274950563907623,-0.344143182039261,-0.186008781194687,0.920307636260986,-0.0478601269423962,-0.998111128807068,-0.0385175608098507,-0.0478601269423962,-0.998111128807068,-0.0385175608098507,-0.344143182039261,-0.186008781194687,0.920307636260986,-0.508525848388672,-0.168192610144615,0.844460010528564,-0.168536439538002,-0.834985017776489,0.523827791213989,-0.344143182039261,-0.186008781194687,0.920307636260986,0.0587258525192738,-0.959663152694702,-0.274950563907623,-0.0168362278491259,-0.996886432170868,0.0770330280065537,-0.420872181653976,-0.372373282909393,0.827166676521301,-0.387712121009827,-0.283320009708405,0.877159774303436,-0.387712121009827,-0.283320009708405,0.877159774303436,-0.344143182039261,-0.186008781194687,0.920307636260986,-0.168536439538002,-0.834985017776489,0.523827791213989,-0.276277005672455,-0.322024583816528,0.905522584915161,-0.360071361064911,-0.223756700754166,0.90569394826889,-0.286628097295761,-0.647754013538361,0.705874681472778,-0.355984598398209,-0.154383063316345,0.921651124954224,-0.286628097295761,-0.647754013538361,0.705874681472778,-0.360071361064911,-0.223756700754166,0.90569394826889,-0.496379137039185,0.868017971515656,0.0123473610728979,-0.39629390835762,0.918093621730804,-0.00742479227483273,-0.545306265354156,0.0885435119271278,0.833547353744507,-0.398785918951035,0.189634159207344,0.897222757339478,-0.545306265354156,0.0885435119271278,0.833547353744507, +-0.39629390835762,0.918093621730804,-0.00742479227483273,-0.998699843883514,-0.0459083802998066,-0.0221603699028492,-0.992313981056213,0.0470687113702297,0.114444255828857,-0.902692377567291,-0.276963949203491,-0.329298287630081,-0.998629450798035,0.0489172711968422,-0.0186074730008841,-0.977495729923248,-0.127489849925041,-0.168072700500488,-0.992313981056213,0.0470687113702297,0.114444255828857,-0.992313981056213,0.0470687113702297,0.114444255828857,-0.977495729923248,-0.127489849925041,-0.168072700500488,-0.902692377567291,-0.276963949203491,-0.329298287630081,-0.398785918951035,0.189634159207344,0.897222757339478,-0.716487586498261,0.619561314582825,0.320607781410217,-0.363875806331635,-0.148869097232819,0.919474005699158,-0.560423672199249,0.817472994327545,0.132903888821602,-0.394172340631485,0.204527348279953,0.895989298820496,-0.716487586498261,0.619561314582825,0.320607781410217,-0.986954271793365,0.0426122806966305,0.155258908867836,-0.985228419303894,0.000289839197648689,0.171244859695435,-0.998775780200958,0.0225959867238998,0.0440038032829762,-0.973191380500793,-0.0767164155840874,0.216825112700462,-0.998775780200958,0.0225959867238998,0.0440038032829762,-0.985228419303894,0.000289839197648689,0.171244859695435,-0.994158029556274,0.049474973231554,0.0959272831678391,-0.986954271793365,0.0426122806966305,0.155258908867836,-0.996652960777283,0.0411733239889145,0.0706242695450783,-0.996652960777283,0.0411733239889145,0.0706242695450783,-0.986954271793365,0.0426122806966305,0.155258908867836,-0.998775780200958,0.0225959867238998,0.0440038032829762,-0.972672581672668,0.0552490204572678,0.225512072443962,-0.986954271793365,0.0426122806966305,0.155258908867836,-0.994158029556274,0.049474973231554,0.0959272831678391,-0.420872181653976,-0.372373282909393,0.827166676521301,-0.00144837237894535,-0.992187201976776,-0.124750226736069,-0.345395773649216,-0.432510733604431,0.832848250865936,-0.387712121009827,-0.283320009708405,0.877159774303436,-0.168536439538002,-0.834985017776489,0.523827791213989,0.0587258525192738,-0.959663152694702,-0.274950563907623, +-0.00144837237894535,-0.992187201976776,-0.124750226736069,-0.0168362278491259,-0.996886432170868,0.0770330280065537,0.0587258525192738,-0.959663152694702,-0.274950563907623,-0.387712121009827,-0.283320009708405,0.877159774303436,0.0587258525192738,-0.959663152694702,-0.274950563907623,-0.0168362278491259,-0.996886432170868,0.0770330280065537,-0.0168362278491259,-0.996886432170868,0.0770330280065537,-0.00144837237894535,-0.992187201976776,-0.124750226736069,-0.420872181653976,-0.372373282909393,0.827166676521301,-0.13712677359581,0.507092773914337,0.850913047790527,-0.254789978265762,-0.097049281001091,0.962114095687866,-0.246826350688934,0.377225607633591,0.892624080181122,-0.238465756177902,0.352062374353409,0.90508908033371,-0.246826350688934,0.377225607633591,0.892624080181122,-0.254789978265762,-0.097049281001091,0.962114095687866,-0.353315711021423,-0.125886768102646,0.926995456218719,-0.49359917640686,-0.0891489684581757,0.865108370780945,-0.323607832193375,-0.198668375611305,0.92509937286377,-0.251526385545731,0.388116627931595,0.886622786521912,-0.323607832193375,-0.198668375611305,0.92509937286377,-0.49359917640686,-0.0891489684581757,0.865108370780945,-0.344143182039261,-0.186008781194687,0.920307636260986,-0.353315711021423,-0.125886768102646,0.926995456218719,-0.370919466018677,-0.113266594707966,0.92173182964325,-0.251526385545731,0.388116627931595,0.886622786521912,-0.49359917640686,-0.0891489684581757,0.865108370780945,-0.214713826775551,0.319574683904648,0.922913908958435,0.745688199996948,0.401610851287842,0.531655728816986,-0.214713826775551,0.319574683904648,0.922913908958435,-0.49359917640686,-0.0891489684581757,0.865108370780945,-0.21806463599205,0.886594891548157,0.407918483018875,-0.49359917640686,-0.0891489684581757,0.865108370780945,-0.105957351624966,0.991582632064819,-0.0744101405143738,-0.105957351624966,0.991582632064819,-0.0744101405143738,-0.49359917640686,-0.0891489684581757,0.865108370780945,-0.32430425286293,0.945930659770966,0.00648183142766356,0.745688199996948,0.401610851287842,0.531655728816986, +-0.49359917640686,-0.0891489684581757,0.865108370780945,-0.21806463599205,0.886594891548157,0.407918483018875,-0.41717192530632,0.265918254852295,0.869054079055786,-0.32430425286293,0.945930659770966,0.00648183142766356,-0.49359917640686,-0.0891489684581757,0.865108370780945,-0.811247944831848,-0.0875698924064636,-0.57810765504837,-0.594888985157013,-0.0780558735132217,-0.800008952617645,-0.849649429321289,-0.053772360086441,-0.524599373340607,-0.353315711021423,-0.125886768102646,0.926995456218719,-0.323607832193375,-0.198668375611305,0.92509937286377,-0.370919466018677,-0.113266594707966,0.92173182964325,-0.245835214853287,0.288980633020401,0.925232529640198,-0.370919466018677,-0.113266594707966,0.92173182964325,-0.323607832193375,-0.198668375611305,0.92509937286377,-0.255329430103302,0.126159146428108,0.958587944507599,-0.254789978265762,-0.097049281001091,0.962114095687866,-0.170901998877525,0.475891649723053,0.862739622592926,-0.13712677359581,0.507092773914337,0.850913047790527,-0.170901998877525,0.475891649723053,0.862739622592926,-0.254789978265762,-0.097049281001091,0.962114095687866,-0.901684463024139,-0.0448140203952789,-0.430066078901291,-0.849649429321289,-0.053772360086441,-0.524599373340607,-0.860396862030029,-0.0742750242352486,-0.504182934761047,0.450091391801834,0.787785112857819,0.420490562915802,-0.169629499316216,0.519209623336792,0.837643802165985,-0.100945807993412,0.611802756786346,0.784542739391327,-0.245835214853287,0.288980633020401,0.925232529640198,-0.323607832193375,-0.198668375611305,0.92509937286377,-0.169629499316216,0.519209623336792,0.837643802165985,-0.169629499316216,0.519209623336792,0.837643802165985,-0.323607832193375,-0.198668375611305,0.92509937286377,-0.100945807993412,0.611802756786346,0.784542739391327,-0.251526385545731,0.388116627931595,0.886622786521912,-0.100945807993412,0.611802756786346,0.784542739391327,-0.323607832193375,-0.198668375611305,0.92509937286377,-0.255329430103302,0.126159146428108,0.958587944507599,-0.312023669481277,-0.130663484334946,0.941046357154846, +-0.254789978265762,-0.097049281001091,0.962114095687866,-0.344143182039261,-0.186008781194687,0.920307636260986,-0.254789978265762,-0.097049281001091,0.962114095687866,-0.312023669481277,-0.130663484334946,0.941046357154846,-0.344143182039261,-0.186008781194687,0.920307636260986,-0.370919466018677,-0.113266594707966,0.92173182964325,-0.254789978265762,-0.097049281001091,0.962114095687866,-0.238465756177902,0.352062374353409,0.90508908033371,-0.254789978265762,-0.097049281001091,0.962114095687866,-0.370919466018677,-0.113266594707966,0.92173182964325,-0.41717192530632,0.265918254852295,0.869054079055786,-0.49359917640686,-0.0891489684581757,0.865108370780945,-0.353315711021423,-0.125886768102646,0.926995456218719,-0.646254658699036,-0.117738954722881,-0.753984332084656,-0.613546371459961,-0.0062872669659555,-0.789633691310883,-0.599448621273041,-0.123556613922119,-0.790819227695465,-0.579126179218292,0.00279975752346218,-0.815233170986176,-0.599448621273041,-0.123556613922119,-0.790819227695465,-0.613546371459961,-0.0062872669659555,-0.789633691310883,-0.441527903079987,-0.0577328987419605,-0.895388126373291,-0.440161168575287,-0.0766793489456177,-0.894638657569885,-0.569168329238892,-0.0814134106040001,-0.818180501461029,-0.401714980602264,-0.0360610671341419,-0.915054500102997,-0.569168329238892,-0.0814134106040001,-0.818180501461029,-0.440161168575287,-0.0766793489456177,-0.894638657569885,-0.599448621273041,-0.123556613922119,-0.790819227695465,-0.674459874629974,-0.101978190243244,-0.731234729290009,-0.49729785323143,-0.118196651339531,-0.859490752220154,-0.646254658699036,-0.117738954722881,-0.753984332084656,-0.599448621273041,-0.123556613922119,-0.790819227695465,-0.49729785323143,-0.118196651339531,-0.859490752220154,-0.599448621273041,-0.123556613922119,-0.790819227695465,-0.594888985157013,-0.0780558735132217,-0.800008952617645,-0.674459874629974,-0.101978190243244,-0.731234729290009,-0.594888985157013,-0.0780558735132217,-0.800008952617645,-0.811247944831848,-0.0875698924064636,-0.57810765504837,-0.674459874629974,-0.101978190243244,-0.731234729290009, +-0.594888985157013,-0.0780558735132217,-0.800008952617645,-0.497177988290787,0.00667713023722172,-0.867622852325439,-0.849649429321289,-0.053772360086441,-0.524599373340607,-0.579126179218292,0.00279975752346218,-0.815233170986176,-0.497177988290787,0.00667713023722172,-0.867622852325439,-0.599448621273041,-0.123556613922119,-0.790819227695465,-0.497177988290787,0.00667713023722172,-0.867622852325439,-0.594888985157013,-0.0780558735132217,-0.800008952617645,-0.599448621273041,-0.123556613922119,-0.790819227695465,-0.441527903079987,-0.0577328987419605,-0.895388126373291,-0.569168329238892,-0.0814134106040001,-0.818180501461029,-0.5282963514328,-0.0468590930104256,-0.847765982151031,-0.265423983335495,0.0194416120648384,-0.963935732841492,-0.49729785323143,-0.118196651339531,-0.859490752220154,-0.569168329238892,-0.0814134106040001,-0.818180501461029,-0.441527903079987,-0.0577328987419605,-0.895388126373291,-0.5282963514328,-0.0468590930104256,-0.847765982151031,-0.463101655244827,-0.0554868951439857,-0.884566605091095,-0.406457006931305,0.0319468788802624,-0.91311126947403,-0.463101655244827,-0.0554868951439857,-0.884566605091095,-0.5282963514328,-0.0468590930104256,-0.847765982151031,-0.569168329238892,-0.0814134106040001,-0.818180501461029,-0.674459874629974,-0.101978190243244,-0.731234729290009,-0.6282017827034,-0.122171185910702,-0.768398761749268,-0.49729785323143,-0.118196651339531,-0.859490752220154,-0.674459874629974,-0.101978190243244,-0.731234729290009,-0.569168329238892,-0.0814134106040001,-0.818180501461029,-0.646254658699036,-0.117738954722881,-0.753984332084656,-0.49729785323143,-0.118196651339531,-0.859490752220154,-0.425545811653137,-0.0898721218109131,-0.900463163852692,-0.265423983335495,0.0194416120648384,-0.963935732841492,-0.425545811653137,-0.0898721218109131,-0.900463163852692,-0.49729785323143,-0.118196651339531,-0.859490752220154,-0.401714980602264,-0.0360610671341419,-0.915054500102997,-0.308638393878937,0.0725590437650681,-0.948407888412476,-0.569168329238892,-0.0814134106040001,-0.818180501461029, +-0.265423983335495,0.0194416120648384,-0.963935732841492,-0.569168329238892,-0.0814134106040001,-0.818180501461029,-0.308638393878937,0.0725590437650681,-0.948407888412476,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.992681086063385,0.0184069834649563,0.11935406178236,-0.992313981056213,0.0470687113702297,0.114444255828857,-0.999685883522034,-0.0203926730901003,0.0145688094198704,-0.992681086063385,0.0184069834649563,0.11935406178236,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.339830160140991,-0.0520933791995049,0.939043045043945,-0.508525848388672,-0.168192610144615,0.844460010528564,-0.312023669481277,-0.130663484334946,0.941046357154846,-0.0639106333255768,-0.995117723941803,0.0752067938446999,-0.239263340830803,-0.879247784614563,0.411917686462402,-0.288145214319229,-0.865009725093842,0.410768091678619,-0.00215041893534362,-0.982365310192108,-0.186959341168404,-0.183272957801819,-0.982739508152008,0.0251809600740671,-0.239263340830803,-0.879247784614563,0.411917686462402,-0.463268607854843,-0.0711624771356583,0.883356153964996,-0.239263340830803,-0.879247784614563,0.411917686462402,-0.183272957801819,-0.982739508152008,0.0251809600740671,-0.339830160140991,-0.0520933791995049,0.939043045043945,-0.463268607854843,-0.0711624771356583,0.883356153964996,-0.508525848388672,-0.168192610144615,0.844460010528564,-0.322683125734329,-0.0146086541935802,0.946394264698029,-0.294151961803436,-0.121616840362549,0.947989404201508,-0.239263340830803,-0.879247784614563,0.411917686462402,-0.288145214319229,-0.865009725093842,0.410768091678619,-0.239263340830803,-0.879247784614563,0.411917686462402,-0.294151961803436,-0.121616840362549,0.947989404201508,-0.322683125734329,-0.0146086541935802,0.946394264698029,-0.239263340830803,-0.879247784614563,0.411917686462402,-0.339830160140991,-0.0520933791995049,0.939043045043945,-0.339830160140991,-0.0520933791995049,0.939043045043945,-0.239263340830803,-0.879247784614563,0.411917686462402,-0.463268607854843,-0.0711624771356583,0.883356153964996,-0.406457006931305,0.0319468788802624,-0.91311126947403, +-0.5282963514328,-0.0468590930104256,-0.847765982151031,-0.37603360414505,0.127280727028847,-0.917822659015656,-0.243111670017242,-0.0883959904313087,-0.965962052345276,-0.37603360414505,0.127280727028847,-0.917822659015656,-0.5282963514328,-0.0468590930104256,-0.847765982151031,0.278112649917603,-0.0842518582940102,-0.956846356391907,0.00836312770843506,-0.182223603129387,-0.983221590518951,-0.0898989588022232,-0.159460231661797,-0.98310250043869,-0.243111670017242,-0.0883959904313087,-0.965962052345276,-0.0898989588022232,-0.159460231661797,-0.98310250043869,0.00836312770843506,-0.182223603129387,-0.983221590518951,0.00836312770843506,-0.182223603129387,-0.983221590518951,-0.14211069047451,0.101139582693577,-0.984670162200928,-0.243111670017242,-0.0883959904313087,-0.965962052345276,-0.980924546718597,0.0613996125757694,-0.184437394142151,-0.948372364044189,-0.109901241958141,-0.297509014606476,-0.914004266262054,-0.203416466712952,-0.351024180650711,-0.0354234874248505,0.20743490755558,0.977607309818268,-0.342192471027374,-0.182860225439072,0.921665132045746,-0.339830160140991,-0.0520933791995049,0.939043045043945,-0.342344850301743,-0.16051110625267,0.925762534141541,-0.339830160140991,-0.0520933791995049,0.939043045043945,-0.342192471027374,-0.182860225439072,0.921665132045746,0.278112649917603,-0.0842518582940102,-0.956846356391907,0.382504910230637,-0.0657432228326797,-0.921611607074738,0.455785393714905,-0.00353023805655539,-0.890082657337189,-0.0354234874248505,0.20743490755558,0.977607309818268,-0.339830160140991,-0.0520933791995049,0.939043045043945,-0.312023669481277,-0.130663484334946,0.941046357154846,0.278112649917603,-0.0842518582940102,-0.956846356391907,0.455785393714905,-0.00353023805655539,-0.890082657337189,0.00836312770843506,-0.182223603129387,-0.983221590518951,0.404333531856537,0.174954771995544,-0.897722363471985,0.00836312770843506,-0.182223603129387,-0.983221590518951,0.457542896270752,0.137533456087112,-0.87848687171936,0.457542896270752,0.137533456087112,-0.87848687171936,0.00836312770843506,-0.182223603129387,-0.983221590518951, +0.455785393714905,-0.00353023805655539,-0.890082657337189,-0.322683125734329,-0.0146086541935802,0.946394264698029,-0.339830160140991,-0.0520933791995049,0.939043045043945,-0.336766242980957,-0.0266996435821056,0.941209673881531,-0.342344850301743,-0.16051110625267,0.925762534141541,-0.336766242980957,-0.0266996435821056,0.941209673881531,-0.339830160140991,-0.0520933791995049,0.939043045043945,-0.255329430103302,0.126159146428108,0.958587944507599,-0.23279170691967,0.204975068569183,0.950680434703827,-0.312023669481277,-0.130663484334946,0.941046357154846,0.142186477780342,0.292686223983765,0.945578038692474,-0.312023669481277,-0.130663484334946,0.941046357154846,-0.23279170691967,0.204975068569183,0.950680434703827,0.891461193561554,0.358364105224609,-0.27725824713707,0.433346539735794,-0.032309714704752,-0.90064811706543,0.965497016906738,0.0169179905205965,-0.259864032268524,0.404819339513779,-0.0918545797467232,-0.909771502017975,0.382504910230637,-0.0657432228326797,-0.921611607074738,-0.0898989588022232,-0.159460231661797,-0.98310250043869,0.278112649917603,-0.0842518582940102,-0.956846356391907,-0.0898989588022232,-0.159460231661797,-0.98310250043869,0.382504910230637,-0.0657432228326797,-0.921611607074738,0.397106558084488,-0.11917170137167,-0.910002529621124,0.298545867204666,-0.135999828577042,-0.94465571641922,0.29674506187439,-0.0569311380386353,-0.953258097171783,0.56957221031189,-0.158639684319496,-0.806486845016479,0.29674506187439,-0.0569311380386353,-0.953258097171783,0.298545867204666,-0.135999828577042,-0.94465571641922,0.721703886985779,-0.559968948364258,-0.406913191080093,0.708946704864502,-0.355338484048843,-0.609203636646271,0.298545867204666,-0.135999828577042,-0.94465571641922,0.56957221031189,-0.158639684319496,-0.806486845016479,0.298545867204666,-0.135999828577042,-0.94465571641922,0.708946704864502,-0.355338484048843,-0.609203636646271,0.965497016906738,0.0169179905205965,-0.259864032268524,0.29674506187439,-0.0569311380386353,-0.953258097171783,0.986151397228241,-0.165629491209984,-0.00851098448038101, +0.433346539735794,-0.032309714704752,-0.90064811706543,0.29674506187439,-0.0569311380386353,-0.953258097171783,0.965497016906738,0.0169179905205965,-0.259864032268524,0.433346539735794,-0.032309714704752,-0.90064811706543,0.382504910230637,-0.0657432228326797,-0.921611607074738,0.29674506187439,-0.0569311380386353,-0.953258097171783,0.29674506187439,-0.0569311380386353,-0.953258097171783,0.382504910230637,-0.0657432228326797,-0.921611607074738,0.404819339513779,-0.0918545797467232,-0.909771502017975,0.0255676321685314,-0.900050699710846,-0.435034424066544,-0.0139413354918361,-0.984364807605743,-0.175589218735695,-0.0164633952081203,-0.884346961975098,-0.466539978981018,-0.103092566132545,-0.937721312046051,-0.331738948822021,-0.0164633952081203,-0.884346961975098,-0.466539978981018,-0.0139413354918361,-0.984364807605743,-0.175589218735695,-0.0139413354918361,-0.984364807605743,-0.175589218735695,-0.239263340830803,-0.879247784614563,0.411917686462402,-0.0526108704507351,-0.998351395130157,-0.0229475628584623,-0.0526108704507351,-0.998351395130157,-0.0229475628584623,-0.239263340830803,-0.879247784614563,0.411917686462402,-0.0639106333255768,-0.995117723941803,0.0752067938446999,-0.00215041893534362,-0.982365310192108,-0.186959341168404,-0.239263340830803,-0.879247784614563,0.411917686462402,-0.0139413354918361,-0.984364807605743,-0.175589218735695,-0.103092566132545,-0.937721312046051,-0.331738948822021,-0.0139413354918361,-0.984364807605743,-0.175589218735695,-0.0231860019266605,-0.988272130489349,-0.150932237505913,-0.0526108704507351,-0.998351395130157,-0.0229475628584623,-0.0231860019266605,-0.988272130489349,-0.150932237505913,-0.0139413354918361,-0.984364807605743,-0.175589218735695,-0.227766811847687,0.0853355601429939,-0.969969153404236,0.0395591370761395,-0.874707043170929,-0.483034640550613,-0.136834487318993,0.124491579830647,-0.982740223407745,-0.00616667978465557,-0.446361392736435,-0.894831538200378,-0.136834487318993,0.124491579830647,-0.982740223407745,0.0395591370761395,-0.874707043170929,-0.483034640550613, +0.00129912979900837,-0.0913436710834503,-0.995818674564362,0.404819339513779,-0.0918545797467232,-0.909771502017975,-0.0898989588022232,-0.159460231661797,-0.98310250043869,0.404819339513779,-0.0918545797467232,-0.909771502017975,0.397106558084488,-0.11917170137167,-0.910002529621124,0.29674506187439,-0.0569311380386353,-0.953258097171783,0.427024483680725,0.00399404671043158,-0.904231250286102,0.485796064138412,-0.00253362441435456,-0.874068558216095,0.455785393714905,-0.00353023805655539,-0.890082657337189,0.457542896270752,0.137533456087112,-0.87848687171936,0.455785393714905,-0.00353023805655539,-0.890082657337189,0.485796064138412,-0.00253362441435456,-0.874068558216095,0.427024483680725,0.00399404671043158,-0.904231250286102,0.437650620937347,-0.0546157285571098,-0.897484838962555,0.536304235458374,0.0828882828354836,-0.839944779872894,0.536304235458374,0.0828882828354836,-0.839944779872894,0.437650620937347,-0.0546157285571098,-0.897484838962555,0.891461193561554,0.358364105224609,-0.27725824713707,0.891461193561554,0.358364105224609,-0.27725824713707,0.437650620937347,-0.0546157285571098,-0.897484838962555,0.433346539735794,-0.032309714704752,-0.90064811706543,0.986151397228241,-0.165629491209984,-0.00851098448038101,0.29674506187439,-0.0569311380386353,-0.953258097171783,0.870112895965576,-0.144583523273468,-0.471167832612991,0.56957221031189,-0.158639684319496,-0.806486845016479,0.870112895965576,-0.144583523273468,-0.471167832612991,0.29674506187439,-0.0569311380386353,-0.953258097171783,0.455785393714905,-0.00353023805655539,-0.890082657337189,0.382504910230637,-0.0657432228326797,-0.921611607074738,0.437650620937347,-0.0546157285571098,-0.897484838962555,0.433346539735794,-0.032309714704752,-0.90064811706543,0.437650620937347,-0.0546157285571098,-0.897484838962555,0.382504910230637,-0.0657432228326797,-0.921611607074738,0.427024483680725,0.00399404671043158,-0.904231250286102,0.455785393714905,-0.00353023805655539,-0.890082657337189,0.437650620937347,-0.0546157285571098,-0.897484838962555,-0.312023669481277,-0.130663484334946,0.941046357154846, +-0.508525848388672,-0.168192610144615,0.844460010528564,-0.344143182039261,-0.186008781194687,0.920307636260986,-0.508525848388672,-0.168192610144615,0.844460010528564,-0.114336252212524,-0.993439793586731,0.00216917763464153,-0.0478601269423962,-0.998111128807068,-0.0385175608098507,-0.00215041893534362,-0.982365310192108,-0.186959341168404,-0.0478601269423962,-0.998111128807068,-0.0385175608098507,-0.114336252212524,-0.993439793586731,0.00216917763464153,-0.00215041893534362,-0.982365310192108,-0.186959341168404,-0.114336252212524,-0.993439793586731,0.00216917763464153,-0.183272957801819,-0.982739508152008,0.0251809600740671,-0.00215041893534362,-0.982365310192108,-0.186959341168404,0.0587258525192738,-0.959663152694702,-0.274950563907623,-0.0478601269423962,-0.998111128807068,-0.0385175608098507,-0.183272957801819,-0.982739508152008,0.0251809600740671,-0.114336252212524,-0.993439793586731,0.00216917763464153,-0.463268607854843,-0.0711624771356583,0.883356153964996,-0.463268607854843,-0.0711624771356583,0.883356153964996,-0.114336252212524,-0.993439793586731,0.00216917763464153,-0.508525848388672,-0.168192610144615,0.844460010528564,-0.998629450798035,0.0489172711968422,-0.0186074730008841,-0.992313981056213,0.0470687113702297,0.114444255828857,-0.992681086063385,0.0184069834649563,0.11935406178236,-0.00215041893534362,-0.982365310192108,-0.186959341168404,-0.0139413354918361,-0.984364807605743,-0.175589218735695,0.0297805014997721,-0.91450172662735,-0.403484523296356,0.0255676321685314,-0.900050699710846,-0.435034424066544,0.0297805014997721,-0.91450172662735,-0.403484523296356,-0.0139413354918361,-0.984364807605743,-0.175589218735695,0.0112186567857862,-0.977267920970917,-0.211711347103119,-0.00215041893534362,-0.982365310192108,-0.186959341168404,0.0297805014997721,-0.91450172662735,-0.403484523296356,-0.998699843883514,-0.0459083802998066,-0.0221603699028492,-0.914004266262054,-0.203416466712952,-0.351024180650711,-0.948372364044189,-0.109901241958141,-0.297509014606476,-0.569168329238892,-0.0814134106040001,-0.818180501461029, +-0.6282017827034,-0.122171185910702,-0.768398761749268,-0.5282963514328,-0.0468590930104256,-0.847765982151031,-0.5282963514328,-0.0468590930104256,-0.847765982151031,-0.416582614183426,-0.0603702329099178,-0.907091081142426,-0.243111670017242,-0.0883959904313087,-0.965962052345276,-0.243111670017242,-0.0883959904313087,-0.965962052345276,-0.416582614183426,-0.0603702329099178,-0.907091081142426,-0.0898989588022232,-0.159460231661797,-0.98310250043869,-0.0898989588022232,-0.159460231661797,-0.98310250043869,-0.416582614183426,-0.0603702329099178,-0.907091081142426,0.00129912979900837,-0.0913436710834503,-0.995818674564362,-0.416582614183426,-0.0603702329099178,-0.907091081142426,-0.298812180757523,-0.124414399266243,-0.946167230606079,0.00129912979900837,-0.0913436710834503,-0.995818674564362,0.404819339513779,-0.0918545797467232,-0.909771502017975,0.525883793830872,-0.144990295171738,-0.838107407093048,0.397106558084488,-0.11917170137167,-0.910002529621124,0.506722509860992,-0.177429005503654,-0.843653500080109,0.670418500900269,-0.194458425045013,-0.716048181056976,0.525883793830872,-0.144990295171738,-0.838107407093048,0.525883793830872,-0.144990295171738,-0.838107407093048,0.670418500900269,-0.194458425045013,-0.716048181056976,0.397106558084488,-0.11917170137167,-0.910002529621124,0.00129912979900837,-0.0913436710834503,-0.995818674564362,0.525883793830872,-0.144990295171738,-0.838107407093048,0.404819339513779,-0.0918545797467232,-0.909771502017975,-0.298812180757523,-0.124414399266243,-0.946167230606079,0.525883793830872,-0.144990295171738,-0.838107407093048,0.00129912979900837,-0.0913436710834503,-0.995818674564362,-0.298812180757523,-0.124414399266243,-0.946167230606079,0.506722509860992,-0.177429005503654,-0.843653500080109,0.525883793830872,-0.144990295171738,-0.838107407093048,-0.5282963514328,-0.0468590930104256,-0.847765982151031,-0.6282017827034,-0.122171185910702,-0.768398761749268,-0.416582614183426,-0.0603702329099178,-0.907091081142426,-0.6282017827034,-0.122171185910702,-0.768398761749268,-0.298812180757523,-0.124414399266243,-0.946167230606079, +-0.416582614183426,-0.0603702329099178,-0.907091081142426,0.86738908290863,-0.387437015771866,-0.312295943498611,0.894176363945007,-0.359643131494522,-0.266656100749969,0.417410284280777,-0.210010185837746,-0.884117841720581,0.81174248456955,-0.254123479127884,-0.525828301906586,0.417410284280777,-0.210010185837746,-0.884117841720581,0.894176363945007,-0.359643131494522,-0.266656100749969,0.0405110567808151,-0.871915459632874,-0.487977683544159,-0.0380040518939495,-0.661915481090546,-0.748614370822906,0.035594217479229,-0.819323837757111,-0.572225093841553,-0.148517608642578,-0.646590769290924,-0.748239934444427,0.035594217479229,-0.819323837757111,-0.572225093841553,-0.0380040518939495,-0.661915481090546,-0.748614370822906,0.0922143012285233,-0.906984448432922,-0.410945147275925,0.0405110567808151,-0.871915459632874,-0.487977683544159,0.0297805014997721,-0.91450172662735,-0.403484523296356,0.0382875502109528,-0.856426060199738,-0.514847993850708,-0.0380040518939495,-0.661915481090546,-0.748614370822906,0.0405110567808151,-0.871915459632874,-0.487977683544159,0.0922143012285233,-0.906984448432922,-0.410945147275925,0.0297805014997721,-0.91450172662735,-0.403484523296356,0.0550652109086514,-0.896338224411011,-0.439938277006149,0.116326242685318,-0.912086308002472,-0.393149763345718,0.0550652109086514,-0.896338224411011,-0.439938277006149,0.0297805014997721,-0.91450172662735,-0.403484523296356,0.0255676321685314,-0.900050699710846,-0.435034424066544,0.0221564490348101,-0.815194547176361,-0.5787633061409,0.0297805014997721,-0.91450172662735,-0.403484523296356,0.116326242685318,-0.912086308002472,-0.393149763345718,0.0297805014997721,-0.91450172662735,-0.403484523296356,0.0221564490348101,-0.815194547176361,-0.5787633061409,0.637450814247131,-0.231826439499855,-0.73478764295578,0.506722509860992,-0.177429005503654,-0.843653500080109,0.81174248456955,-0.254123479127884,-0.525828301906586,0.81174248456955,-0.254123479127884,-0.525828301906586,0.506722509860992,-0.177429005503654,-0.843653500080109,0.417410284280777,-0.210010185837746,-0.884117841720581, +0.637450814247131,-0.231826439499855,-0.73478764295578,0.298545867204666,-0.135999828577042,-0.94465571641922,0.670418500900269,-0.194458425045013,-0.716048181056976,0.397106558084488,-0.11917170137167,-0.910002529621124,0.670418500900269,-0.194458425045013,-0.716048181056976,0.298545867204666,-0.135999828577042,-0.94465571641922,0.506722509860992,-0.177429005503654,-0.843653500080109,0.637450814247131,-0.231826439499855,-0.73478764295578,0.670418500900269,-0.194458425045013,-0.716048181056976,0.0551542975008488,-0.500208914279938,-0.864146530628204,0.0395591370761395,-0.874707043170929,-0.483034640550613,0.0268519055098295,-0.285351604223251,-0.958046674728394,-0.227766811847687,0.0853355601429939,-0.969969153404236,0.0268519055098295,-0.285351604223251,-0.958046674728394,0.0395591370761395,-0.874707043170929,-0.483034640550613,0.637450814247131,-0.231826439499855,-0.73478764295578,0.686399161815643,-0.395239323377609,-0.610444188117981,0.298545867204666,-0.135999828577042,-0.94465571641922,0.721703886985779,-0.559968948364258,-0.406913191080093,0.298545867204666,-0.135999828577042,-0.94465571641922,0.686399161815643,-0.395239323377609,-0.610444188117981,0.81174248456955,-0.254123479127884,-0.525828301906586,0.866346955299377,-0.349196434020996,-0.357078105211258,0.637450814247131,-0.231826439499855,-0.73478764295578,0.0382875502109528,-0.856426060199738,-0.514847993850708,0.109243482351303,-0.750649511814117,-0.651606738567352,-0.0380040518939495,-0.661915481090546,-0.748614370822906,-0.182471856474876,-0.517794787883759,-0.835818529129028,-0.0380040518939495,-0.661915481090546,-0.748614370822906,0.109243482351303,-0.750649511814117,-0.651606738567352,-0.127492919564247,-0.12889352440834,-0.983428657054901,0.625643074512482,-0.268986642360687,-0.732268273830414,0.417410284280777,-0.210010185837746,-0.884117841720581,0.86738908290863,-0.387437015771866,-0.312295943498611,0.417410284280777,-0.210010185837746,-0.884117841720581,0.625643074512482,-0.268986642360687,-0.732268273830414,0.417410284280777,-0.210010185837746,-0.884117841720581, +-0.298812180757523,-0.124414399266243,-0.946167230606079,-0.127492919564247,-0.12889352440834,-0.983428657054901,-0.127492919564247,-0.12889352440834,-0.983428657054901,-0.298812180757523,-0.124414399266243,-0.946167230606079,-0.301318645477295,-0.194787725806236,-0.933415710926056,0.506722509860992,-0.177429005503654,-0.843653500080109,-0.298812180757523,-0.124414399266243,-0.946167230606079,0.417410284280777,-0.210010185837746,-0.884117841720581,-0.369912207126617,0.087733693420887,0.924915075302124,-0.354326039552689,0.0156215848401189,0.934991538524628,-0.353315711021423,-0.125886768102646,0.926995456218719,-0.352273792028427,0.0503414608538151,0.934542059898376,-0.353315711021423,-0.125886768102646,0.926995456218719,-0.354326039552689,0.0156215848401189,0.934991538524628,-0.41717192530632,0.265918254852295,0.869054079055786,-0.353315711021423,-0.125886768102646,0.926995456218719,-0.359570235013962,0.0735559016466141,0.930214405059814,-0.352273792028427,0.0503414608538151,0.934542059898376,-0.359570235013962,0.0735559016466141,0.930214405059814,-0.353315711021423,-0.125886768102646,0.926995456218719,-0.369912207126617,0.087733693420887,0.924915075302124,-0.353315711021423,-0.125886768102646,0.926995456218719,-0.394172340631485,0.204527348279953,0.895989298820496,-0.990661680698395,-0.0435138344764709,-0.129212856292725,-0.983721792697906,-0.0290234535932541,-0.177338838577271,-0.883582830429077,-0.0381206832826138,-0.466720730066299,-0.883582830429077,-0.0381206832826138,-0.466720730066299,-0.983721792697906,-0.0290234535932541,-0.177338838577271,-0.972070574760437,-0.0242775678634644,-0.233429625630379,-0.988462865352631,-0.116907708346844,-0.0963006094098091,-0.983721792697906,-0.0290234535932541,-0.177338838577271,-0.990661680698395,-0.0435138344764709,-0.129212856292725,-0.98398894071579,-0.0793911591172218,-0.159571453928947,-0.983721792697906,-0.0290234535932541,-0.177338838577271,-0.989897727966309,0.00626133801415563,-0.14164474606514,-0.990424454212189,0.00161774980369955,-0.138046056032181,-0.989897727966309,0.00626133801415563,-0.14164474606514, +-0.983721792697906,-0.0290234535932541,-0.177338838577271,-0.990424454212189,0.00161774980369955,-0.138046056032181,-0.983721792697906,-0.0290234535932541,-0.177338838577271,-0.989833652973175,-0.0480922013521194,-0.133852168917656,-0.988462865352631,-0.116907708346844,-0.0963006094098091,-0.989833652973175,-0.0480922013521194,-0.133852168917656,-0.983721792697906,-0.0290234535932541,-0.177338838577271,-0.972070574760437,-0.0242775678634644,-0.233429625630379,-0.983721792697906,-0.0290234535932541,-0.177338838577271,-0.990295588970184,-0.0399221181869507,-0.133119598031044,-0.98398894071579,-0.0793911591172218,-0.159571453928947,-0.990295588970184,-0.0399221181869507,-0.133119598031044,-0.983721792697906,-0.0290234535932541,-0.177338838577271,-0.674459874629974,-0.101978190243244,-0.731234729290009,-0.811247944831848,-0.0875698924064636,-0.57810765504837,-0.883582830429077,-0.0381206832826138,-0.466720730066299,-0.811247944831848,-0.0875698924064636,-0.57810765504837,-0.849649429321289,-0.053772360086441,-0.524599373340607,-0.883582830429077,-0.0381206832826138,-0.466720730066299,-0.849649429321289,-0.053772360086441,-0.524599373340607,-0.901684463024139,-0.0448140203952789,-0.430066078901291,-0.883582830429077,-0.0381206832826138,-0.466720730066299,-0.901684463024139,-0.0448140203952789,-0.430066078901291,-0.990661680698395,-0.0435138344764709,-0.129212856292725,-0.883582830429077,-0.0381206832826138,-0.466720730066299,-0.759521484375,-0.12162659317255,-0.639010190963745,-0.791425883769989,-0.0724172070622444,-0.606960296630859,-0.911063313484192,-0.0913597419857979,-0.402016252279282,-0.991090953350067,0.0328125506639481,0.129081159830093,-0.992313981056213,0.0470687113702297,0.114444255828857,-0.998699843883514,-0.0459083802998066,-0.0221603699028492,-0.972070574760437,-0.0242775678634644,-0.233429625630379,-0.791425883769989,-0.0724172070622444,-0.606960296630859,-0.883582830429077,-0.0381206832826138,-0.466720730066299,-0.883582830429077,-0.0381206832826138,-0.466720730066299,-0.791425883769989,-0.0724172070622444,-0.606960296630859, +-0.674459874629974,-0.101978190243244,-0.731234729290009,-0.674459874629974,-0.101978190243244,-0.731234729290009,-0.791425883769989,-0.0724172070622444,-0.606960296630859,-0.759521484375,-0.12162659317255,-0.639010190963745,-0.989199578762054,-0.00426473980769515,-0.146512374281883,-0.998699843883514,-0.0459083802998066,-0.0221603699028492,-0.948372364044189,-0.109901241958141,-0.297509014606476,-0.674459874629974,-0.101978190243244,-0.731234729290009,-0.759521484375,-0.12162659317255,-0.639010190963745,-0.6282017827034,-0.122171185910702,-0.768398761749268,-0.996235907077789,0.0128835346549749,0.0857202857732773,-0.972070574760437,-0.0242775678634644,-0.233429625630379,-0.990295588970184,-0.0399221181869507,-0.133119598031044,-0.999786019325256,0.0100145516917109,0.0181036535650492,-0.996235907077789,0.0128835346549749,0.0857202857732773,-0.990295588970184,-0.0399221181869507,-0.133119598031044,-0.996235907077789,0.0128835346549749,0.0857202857732773,-0.985228419303894,0.000289839197648689,0.171244859695435,-0.986954271793365,0.0426122806966305,0.155258908867836,-0.999786019325256,0.0100145516917109,0.0181036535650492,-0.985228419303894,0.000289839197648689,0.171244859695435,-0.996235907077789,0.0128835346549749,0.0857202857732773,-0.791425883769989,-0.0724172070622444,-0.606960296630859,-0.996235907077789,0.0128835346549749,0.0857202857732773,-0.911063313484192,-0.0913597419857979,-0.402016252279282,-0.650047659873962,-0.146281957626343,-0.745680689811707,-0.911063313484192,-0.0913597419857979,-0.402016252279282,-0.914289176464081,-0.0534527786076069,-0.401519596576691,-0.914289176464081,-0.0534527786076069,-0.401519596576691,-0.911063313484192,-0.0913597419857979,-0.402016252279282,-0.999743819236755,0.0203808397054672,0.00984964426606894,-0.999743819236755,0.0203808397054672,0.00984964426606894,-0.911063313484192,-0.0913597419857979,-0.402016252279282,-0.996235907077789,0.0128835346549749,0.0857202857732773,-0.996235907077789,0.0128835346549749,0.0857202857732773,-0.791425883769989,-0.0724172070622444,-0.606960296630859, +-0.972070574760437,-0.0242775678634644,-0.233429625630379,0.0112186567857862,-0.977267920970917,-0.211711347103119,-0.00144837237894535,-0.992187201976776,-0.124750226736069,-0.00215041893534362,-0.982365310192108,-0.186959341168404,0.0112186567857862,-0.977267920970917,-0.211711347103119,0.0263838768005371,-0.966790020465851,-0.254206269979477,-0.00144837237894535,-0.992187201976776,-0.124750226736069,-0.00144837237894535,-0.992187201976776,-0.124750226736069,0.0587258525192738,-0.959663152694702,-0.274950563907623,-0.00215041893534362,-0.982365310192108,-0.186959341168404,0.0516634844243526,-0.841784834861755,-0.537335216999054,0.0263838768005371,-0.966790020465851,-0.254206269979477,0.0112186567857862,-0.977267920970917,-0.211711347103119,-0.650047659873962,-0.146281957626343,-0.745680689811707,-0.759521484375,-0.12162659317255,-0.639010190963745,-0.911063313484192,-0.0913597419857979,-0.402016252279282,-0.759521484375,-0.12162659317255,-0.639010190963745,-0.650047659873962,-0.146281957626343,-0.745680689811707,-0.914289176464081,-0.0534527786076069,-0.401519596576691,-0.856556594371796,-0.092064194381237,-0.507774293422699,-0.802593529224396,-0.244907736778259,-0.543933689594269,-0.759521484375,-0.12162659317255,-0.639010190963745,-0.885379135608673,-0.0825673416256905,-0.45747834444046,-0.759521484375,-0.12162659317255,-0.639010190963745,-0.914289176464081,-0.0534527786076069,-0.401519596576691,0.199490576982498,-0.365240037441254,-0.909287214279175,-0.301318645477295,-0.194787725806236,-0.933415710926056,0.258497953414917,-0.358791917562485,-0.896909773349762,0.321668088436127,-0.370324075222015,-0.871429741382599,0.481267362833023,-0.482979774475098,-0.731513619422913,0.258497953414917,-0.358791917562485,-0.896909773349762,0.401256144046783,-0.484811693429947,-0.777142882347107,0.258497953414917,-0.358791917562485,-0.896909773349762,0.481267362833023,-0.482979774475098,-0.731513619422913,0.0131383398547769,-0.700740218162537,-0.713295698165894,0.0388738475739956,-0.772448241710663,-0.633886933326721,-0.0269629098474979,-0.693855106830597,-0.719609797000885, +-0.00284591503441334,-0.687017500400543,-0.726635277271271,-0.0269629098474979,-0.693855106830597,-0.719609797000885,0.0388738475739956,-0.772448241710663,-0.633886933326721,0.0316806547343731,-0.780782580375671,-0.623999178409576,0.0757079124450684,-0.793041884899139,-0.604444146156311,0.0388738475739956,-0.772448241710663,-0.633886933326721,-0.00284591503441334,-0.687017500400543,-0.726635277271271,0.0388738475739956,-0.772448241710663,-0.633886933326721,0.0757079124450684,-0.793041884899139,-0.604444146156311,0.0516634844243526,-0.841784834861755,-0.537335216999054,0.0405110567808151,-0.871915459632874,-0.487977683544159,0.035594217479229,-0.819323837757111,-0.572225093841553,0.035594217479229,-0.819323837757111,-0.572225093841553,0.0441764071583748,-0.775651097297668,-0.629614114761353,0.0516634844243526,-0.841784834861755,-0.537335216999054,-0.2147346585989,-0.52148824930191,-0.825796008110046,0.0241757314652205,-0.730629563331604,-0.682345867156982,0.00163192057516426,-0.670496344566345,-0.741911053657532,0.0388738475739956,-0.772448241710663,-0.633886933326721,0.00163192057516426,-0.670496344566345,-0.741911053657532,0.0241757314652205,-0.730629563331604,-0.682345867156982,-0.757719457149506,-0.20283617079258,-0.620257079601288,-0.677146375179291,-0.231847390532494,-0.698369324207306,-0.856556594371796,-0.092064194381237,-0.507774293422699,-0.423096865415573,-0.630638837814331,-0.650602519512177,-0.151771157979965,-0.745165348052979,-0.649379670619965,-0.802593529224396,-0.244907736778259,-0.543933689594269,-0.156426206231117,-0.46775296330452,-0.869906902313232,-0.802593529224396,-0.244907736778259,-0.543933689594269,-0.151771157979965,-0.745165348052979,-0.649379670619965,0.401256144046783,-0.484811693429947,-0.777142882347107,0.371540933847427,-0.515459060668945,-0.77217823266983,0.258497953414917,-0.358791917562485,-0.896909773349762,0.199490576982498,-0.365240037441254,-0.909287214279175,0.258497953414917,-0.358791917562485,-0.896909773349762,0.371540933847427,-0.515459060668945,-0.77217823266983,-0.0567441247403622,-0.583265602588654,-0.810296952724457, +-0.0257741045206785,-0.61197417974472,-0.790457606315613,0.0241757314652205,-0.730629563331604,-0.682345867156982,0.0388738475739956,-0.772448241710663,-0.633886933326721,0.0241757314652205,-0.730629563331604,-0.682345867156982,-0.0257741045206785,-0.61197417974472,-0.790457606315613,-0.0165987703949213,-0.51350599527359,-0.857925415039063,0.0441764071583748,-0.775651097297668,-0.629614114761353,-0.0257741045206785,-0.61197417974472,-0.790457606315613,0.0388738475739956,-0.772448241710663,-0.633886933326721,-0.0257741045206785,-0.61197417974472,-0.790457606315613,0.0441764071583748,-0.775651097297668,-0.629614114761353,-0.998699843883514,-0.0459083802998066,-0.0221603699028492,-0.989199578762054,-0.00426473980769515,-0.146512374281883,-0.9997718334198,0.0213126223534346,0.00146099738776684,0.0131383398547769,-0.700740218162537,-0.713295698165894,0.00163192057516426,-0.670496344566345,-0.741911053657532,0.0388738475739956,-0.772448241710663,-0.633886933326721,-0.856556594371796,-0.092064194381237,-0.507774293422699,-0.677146375179291,-0.231847390532494,-0.698369324207306,-0.802593529224396,-0.244907736778259,-0.543933689594269,-0.423096865415573,-0.630638837814331,-0.650602519512177,-0.802593529224396,-0.244907736778259,-0.543933689594269,-0.677146375179291,-0.231847390532494,-0.698369324207306,0.130694687366486,-0.656821429729462,-0.742633461952209,-0.502442896366119,-0.219937145709991,-0.836169183254242,-0.0416248925030231,-0.68214339017868,-0.730032682418823,-0.0416248925030231,-0.68214339017868,-0.730032682418823,-0.502442896366119,-0.219937145709991,-0.836169183254242,-0.802593529224396,-0.244907736778259,-0.543933689594269,-0.156426206231117,-0.46775296330452,-0.869906902313232,-0.0416248925030231,-0.68214339017868,-0.730032682418823,-0.802593529224396,-0.244907736778259,-0.543933689594269,0.035594217479229,-0.819323837757111,-0.572225093841553,0.0388738475739956,-0.772448241710663,-0.633886933326721,0.0441764071583748,-0.775651097297668,-0.629614114761353,0.0316806547343731,-0.780782580375671,-0.623999178409576, +0.0388738475739956,-0.772448241710663,-0.633886933326721,-0.00558184646070004,-0.718038082122803,-0.695981442928314,-0.00558184646070004,-0.718038082122803,-0.695981442928314,0.0388738475739956,-0.772448241710663,-0.633886933326721,0.035594217479229,-0.819323837757111,-0.572225093841553,-0.148517608642578,-0.646590769290924,-0.748239934444427,-0.00558184646070004,-0.718038082122803,-0.695981442928314,0.035594217479229,-0.819323837757111,-0.572225093841553,0.0112186567857862,-0.977267920970917,-0.211711347103119,0.0405110567808151,-0.871915459632874,-0.487977683544159,0.0516634844243526,-0.841784834861755,-0.537335216999054,0.0297805014997721,-0.91450172662735,-0.403484523296356,0.0405110567808151,-0.871915459632874,-0.487977683544159,0.0112186567857862,-0.977267920970917,-0.211711347103119,-0.802593529224396,-0.244907736778259,-0.543933689594269,-0.72236031293869,-0.112738735973835,-0.682264983654022,-0.759521484375,-0.12162659317255,-0.639010190963745,-0.759521484375,-0.12162659317255,-0.639010190963745,-0.72236031293869,-0.112738735973835,-0.682264983654022,-0.6282017827034,-0.122171185910702,-0.768398761749268,0.321668088436127,-0.370324075222015,-0.871429741382599,0.258497953414917,-0.358791917562485,-0.896909773349762,-0.156651213765144,-0.244938790798187,-0.956799507141113,0.258497953414917,-0.358791917562485,-0.896909773349762,-0.301318645477295,-0.194787725806236,-0.933415710926056,-0.156651213765144,-0.244938790798187,-0.956799507141113,-0.156651213765144,-0.244938790798187,-0.956799507141113,-0.502442896366119,-0.219937145709991,-0.836169183254242,0.218601047992706,-0.412254005670547,-0.884454786777496,0.130694687366486,-0.656821429729462,-0.742633461952209,0.218601047992706,-0.412254005670547,-0.884454786777496,-0.502442896366119,-0.219937145709991,-0.836169183254242,-0.6282017827034,-0.122171185910702,-0.768398761749268,-0.72236031293869,-0.112738735973835,-0.682264983654022,-0.346689671278,-0.123823523521423,-0.929770946502686,0.321668088436127,-0.370324075222015,-0.871429741382599,-0.156651213765144,-0.244938790798187,-0.956799507141113, +0.218601047992706,-0.412254005670547,-0.884454786777496,0.199490576982498,-0.365240037441254,-0.909287214279175,0.18356366455555,-0.569169640541077,-0.801467597484589,-0.301318645477295,-0.194787725806236,-0.933415710926056,-0.127492919564247,-0.12889352440834,-0.983428657054901,-0.301318645477295,-0.194787725806236,-0.933415710926056,0.18356366455555,-0.569169640541077,-0.801467597484589,-0.156651213765144,-0.244938790798187,-0.956799507141113,-0.301318645477295,-0.194787725806236,-0.933415710926056,-0.72236031293869,-0.112738735973835,-0.682264983654022,-0.346689671278,-0.123823523521423,-0.929770946502686,-0.72236031293869,-0.112738735973835,-0.682264983654022,-0.301318645477295,-0.194787725806236,-0.933415710926056,-0.156651213765144,-0.244938790798187,-0.956799507141113,-0.72236031293869,-0.112738735973835,-0.682264983654022,-0.502442896366119,-0.219937145709991,-0.836169183254242,-0.298812180757523,-0.124414399266243,-0.946167230606079,-0.6282017827034,-0.122171185910702,-0.768398761749268,-0.301318645477295,-0.194787725806236,-0.933415710926056,-0.346689671278,-0.123823523521423,-0.929770946502686,-0.301318645477295,-0.194787725806236,-0.933415710926056,-0.6282017827034,-0.122171185910702,-0.768398761749268,-0.72236031293869,-0.112738735973835,-0.682264983654022,-0.802593529224396,-0.244907736778259,-0.543933689594269,-0.502442896366119,-0.219937145709991,-0.836169183254242,-0.0360811613500118,-0.036390908062458,0.998686075210571,-0.0901172906160355,-0.0222380757331848,0.995682835578918,-0.0472668223083019,-0.0233547315001488,0.998609125614166,-0.223650872707367,0.0243081822991371,0.974366188049316,-0.440617561340332,0.0688965916633606,0.895047187805176,-0.00896885525435209,-0.102333828806877,0.994709670543671,-0.472853273153305,0.0522989518940449,0.879587829113007,-0.440617561340332,0.0688965916633606,0.895047187805176,-0.223650872707367,0.0243081822991371,0.974366188049316,-0.30924654006958,0.0496253371238709,0.949686229228973,-0.383799284696579,0.0670125558972359,0.920981884002686,-0.424030423164368,0.0435446240007877,0.904600441455841, +-0.472853273153305,0.0522989518940449,0.879587829113007,-0.424030423164368,0.0435446240007877,0.904600441455841,-0.440617561340332,0.0688965916633606,0.895047187805176,-0.440617561340332,0.0688965916633606,0.895047187805176,-0.424030423164368,0.0435446240007877,0.904600441455841,-0.383799284696579,0.0670125558972359,0.920981884002686,-0.223650872707367,0.0243081822991371,0.974366188049316,-0.00896885525435209,-0.102333828806877,0.994709670543671,-0.0901172906160355,-0.0222380757331848,0.995682835578918,0.180243566632271,-0.0534934177994728,0.982166409492493,-0.0472668223083019,-0.0233547315001488,0.998609125614166,-0.00896885525435209,-0.102333828806877,0.994709670543671,-0.0901172906160355,-0.0222380757331848,0.995682835578918,-0.00896885525435209,-0.102333828806877,0.994709670543671,-0.0472668223083019,-0.0233547315001488,0.998609125614166,0.180243566632271,-0.0534934177994728,0.982166409492493,0.181290656328201,-0.112891338765621,0.976928532123566,-0.0472668223083019,-0.0233547315001488,0.998609125614166,-0.093659371137619,0.0101685905829072,0.99555230140686,-0.0472668223083019,-0.0233547315001488,0.998609125614166,0.181290656328201,-0.112891338765621,0.976928532123566,-0.860264658927917,0.223332732915878,0.458330810070038,-0.962749540805817,0.198316425085068,0.183804377913475,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.992920935153961,0.040814109146595,0.111544817686081,-0.972672581672668,0.0552490204572678,0.225512072443962,-0.973492085933685,0.0712385177612305,0.217343583703041,-0.992920935153961,0.040814109146595,0.111544817686081,-0.986954271793365,0.0426122806966305,0.155258908867836,-0.972672581672668,0.0552490204572678,0.225512072443962,-0.972672581672668,0.0552490204572678,0.225512072443962,-0.994158029556274,0.049474973231554,0.0959272831678391,-0.976780474185944,0.0501568503677845,0.208288639783859,-0.326027005910873,0.00171669572591782,0.945358872413635,-0.223650872707367,0.0243081822991371,0.974366188049316,-0.306795239448547,0.0276447422802448,0.951373875141144,-0.425157517194748,0.0597257278859615,0.903146684169769, +-0.306795239448547,0.0276447422802448,0.951373875141144,-0.0209546722471714,0.0327698402106762,0.999243259429932,-0.472853273153305,0.0522989518940449,0.879587829113007,-0.223650872707367,0.0243081822991371,0.974366188049316,-0.326027005910873,0.00171669572591782,0.945358872413635,-0.425157517194748,0.0597257278859615,0.903146684169769,-0.722321510314941,0.0698384344577789,0.688021898269653,-0.306795239448547,0.0276447422802448,0.951373875141144,-0.419840157032013,0.0716760382056236,0.904763400554657,-0.0209546722471714,0.0327698402106762,0.999243259429932,-0.223650872707367,0.0243081822991371,0.974366188049316,-0.306795239448547,0.0276447422802448,0.951373875141144,-0.223650872707367,0.0243081822991371,0.974366188049316,-0.0209546722471714,0.0327698402106762,0.999243259429932,-0.547451853752136,0.057497926056385,0.834859549999237,-0.722321510314941,0.0698384344577789,0.688021898269653,-0.815627992153168,0.0827603563666344,0.572627067565918,-0.425157517194748,0.0597257278859615,0.903146684169769,-0.0209546722471714,0.0327698402106762,0.999243259429932,-0.468513160943985,0.0880367308855057,0.879059135913849,-0.815627992153168,0.0827603563666344,0.572627067565918,-0.722321510314941,0.0698384344577789,0.688021898269653,-0.468513160943985,0.0880367308855057,0.879059135913849,-0.425157517194748,0.0597257278859615,0.903146684169769,-0.468513160943985,0.0880367308855057,0.879059135913849,-0.722321510314941,0.0698384344577789,0.688021898269653,-0.815627992153168,0.0827603563666344,0.572627067565918,-0.996097981929779,0.0501773022115231,0.0726024284958839,-0.973492085933685,0.0712385177612305,0.217343583703041,-0.972689807415009,0.0933968350291252,0.212489068508148,-0.996097981929779,0.0501773022115231,0.0726024284958839,-0.71813577413559,0.0792504698038101,0.69137567281723,-0.815627992153168,0.0827603563666344,0.572627067565918,-0.71813577413559,0.0792504698038101,0.69137567281723,-0.996097981929779,0.0501773022115231,0.0726024284958839,-0.722321510314941,0.0698384344577789,0.688021898269653,-0.547451853752136,0.057497926056385,0.834859549999237, +-0.306795239448547,0.0276447422802448,0.951373875141144,-0.326027005910873,0.00171669572591782,0.945358872413635,-0.306795239448547,0.0276447422802448,0.951373875141144,-0.547451853752136,0.057497926056385,0.834859549999237,-0.519700467586517,0.0400491654872894,0.853409230709076,-0.547451853752136,0.057497926056385,0.834859549999237,-0.815627992153168,0.0827603563666344,0.572627067565918,-0.401384323835373,0.00302720000036061,0.915904700756073,-0.42234268784523,0.0209737252444029,0.906193554401398,-0.464669704437256,0.00378535431809723,0.885475993156433,-0.758980393409729,0.0751301646232605,0.64676433801651,-0.464669704437256,0.00378535431809723,0.885475993156433,-0.42234268784523,0.0209737252444029,0.906193554401398,-0.498663306236267,-0.0183372776955366,0.866601884365082,-0.758980393409729,0.0751301646232605,0.64676433801651,-0.752108454704285,0.042865764349699,0.657643973827362,-0.478064179420471,0.242243021726608,0.844258844852448,-0.359936416149139,-0.22966156899929,0.904268443584442,-0.477781713008881,0.0626029819250107,0.876245141029358,-0.314966112375259,-0.195276170969009,0.928796768188477,-0.477781713008881,0.0626029819250107,0.876245141029358,-0.359936416149139,-0.22966156899929,0.904268443584442,-0.377776086330414,-0.23476779460907,0.895639061927795,-0.368933469057083,-0.257340490818024,0.893120408058167,-0.347172886133194,-0.328832179307938,0.878259897232056,-0.513895988464355,-0.181296288967133,0.838476419448853,-0.347172886133194,-0.328832179307938,0.878259897232056,-0.368933469057083,-0.257340490818024,0.893120408058167,-0.478064179420471,0.242243021726608,0.844258844852448,-0.363875806331635,-0.148869097232819,0.919474005699158,-0.359936416149139,-0.22966156899929,0.904268443584442,-0.513895988464355,-0.181296288967133,0.838476419448853,-0.468175292015076,-0.2340387403965,0.852078497409821,-0.347172886133194,-0.328832179307938,0.878259897232056,-0.314966112375259,-0.195276170969009,0.928796768188477,-0.359936416149139,-0.22966156899929,0.904268443584442,-0.468175292015076,-0.2340387403965,0.852078497409821, +-0.468175292015076,-0.2340387403965,0.852078497409821,-0.359936416149139,-0.22966156899929,0.904268443584442,-0.347172886133194,-0.328832179307938,0.878259897232056,-0.752108454704285,0.042865764349699,0.657643973827362,-0.758980393409729,0.0751301646232605,0.64676433801651,-0.869677484035492,-0.00120159133803099,0.493619114160538,-0.464669704437256,0.00378535431809723,0.885475993156433,-0.758980393409729,0.0751301646232605,0.64676433801651,-0.448429346084595,-0.00398446153849363,0.893809378147125,-0.758980393409729,0.0751301646232605,0.64676433801651,-0.498663306236267,-0.0183372776955366,0.866601884365082,-0.448429346084595,-0.00398446153849363,0.893809378147125,-0.316301465034485,-0.201157331466675,0.927086353302002,-0.448429346084595,-0.00398446153849363,0.893809378147125,-0.498663306236267,-0.0183372776955366,0.866601884365082,-0.464669704437256,0.00378535431809723,0.885475993156433,-0.448429346084595,-0.00398446153849363,0.893809378147125,-0.55446869134903,0.0272348299622536,0.831758797168732,-0.464076459407806,0.0426809675991535,0.884766340255737,-0.55446869134903,0.0272348299622536,0.831758797168732,-0.448429346084595,-0.00398446153849363,0.893809378147125,-0.478064179420471,0.242243021726608,0.844258844852448,-0.49366483092308,0.364915281534195,0.789387047290802,-0.363875806331635,-0.148869097232819,0.919474005699158,-0.545306265354156,0.0885435119271278,0.833547353744507,-0.363875806331635,-0.148869097232819,0.919474005699158,-0.49366483092308,0.364915281534195,0.789387047290802,-0.972672581672668,0.0552490204572678,0.225512072443962,-0.976780474185944,0.0501568503677845,0.208288639783859,-0.869677484035492,-0.00120159133803099,0.493619114160538,-0.464076459407806,0.0426809675991535,0.884766340255737,-0.297271817922592,0.0081604290753603,0.954758107662201,-0.55446869134903,0.0272348299622536,0.831758797168732,-0.30924654006958,0.0496253371238709,0.949686229228973,-0.55446869134903,0.0272348299622536,0.831758797168732,-0.297271817922592,0.0081604290753603,0.954758107662201,-0.55446869134903,0.0272348299622536,0.831758797168732, +-0.424030423164368,0.0435446240007877,0.904600441455841,-0.464669704437256,0.00378535431809723,0.885475993156433,-0.464669704437256,0.00378535431809723,0.885475993156433,-0.424030423164368,0.0435446240007877,0.904600441455841,-0.401384323835373,0.00302720000036061,0.915904700756073,-0.401384323835373,0.00302720000036061,0.915904700756073,-0.424030423164368,0.0435446240007877,0.904600441455841,-0.472853273153305,0.0522989518940449,0.879587829113007,-0.377776086330414,-0.23476779460907,0.895639061927795,-0.347172886133194,-0.328832179307938,0.878259897232056,-0.292893499135971,-0.336104422807693,0.895124197006226,-0.350765973329544,-0.192277252674103,0.916511058807373,-0.292893499135971,-0.336104422807693,0.895124197006226,-0.347172886133194,-0.328832179307938,0.878259897232056,-0.464054673910141,-0.203624710440636,0.862084805965424,-0.403728038072586,-0.216102167963982,0.888990223407745,-0.292893499135971,-0.336104422807693,0.895124197006226,-0.377776086330414,-0.23476779460907,0.895639061927795,-0.292893499135971,-0.336104422807693,0.895124197006226,-0.403728038072586,-0.216102167963982,0.888990223407745,-0.355984598398209,-0.154383063316345,0.921651124954224,-0.360071361064911,-0.223756700754166,0.90569394826889,-0.350765973329544,-0.192277252674103,0.916511058807373,-0.347172886133194,-0.328832179307938,0.878259897232056,-0.359936416149139,-0.22966156899929,0.904268443584442,-0.350765973329544,-0.192277252674103,0.916511058807373,-0.360071361064911,-0.223756700754166,0.90569394826889,-0.389838218688965,-0.0106256129220128,0.920822143554688,-0.350765973329544,-0.192277252674103,0.916511058807373,-0.342096626758575,-0.125206485390663,0.931285798549652,-0.350765973329544,-0.192277252674103,0.916511058807373,-0.389838218688965,-0.0106256129220128,0.920822143554688,-0.30924654006958,0.0496253371238709,0.949686229228973,-0.424030423164368,0.0435446240007877,0.904600441455841,-0.55446869134903,0.0272348299622536,0.831758797168732,-0.342096626758575,-0.125206485390663,0.931285798549652,-0.325831711292267,-0.250976949930191,0.911506593227386, +-0.350765973329544,-0.192277252674103,0.916511058807373,-0.292893499135971,-0.336104422807693,0.895124197006226,-0.350765973329544,-0.192277252674103,0.916511058807373,-0.317987114191055,-0.242348790168762,0.916597604751587,-0.317987114191055,-0.242348790168762,0.916597604751587,-0.350765973329544,-0.192277252674103,0.916511058807373,-0.325831711292267,-0.250976949930191,0.911506593227386,-0.758980393409729,0.0751301646232605,0.64676433801651,-0.42234268784523,0.0209737252444029,0.906193554401398,-0.973492085933685,0.0712385177612305,0.217343583703041,-0.973492085933685,0.0712385177612305,0.217343583703041,-0.42234268784523,0.0209737252444029,0.906193554401398,-0.519700467586517,0.0400491654872894,0.853409230709076,-0.972672581672668,0.0552490204572678,0.225512072443962,-0.869677484035492,-0.00120159133803099,0.493619114160538,-0.973492085933685,0.0712385177612305,0.217343583703041,-0.758980393409729,0.0751301646232605,0.64676433801651,-0.973492085933685,0.0712385177612305,0.217343583703041,-0.869677484035492,-0.00120159133803099,0.493619114160538,-0.519700467586517,0.0400491654872894,0.853409230709076,-0.42234268784523,0.0209737252444029,0.906193554401398,-0.401384323835373,0.00302720000036061,0.915904700756073,-0.519700467586517,0.0400491654872894,0.853409230709076,-0.401384323835373,0.00302720000036061,0.915904700756073,-0.547451853752136,0.057497926056385,0.834859549999237,-0.547451853752136,0.057497926056385,0.834859549999237,-0.401384323835373,0.00302720000036061,0.915904700756073,-0.326027005910873,0.00171669572591782,0.945358872413635,-0.326027005910873,0.00171669572591782,0.945358872413635,-0.401384323835373,0.00302720000036061,0.915904700756073,-0.472853273153305,0.0522989518940449,0.879587829113007,-0.973492085933685,0.0712385177612305,0.217343583703041,-0.519700467586517,0.0400491654872894,0.853409230709076,-0.815627992153168,0.0827603563666344,0.572627067565918,0.914784252643585,-0.263853043317795,0.30586177110672,-0.0360811613500118,-0.036390908062458,0.998686075210571,0.453984826803207,-0.454027026891708,0.76665323972702, +0.453984826803207,-0.454027026891708,0.76665323972702,-0.0360811613500118,-0.036390908062458,0.998686075210571,-0.0653585121035576,-0.0258131045848131,0.997527956962585,0.52121776342392,-0.147804006934166,0.840527236461639,-0.0360811613500118,-0.036390908062458,0.998686075210571,0.914784252643585,-0.263853043317795,0.30586177110672,-0.093659371137619,0.0101685905829072,0.99555230140686,-0.0653585121035576,-0.0258131045848131,0.997527956962585,-0.0472668223083019,-0.0233547315001488,0.998609125614166,-0.0360811613500118,-0.036390908062458,0.998686075210571,-0.0472668223083019,-0.0233547315001488,0.998609125614166,-0.0653585121035576,-0.0258131045848131,0.997527956962585,0.589227557182312,-0.107044406235218,-0.800844788551331,0.100626401603222,-0.746642112731934,-0.657571136951447,0.422906637191772,0.116419516503811,-0.898663699626923,0.0846449062228203,-0.809644520282745,-0.580784857273102,0.422906637191772,0.116419516503811,-0.898663699626923,0.100626401603222,-0.746642112731934,-0.657571136951447,0.183932408690453,0.791189193725586,-0.583256781101227,0.422906637191772,0.116419516503811,-0.898663699626923,0.0846449062228203,-0.809644520282745,-0.580784857273102,-0.0848839730024338,-0.996026754379272,0.0269345827400684,-0.0401267930865288,-0.999086618423462,-0.0146892247721553,-0.014898213557899,-0.99784243106842,-0.0639418289065361,-0.071631133556366,-0.997394680976868,-0.00852550473064184,-0.014898213557899,-0.99784243106842,-0.0639418289065361,-0.0401267930865288,-0.999086618423462,-0.0146892247721553,0.183932408690453,0.791189193725586,-0.583256781101227,0.0846449062228203,-0.809644520282745,-0.580784857273102,0.0825230181217194,0.056764829903841,-0.994971215724945,-0.093659371137619,0.0101685905829072,0.99555230140686,-0.201579734683037,0.0689619407057762,0.97704142332077,-0.0653585121035576,-0.0258131045848131,0.997527956962585,-0.241166278719902,-0.215188786387444,0.946325838565826,-0.0653585121035576,-0.0258131045848131,0.997527956962585,-0.201579734683037,0.0689619407057762,0.97704142332077,0.52121776342392,-0.147804006934166,0.840527236461639, +0.203244015574455,-0.104022823274136,0.973586797714233,-0.0360811613500118,-0.036390908062458,0.998686075210571,-0.345395773649216,-0.432510733604431,0.832848250865936,-0.00144837237894535,-0.992187201976776,-0.124750226736069,-0.286628097295761,-0.647754013538361,0.705874681472778,-0.00144837237894535,-0.992187201976776,-0.124750226736069,-0.0411589182913303,-0.998734593391418,0.0288976151496172,-0.286628097295761,-0.647754013538361,0.705874681472778,-0.071631133556366,-0.997394680976868,-0.00852550473064184,-0.0411589182913303,-0.998734593391418,0.0288976151496172,-0.014898213557899,-0.99784243106842,-0.0639418289065361,-0.00144837237894535,-0.992187201976776,-0.124750226736069,-0.014898213557899,-0.99784243106842,-0.0639418289065361,-0.0411589182913303,-0.998734593391418,0.0288976151496172,0.0111427986994386,-0.981601238250732,-0.190616756677628,-0.00146362103987485,-0.986386895179749,-0.164434716105461,-0.014898213557899,-0.99784243106842,-0.0639418289065361,-0.0848839730024338,-0.996026754379272,0.0269345827400684,-0.014898213557899,-0.99784243106842,-0.0639418289065361,-0.00146362103987485,-0.986386895179749,-0.164434716105461,0.0111427986994386,-0.981601238250732,-0.190616756677628,-0.014898213557899,-0.99784243106842,-0.0639418289065361,-0.00144837237894535,-0.992187201976776,-0.124750226736069,0.0111427986994386,-0.981601238250732,-0.190616756677628,-0.00144837237894535,-0.992187201976776,-0.124750226736069,0.0263838768005371,-0.966790020465851,-0.254206269979477,-0.0932465717196465,-0.0397247970104218,0.994850277900696,0.118304699659348,-0.00780513044446707,0.992946684360504,-0.262463539838791,0.00421905843541026,0.964932680130005,0.0846449062228203,-0.809644520282745,-0.580784857273102,0.100626401603222,-0.746642112731934,-0.657571136951447,0.0831016004085541,-0.739356219768524,-0.668166518211365,0.224833831191063,-0.620723843574524,-0.751100301742554,0.0831016004085541,-0.739356219768524,-0.668166518211365,0.100626401603222,-0.746642112731934,-0.657571136951447,-0.419840157032013,0.0716760382056236,0.904763400554657, +-0.223650872707367,0.0243081822991371,0.974366188049316,-0.262463539838791,0.00421905843541026,0.964932680130005,-0.0932465717196465,-0.0397247970104218,0.994850277900696,-0.262463539838791,0.00421905843541026,0.964932680130005,-0.223650872707367,0.0243081822991371,0.974366188049316,0.122468911111355,-0.0926809459924698,0.988135397434235,0.118304699659348,-0.00780513044446707,0.992946684360504,-0.0932465717196465,-0.0397247970104218,0.994850277900696,-0.0360811613500118,-0.036390908062458,0.998686075210571,0.203244015574455,-0.104022823274136,0.973586797714233,-0.0932465717196465,-0.0397247970104218,0.994850277900696,0.0846449062228203,-0.809644520282745,-0.580784857273102,0.0831016004085541,-0.739356219768524,-0.668166518211365,0.0489975363016129,-0.886219441890717,-0.460667341947556,0.0489975363016129,-0.886219441890717,-0.460667341947556,0.0831016004085541,-0.739356219768524,-0.668166518211365,0.0992544442415237,-0.749580264091492,-0.65442955493927,0.0982102677226067,-0.687901556491852,-0.719128787517548,0.0992544442415237,-0.749580264091492,-0.65442955493927,0.0831016004085541,-0.739356219768524,-0.668166518211365,0.706552088260651,-0.14492267370224,0.69266265630722,0.375596433877945,-0.181981652975082,0.908740878105164,0.203244015574455,-0.104022823274136,0.973586797714233,0.203244015574455,-0.104022823274136,0.973586797714233,0.375596433877945,-0.181981652975082,0.908740878105164,-0.0932465717196465,-0.0397247970104218,0.994850277900696,0.122468911111355,-0.0926809459924698,0.988135397434235,-0.0932465717196465,-0.0397247970104218,0.994850277900696,0.375596433877945,-0.181981652975082,0.908740878105164,-0.223650872707367,0.0243081822991371,0.974366188049316,-0.0901172906160355,-0.0222380757331848,0.995682835578918,-0.0932465717196465,-0.0397247970104218,0.994850277900696,-0.0360811613500118,-0.036390908062458,0.998686075210571,-0.0932465717196465,-0.0397247970104218,0.994850277900696,-0.0901172906160355,-0.0222380757331848,0.995682835578918,-0.262463539838791,0.00421905843541026,0.964932680130005,0.118304699659348,-0.00780513044446707,0.992946684360504, +-0.377256542444229,-0.00135451881214976,0.926107883453369,0.122468911111355,-0.0926809459924698,0.988135397434235,0.795389592647552,-0.260903775691986,0.547069132328033,0.118304699659348,-0.00780513044446707,0.992946684360504,0.52121776342392,-0.147804006934166,0.840527236461639,0.620685458183289,-0.100678913295269,0.777568817138672,0.203244015574455,-0.104022823274136,0.973586797714233,0.706552088260651,-0.14492267370224,0.69266265630722,0.203244015574455,-0.104022823274136,0.973586797714233,0.620685458183289,-0.100678913295269,0.777568817138672,-0.0209546722471714,0.0327698402106762,0.999243259429932,-0.335971593856812,0.0858316719532013,0.937953054904938,-0.468513160943985,0.0880367308855057,0.879059135913849,-0.419840157032013,0.0716760382056236,0.904763400554657,-0.335971593856812,0.0858316719532013,0.937953054904938,-0.0209546722471714,0.0327698402106762,0.999243259429932,-0.860264658927917,0.223332732915878,0.458330810070038,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.308104932308197,0.758337080478668,0.574452817440033,-0.460405617952347,0.400442242622375,0.792257905006409,-0.100451193749905,0.594725906848907,0.797628223896027,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.308104932308197,0.758337080478668,0.574452817440033,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.254802256822586,0.629014074802399,0.734450161457062,-0.254802256822586,0.629014074802399,0.734450161457062,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.100451193749905,0.594725906848907,0.797628223896027,-0.197614252567291,-0.966950416564941,-0.161107093095779,0.00485562160611153,-0.984837055206299,-0.173413828015327,0.0140286646783352,-0.979798197746277,-0.199496120214462,-0.269253015518188,-0.963056623935699,-0.00497491471469402,-0.00146362103987485,-0.986386895179749,-0.164434716105461,0.00485562160611153,-0.984837055206299,-0.173413828015327,0.00485562160611153,-0.984837055206299,-0.173413828015327,-0.00146362103987485,-0.986386895179749,-0.164434716105461,0.0140286646783352,-0.979798197746277,-0.199496120214462, +0.0111427986994386,-0.981601238250732,-0.190616756677628,0.0140286646783352,-0.979798197746277,-0.199496120214462,-0.00146362103987485,-0.986386895179749,-0.164434716105461,-0.269253015518188,-0.963056623935699,-0.00497491471469402,-0.242178067564964,-0.964327991008759,0.106870666146278,-0.00146362103987485,-0.986386895179749,-0.164434716105461,-0.0848839730024338,-0.996026754379272,0.0269345827400684,-0.00146362103987485,-0.986386895179749,-0.164434716105461,-0.242178067564964,-0.964327991008759,0.106870666146278,0.00958415772765875,-0.9773850440979,-0.211250081658363,0.0140286646783352,-0.979798197746277,-0.199496120214462,0.0111427986994386,-0.981601238250732,-0.190616756677628,-0.71813577413559,0.0792504698038101,0.69137567281723,-0.360498368740082,0.0731892585754395,0.929884016513824,-0.562952935695648,0.0427874438464642,0.825380682945251,-0.562952935695648,0.0427874438464642,0.825380682945251,-0.360498368740082,0.0731892585754395,0.929884016513824,-0.856414437294006,0.0510665103793144,0.513757288455963,-0.340653836727142,0.207950696349144,0.916903138160706,-0.149715572595596,0.0929667055606842,0.984348714351654,-0.386523187160492,0.127660557627678,0.913401663303375,-0.386523187160492,0.127660557627678,0.913401663303375,-0.149715572595596,0.0929667055606842,0.984348714351654,-0.360498368740082,0.0731892585754395,0.929884016513824,-0.360498368740082,0.0731892585754395,0.929884016513824,-0.71813577413559,0.0792504698038101,0.69137567281723,-0.468513160943985,0.0880367308855057,0.879059135913849,-0.815627992153168,0.0827603563666344,0.572627067565918,-0.468513160943985,0.0880367308855057,0.879059135913849,-0.71813577413559,0.0792504698038101,0.69137567281723,-0.562952935695648,0.0427874438464642,0.825380682945251,-0.972689807415009,0.0933968350291252,0.212489068508148,-0.71813577413559,0.0792504698038101,0.69137567281723,-0.419840157032013,0.0716760382056236,0.904763400554657,-0.386523187160492,0.127660557627678,0.913401663303375,-0.335971593856812,0.0858316719532013,0.937953054904938,-0.335971593856812,0.0858316719532013,0.937953054904938, +-0.386523187160492,0.127660557627678,0.913401663303375,-0.360498368740082,0.0731892585754395,0.929884016513824,-0.377256542444229,-0.00135451881214976,0.926107883453369,-0.649738490581512,0.108960591256619,0.752308070659637,-0.262463539838791,0.00421905843541026,0.964932680130005,-0.419840157032013,0.0716760382056236,0.904763400554657,-0.262463539838791,0.00421905843541026,0.964932680130005,-0.649738490581512,0.108960591256619,0.752308070659637,-0.335971593856812,0.0858316719532013,0.937953054904938,-0.360498368740082,0.0731892585754395,0.929884016513824,-0.468513160943985,0.0880367308855057,0.879059135913849,-0.561286628246307,0.16974538564682,0.810027122497559,-0.0328088887035847,0.171343564987183,0.984664857387543,0.0273094829171896,0.405305057764053,0.913773536682129,0.407320916652679,0.277484059333801,0.87011045217514,0.302122712135315,0.249047145247459,0.920161664485931,-0.0328088887035847,0.171343564987183,0.984664857387543,-0.0328088887035847,0.171343564987183,0.984664857387543,0.302122712135315,0.249047145247459,0.920161664485931,0.0273094829171896,0.405305057764053,0.913773536682129,0.284178465604782,0.502200424671173,0.816723465919495,0.0273094829171896,0.405305057764053,0.913773536682129,0.302122712135315,0.249047145247459,0.920161664485931,0.200306475162506,0.0436923280358315,0.978758573532104,-0.452279299497604,0.152276575565338,0.878780484199524,-0.377256542444229,-0.00135451881214976,0.926107883453369,0.859392106533051,-0.0707660764455795,0.506396293640137,0.118304699659348,-0.00780513044446707,0.992946684360504,0.904097437858582,-0.057181715965271,0.423483550548553,-0.561286628246307,0.16974538564682,0.810027122497559,-0.680186986923218,0.200968652963638,0.704951941967011,-0.0328088887035847,0.171343564987183,0.984664857387543,-0.680186986923218,0.200968652963638,0.704951941967011,-0.452279299497604,0.152276575565338,0.878780484199524,-0.0328088887035847,0.171343564987183,0.984664857387543,-0.680186986923218,0.200968652963638,0.704951941967011,-0.649738490581512,0.108960591256619,0.752308070659637, +-0.452279299497604,0.152276575565338,0.878780484199524,-0.452279299497604,0.152276575565338,0.878780484199524,-0.649738490581512,0.108960591256619,0.752308070659637,-0.377256542444229,-0.00135451881214976,0.926107883453369,0.882202923297882,-0.107303373515606,0.45848023891449,-0.377256542444229,-0.00135451881214976,0.926107883453369,0.859392106533051,-0.0707660764455795,0.506396293640137,0.859392106533051,-0.0707660764455795,0.506396293640137,-0.377256542444229,-0.00135451881214976,0.926107883453369,0.118304699659348,-0.00780513044446707,0.992946684360504,0.200306475162506,0.0436923280358315,0.978758573532104,-0.377256542444229,-0.00135451881214976,0.926107883453369,0.882202923297882,-0.107303373515606,0.45848023891449,-0.419840157032013,0.0716760382056236,0.904763400554657,-0.649738490581512,0.108960591256619,0.752308070659637,-0.386523187160492,0.127660557627678,0.913401663303375,-0.386523187160492,0.127660557627678,0.913401663303375,-0.649738490581512,0.108960591256619,0.752308070659637,-0.604592740535736,0.162017494440079,0.779883325099945,-0.604592740535736,0.162017494440079,0.779883325099945,-0.649738490581512,0.108960591256619,0.752308070659637,-0.680186986923218,0.200968652963638,0.704951941967011,0.407320916652679,0.277484059333801,0.87011045217514,-0.0328088887035847,0.171343564987183,0.984664857387543,0.602693498134613,0.448409676551819,0.660067558288574,0.602693498134613,0.448409676551819,0.660067558288574,-0.0328088887035847,0.171343564987183,0.984664857387543,-0.452279299497604,0.152276575565338,0.878780484199524,0.200306475162506,0.0436923280358315,0.978758573532104,0.602693498134613,0.448409676551819,0.660067558288574,-0.452279299497604,0.152276575565338,0.878780484199524,0.0110296010971069,-0.977378308773041,-0.211211025714874,0.0111427986994386,-0.981601238250732,-0.190616756677628,0.0489975363016129,-0.886219441890717,-0.460667341947556,0.194981053471565,-0.923511564731598,-0.330316007137299,0.0597591586410999,-0.978253960609436,-0.198615252971649,0.0110296010971069,-0.977378308773041,-0.211211025714874, +0.107666589319706,-0.951594293117523,-0.28788223862648,0.0110296010971069,-0.977378308773041,-0.211211025714874,0.0597591586410999,-0.978253960609436,-0.198615252971649,0.107666589319706,-0.951594293117523,-0.28788223862648,0.0586906597018242,-0.963907837867737,-0.259686470031738,0.0110296010971069,-0.977378308773041,-0.211211025714874,-0.0568755380809307,-0.984593152999878,-0.165353313088417,-0.00980463251471519,-0.986601173877716,-0.162856131792068,0.0586906597018242,-0.963907837867737,-0.259686470031738,0.0110296010971069,-0.977378308773041,-0.211211025714874,0.0586906597018242,-0.963907837867737,-0.259686470031738,-0.00980463251471519,-0.986601173877716,-0.162856131792068,-0.876049876213074,0.153564974665642,0.457115203142166,-0.340653836727142,0.207950696349144,0.916903138160706,-0.561286628246307,0.16974538564682,0.810027122497559,-0.561286628246307,0.16974538564682,0.810027122497559,-0.340653836727142,0.207950696349144,0.916903138160706,-0.680186986923218,0.200968652963638,0.704951941967011,-0.604592740535736,0.162017494440079,0.779883325099945,-0.680186986923218,0.200968652963638,0.704951941967011,-0.340653836727142,0.207950696349144,0.916903138160706,0.0110296010971069,-0.977378308773041,-0.211211025714874,-0.00980463251471519,-0.986601173877716,-0.162856131792068,0.0111427986994386,-0.981601238250732,-0.190616756677628,0.00958415772765875,-0.9773850440979,-0.211250081658363,0.0111427986994386,-0.981601238250732,-0.190616756677628,-0.00980463251471519,-0.986601173877716,-0.162856131792068,-0.986954271793365,0.0426122806966305,0.155258908867836,-0.992920935153961,0.040814109146595,0.111544817686081,-0.996235907077789,0.0128835346549749,0.0857202857732773,-0.996235907077789,0.0128835346549749,0.0857202857732773,-0.992920935153961,0.040814109146595,0.111544817686081,-0.999743819236755,0.0203808397054672,0.00984964426606894,-0.999743819236755,0.0203808397054672,0.00984964426606894,-0.992920935153961,0.040814109146595,0.111544817686081,-0.996097981929779,0.0501773022115231,0.0726024284958839,-0.886471509933472,0.142908096313477,0.440165430307388, +-0.736595869064331,0.226044803857803,0.63744044303894,-0.727591872215271,0.162476345896721,0.666491806507111,-0.727591872215271,0.162476345896721,0.666491806507111,-0.736595869064331,0.226044803857803,0.63744044303894,-0.765856325626373,0.166609525680542,0.621051907539368,-0.441888689994812,0.384429007768631,0.810523808002472,-0.736595869064331,0.226044803857803,0.63744044303894,-0.886471509933472,0.142908096313477,0.440165430307388,-0.999685883522034,-0.0203926730901003,0.0145688094198704,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.962749540805817,0.198316425085068,0.183804377913475,-0.973492085933685,0.0712385177612305,0.217343583703041,-0.996097981929779,0.0501773022115231,0.0726024284958839,-0.992920935153961,0.040814109146595,0.111544817686081,-0.998176097869873,0.0161843989044428,0.0581615306437016,-0.996097981929779,0.0501773022115231,0.0726024284958839,-0.972689807415009,0.0933968350291252,0.212489068508148,-0.996097981929779,0.0501773022115231,0.0726024284958839,-0.998661935329437,0.0082094743847847,-0.0510564260184765,-0.9997718334198,0.0213126223534346,0.00146099738776684,-0.998699843883514,-0.0459083802998066,-0.0221603699028492,-0.9997718334198,0.0213126223534346,0.00146099738776684,-0.998661935329437,0.0082094743847847,-0.0510564260184765,-0.999743819236755,0.0203808397054672,0.00984964426606894,-0.996097981929779,0.0501773022115231,0.0726024284958839,-0.999347448348999,0.0274814423173666,-0.0234451405704021,-0.460405617952347,0.400442242622375,0.792257905006409,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.736595869064331,0.226044803857803,0.63744044303894,-0.736595869064331,0.226044803857803,0.63744044303894,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.765856325626373,0.166609525680542,0.621051907539368,-0.765856325626373,0.166609525680542,0.621051907539368,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.991273403167725,-0.00767415203154087,0.131598353385925,-0.996097981929779,0.0501773022115231,0.0726024284958839,-0.998176097869873,0.0161843989044428,0.0581615306437016, +-0.998661935329437,0.0082094743847847,-0.0510564260184765,-0.982698142528534,0.0184360947459936,0.184294447302818,-0.991273403167725,-0.00767415203154087,0.131598353385925,-0.992313981056213,0.0470687113702297,0.114444255828857,-0.97150593996048,0.0874229073524475,0.22030334174633,-0.992313981056213,0.0470687113702297,0.114444255828857,-0.991273403167725,-0.00767415203154087,0.131598353385925,-0.991090953350067,0.0328125506639481,0.129081159830093,-0.982698142528534,0.0184360947459936,0.184294447302818,-0.992313981056213,0.0470687113702297,0.114444255828857,0.0516634844243526,-0.841784834861755,-0.537335216999054,0.0489975363016129,-0.886219441890717,-0.460667341947556,0.0263838768005371,-0.966790020465851,-0.254206269979477,0.0846449062228203,-0.809644520282745,-0.580784857273102,0.0489975363016129,-0.886219441890717,-0.460667341947556,0.0516634844243526,-0.841784834861755,-0.537335216999054,0.0489975363016129,-0.886219441890717,-0.460667341947556,0.0111427986994386,-0.981601238250732,-0.190616756677628,0.0263838768005371,-0.966790020465851,-0.254206269979477,-0.991273403167725,-0.00767415203154087,0.131598353385925,-0.982698142528534,0.0184360947459936,0.184294447302818,-0.765856325626373,0.166609525680542,0.621051907539368,-0.765856325626373,0.166609525680542,0.621051907539368,-0.982698142528534,0.0184360947459936,0.184294447302818,-0.727591872215271,0.162476345896721,0.666491806507111,-0.971377849578857,-0.0242944788187742,-0.236294209957123,-0.885379135608673,-0.0825673416256905,-0.45747834444046,-0.999347448348999,0.0274814423173666,-0.0234451405704021,-0.999743819236755,0.0203808397054672,0.00984964426606894,-0.999347448348999,0.0274814423173666,-0.0234451405704021,-0.885379135608673,-0.0825673416256905,-0.45747834444046,-0.885379135608673,-0.0825673416256905,-0.45747834444046,-0.914289176464081,-0.0534527786076069,-0.401519596576691,-0.999743819236755,0.0203808397054672,0.00984964426606894,0.0441764071583748,-0.775651097297668,-0.629614114761353,0.0551759675145149,-0.784912049770355,-0.617145597934723,0.0516634844243526,-0.841784834861755,-0.537335216999054, +0.0441764071583748,-0.775651097297668,-0.629614114761353,-0.117004044353962,-0.627444565296173,-0.769820332527161,0.0551759675145149,-0.784912049770355,-0.617145597934723,-0.759521484375,-0.12162659317255,-0.639010190963745,-0.885379135608673,-0.0825673416256905,-0.45747834444046,-0.856556594371796,-0.092064194381237,-0.507774293422699,-0.856556594371796,-0.092064194381237,-0.507774293422699,-0.971377849578857,-0.0242944788187742,-0.236294209957123,-0.896727502346039,-0.105944365262985,-0.429715752601624,-0.971377849578857,-0.0242944788187742,-0.236294209957123,-0.951302945613861,-0.046303641051054,-0.304760068655014,-0.896727502346039,-0.105944365262985,-0.429715752601624,-0.991090953350067,0.0328125506639481,0.129081159830093,-0.994372308254242,-0.00169210741296411,0.105928316712379,-0.982698142528534,0.0184360947459936,0.184294447302818,-0.848060846328735,-0.391553074121475,-0.357042342424393,-0.853872895240784,-0.463257730007172,-0.237262055277824,-0.849282026290894,-0.258397310972214,-0.460381239652634,-0.865158677101135,-0.119255289435387,-0.487112611532211,-0.849282026290894,-0.258397310972214,-0.460381239652634,-0.896727502346039,-0.105944365262985,-0.429715752601624,-0.896727502346039,-0.105944365262985,-0.429715752601624,-0.849282026290894,-0.258397310972214,-0.460381239652634,-0.853872895240784,-0.463257730007172,-0.237262055277824,-0.117004044353962,-0.627444565296173,-0.769820332527161,-0.188050657510757,-0.0851634666323662,-0.978460133075714,-0.24529105424881,0.200182348489761,-0.948556542396545,-0.27801913022995,0.249775096774101,-0.927533149719238,-0.24529105424881,0.200182348489761,-0.948556542396545,-0.188050657510757,-0.0851634666323662,-0.978460133075714,-0.887408018112183,-0.187761321663857,-0.421013712882996,-0.812313556671143,-0.240412831306458,-0.531364738941193,-0.896727502346039,-0.105944365262985,-0.429715752601624,-0.865158677101135,-0.119255289435387,-0.487112611532211,-0.896727502346039,-0.105944365262985,-0.429715752601624,-0.812313556671143,-0.240412831306458,-0.531364738941193,-0.0165987703949213,-0.51350599527359,-0.857925415039063, +-0.188050657510757,-0.0851634666323662,-0.978460133075714,0.0441764071583748,-0.775651097297668,-0.629614114761353,-0.896727502346039,-0.105944365262985,-0.429715752601624,-0.853872895240784,-0.463257730007172,-0.237262055277824,-0.856556594371796,-0.092064194381237,-0.507774293422699,-0.757719457149506,-0.20283617079258,-0.620257079601288,-0.856556594371796,-0.092064194381237,-0.507774293422699,-0.853872895240784,-0.463257730007172,-0.237262055277824,-0.0567441247403622,-0.583265602588654,-0.810296952724457,-0.485805004835129,0.0144770750775933,-0.873947381973267,-0.0257741045206785,-0.61197417974472,-0.790457606315613,-0.435785621404648,0.09552301466465,-0.894967198371887,-0.0257741045206785,-0.61197417974472,-0.790457606315613,-0.485805004835129,0.0144770750775933,-0.873947381973267,0.0441764071583748,-0.775651097297668,-0.629614114761353,-0.188050657510757,-0.0851634666323662,-0.978460133075714,-0.117004044353962,-0.627444565296173,-0.769820332527161,-0.989199578762054,-0.00426473980769515,-0.146512374281883,-0.951302945613861,-0.046303641051054,-0.304760068655014,-0.971377849578857,-0.0242944788187742,-0.236294209957123,-0.989199578762054,-0.00426473980769515,-0.146512374281883,-0.948372364044189,-0.109901241958141,-0.297509014606476,-0.980924546718597,0.0613996125757694,-0.184437394142151,-0.982698142528534,0.0184360947459936,0.184294447302818,-0.994372308254242,-0.00169210741296411,0.105928316712379,-0.770498216152191,0.105880886316299,0.628587245941162,-0.587122797966003,0.227656930685043,0.776826322078705,-0.770498216152191,0.105880886316299,0.628587245941162,-0.994372308254242,-0.00169210741296411,0.105928316712379,0.0846449062228203,-0.809644520282745,-0.580784857273102,0.0516634844243526,-0.841784834861755,-0.537335216999054,0.0551759675145149,-0.784912049770355,-0.617145597934723,0.110639102756977,0.623706638813019,0.773788750171661,-0.100451193749905,0.594725906848907,0.797628223896027,0.20272633433342,0.461063235998154,0.863899648189545,-0.00616667978465557,-0.446361392736435,-0.894831538200378,0.0395591370761395,-0.874707043170929,-0.483034640550613, +0.0551759675145149,-0.784912049770355,-0.617145597934723,0.0846449062228203,-0.809644520282745,-0.580784857273102,0.0551759675145149,-0.784912049770355,-0.617145597934723,0.0395591370761395,-0.874707043170929,-0.483034640550613,-0.914004266262054,-0.203416466712952,-0.351024180650711,-0.906980156898499,-0.196828499436378,-0.37235152721405,-0.980924546718597,0.0613996125757694,-0.184437394142151,-0.990182220935822,0.0476752482354641,-0.131401240825653,-0.980924546718597,0.0613996125757694,-0.184437394142151,-0.968451023101807,-0.228694021701813,-0.0990033522248268,-0.968451023101807,-0.228694021701813,-0.0990033522248268,-0.980924546718597,0.0613996125757694,-0.184437394142151,-0.906980156898499,-0.196828499436378,-0.37235152721405,-0.939355790615082,-0.120210543274879,-0.321185529232025,-0.887408018112183,-0.187761321663857,-0.421013712882996,-0.990204453468323,0.0453636050224304,-0.132050216197968,-0.896727502346039,-0.105944365262985,-0.429715752601624,-0.951302945613861,-0.046303641051054,-0.304760068655014,-0.887408018112183,-0.187761321663857,-0.421013712882996,-0.951302945613861,-0.046303641051054,-0.304760068655014,-0.990204453468323,0.0453636050224304,-0.132050216197968,-0.887408018112183,-0.187761321663857,-0.421013712882996,-0.989199578762054,-0.00426473980769515,-0.146512374281883,-0.990204453468323,0.0453636050224304,-0.132050216197968,-0.951302945613861,-0.046303641051054,-0.304760068655014,-0.939355790615082,-0.120210543274879,-0.321185529232025,-0.990204453468323,0.0453636050224304,-0.132050216197968,-0.980924546718597,0.0613996125757694,-0.184437394142151,-0.989199578762054,-0.00426473980769515,-0.146512374281883,-0.980924546718597,0.0613996125757694,-0.184437394142151,-0.990204453468323,0.0453636050224304,-0.132050216197968,-0.718390047550201,-0.533493399620056,-0.446430861949921,-0.812313556671143,-0.240412831306458,-0.531364738941193,-0.939355790615082,-0.120210543274879,-0.321185529232025,-0.887408018112183,-0.187761321663857,-0.421013712882996,-0.939355790615082,-0.120210543274879,-0.321185529232025, +-0.812313556671143,-0.240412831306458,-0.531364738941193,-0.718390047550201,-0.533493399620056,-0.446430861949921,-0.939355790615082,-0.120210543274879,-0.321185529232025,-0.80737429857254,-0.414585053920746,-0.419840425252914,-0.980924546718597,0.0613996125757694,-0.184437394142151,-0.990182220935822,0.0476752482354641,-0.131401240825653,-0.939355790615082,-0.120210543274879,-0.321185529232025,-0.80737429857254,-0.414585053920746,-0.419840425252914,-0.939355790615082,-0.120210543274879,-0.321185529232025,-0.926886081695557,-0.296799510717392,-0.229765459895134,-0.926886081695557,-0.296799510717392,-0.229765459895134,-0.939355790615082,-0.120210543274879,-0.321185529232025,-0.990182220935822,0.0476752482354641,-0.131401240825653,-0.968451023101807,-0.228694021701813,-0.0990033522248268,-0.930604100227356,-0.343522429466248,-0.126365840435028,-0.990182220935822,0.0476752482354641,-0.131401240825653,-0.926886081695557,-0.296799510717392,-0.229765459895134,-0.990182220935822,0.0476752482354641,-0.131401240825653,-0.930604100227356,-0.343522429466248,-0.126365840435028,-0.0180773995816708,-0.451992034912109,-0.891838788986206,0.0551759675145149,-0.784912049770355,-0.617145597934723,-0.0155549077317119,-0.472571462392807,-0.881155133247375,0.0551759675145149,-0.784912049770355,-0.617145597934723,-0.117004044353962,-0.627444565296173,-0.769820332527161,-0.0155549077317119,-0.472571462392807,-0.881155133247375,-0.0180773995816708,-0.451992034912109,-0.891838788986206,0.00270299799740314,-0.592744290828705,-0.805386245250702,0.0551759675145149,-0.784912049770355,-0.617145597934723,-0.00616667978465557,-0.446361392736435,-0.894831538200378,0.0551759675145149,-0.784912049770355,-0.617145597934723,0.00270299799740314,-0.592744290828705,-0.805386245250702,-0.9997718334198,0.0213126223534346,0.00146099738776684,-0.989199578762054,-0.00426473980769515,-0.146512374281883,-0.971377849578857,-0.0242944788187742,-0.236294209957123,-0.971377849578857,-0.0242944788187742,-0.236294209957123,-0.999347448348999,0.0274814423173666,-0.0234451405704021, +-0.9997718334198,0.0213126223534346,0.00146099738776684,-0.999347448348999,0.0274814423173666,-0.0234451405704021,-0.996097981929779,0.0501773022115231,0.0726024284958839,-0.9997718334198,0.0213126223534346,0.00146099738776684,-0.885379135608673,-0.0825673416256905,-0.45747834444046,-0.971377849578857,-0.0242944788187742,-0.236294209957123,-0.856556594371796,-0.092064194381237,-0.507774293422699,-0.562952935695648,0.0427874438464642,0.825380682945251,-0.856414437294006,0.0510665103793144,0.513757288455963,-0.972689807415009,0.0933968350291252,0.212489068508148,-0.620163679122925,0.187805488705635,0.761660158634186,-0.748671591281891,-0.0240970999002457,0.662503004074097,-0.289102524518967,0.187131077051163,0.938829898834229,-0.962966799736023,-0.0410519801080227,0.266476571559906,-0.856414437294006,0.0510665103793144,0.513757288455963,-0.748671591281891,-0.0240970999002457,0.662503004074097,-0.360498368740082,0.0731892585754395,0.929884016513824,-0.149715572595596,0.0929667055606842,0.984348714351654,-0.856414437294006,0.0510665103793144,0.513757288455963,-0.289102524518967,0.187131077051163,0.938829898834229,-0.748671591281891,-0.0240970999002457,0.662503004074097,-0.149715572595596,0.0929667055606842,0.984348714351654,-0.149715572595596,0.0929667055606842,0.984348714351654,-0.748671591281891,-0.0240970999002457,0.662503004074097,-0.856414437294006,0.0510665103793144,0.513757288455963,-0.998176097869873,0.0161843989044428,0.0581615306437016,-0.856414437294006,0.0510665103793144,0.513757288455963,-0.962966799736023,-0.0410519801080227,0.266476571559906,-0.998176097869873,0.0161843989044428,0.0581615306437016,-0.972689807415009,0.0933968350291252,0.212489068508148,-0.856414437294006,0.0510665103793144,0.513757288455963,-0.962966799736023,-0.0410519801080227,0.266476571559906,-0.748671591281891,-0.0240970999002457,0.662503004074097,-0.620163679122925,0.187805488705635,0.761660158634186,-0.650016903877258,0.124674886465073,0.749622702598572,-0.340653836727142,0.207950696349144,0.916903138160706,-0.876049876213074,0.153564974665642,0.457115203142166, +-0.826660990715027,0.130827873945236,0.547280251979828,-0.770498216152191,0.105880886316299,0.628587245941162,-0.58004754781723,0.155040249228477,0.799692034721375,-0.58004754781723,0.155040249228477,0.799692034721375,-0.770498216152191,0.105880886316299,0.628587245941162,-0.587122797966003,0.227656930685043,0.776826322078705,-0.982698142528534,0.0184360947459936,0.184294447302818,-0.770498216152191,0.105880886316299,0.628587245941162,-0.826660990715027,0.130827873945236,0.547280251979828,-0.833639144897461,0.042112197726965,0.550701498985291,-0.58004754781723,0.155040249228477,0.799692034721375,-0.650016903877258,0.124674886465073,0.749622702598572,-0.620163679122925,0.187805488705635,0.761660158634186,-0.289102524518967,0.187131077051163,0.938829898834229,-0.58004754781723,0.155040249228477,0.799692034721375,-0.58004754781723,0.155040249228477,0.799692034721375,-0.289102524518967,0.187131077051163,0.938829898834229,-0.650016903877258,0.124674886465073,0.749622702598572,-0.962966799736023,-0.0410519801080227,0.266476571559906,-0.620163679122925,0.187805488705635,0.761660158634186,-0.58004754781723,0.155040249228477,0.799692034721375,0.20272633433342,0.461063235998154,0.863899648189545,-0.100451193749905,0.594725906848907,0.797628223896027,0.0273094829171896,0.405305057764053,0.913773536682129,0.0273094829171896,0.405305057764053,0.913773536682129,-0.100451193749905,0.594725906848907,0.797628223896027,-0.441888689994812,0.384429007768631,0.810523808002472,-0.833639144897461,0.042112197726965,0.550701498985291,-0.650016903877258,0.124674886465073,0.749622702598572,-0.876049876213074,0.153564974665642,0.457115203142166,0.4616339802742,0.753570258617401,0.468002021312714,0.284178465604782,0.502200424671173,0.816723465919495,0.468257129192352,0.796166241168976,0.383216083049774,-0.149715572595596,0.0929667055606842,0.984348714351654,-0.340653836727142,0.207950696349144,0.916903138160706,-0.289102524518967,0.187131077051163,0.938829898834229,-0.58004754781723,0.155040249228477,0.799692034721375,-0.833639144897461,0.042112197726965,0.550701498985291, +-0.826660990715027,0.130827873945236,0.547280251979828,-0.962966799736023,-0.0410519801080227,0.266476571559906,-0.58004754781723,0.155040249228477,0.799692034721375,-0.587122797966003,0.227656930685043,0.776826322078705,-0.604592740535736,0.162017494440079,0.779883325099945,-0.340653836727142,0.207950696349144,0.916903138160706,-0.386523187160492,0.127660557627678,0.913401663303375,-0.650016903877258,0.124674886465073,0.749622702598572,-0.289102524518967,0.187131077051163,0.938829898834229,-0.340653836727142,0.207950696349144,0.916903138160706,0.4616339802742,0.753570258617401,0.468002021312714,0.20272633433342,0.461063235998154,0.863899648189545,0.284178465604782,0.502200424671173,0.816723465919495,0.20272633433342,0.461063235998154,0.863899648189545,0.0273094829171896,0.405305057764053,0.913773536682129,0.284178465604782,0.502200424671173,0.816723465919495,0.0110296010971069,-0.977378308773041,-0.211211025714874,0.0489975363016129,-0.886219441890717,-0.460667341947556,0.00565300788730383,-0.976704955101013,-0.214512556791306,0.194981053471565,-0.923511564731598,-0.330316007137299,0.0110296010971069,-0.977378308773041,-0.211211025714874,0.00565300788730383,-0.976704955101013,-0.214512556791306,-0.998699843883514,-0.0459083802998066,-0.0221603699028492,-0.998661935329437,0.0082094743847847,-0.0510564260184765,-0.991090953350067,0.0328125506639481,0.129081159830093,-0.982871055603027,0.0349672585725784,0.180946886539459,-0.991090953350067,0.0328125506639481,0.129081159830093,-0.998661935329437,0.0082094743847847,-0.0510564260184765,-0.998176097869873,0.0161843989044428,0.0581615306437016,-0.994372308254242,-0.00169210741296411,0.105928316712379,-0.998661935329437,0.0082094743847847,-0.0510564260184765,-0.994372308254242,-0.00169210741296411,0.105928316712379,-0.982871055603027,0.0349672585725784,0.180946886539459,-0.998661935329437,0.0082094743847847,-0.0510564260184765,-0.991090953350067,0.0328125506639481,0.129081159830093,-0.982871055603027,0.0349672585725784,0.180946886539459,-0.994372308254242,-0.00169210741296411,0.105928316712379, +-0.587122797966003,0.227656930685043,0.776826322078705,-0.994372308254242,-0.00169210741296411,0.105928316712379,-0.962966799736023,-0.0410519801080227,0.266476571559906,-0.998176097869873,0.0161843989044428,0.0581615306437016,-0.962966799736023,-0.0410519801080227,0.266476571559906,-0.994372308254242,-0.00169210741296411,0.105928316712379,0.0846449062228203,-0.809644520282745,-0.580784857273102,0.0395591370761395,-0.874707043170929,-0.483034640550613,0.0825230181217194,0.056764829903841,-0.994971215724945,0.0551542975008488,-0.500208914279938,-0.864146530628204,0.0825230181217194,0.056764829903841,-0.994971215724945,0.0395591370761395,-0.874707043170929,-0.483034640550613,0.0273094829171896,0.405305057764053,0.913773536682129,-0.876854121685028,0.186802357435226,0.442980498075485,-0.561286628246307,0.16974538564682,0.810027122497559,-0.876049876213074,0.153564974665642,0.457115203142166,-0.561286628246307,0.16974538564682,0.810027122497559,-0.876854121685028,0.186802357435226,0.442980498075485,-0.884675621986389,0.132289335131645,0.447044312953949,-0.886471509933472,0.142908096313477,0.440165430307388,-0.876854121685028,0.186802357435226,0.442980498075485,-0.826660990715027,0.130827873945236,0.547280251979828,-0.876049876213074,0.153564974665642,0.457115203142166,-0.886471509933472,0.142908096313477,0.440165430307388,-0.886471509933472,0.142908096313477,0.440165430307388,-0.876049876213074,0.153564974665642,0.457115203142166,-0.876854121685028,0.186802357435226,0.442980498075485,0.0273094829171896,0.405305057764053,0.913773536682129,-0.605071485042572,0.215243518352509,0.766523718833923,-0.876854121685028,0.186802357435226,0.442980498075485,-0.884675621986389,0.132289335131645,0.447044312953949,-0.876854121685028,0.186802357435226,0.442980498075485,-0.605071485042572,0.215243518352509,0.766523718833923,-0.441888689994812,0.384429007768631,0.810523808002472,-0.886471509933472,0.142908096313477,0.440165430307388,-0.884675621986389,0.132289335131645,0.447044312953949,-0.826660990715027,0.130827873945236,0.547280251979828, +-0.833639144897461,0.042112197726965,0.550701498985291,-0.876049876213074,0.153564974665642,0.457115203142166,-0.982698142528534,0.0184360947459936,0.184294447302818,-0.826660990715027,0.130827873945236,0.547280251979828,-0.727591872215271,0.162476345896721,0.666491806507111,-0.886471509933472,0.142908096313477,0.440165430307388,-0.727591872215271,0.162476345896721,0.666491806507111,-0.826660990715027,0.130827873945236,0.547280251979828,-0.884675621986389,0.132289335131645,0.447044312953949,-0.605071485042572,0.215243518352509,0.766523718833923,-0.441888689994812,0.384429007768631,0.810523808002472,-0.441888689994812,0.384429007768631,0.810523808002472,-0.605071485042572,0.215243518352509,0.766523718833923,0.0273094829171896,0.405305057764053,0.913773536682129,-0.460405617952347,0.400442242622375,0.792257905006409,-0.736595869064331,0.226044803857803,0.63744044303894,-0.100451193749905,0.594725906848907,0.797628223896027,-0.441888689994812,0.384429007768631,0.810523808002472,-0.100451193749905,0.594725906848907,0.797628223896027,-0.736595869064331,0.226044803857803,0.63744044303894,0.110639102756977,0.623706638813019,0.773788750171661,0.0429539307951927,0.718098521232605,0.694614589214325,-0.100451193749905,0.594725906848907,0.797628223896027,-0.254802256822586,0.629014074802399,0.734450161457062,-0.100451193749905,0.594725906848907,0.797628223896027,0.0429539307951927,0.718098521232605,0.694614589214325 + } + TangentsW: *1794 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementUV: 0 { + Version: 101 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "IndexToDirect" + UV: *854 { + a: 0.722138106822968,0.559724867343903,0.654972910881042,0.649261474609375,0.551850855350494,0.689275801181793,0.767760455608368,0.568075239658356,0.637479245662689,0.547448813915253,0.781877040863037,0.598396420478821,0.545924186706543,0.61013251543045,0.530104100704193,0.516917169094086,0.773428797721863,0.564315259456635,0.765184342861176,0.545581817626953,0.754759609699249,0.531433403491974,0.563067138195038,0.828724324703217,0.420673787593842,0.0148582169786096,0.431081980466843,0.0318043678998947,0.391524374485016,0.0368354208767414,0.556401073932648,0.737372517585754,0.550947368144989,0.731062650680542,0.555293202400208,0.81566309928894,0.547005534172058,0.665483772754669,0.778267025947571,0.581195890903473,0.37497079372406,0.0125314109027386,0.398966103792191,0.011218330822885,0.397372156381607,0.464638262987137,0.422832876443863,0.468321532011032,0.442058891057968,0.469326198101044,0.793410897254944,0.620423138141632,0.801942706108093,0.636768817901611,0.363132268190384,0.456076323986053,0.316706597805023,0.424132704734802,0.380433112382889,0.45774120092392,0.542526602745056,0.673978328704834,0.541943311691284,0.726918160915375,0.515801429748535,0.645934522151947,0.784605801105499,0.690548181533813,0.740013360977173,0.887778162956238,0.739393889904022,0.867305874824524,0.745774924755096,0.873327434062958,0.752894341945648,0.862555325031281,0.819924056529999,0.729970812797546,0.805670857429504,0.799342036247253,0.819708287715912,0.776436269283295,0.826241314411163,0.748914182186127,0.825286567211151,0.768336534500122,0.831686496734619,0.751637816429138,0.827620625495911,0.758510231971741,0.828644573688507,0.741312801837921,0.599681973457336,0.463370442390442,0.565638542175293,0.471655011177063,0.789589524269104,0.818978250026703,0.764902651309967,0.850868225097656,0.781769990921021,0.838692605495453,0.716779410839081,0.914666056632996,0.728026926517487,0.90077269077301,0.572579741477966,0.475124061107636,0.583110153675079,0.475543558597565,0.796489238739014,0.826262533664703,0.792734861373901, +0.829415321350098,0.798780143260956,0.818880498409271,0.63844621181488,0.45880976319313,0.64873343706131,0.460467159748077,0.64149796962738,0.463115334510803,0.621413290500641,0.470012217760086,0.605415284633636,0.408002883195877,0.73116260766983,0.450131446123123,0.716751515865326,0.456090182065964,0.704382359981537,0.459529638290405,0.78560084104538,0.43015268445015,0.589071929454803,0.442538768053055,0.593950867652893,0.47468963265419,0.695277333259583,0.448341697454453,0.668120443820953,0.461113810539246,0.661246478557587,0.454590916633606,0.748850166797638,0.448785066604614,0.766610682010651,0.4471395611763,0.653649866580963,0.461089938879013,0.688775241374969,0.459003269672394,0.309522598981857,0.01682024076581,0.683572173118591,0.931514620780945,0.126687988638878,0.693968772888184,0.104711480438709,0.642381548881531,0.108414970338345,0.58033698797226,0.107106171548367,0.612851500511169,0.565578401088715,0.9668790102005,0.579453468322754,0.886602640151978,0.585577964782715,0.939843654632568,0.584104120731354,0.957602500915527,0.570002675056458,0.878733515739441,0.611053586006165,0.948963105678558,0.593618631362915,0.952064871788025,0.633372366428375,0.932640492916107,0.793491840362549,0.441484928131104,0.829978346824646,0.438465625047684,0.854806184768677,0.418665498495102,0.783252775669098,0.443889409303665,0.83967137336731,0.387896418571472,0.808512151241302,0.454569131135941,0.454387843608856,0.046421080827713,0.672398269176483,0.953857719898224,0.654817759990692,0.94979989528656,0.642465651035309,0.952727794647217,0.863871872425079,0.437201112508774,0.87911593914032,0.428687781095505,0.850821554660797,0.442652881145477,0.629871070384979,0.945525646209717,0.700987815856934,0.936807513237,0.704978764057159,0.927096128463745,0.917199373245239,0.422462999820709,0.898809134960175,0.404197573661804,0.915863811969757,0.400974273681641,0.914381265640259,0.372542351484299,0.870457589626312,0.395240545272827,0.875856935977936,0.407512247562408,0.897995412349701,0.358358025550842,0.875735640525818,0.309364140033722, +0.903511345386505,0.342178672552109,0.888180196285248,0.305316478013992,0.896532237529755,0.324322283267975,0.537154138088226,0.96954756975174,0.466450691223145,0.964379012584686,0.487148433923721,0.96781325340271,0.507768213748932,0.960939347743988,0.505658805370331,0.973411977291107,0.517162382602692,0.970567047595978,0.11003053933382,0.6826531291008,0.118060685694218,0.69809502363205,0.128531947731972,0.724742114543915,0.895274758338928,0.436208844184875,0.878014147281647,0.44109919667244,0.904984951019287,0.42043799161911,0.911210358142853,0.430719584226608,0.908641755580902,0.352952390909195,0.37962082028389,0.0241248197853565,0.562724530696869,0.852351605892181,0.343213140964508,0.0182818677276373,0.513872146606445,0.886563658714294,0.438700020313263,0.017742058262229,0.468027114868164,0.0183798763900995,0.446232289075851,0.940206289291382,0.792225956916809,0.374139219522476,0.812745749950409,0.283517211675644,0.849600970745087,0.346103012561798,0.85471123456955,0.322053372859955,0.864353239536285,0.34117728471756,0.839820921421051,0.368397623300552,0.824844896793365,0.228817880153656,0.846765160560608,0.239131346344948,0.85449481010437,0.266703814268112,0.826588869094849,0.256837636232376,0.367505252361298,0.97810161113739,0.341350585222244,0.973725259304047,0.325064927339554,0.958655118942261,0.831376552581787,0.28123864531517,0.414247751235962,0.969264090061188,0.386534154415131,0.963971078395844,0.429115027189255,0.962494969367981,0.442788004875183,0.966182410717011,0.456236004829407,0.961412847042084,0.871083676815033,0.289041727781296,0.108143448829651,0.66291868686676,0.882898271083832,0.296484470367432,0.86769825220108,0.275725066661835,0.359566122293472,0.98430722951889,0.349067866802216,0.988258004188538,0.803494989871979,0.223256751894951,0.814721882343292,0.225660055875778,0.804041028022766,0.664677619934082,0.803591191768646,0.685177683830261,0.808641076087952,0.701268255710602,0.81298965215683,0.71098405122757,0.540727436542511,0.476243793964386,0.4704629778862,0.477245330810547,0.510500192642212, +0.471608430147171,0.491469293832779,0.481262803077698,0.508827805519104,0.480637788772583,0.804522156715393,0.650573432445526,0.555065333843231,0.471904277801514,0.519392848014832,0.477978944778442,0.456375151872635,0.472854763269424,0.557450532913208,0.434954255819321,0.529038906097412,0.402897357940674,0.487141132354736,0.391602396965027,0.53512704372406,0.385737419128418,0.607297003269196,0.240655392408371,0.580009996891022,0.264091610908508,0.32440572977066,0.778036713600159,0.383959144353867,0.766020357608795,0.554360866546631,0.259966671466827,0.542307019233704,0.344409734010696,0.75831001996994,0.172260776162148,0.788578808307648,0.188491076231003,0.757558524608612,0.215098962187767,0.741321086883545,0.154130384325981,0.757336378097534,0.155302092432976,0.767086446285248,0.163827151060104,0.227618053555489,0.942336618900299,0.24981515109539,0.949079275131226,0.26732125878334,0.951455473899841,0.294248819351196,0.945886790752411,0.281229078769684,0.943492889404297,0.321235209703445,0.936104357242584,0.20451931655407,0.927864909172058,0.198424905538559,0.92165869474411,0.183370694518089,0.910148501396179,0.2836654484272,0.934856295585632,0.622854173183441,0.0871439874172211,0.625721871852875,0.0794058367609978,0.636758506298065,0.084710918366909,0.658780753612518,0.0949163734912872,0.676948964595795,0.104596242308617,0.683839201927185,0.111256346106529,0.777070820331573,0.170696631073952,0.161324888467789,0.858570754528046,0.708085298538208,0.128259494900703,0.698864996433258,0.12913915514946,0.692892134189606,0.116709105670452,0.213324621319771,0.93259459733963,0.306640297174454,0.947046339511871,0.711277425289154,0.214146554470062,0.712976455688477,0.225719511508942,0.725509822368622,0.144924491643906,0.669048130512238,0.1074034050107,0.741714060306549,0.180699363350868,0.797776579856873,0.208356514573097,0.69201672077179,0.277546852827072,0.0818674713373184,0.412359535694122,0.118473179638386,0.428462475538254,0.547900259494781,0.51372241973877,0.569986462593079,0.517868340015411,0.145390823483467,0.39044064283371, +0.13789002597332,0.422997504472733,0.216349884867668,0.368648022413254,0.186012968420982,0.413577854633331,0.166046440601349,0.419943779706955,0.178535282611847,0.417558372020721,0.204215928912163,0.423635065555573,0.192444115877151,0.414643496274948,0.210223108530045,0.397760003805161,0.144807040691376,0.406461775302887,0.153158262372017,0.424671202898026,0.367796540260315,0.358305394649506,0.281896889209747,0.0201177801936865,0.260120362043381,0.0222583394497633,0.343401998281479,0.450233608484268,0.324976980686188,0.449031412601471,0.167160734534264,0.339408487081528,0.204151809215546,0.302959710359573,0.181391850113869,0.289525747299194,0.21731124818325,0.353099912405014,0.16070069372654,0.266826599836349,0.209911495447159,0.317739129066467,0.248672872781754,0.0418332554399967,0.225530922412872,0.0532812736928463,0.252436131238937,0.321102112531662,0.221559107303619,0.314690947532654,0.266982674598694,0.251844823360443,0.227004662156105,0.320862084627151,0.253434598445892,0.389523088932037,0.265012979507446,0.425739198923111,0.234836012125015,0.385305732488632,0.274907946586609,0.447407156229019,0.233751237392426,0.410312712192535,0.240316838026047,0.439403742551804,0.229066520929337,0.434325814247131,0.220030605792999,0.430297464132309,0.717523396015167,0.500753343105316,0.696986079216003,0.49332121014595,0.691711843013763,0.496752232313156,0.684099078178406,0.489618718624115,0.253145068883896,0.442464888095856,0.646643936634064,0.483545333147049,0.657577812671661,0.485822319984436,0.662676095962524,0.485978722572327,0.672015964984894,0.488680601119995,0.218258142471313,0.409143596887589,0.310738861560822,0.452246397733688,0.214896276593208,0.428787618875504,0.610519468784332,0.491714954376221,0.621145367622375,0.484853357076645,0.660814106464386,0.49187096953392,0.627231359481812,0.478916764259338,0.633525431156158,0.478176832199097,0.583031833171844,0.515793144702911,0.58777129650116,0.508543789386749,0.60305380821228,0.503674328327179,0.743138670921326,0.524421989917755,0.14939446747303,0.520718991756439,0.166650205850601, +0.520338237285614,0.17890328168869,0.502014875411987,0.26003098487854,0.374669343233109,0.27111491560936,0.388459265232086,0.0893066450953484,0.391788810491562,0.079852819442749,0.38989320397377,0.0848383083939552,0.366062134504318,0.0992846935987473,0.417388498783112,0.119797639548779,0.535090565681458,0.132971808314323,0.530023813247681,0.115363977849483,0.553924739360809,0.454244405031204,0.50591254234314,0.472198218107224,0.507164835929871,0.485853791236877,0.504070281982422,0.478839814662933,0.518848955631256,0.131537303328514,0.428840965032578,0.507940113544464,0.513707756996155,0.092640332877636,0.312206417322159,0.103792585432529,0.265983909368515,0.11423459649086,0.327761471271515,0.0961275026202202,0.3505779504776,0.127929896116257,0.279562592506409,0.219999983906746,0.50129634141922,0.0810328722000122,0.335825055837631,0.0878384411334991,0.322139114141464,0.0963030308485031,0.28553107380867,0.0830031186342239,0.352763056755066,0.170999243855476,0.27192211151123,0.385665506124496,0.542144000530243,0.322224378585815,0.693657755851746,0.242791905999184,0.0240769982337952,0.208929762244225,0.0533048510551453,0.2219368070364,0.0316022150218487,0.388146549463272,0.47645777463913,0.407033681869507,0.484556764364243,0.434192031621933,0.487701535224915,0.429704278707504,0.503162920475006,0.360832095146179,0.480952262878418,0.375791370868683,0.480650067329407,0.440881133079529,0.497174888849258,0.229392200708389,0.250575125217438,0.260814875364304,0.269034206867218,0.182037204504013,0.22709433734417,0.254988074302673,0.229007378220558,0.20830012857914,0.161572322249413,0.235830321907997,0.185771912336349,0.198744967579842,0.277361512184143,0.177626773715019,0.197592243552208,0.262714982032776,0.0912294983863831,0.164732605218887,0.159557014703751,0.124614790081978,0.163066521286964,0.131541430950165,0.123149141669273,0.178065404295921,0.119558371603489,0.119136080145836,0.220054537057877,0.117857374250889,0.199426218867302,0.0998224914073944,0.253205537796021,0.100161142647266,0.237922191619873,0.160172998905182, +0.175785481929779,0.135199591517448,0.174893453717232,0.129586011171341,0.183062463998795,0.157865405082703,0.213714376091957,0.128310456871986,0.141198858618736,0.109983891248703,0.218173339962959,0.118444725871086,0.179116263985634,0.294206887483597,0.487807869911194,0.294250071048737,0.47174870967865,0.259764283895493,0.479677766561508,0.274997353553772,0.476292461156845,0.309518784284592,0.468243628740311,0.325309216976166,0.460092663764954,0.341455936431885,0.470906674861908,0.389690518379211,0.387187331914902,0.497139245271683,0.270691245794296,0.248663172125816,0.0752386748790741,0.213510453701019,0.0688474029302597,0.254106432199478,0.0695135593414307,0.286686271429062,0.288206845521927,0.481173783540726,0.165204003453255,0.553628444671631,0.169162034988403,0.227561995387077,0.0612159669399261,0.24986444413662,0.0849293246865273,0.575102090835571,0.081149697303772,0.606198906898499,0.0639332830905914,0.595457792282104,0.0645309016108513,0.583732128143311,0.0624400526285172,0.145299226045609,0.808927059173584,0.146898567676544,0.826644122600555,0.149686962366104,0.839678943157196,0.557635188102722,0.0437428876757622,0.572060227394104,0.0553461797535419,0.155693054199219,0.849816799163818,0.16815273463726,0.851617097854614,0.618728816509247,0.0742416754364967,0.16926620900631,0.891278266906738,0.162818238139153,0.881947696208954,0.161416068673134,0.873832523822784,0.436650723218918,0.14232537150383,0.476375699043274,0.122349232435226,0.483340173959732,0.0439265221357346,0.266444206237793,0.11190190911293,0.28728649020195,0.0991067290306091,0.267377495765686,0.14144167304039,0.151939988136292,0.760367691516876,0.187121823430061,0.0544073581695557,0.165089190006256,0.0609166510403156,0.483064085245132,0.0317531526088715,0.521977007389069,0.0527343489229679,0.533587217330933,0.0655857399106026,0.506882607936859,0.0777281448245049,0.530751168727875,0.0336009673774242,0.497315973043442,0.0269815232604742,0.128529131412506,0.754704833030701,0.481338173151016,0.020694462582469,0.136574760079384,0.784142911434174,0.131166160106659, +0.738146066665649,0.451553076505661,0.0915484428405762,0.490088194608688,0.0917503833770752,0.244623079895973,0.182969883084297,0.238101914525032,0.172990888357162,0.304587572813034,0.1733138859272,0.27129864692688,0.153320983052254,0.249335959553719,0.203655809164047,0.321264266967773,0.159080058336258,0.242876142263412,0.16315259039402,0.227277547121048,0.133325189352036,0.239794090390205,0.13553948700428,0.217967063188553,0.141779556870461,0.231560185551643,0.115561284124851,0.146344587206841,0.0747499465942383,0.134167835116386,0.100443176925182,0.244796827435493,0.491988211870193,0.311753243207932,0.0970018208026886,0.298983126878738,0.100298777222633,0.116620324552059,0.573624908924103,0.186629235744476,0.118565134704113,0.203546717762947,0.138523504137993,0.205529510974884,0.091062143445015,0.189776912331581,0.109352841973305,0.221323996782303,0.092772550880909,0.201924741268158,0.032780084758997,0.198475822806358,0.502565979957581 + } + UVIndex: *1794 { + a: 266,0,4,1,2,18,15,1,33,0,174,1,174,33,1,2,1,15,0,25,174,5,0,3,18,6,1,1,6,7,8,3,9,10,9,284,284,9,3,0,1,4,14,12,13,13,12,135,31,15,17,17,15,11,16,15,31,30,18,2,2,15,16,226,227,7,1,7,227,8,19,3,5,3,19,14,131,12,20,21,131,131,21,12,5,25,0,26,174,25,357,23,29,22,29,23,242,357,27,27,357,29,28,357,242,18,32,6,2,16,31,32,30,31,2,31,30,30,32,18,34,35,36,37,36,35,33,41,48,39,48,41,15,33,49,39,41,40,42,40,41,44,41,43,43,41,45,42,41,44,38,45,41,67,46,54,33,48,49,50,49,48,51,35,52,34,52,35,47,54,53,55,56,57,50,48,56,56,48,57,39,57,48,51,77,35,15,35,77,15,49,35,37,35,49,38,41,33,59,60,58,61,58,60,63,64,69,65,69,64,58,62,71,59,58,71,58,46,62,46,67,62,46,68,54,61,68,58,68,46,58,63,69,66,70,71,69,63,66,72,73,72,66,69,62,223,71,62,69,59,71,74,70,74,71,65,75,69,70,69,75,250,133,131,76,133,250,89,11,77,82,84,85,134,86,84,83,84,86,89,83,11,87,88,84,85,84,88,87,84,89,89,84,83,73,66,93,90,93,66,92,91,94,90,94,91,91,95,90,384,96,13,97,98,89,99,89,98,92,111,101,97,89,77,92,101,91,102,91,100,100,91,101,87,89,103,99,103,89,51,105,77,104,77,105,106,107,108,110,111,94,92,94,111,142,113,112,114,112,113,115,116,113,114,113,116,108,112,109,107,112,108,107,111,112,112,111,110,118,120,119,121,119,120,120,84,117,117,84,82,134,84,120,121,120,122,117,122,120,123,78,124,125,124,78,143,110,94,110,142,112,126,127,101,100,101,127,126,128,129,129,128,106,106,128,107,109,112,130,114,130,112,101,111,128,107,128,111,126,101,128,77,11,15,11,132,17,134,17,132,134,132,86,134,31,17,86,132,83,83,132,11,20,131,133,134,120,137,118,137,120,185,134,137,14,13,96,69,223,66,66,138,90,90,138,94,94,138,143,138,139,143,110,140,142,151,141,140,140,141,142,143,140,110,139,140,143,139,151,140,66,223,138,223,139,138,144,145,147,146,147,145,153,149,199,150,199,149,152,153,137,148,149,153,152,137,154,155,154,137,118,156,137,155,137,156,157,151,146,146,151,147,157,113,141,142,141,113,151,157,141,79,78,158,123,158,78,157,159,113,115,113,159,146,160,157,148,161,149,162,149,161,163,164,147,144,147,164,147,139,163,163,139,190,151,139,147,165,166,33,167,33,166, +38,33,168,167,168,33,165,33,174,175,171,178,178,171,179,169,171,175,170,171,172,173,172,171,173,171,176,169,176,171,179,171,177,170,177,171,62,67,178,67,54,178,54,47,178,47,175,178,182,181,187,417,131,14,179,181,178,178,181,62,62,181,182,401,14,96,62,182,223,180,179,177,24,180,177,180,23,357,24,23,180,181,180,187,183,187,186,186,187,358,358,187,180,180,181,179,185,32,134,185,315,32,32,31,134,184,315,185,183,182,187,182,183,186,204,220,182,364,182,186,189,190,188,191,192,188,193,188,192,194,203,195,196,195,203,197,198,203,196,203,198,184,153,199,199,377,184,200,201,215,203,215,201,205,206,204,207,208,220,209,220,208,193,210,188,189,188,210,202,381,201,203,201,381,211,377,381,203,381,377,14,401,382,194,215,203,204,206,220,207,220,206,212,213,214,214,213,220,209,214,220,199,203,377,197,203,216,216,203,199,150,216,199,185,153,184,137,153,185,220,217,182,182,217,223,191,188,221,188,190,221,221,213,219,212,219,213,223,217,218,191,221,219,189,222,190,163,190,222,221,190,217,218,217,190,221,217,213,139,223,190,218,190,223,217,220,213,290,228,237,244,231,233,230,231,244,234,235,236,230,236,231,231,236,235,244,233,228,232,237,233,228,233,237,232,238,237,229,237,238,241,240,250,239,28,289,239,357,28,28,242,243,247,244,249,245,249,246,230,244,247,245,253,249,248,246,244,249,244,246,255,253,252,245,246,332,252,253,332,245,332,253,252,362,289,254,362,327,252,327,362,253,255,249,247,249,255,288,255,252,258,256,260,257,260,256,268,257,259,264,266,265,267,265,266,269,270,278,271,278,270,264,0,266,271,272,278,267,266,272,272,266,278,259,257,274,260,257,262,257,268,262,261,262,268,260,262,273,263,273,262,264,284,0,3,0,284,28,243,274,263,275,273,234,273,275,273,236,260,260,236,258,258,236,230,269,278,277,4,277,278,279,280,277,269,277,280,1,227,4,278,266,4,227,281,4,282,4,281,234,236,273,282,283,4,277,4,276,276,4,283,257,256,289,289,256,288,28,274,289,257,289,274,288,256,258,288,258,255,255,258,247,247,258,230,289,288,252,291,290,224,224,290,293,292,290,291,229,293,237,290,237,293,294,295,296,419,296,295,80,296,419,297,298,300,299,300, +298,80,419,81,229,301,293,225,293,301,292,306,290,6,32,7,32,302,7,299,302,300,32,300,302,314,322,300,297,300,322,314,300,32,314,32,315,305,304,307,419,295,286,285,286,295,248,244,307,305,307,244,303,304,305,290,306,305,419,286,308,308,286,426,287,426,286,309,310,306,306,310,305,303,305,310,244,228,305,290,305,228,307,304,339,303,311,304,292,312,306,309,306,312,246,313,332,248,313,246,241,250,316,251,317,250,316,250,318,318,250,317,319,320,324,321,322,320,320,322,324,314,324,322,321,325,322,297,322,325,323,324,314,327,326,329,329,326,407,330,331,328,328,331,326,326,327,332,252,332,327,329,254,327,248,328,313,313,328,326,339,346,307,248,307,346,313,326,332,335,344,338,336,347,344,344,347,338,337,338,347,340,345,339,342,304,341,335,343,344,343,345,344,343,346,345,345,346,339,348,339,342,342,339,304,340,339,348,248,346,328,328,346,333,333,346,343,336,344,349,349,344,345,340,349,345,350,314,308,352,353,350,351,350,353,351,354,350,355,356,354,350,354,356,421,330,335,335,330,343,333,343,330,350,356,314,323,314,356,357,239,180,180,239,358,358,239,362,424,365,366,366,365,359,360,365,424,76,250,240,289,362,239,405,362,254,362,408,382,14,382,408,358,362,363,251,250,365,365,250,359,359,250,361,362,405,408,334,361,131,250,131,361,417,334,131,184,308,315,419,308,184,308,314,315,361,334,359,359,334,366,383,364,363,358,363,364,364,186,358,377,388,184,377,371,388,182,364,204,204,383,367,383,402,367,417,386,334,368,378,369,370,369,367,367,369,378,371,376,372,373,372,376,393,375,367,370,367,375,211,376,377,367,378,204,205,204,378,202,379,381,380,381,379,377,376,371,401,402,383,401,96,384,334,386,385,387,385,386,419,184,388,389,317,390,125,78,388,419,388,78,13,135,384,391,384,136,136,384,135,392,393,394,367,402,393,402,394,393,401,394,402,392,394,384,401,384,394,374,375,392,393,392,375,374,392,395,384,391,392,395,392,396,396,392,391,136,398,391,396,391,398,397,388,399,388,371,399,397,400,388,125,388,400,382,401,383,383,363,382,363,362,382,364,383,204,329,407,254,409,403,404,406,407,403,326,331,407,404,403,331,331,403,407,405,407,406, +405,254,407,406,403,409,412,330,421,413,385,411,411,385,387,334,385,413,410,411,412,409,404,411,411,404,412,406,409,411,390,317,338,338,317,360,410,412,421,414,337,415,331,330,404,411,410,413,406,411,387,333,330,328,412,404,330,414,390,337,390,338,337,350,308,416,352,350,416,14,408,417,418,417,408,405,386,408,386,418,408,417,418,386,387,386,406,405,406,386,419,78,81,79,81,78,338,420,335,421,335,420,422,424,420,413,421,424,424,421,420,338,423,420,422,420,423,360,424,422,413,410,421,334,413,366,424,366,413,422,423,360,360,423,338,251,365,317,360,317,365,389,425,317,318,317,425 + } + } + LayerElementSmoothing: 0 { + Version: 102 + Name: "" + MappingInformationType: "ByEdge" + ReferenceInformationType: "Direct" + Smoothing: *897 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementMaterial: 0 { + Version: 101 + Name: "" + MappingInformationType: "AllSame" + ReferenceInformationType: "IndexToDirect" + Materials: *1 { + a: 0 + } + } + Layer: 0 { + Version: 100 + LayerElement: { + Type: "LayerElementNormal" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementBinormal" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementTangent" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementMaterial" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementSmoothing" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementUV" + TypedIndex: 0 + } + } + } + Geometry: 664391685280, "Geometry::", "Mesh" { + Vertices: *450 { + a: 23.1708526611328,-42.746337890625,-54.4329681396484,23.8083152770996,-53.4263076782227,36.9930953979492,30.0010261535645,-53.073486328125,36.9719085693359,53.8716583251953,-47.2680969238281,-5.02901554107666,43.5165596008301,-51.1639709472656,35.3437194824219,39.0630302429199,-55.5878982543945,21.6009101867676,29.0974998474121,103.907516479492,4.49119710922241,-14.2433853149414,-58.5655899047852,25.4676055908203,-41.2160835266113,-58.8725547790527,32.3906440734863,-46.333065032959,-60.6065483093262,29.1505126953125,27.8316040039063,103.188484191895,9.08074188232422,-61.8694953918457,-57.7532958984375,11.2883892059326,-75.7869033813477,-56.9898147583008,-15.7952461242676,-82.5479507446289,-57.1590347290039,-26.7976303100586,-90.5327453613281,-56.7641563415527,-46.9989128112793,-87.9192810058594,-56.0310020446777,-34.7330360412598,-91.0579223632813,-48.0653610229492,-64.1609191894531,-84.5330047607422,-46.8299522399902,-76.6675491333008,-80.5479278564453,-54.4699974060059,-72.8998413085938,-97.6856002807617,-40.142707824707,-52.5575294494629,-83.7976760864258,-5.73158264160156,-64.5970993041992,-85.5193786621094,3.53093528747559,-60.06396484375,-93.3418960571289,8.82772350311279,-53.5505332946777,-37.5803070068359,-58.8305282592773,33.003547668457,-3.15281009674072,-58.4581718444824,37.7726135253906,-21.0445671081543,-59.7277221679688,32.3425941467285,1.84002637863159,-57.25341796875,38.5580368041992,-38.7113571166992,-45.1768188476563,32.9150924682617,-82.7452545166016,31.43385887146,-42.8475723266602,-73.3264312744141,66.7197113037109,-15.7671756744385,51.9197235107422,103.901840209961,4.4446234703064,-83.722526550293,29.5261402130127,-13.9008474349976,68.5574188232422,101.749404907227,3.28607416152954,73.1136245727539,-43.5393562316895,-24.0417385101318,73.9104919433594,96.5120391845703,7.04238224029541,77.5845565795898,-37.821159362793,-14.0955410003662,72.906982421875,-23.758861541748,10.6799116134644,71.4443664550781,-6.46144533157349,24.1512985229492,59.7531242370605,-52.1703948974609,28.0571708679199, +68.3517532348633,-39.1370887756348,15.4878768920898,75.219108581543,-41.2858200073242,2.64138412475586,73.4704284667969,-42.3389854431152,-16.7338809967041,76.2896423339844,-43.0934677124023,-6.66795253753662,88.7160034179688,-4.83618497848511,-31.3172416687012,90.894287109375,21.4898681640625,-25.5449333190918,81.9227447509766,37.0699996948242,-4.32074928283691,79.8566589355469,59.2365493774414,6.61362266540527,94.868537902832,39.6123962402344,-19.6062488555908,97.4256896972656,33.5915298461914,-19.05419921875,84.5696258544922,84.7820281982422,2.66999530792236,20.7564582824707,-27.4181804656982,35.8794898986816,-57.005500793457,80.1256561279297,-7.13019943237305,-31.1843223571777,88.7082214355469,-5.61773920059204,-48.7638549804688,82.412971496582,-8.33373641967773,-0.850710868835449,96.8674163818359,-2.99260258674622,-11.7112464904785,95.3723754882813,-2.16698408126831,82.2391204833984,84.073600769043,-7.94479465484619,69.0928573608398,57.8976364135742,23.6896095275879,72.8145751953125,60.9932594299316,10.1671524047852,91.5403671264648,68.6519775390625,1.07870554924011,74.7134628295898,92.9690551757813,-2.46494317054749,80.0453643798828,49.7102470397949,18.0005474090576,70.1954193115234,14.0328149795532,-36.3531646728516,82.4300994873047,88.232421875,-1.51666259765625,90.7173767089844,16.023229598999,-26.0740833282471,84.4189376831055,-1.16395473480225,10.242395401001,70.1037521362305,79.2641143798828,14.9135475158691,94.1825637817383,41.8603820800781,-13.9186429977417,91.1131286621094,57.8833160400391,-18.0321788787842,90.198844909668,42.9114151000977,-6.30356359481812,88.4269638061523,45.7435607910156,-21.8942413330078,1.13879346847534,79.7074966430664,16.3695125579834,-47.6582260131836,17.6394786834717,22.4465141296387,80.6978378295898,91.2709732055664,3.13374257087708,-41.5601119995117,84.2038497924805,-5.07155323028564,-54.2238235473633,81.328971862793,-7.34694385528564,-13.3552913665771,88.597297668457,-7.7183723449707,-22.9664821624756,93.0951766967773,4.48961734771729,-5.5589017868042,95.0855102539063,-2.9065408706665, +77.231559753418,37.8241577148438,23.3174686431885,86.6488800048828,63.4273300170898,-17.9951457977295,61.1396102905273,76.0938262939453,15.5267553329468,37.0560989379883,-51.2092781066895,36.0771713256836,8.91298866271973,98.9684906005859,0.594467401504517,2.74967336654663,-46.0315322875977,-61.1675186157227,8.63710784912109,-56.9636535644531,38.0571441650391,32.6428375244141,-32.6479072570801,-50.0317840576172,-68.9544830322266,-58.899959564209,-13.30943775177,-69.0972518920898,-58.5790901184082,-8.0590124130249,-39.7689323425293,-60.6602554321289,32.1279067993164,-43.2337036132813,-60.2767066955566,31.1784782409668,-54.3833122253418,-59.7586898803711,18.3323211669922,-66.4085922241211,-57.5017776489258,-2.55000400543213,-89.2448120117188,-52.8584289550781,-31.7045097351074,-51.5775680541992,-56.8006324768066,25.6490364074707,-70.1359024047852,-55.3241653442383,-4.04374599456787,-84.2179107666016,-56.1732482910156,-40.3202705383301,-75.2486953735352,-54.160228729248,-74.7141342163086,-78.2461471557617,-55.1906509399414,-57.7697105407715,-86.8983383178711,-55.6509246826172,-52.4606170654297,-86.3886871337891,-54.9889488220215,-57.0373115539551,-82.2992477416992,-54.4094696044922,-60.402759552002,-85.9978485107422,-25.7236366271973,-74.8610000610352,-81.770637512207,-53.3918571472168,-75.9966125488281,-42.2353401184082,-47.831615447998,-70.6443023681641,-84.8960723876953,-36.6725273132324,-77.0381164550781,-89.1133728027344,-16.7536354064941,-58.2217597961426,-84.0554122924805,12.6344709396362,-55.3702239990234,-92.9610366821289,22.2950325012207,-46.186351776123,-82.7904510498047,-0.930887699127197,-63.009391784668,-81.9405670166016,-9.60839366912842,-67.514762878418,-91.7117385864258,20.670825958252,-49.7968826293945,-14.8855876922607,-58.6776123046875,32.7469177246094,-74.3000793457031,-5.65992975234985,-66.6917572021484,-33.1483192443848,-26.6199626922607,38.7267456054688,-77.9866104125977,44.95556640625,-34.0856742858887,-80.8111801147461,47.9280662536621,-29.8128223419189,-74.789680480957,34.1345901489258,-43.9563407897949, +-71.1908187866211,68.8380661010742,-14.6485805511475,-56.9728851318359,78.2580261230469,-4.66860008239746,-60.3656997680664,78.0636291503906,-8.53117656707764,-78.662353515625,37.177116394043,-39.3126564025879,-74.9367752075195,64.0533905029297,-17.7411193847656,-89.4785385131836,26.9347553253174,-29.9827861785889,-71.3280563354492,69.6548309326172,-11.6708908081055,-78.3315505981445,59.7339630126953,-20.9950733184814,73.0526657104492,-42.4980850219727,-10.758394241333,76.376091003418,-41.0809173583984,0.596641540527344,81.8435897827148,-6.47207832336426,11.9840412139893,66.7958297729492,-26.0422267913818,24.8853511810303,68.9173812866211,-47.8916282653809,14.262638092041,67.6082611083984,-49.7420654296875,18.1512222290039,71.0577239990234,-46.6217193603516,11.6383094787598,73.6211471557617,-34.7116851806641,8.68922901153564,77.1131286621094,-42.6634674072266,-2.04280281066895,70.1403274536133,-48.0681114196777,10.1176948547363,71.6884613037109,-42.7864761352539,-19.3940734863281,75.216438293457,87.6785507202148,-5.97157001495361,79.7082138061523,-31.2907485961914,-36.510684967041,77.348014831543,-41.3624458312988,-30.8953666687012,83.2869110107422,-23.0748481750488,-35.3066635131836,83.0875854492188,-11.5760250091553,-35.4980430603027,92.0924377441406,11.4128952026367,-26.0911865234375,86.2479476928711,-10.1396360397339,-23.5380191802979,83.5273284912109,72.5420761108398,-17.5103168487549,85.3397827148438,-6.86966514587402,-32.8843040466309,89.6042709350586,4.85874080657959,-28.9224128723145,14.2875080108643,102.083511352539,2.54586577415466,78.4373931884766,-39.4644355773926,-37.2482376098633,85.6788940429688,11.2951793670654,-6.5612964630127 + } + PolygonVertexIndex: *888 { + a: 131,5,-4,84,3,-8,5,24,-4,24,7,-4,0,3,-85,5,85,-25,1,5,-3,3,0,-149,4,82,-3,10,147,-84,139,33,-149,3,148,-34,6,147,-11,1,85,-6,26,24,-86,50,85,-2,82,50,-3,2,50,-2,4,50,-83,86,0,-85,12,87,-89,7,89,-92,84,7,-93,91,89,-10,90,89,-9,8,89,-24,9,89,-91,7,91,-93,11,92,-92,13,87,-13,8,9,-91,13,96,-88,84,87,-97,84,92,-88,88,87,-93,23,89,-8,12,88,-96,91,9,-12,9,94,-12,12,95,-94,13,12,-94,95,94,-32,11,94,-96,88,92,-96,11,95,-93,34,6,-11,30,6,-35,98,104,-97,17,97,-104,105,104,-98,103,97,-19,18,97,-99,98,97,-105,13,93,-16,16,14,-20,15,19,-15,14,96,-16,14,99,-99,100,98,-100,14,98,-97,16,100,-15,99,14,-101,18,98,-102,100,101,-99,13,15,-97,106,110,-103,17,102,-106,17,16,-103,110,105,-103,105,97,-18,16,106,-103,18,101,-101,100,16,-104,17,103,-17,18,100,-104,96,104,-85,105,84,-105,110,113,-106,95,31,-94,15,93,-20,93,22,-20,19,106,-17,22,106,-20,31,22,-94,111,107,-23,21,22,-108,107,108,-118,28,117,-109,21,107,-114,111,108,-108,21,113,-110,20,109,-114,20,113,-111,20,22,-22,20,110,-107,22,20,-107,6,83,-148,21,109,-21,108,111,-23,108,22,-124,24,112,-8,25,7,-113,23,7,-26,23,25,-28,27,25,-115,24,25,-113,114,25,-25,94,9,-28,9,8,-28,8,23,-28,27,114,-95,94,114,-73,71,10,-84,94,72,-32,26,114,-25,114,85,-51,26,85,-115,113,86,-106,86,84,-106,119,124,-73,28,123,-122,116,115,-122,125,115,-117,113,107,-118,117,53,-114,29,118,-123,115,122,-119,51,120,-120,29,124,-119,115,118,-76,115,75,-54,125,122,-116,119,120,-125,118,124,-121,122,125,-125,29,122,-125,117,115,-54,121,115,-118,28,121,-118,124,31,-73,116,121,-124,123,125,-117,28,108,-124,123,31,-126,22,31,-124,31,124,-126,36,133,-128,127,133,-41,127,134,-36,42,35,-135,42,126,-36,41,35,-127,50,4,-130,36,127,-129,149,65,-128,128,127,-66,37,128,-66,129,128,-38,38,39,-130,40,132,-136,38,5,-132,132,130,-136,130,131,-136,39,38,-131,38,131,-131,39,130,-134,132,133,-131,38,4,-6,2,5,-5,40,133,-133,39,133,-37,40,135,-135,3,134,-136,127,40,-135,135,131,-4,33,136,-4,41,3,-137,41,126,-4,134,3,-43,42,3,-127,38,129,-5,129,39,-129,128,39,-37,140,148,-139,41,139,-36,148,35,-140,41,136,-140,33,139,-137, +140,143,-149,0,86,-149,86,138,-149,140,138,-142,86,141,-139,62,145,-142,62,141,-87,62,86,-114,143,142,-49,30,32,-138,60,137,-33,149,127,-49,143,48,-128,43,142,-144,30,137,-145,144,137,-57,141,145,-144,43,143,-146,127,35,-144,148,143,-36,43,146,-143,141,143,-141,73,63,-35,32,34,-61,60,34,-64,142,146,-65,43,145,-147,146,145,-65,62,64,-146,44,64,-63,37,149,-80,46,61,-46,45,61,-150,149,37,-66,149,48,-70,69,67,-60,47,68,-68,67,68,-60,44,142,-65,67,69,-49,44,48,-143,149,69,-46,48,47,-68,70,62,-145,47,70,-69,70,47,-49,45,69,-47,70,48,-63,44,62,-49,114,50,-38,49,73,-67,30,34,-33,129,37,-51,57,37,-80,37,57,-72,10,71,-58,114,37,-72,73,34,-67,34,10,-67,81,66,-11,30,144,-114,144,62,-114,114,71,-73,53,76,-114,53,52,-77,71,77,-120,74,53,-120,119,53,-76,52,53,-75,77,74,-120,51,119,-76,118,120,-76,51,75,-121,71,83,-55,57,66,-82,30,113,-77,54,83,-77,30,76,-84,71,54,-78,52,74,-78,52,77,-56,55,77,-55,55,54,-79,55,76,-53,55,78,-77,54,76,-79,72,71,-120,57,79,-62,149,61,-80,58,66,-58,58,61,-47,57,61,-59,56,63,-60,59,63,-50,144,68,-81,144,56,-69,56,59,-69,70,144,-81,68,70,-81,10,57,-82,30,83,-7,46,69,-60,58,46,-50,49,46,-60,49,66,-59,49,63,-74,56,137,-64,60,63,-138 + } + Edges: *444 { + a: 5,1,14,6,20,26,18,23,35,38,36,44,68,71,90,84,87,96,104,107,89,67,65,86,74,80,122,119,110,62,109,125,128,114,155,167,164,168,173,93,161,176,174,162,197,198,200,188,201,152,180,215,98,204,29,165,241,272,266,281,275,278,252,257,246,254,263,299,77,9,308,300,305,323,335,342,320,42,352,365,362,357,260,366,377,392,371,360,381,384,368,401,375,380,389,261,372,140,417,422,423,591,447,449,444,440,632,24,461,491,476,478,594,480,608,483,515,477,479,638,450,455,528,518,530,525,501,471,593,453,551,549,552,32,22,570,581,584,596,602,555,603,599,464,590,617,575,605,614,693,587,641,624,579,653,462,470,668,683,678,674,672,651,659,662,695,701,713,725,743,731,734,753,383,764,770,776,388,785,791,794,759,803,809,811,812,813,806,359,842,827,833,847,848,788,857,846,840,872,714,0,4,7,16,19,3,12,25,31,15,39,47,48,59,61,64,70,72,76,82,60,94,100,63,112,115,123,124,118,130,135,142,797,149,151,148,141,160,163,169,172,143,171,187,196,202,144,189,146,217,218,147,235,238,210,243,240,259,265,258,271,231,279,195,284,273,267,298,301,303,313,315,322,311,314,331,334,45,345,228,232,361,364,363,373,376,382,385,391,336,378,397,404,408,413,429,430,340,403,30,442,443,445,451,633,54,460,463,446,458,468,467,473,482,474,484,490,496,502,498,497,438,514,487,526,532,516,457,544,550,553,559,568,574,580,576,351,589,592,598,588,565,610,619,625,564,631,640,646,648,655,661,654,670,676,669,667,688,697,696,690,706,347,712,723,727,137,728,745,746,694,751,754,757,760,767,762,778,756,338,793,784,771,817,761,826,786,831,836,657,841,844,850,288,138,869,845,716,630,883,611,28,226,27,49,57,73,145,154,181,199,249,253,255,296,310,325,358,393,439,475,486,2,535,512,607,613,634,643,658,673,684,703,715,656,736,739,741,763,799,805,834,671,871 + } + GeometryVersion: 124 + LayerElementNormal: 0 { + Version: 102 + Name: "" + MappingInformationType: "ByVertice" + ReferenceInformationType: "Direct" + Normals: *450 { + a: 0.231065034866333,-0.886500477790833,-0.400906473398209,0.137229442596436,-0.417546987533569,0.898232996463776,0.108900189399719,-0.483345597982407,0.86862987279892,0.11161082983017,-0.982876241207123,-0.146620005369186,0.260501384735107,-0.1117954403162,0.958979070186615,0.018441766500473,-0.976954400539398,-0.212650045752525,0.0552333816885948,0.959604680538177,-0.275877118110657,0.0805080011487007,-0.989010572433472,-0.124002426862717,-0.431272506713867,0.0216005612164736,0.90196305513382,-0.527070939540863,-0.420868813991547,0.738285541534424,-0.0269890464842319,0.419208317995071,0.907488763332367,-0.827113449573517,-0.335186839103699,0.451146483421326,-0.573716282844543,-0.740015983581543,0.351035743951797,-0.289787203073502,-0.951625823974609,0.102135874330997,-0.733642935752869,-0.678905487060547,0.0292481705546379,-0.731586933135986,-0.668097794055939,0.13574206829071,-0.903623163700104,-0.198591038584709,-0.379508346319199,-0.691044270992279,-0.108239904046059,-0.714662134647369,-0.113845705986023,-0.986787259578705,-0.115282192826271,-0.989234805107117,0.0420159734785557,0.140175312757492,-0.690080046653748,0.0907547697424889,-0.71802020072937,-0.28042933344841,0.427571922540665,-0.859384477138519,-0.986310184001923,0.0341366864740849,0.161328464746475,0.0562838725745678,-0.197703167796135,0.978644788265228,0.00823051575571299,-0.965019524097443,0.262048602104187,-0.220469489693642,-0.429950147867203,0.875520467758179,0.0219403821974993,-0.0147000961005688,0.999651253223419,-0.22583743929863,-0.183750972151756,0.956678092479706,-0.611768007278442,0.721609115600586,-0.324068129062653,-0.743329286575317,0.635712802410126,-0.208160609006882,-0.00725309876725078,0.573612332344055,-0.819094777107239,-0.819422006607056,0.0736197605729103,0.568443238735199,0.166718825697899,0.852207064628601,-0.495931327342987,-0.036058034747839,-0.963629007339478,-0.264799654483795,0.245748966932297,0.461311906576157,0.852524876594543,0.945073664188385,-0.325040280818939,0.0344175845384598,0.803037464618683,-0.403828531503677,0.438238888978958, +0.176999062299728,0.114821828901768,0.977490305900574,0.513411223888397,-0.537036836147308,0.669328391551971,0.859126329421997,-0.177245661616325,0.480089455842972,0.903369009494781,-0.169913768768311,0.393768459558487,0.467209786176682,-0.882558405399323,0.0529685392975807,0.36546117067337,-0.923398315906525,-0.117360688745975,0.952778875827789,-0.274591594934464,-0.129660293459892,0.435971409082413,0.207462772727013,-0.875721395015717,0.916958272457123,0.0341064222157002,0.397522926330566,0.718760311603546,0.00205246871337295,0.695254921913147,0.857509195804596,0.247570633888245,-0.450984239578247,0.984726369380951,-0.0366425067186356,-0.170209810137749,0.710581421852112,0.161129057407379,0.684917092323303,0.0883328467607498,0.23550109565258,0.967851519584656,-0.481414198875427,0.815421462059021,0.321447312831879,-0.240460738539696,0.825328469276428,-0.510892808437347,-0.0876458734273911,0.585194289684296,-0.806142568588257,-0.0192763675004244,0.827473998069763,0.5611732006073,-0.156950667500496,0.905866324901581,-0.39341151714325,0.732114672660828,0.523173689842224,-0.436230927705765,-0.0376246757805347,0.0686118751764297,0.99693363904953,0.767899513244629,0.204920545220375,0.606908440589905,0.902374386787415,0.174746602773666,0.393934041261673,0.458654850721359,0.733693242073059,-0.501328229904175,0.927484154701233,0.161018088459969,0.337411314249039,0.185105666518211,0.226786524057388,-0.956192314624786,0.752483248710632,0.574973583221436,-0.321207791566849,0.428706854581833,0.138587176799774,-0.892750859260559,0.978919565677643,0.0857314914464951,0.185382202267647,0.315089583396912,0.252752721309662,0.914786636829376,0.980424880981445,0.0752507373690605,0.181946381926537,0.911109626293182,0.263684332370758,-0.316780358552933,0.69008195400238,-0.199150025844574,0.695791840553284,0.391347378492355,0.189339831471443,-0.900554120540619,-0.0473064295947552,0.234227418899536,0.971030116081238,-0.477818876504898,0.204544305801392,0.854313015937805,0.656706035137177,0.391340047121048,0.644662916660309,-0.369504898786545,0.927931189537048,-0.049089539796114, +-0.238019660115242,0.720997452735901,-0.650775969028473,0.0148360533639789,0.525375306606293,-0.85074120759964,-0.287423431873322,0.475418865680695,0.831483423709869,-0.194830849766731,0.645568311214447,-0.738432466983795,0.728146314620972,-0.0569821447134018,0.683049023151398,0.395131468772888,0.199240803718567,-0.89675772190094,0.108461774885654,0.386397391557693,0.915932953357697,0.108966216444969,0.0810099467635155,0.990739047527313,-0.311350643634796,0.94676262140274,-0.081860639154911,0.169968903064728,-0.854107320308685,-0.491539865732193,0.0842075943946838,-0.172919094562531,0.981329739093781,0.200955167412758,0.145111978054047,-0.968792855739594,0.116244919598103,-0.99029403924942,-0.0761904120445251,-0.407258182764053,-0.863660991191864,0.297035932540894,0.0568042658269405,-0.996259570121765,-0.0651151984930038,-0.418182104825974,-0.462546914815903,0.781776249408722,0.0252673272043467,-0.993070960044861,-0.114767782390118,0.063336968421936,-0.993000745773315,-0.0996889770030975,-0.887963771820068,-0.046649407595396,0.457541465759277,-0.764062106609344,-0.0165930222719908,0.64492928981781,-0.837514400482178,-0.0811061635613441,0.540362298488617,0.0850585773587227,-0.988280534744263,-0.126753821969032,0.205662921071053,-0.633807897567749,-0.745647609233856,0.182336270809174,-0.983228266239166,-0.00395306292921305,-0.0433873757719994,-0.976759791374207,-0.209899812936783,-0.496934860944748,-0.823386967182159,-0.274025052785873,-0.0154902897775173,-0.99923300743103,-0.0359629690647125,-0.866036891937256,0.17789489030838,-0.467261701822281,-0.553116202354431,-0.570015549659729,-0.607572853565216,0.153226375579834,-0.835963189601898,-0.52696019411087,0.186777845025063,0.216276690363884,-0.95829975605011,-0.786387264728546,0.103829272091389,-0.608945429325104,-0.151948809623718,0.491218626499176,-0.85768049955368,-0.796540975570679,0.459023505449295,-0.393471628427505,-0.194549456238747,0.422530502080917,-0.885222256183624,-0.459523767232895,0.380482494831085,-0.802540421485901,-0.332599997520447,0.596850275993347,-0.730169117450714, +0.0975288674235344,-0.989824533462524,-0.103612639009953,0.129728764295578,0.336306124925613,-0.932774722576141,-0.0890212655067444,0.154385805130005,0.983991980552673,-0.185488387942314,0.635588049888611,-0.749414324760437,-0.811010301113129,0.413576662540436,-0.41378328204155,0.167968824505806,0.511281192302704,-0.842839300632477,-0.184614419937134,0.664750814437866,-0.723895072937012,-0.383839040994644,0.331918627023697,0.861682951450348,-0.574195981025696,0.818510472774506,0.0184271782636642,-0.706044554710388,0.459349721670151,-0.538979470729828,-0.289847761392593,0.676849484443665,-0.6766557097435,-0.974783658981323,0.116916239261627,0.190071552991867,-0.645165920257568,0.235968261957169,0.726691007614136,-0.910008370876312,0.355026245117188,0.214105308055878,0.278590679168701,-0.946800529956818,-0.16110847890377,0.960468113422394,-0.235413938760757,0.14859764277935,0.794633388519287,-0.243831768631935,0.555971086025238,0.452815562486649,-0.0421027950942516,0.890609502792358,0.836564183235168,-0.0206149574369192,0.547481000423431,0.197254434227943,-0.966819524765015,-0.162329107522964,0.883794605731964,-0.204124003648758,0.420999318361282,0.888266444206238,-0.0433603711426258,0.457277417182922,0.417272388935089,-0.896800518035889,-0.147080391645432,0.226378291845322,-0.950332880020142,-0.213588908314705,0.35051155090332,-0.926379859447479,0.137702435255051,0.120531007647514,0.633656084537506,-0.764167606830597,0.27422708272934,0.0132013726979494,-0.96157431602478,0.778387784957886,-0.627781629562378,-0.00164805829990655,0.958756566047668,-0.216645106673241,-0.183985948562622,0.326852828264236,0.0640274211764336,-0.942903935909271,0.975587069988251,-0.212792471051216,-0.0543060041964054,0.965114235877991,-0.255631625652313,0.0566305108368397,0.0684918835759163,0.461178094148636,-0.884660184383392,0.549568712711334,0.0853928402066231,-0.831072986125946,0.386834651231766,0.190555572509766,-0.902245879173279,-0.428381890058517,0.903355479240417,0.0209262687712908,0.379203081130981,-0.8638836145401,-0.331526875495911, +0.901012539863586,-0.0730870291590691,0.427591800689697 + } + NormalsW: *150 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementBinormal: 0 { + Version: 102 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "Direct" + Binormals: *2664 { + a: -0.919205904006958,-0.124835148453712,-0.373465865850449,-0.915562510490417,0.0689607039093971,-0.396219313144684,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.924862325191498,0.0339417010545731,-0.378784507513046,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.92474228143692,-0.0276838205754757,-0.379585802555084,-0.915562510490417,0.0689607039093971,-0.396219313144684,-0.91805374622345,-0.111167676746845,-0.380551248788834,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.91805374622345,-0.111167676746845,-0.380551248788834,-0.92474228143692,-0.0276838205754757,-0.379585802555084,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.882780432701111,-0.0177943538874388,-0.46944859623909,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.924862325191498,0.0339417010545731,-0.378784507513046,-0.915562510490417,0.0689607039093971,-0.396219313144684,-0.653611958026886,-0.752944529056549,-0.0765893459320068,-0.91805374622345,-0.111167676746845,-0.380551248788834,-0.723423302173615,-0.661683440208435,-0.197063490748405,-0.915562510490417,0.0689607039093971,-0.396219313144684,-0.749126672744751,-0.614291429519653,-0.247901916503906,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.882780432701111,-0.0177943538874388,-0.46944859623909,-0.791686117649078,-0.117432028055191,-0.599535644054413,-0.535788655281067,-0.84302818775177,0.0472658798098564,-0.759237349033356,-0.636540651321411,0.135552689433098,-0.749126672744751,-0.614291429519653,-0.247901916503906,0.0406436808407307,-0.906608760356903,0.420010566711426,-0.252587705850601,-0.141951441764832,0.957104623317719,-0.352293074131012,-0.0349904969334602,0.935235500335693,-0.567798137664795,-0.702889323234558,-0.428429543972015,-0.926663756370544,0.131446227431297,-0.35215950012207,-0.791686117649078,-0.117432028055191,-0.599535644054413,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.791686117649078,-0.117432028055191,-0.599535644054413,-0.926663756370544,0.131446227431297,-0.35215950012207, +-0.000722551718354225,0.276337206363678,0.961060464382172,-0.252587705850601,-0.141951441764832,0.957104623317719,0.0406436808407307,-0.906608760356903,0.420010566711426,-0.723423302173615,-0.661683440208435,-0.197063490748405,-0.653611958026886,-0.752944529056549,-0.0765893459320068,-0.915562510490417,0.0689607039093971,-0.396219313144684,-0.784015893936157,-0.620688378810883,0.00808024778962135,-0.91805374622345,-0.111167676746845,-0.380551248788834,-0.653611958026886,-0.752944529056549,-0.0765893459320068,-0.0134049616754055,-0.971280694007874,0.237558931112289,-0.023144094273448,-0.984901368618011,-0.171562448143959,-0.0412149503827095,-0.908433735370636,-0.415992170572281,-0.0407792665064335,-0.995470464229584,0.0858819186687469,-0.0134049616754055,-0.971280694007874,0.237558931112289,-0.0598228760063648,-0.875429689884186,-0.479629337787628,-0.0598228760063648,-0.875429689884186,-0.479629337787628,-0.0134049616754055,-0.971280694007874,0.237558931112289,-0.0412149503827095,-0.908433735370636,-0.415992170572281,-0.0969587415456772,-0.99128121137619,-0.0892228335142136,-0.0134049616754055,-0.971280694007874,0.237558931112289,-0.0407792665064335,-0.995470464229584,0.0858819186687469,-0.979430675506592,0.0113505646586418,-0.201461598277092,-0.882780432701111,-0.0177943538874388,-0.46944859623909,-0.924862325191498,0.0339417010545731,-0.378784507513046,-0.809691905975342,0.447811365127563,-0.379294335842133,-0.938407361507416,-0.0843748152256012,-0.335071086883545,-0.884761333465576,0.292393773794174,-0.362909495830536,-0.92474228143692,-0.0276838205754757,-0.379585802555084,-0.851245582103729,-0.0142499431967735,-0.524573981761932,-0.937449514865875,0.0163354519754648,-0.347737908363342,-0.924862325191498,0.0339417010545731,-0.378784507513046,-0.92474228143692,-0.0276838205754757,-0.379585802555084,-0.936432361602783,-0.0245932601392269,-0.349985182285309,-0.937449514865875,0.0163354519754648,-0.347737908363342,-0.851245582103729,-0.0142499431967735,-0.524573981761932,-0.840496063232422,0.386510819196701,-0.379704982042313, +-0.88180023431778,0.000106468796730042,-0.471623241901398,-0.851245582103729,-0.0142499431967735,-0.524573981761932,-0.895978331565857,-0.127660676836967,-0.425353646278381,-0.895978331565857,-0.127660676836967,-0.425353646278381,-0.851245582103729,-0.0142499431967735,-0.524573981761932,-0.703568994998932,-0.703323662281036,-0.101619854569435,-0.840496063232422,0.386510819196701,-0.379704982042313,-0.851245582103729,-0.0142499431967735,-0.524573981761932,-0.88180023431778,0.000106468796730042,-0.471623241901398,-0.92474228143692,-0.0276838205754757,-0.379585802555084,-0.937449514865875,0.0163354519754648,-0.347737908363342,-0.936432361602783,-0.0245932601392269,-0.349985182285309,-0.502801239490509,0.799975574016571,-0.327459931373596,-0.936432361602783,-0.0245932601392269,-0.349985182285309,-0.937449514865875,0.0163354519754648,-0.347737908363342,-0.915503203868866,0.244496837258339,-0.319492250680923,-0.938407361507416,-0.0843748152256012,-0.335071086883545,-0.809691905975342,0.447811365127563,-0.379294335842133,0.0311309266835451,-0.998761892318726,0.0388039499521255,0.342031121253967,-0.900341987609863,-0.269070953130722,0.291274696588516,-0.883478105068207,-0.366913437843323,-0.915503203868866,0.244496837258339,-0.319492250680923,-0.940154850482941,-0.0374784506857395,-0.338680237531662,-0.938407361507416,-0.0843748152256012,-0.335071086883545,-0.924862325191498,0.0339417010545731,-0.378784507513046,-0.938407361507416,-0.0843748152256012,-0.335071086883545,-0.940154850482941,-0.0374784506857395,-0.338680237531662,-0.924862325191498,0.0339417010545731,-0.378784507513046,-0.936432361602783,-0.0245932601392269,-0.349985182285309,-0.938407361507416,-0.0843748152256012,-0.335071086883545,-0.884761333465576,0.292393773794174,-0.362909495830536,-0.938407361507416,-0.0843748152256012,-0.335071086883545,-0.936432361602783,-0.0245932601392269,-0.349985182285309,-0.703568994998932,-0.703323662281036,-0.101619854569435,-0.851245582103729,-0.0142499431967735,-0.524573981761932,-0.92474228143692,-0.0276838205754757,-0.379585802555084, +0.681380450725555,-0.66905015707016,-0.296803891658783,0.797376751899719,-0.494816869497299,-0.345466017723084,0.124226555228233,-0.991288840770721,0.0437519401311874,0.871606469154358,0.0781055316329002,-0.483943939208984,0.342031121253967,-0.900341987609863,-0.269070953130722,0.322853118181229,-0.940405786037445,-0.10678455978632,0.342031121253967,-0.900341987609863,-0.269070953130722,0.0782127603888512,-0.994678139686584,0.0670688971877098,0.322853118181229,-0.940405786037445,-0.10678455978632,0.681380450725555,-0.66905015707016,-0.296803891658783,0.124226555228233,-0.991288840770721,0.0437519401311874,0.079776793718338,-0.995384693145752,0.0533389896154404,0.851982057094574,-0.305109888315201,-0.425481766462326,0.681380450725555,-0.66905015707016,-0.296803891658783,0.079776793718338,-0.995384693145752,0.0533389896154404,0.124226555228233,-0.991288840770721,0.0437519401311874,0.0782127603888512,-0.994678139686584,0.0670688971877098,0.0149085093289614,-0.988644599914551,0.149531453847885,0.322853118181229,-0.940405786037445,-0.10678455978632,0.0782127603888512,-0.994678139686584,0.0670688971877098,0.124226555228233,-0.991288840770721,0.0437519401311874,0.797376751899719,-0.494816869497299,-0.345466017723084,0.92083728313446,0.0966598242521286,-0.377777367830276,0.124226555228233,-0.991288840770721,0.0437519401311874,0.322853118181229,-0.940405786037445,-0.10678455978632,0.124226555228233,-0.991288840770721,0.0437519401311874,0.92083728313446,0.0966598242521286,-0.377777367830276,-0.0319352261722088,-0.875165462493896,0.482768654823303,-0.000722551718354225,0.276337206363678,0.961060464382172,0.0406436808407307,-0.906608760356903,0.420010566711426,0.0405052937567234,0.818612694740295,0.572915971279144,-0.000722551718354225,0.276337206363678,0.961060464382172,-0.0319352261722088,-0.875165462493896,0.482768654823303,-0.921766877174377,-0.169536456465721,-0.348716646432877,-0.926265001296997,0.0643049404025078,-0.37134638428688,-0.940154850482941,-0.0374784506857395,-0.338680237531662,-0.722281694412231,0.0655224472284317,0.688488245010376, +-0.947855114936829,0.0605437830090523,-0.312898188829422,-0.830694556236267,0.432777971029282,0.350213944911957,-0.98232090473175,0.053665392100811,-0.179348051548004,-0.926265001296997,0.0643049404025078,-0.37134638428688,-0.947855114936829,0.0605437830090523,-0.312898188829422,-0.830694556236267,0.432777971029282,0.350213944911957,-0.947855114936829,0.0605437830090523,-0.312898188829422,-0.945186376571655,0.143322482705116,-0.293396443128586,-0.945186376571655,0.143322482705116,-0.293396443128586,-0.947855114936829,0.0605437830090523,-0.312898188829422,-0.921766877174377,-0.169536456465721,-0.348716646432877,-0.921766877174377,-0.169536456465721,-0.348716646432877,-0.947855114936829,0.0605437830090523,-0.312898188829422,-0.926265001296997,0.0643049404025078,-0.37134638428688,0.851982057094574,-0.305109888315201,-0.425481766462326,0.079776793718338,-0.995384693145752,0.0533389896154404,0.659488141536713,-0.743993699550629,-0.107465796172619,0.160666897892952,-0.978480279445648,0.129470348358154,0.677300035953522,-0.72706401348114,0.112439289689064,-0.0269739925861359,-0.993835687637329,0.10753221809864,0.659488141536713,-0.743993699550629,-0.107465796172619,-0.0269739925861359,-0.993835687637329,0.10753221809864,0.677300035953522,-0.72706401348114,0.112439289689064,0.677300035953522,-0.72706401348114,0.112439289689064,0.98575896024704,0.101990237832069,-0.133705735206604,0.659488141536713,-0.743993699550629,-0.107465796172619,-0.675269901752472,0.723547458648682,-0.143142059445381,-0.938627660274506,0.111814752221107,-0.326305985450745,-0.921766877174377,-0.169536456465721,-0.348716646432877,-0.807071924209595,0.554558098316193,-0.202732399106026,-0.921766877174377,-0.169536456465721,-0.348716646432877,-0.938627660274506,0.111814752221107,-0.326305985450745,-0.675269901752472,0.723547458648682,-0.143142059445381,-0.921766877174377,-0.169536456465721,-0.348716646432877,-0.940154850482941,-0.0374784506857395,-0.338680237531662,0.160666897892952,-0.978480279445648,0.129470348358154,0.752187490463257,-0.566167593002319,0.337147384881973, +0.677300035953522,-0.72706401348114,0.112439289689064,0.913581967353821,-0.123819336295128,0.387345850467682,0.677300035953522,-0.72706401348114,0.112439289689064,0.752187490463257,-0.566167593002319,0.337147384881973,-0.945186376571655,0.143322482705116,-0.293396443128586,-0.921766877174377,-0.169536456465721,-0.348716646432877,-0.941563129425049,0.0266811437904835,-0.335778534412384,-0.807071924209595,0.554558098316193,-0.202732399106026,-0.941563129425049,0.0266811437904835,-0.335778534412384,-0.921766877174377,-0.169536456465721,-0.348716646432877,-0.915503203868866,0.244496837258339,-0.319492250680923,-0.680363774299622,0.702800393104553,-0.20779025554657,-0.940154850482941,-0.0374784506857395,-0.338680237531662,-0.176240816712379,-0.982512414455414,0.0600710362195969,-0.535857617855072,-0.83937680721283,-0.0911217555403709,-0.210298657417297,-0.977478206157684,0.0176304206252098,0.0629996657371521,-0.993981003761292,0.0896267592906952,-0.210298657417297,-0.977478206157684,0.0176304206252098,-0.925485134124756,-0.288468360900879,-0.245485916733742,0.0629996657371521,-0.993981003761292,0.0896267592906952,0.160666897892952,-0.978480279445648,0.129470348358154,-0.210298657417297,-0.977478206157684,0.0176304206252098,-0.888039529323578,-0.181608974933624,0.422378987073898,-0.98232090473175,0.053665392100811,-0.179348051548004,-0.498235911130905,-0.229070112109184,0.836234331130981,-0.98232090473175,0.053665392100811,-0.179348051548004,-0.947855114936829,0.0605437830090523,-0.312898188829422,-0.722281694412231,0.0655224472284317,0.688488245010376,0.160666897892952,-0.978480279445648,0.129470348358154,-0.176240816712379,-0.982512414455414,0.0600710362195969,-0.210298657417297,-0.977478206157684,0.0176304206252098,0.868128716945648,-0.155232399702072,0.471439927816391,0.862143456935883,-0.031564824283123,0.505680203437805,0.752187490463257,-0.566167593002319,0.337147384881973,0.752187490463257,-0.566167593002319,0.337147384881973,0.160666897892952,-0.978480279445648,0.129470348358154,0.494371891021729,-0.811577796936035,0.311348468065262, +0.0629996657371521,-0.993981003761292,0.0896267592906952,0.494371891021729,-0.811577796936035,0.311348468065262,0.160666897892952,-0.978480279445648,0.129470348358154,0.868128716945648,-0.155232399702072,0.471439927816391,0.752187490463257,-0.566167593002319,0.337147384881973,0.494371891021729,-0.811577796936035,0.311348468065262,-0.940154850482941,-0.0374784506857395,-0.338680237531662,-0.926265001296997,0.0643049404025078,-0.37134638428688,-0.924862325191498,0.0339417010545731,-0.378784507513046,-0.98232090473175,0.053665392100811,-0.179348051548004,-0.924862325191498,0.0339417010545731,-0.378784507513046,-0.926265001296997,0.0643049404025078,-0.37134638428688,-0.888039529323578,-0.181608974933624,0.422378987073898,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.98232090473175,0.053665392100811,-0.179348051548004,0.124226555228233,-0.991288840770721,0.0437519401311874,0.0149085093289614,-0.988644599914551,0.149531453847885,0.079776793718338,-0.995384693145752,0.0533389896154404,0.659488141536713,-0.743993699550629,-0.107465796172619,0.079776793718338,-0.995384693145752,0.0533389896154404,-0.0269739925861359,-0.993835687637329,0.10753221809864,0.079776793718338,-0.995384693145752,0.0533389896154404,0.0102906823158264,-0.963689208030701,0.266828060150146,-0.0269739925861359,-0.993835687637329,0.10753221809864,-0.0269739925861359,-0.993835687637329,0.10753221809864,-0.176240816712379,-0.982512414455414,0.0600710362195969,0.160666897892952,-0.978480279445648,0.129470348358154,0.0102906823158264,-0.963689208030701,0.266828060150146,-0.176240816712379,-0.982512414455414,0.0600710362195969,-0.0269739925861359,-0.993835687637329,0.10753221809864,0.0149085093289614,-0.988644599914551,0.149531453847885,0.0102906823158264,-0.963689208030701,0.266828060150146,0.079776793718338,-0.995384693145752,0.0533389896154404,-0.623846113681793,-0.719884097576141,-0.304274410009384,-0.442860841751099,-0.809612333774567,-0.385230273008347,0.0102906823158264,-0.963689208030701,0.266828060150146,-0.39903798699379,-0.866207420825958,-0.300754815340042, +0.0102906823158264,-0.963689208030701,0.266828060150146,-0.442860841751099,-0.809612333774567,-0.385230273008347,-0.987234354019165,-0.11734901368618,0.107691690325737,-0.603171050548553,-0.647827446460724,0.46530020236969,-0.985641717910767,0.0721618831157684,-0.152653142809868,-0.766275942325592,-0.438905894756317,0.469236552715302,-0.985641717910767,0.0721618831157684,-0.152653142809868,-0.603171050548553,-0.647827446460724,0.46530020236969,-0.958144664764404,-0.178420916199684,0.223885923624039,-0.987234354019165,-0.11734901368618,0.107691690325737,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.914780914783478,-0.392390429973602,0.0959473550319672,-0.603171050548553,-0.647827446460724,0.46530020236969,-0.987234354019165,-0.11734901368618,0.107691690325737,-0.958144664764404,-0.178420916199684,0.223885923624039,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.979345977306366,-0.134334713220596,0.151115402579308,-0.695367693901062,-0.358173459768295,0.623037338256836,-0.979345977306366,-0.134334713220596,0.151115402579308,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.695367693901062,-0.358173459768295,0.623037338256836,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.888039529323578,-0.181608974933624,0.422378987073898,-0.216375067830086,-0.972601175308228,0.0850225836038589,0.0102906823158264,-0.963689208030701,0.266828060150146,-0.39903798699379,-0.866207420825958,-0.300754815340042,-0.216375067830086,-0.972601175308228,0.0850225836038589,-0.535857617855072,-0.83937680721283,-0.0911217555403709,-0.176240816712379,-0.982512414455414,0.0600710362195969,0.0102906823158264,-0.963689208030701,0.266828060150146,-0.216375067830086,-0.972601175308228,0.0850225836038589,-0.176240816712379,-0.982512414455414,0.0600710362195969,-0.985591888427734,0.00815942883491516,-0.168943867087364,-0.835846781730652,-0.231850743293762,0.497599750757217,-0.750207483768463,-0.36847522854805,0.54901260137558,-0.39903798699379,-0.866207420825958,-0.300754815340042,-0.4599928855896,-0.836379051208496,-0.298122078180313, +-0.216375067830086,-0.972601175308228,0.0850225836038589,-0.539900541305542,-0.832949817180634,0.12125238776207,-0.623846113681793,-0.719884097576141,-0.304274410009384,0.0102906823158264,-0.963689208030701,0.266828060150146,-0.539900541305542,-0.832949817180634,0.12125238776207,0.0102906823158264,-0.963689208030701,0.266828060150146,-0.0713130757212639,-0.970307588577271,0.231122881174088,-0.91805374622345,-0.111167676746845,-0.380551248788834,-0.933116436004639,-0.0547406040132046,-0.355383276939392,-0.92474228143692,-0.0276838205754757,-0.379585802555084,-0.884075939655304,-0.291125565767288,-0.365589678287506,-0.92474228143692,-0.0276838205754757,-0.379585802555084,-0.933116436004639,-0.0547406040132046,-0.355383276939392,-0.703568994998932,-0.703323662281036,-0.101619854569435,-0.92474228143692,-0.0276838205754757,-0.379585802555084,-0.884075939655304,-0.291125565767288,-0.365589678287506,0.100323252379894,-0.974117696285248,-0.202558428049088,0.131257176399231,-0.902520418167114,-0.410156697034836,0.141411542892456,-0.977831065654755,-0.154431656002998,0.141411542892456,-0.977831065654755,-0.154431656002998,0.131257176399231,-0.902520418167114,-0.410156697034836,-0.0150550249963999,-0.988009989261627,0.153654202818871,0.16075399518013,-0.257372200489044,-0.952847242355347,0.131257176399231,-0.902520418167114,-0.410156697034836,0.0923698097467422,0.112662270665169,-0.989330589771271,-0.0150550249963999,-0.988009989261627,0.153654202818871,0.131257176399231,-0.902520418167114,-0.410156697034836,0.16075399518013,-0.257372200489044,-0.952847242355347,0.0782127603888512,-0.994678139686584,0.0670688971877098,0.342031121253967,-0.900341987609863,-0.269070953130722,0.141411542892456,-0.977831065654755,-0.154431656002998,0.342031121253967,-0.900341987609863,-0.269070953130722,0.0311309266835451,-0.998761892318726,0.0388039499521255,0.141411542892456,-0.977831065654755,-0.154431656002998,0.0311309266835451,-0.998761892318726,0.0388039499521255,0.100323252379894,-0.974117696285248,-0.202558428049088,0.141411542892456,-0.977831065654755,-0.154431656002998, +0.141411542892456,-0.977831065654755,-0.154431656002998,-0.0150550249963999,-0.988009989261627,0.153654202818871,0.0782127603888512,-0.994678139686584,0.0670688971877098,0.0782127603888512,-0.994678139686584,0.0670688971877098,-0.0150550249963999,-0.988009989261627,0.153654202818871,-0.0452796667814255,-0.976956009864807,0.208583161234856,-0.00377936847507954,-0.972153544425964,0.234314277768135,0.0406436808407307,-0.906608760356903,0.420010566711426,-0.352293074131012,-0.0349904969334602,0.935235500335693,0.0782127603888512,-0.994678139686584,0.0670688971877098,-0.0452796667814255,-0.976956009864807,0.208583161234856,0.0149085093289614,-0.988644599914551,0.149531453847885,-0.0118960039690137,-0.999825000762939,-0.0144415572285652,-0.0150550249963999,-0.988009989261627,0.153654202818871,0.16075399518013,-0.257372200489044,-0.952847242355347,-0.0150550249963999,-0.988009989261627,0.153654202818871,-0.023144094273448,-0.984901368618011,-0.171562448143959,-0.0134049616754055,-0.971280694007874,0.237558931112289,-0.0118960039690137,-0.999825000762939,-0.0144415572285652,-0.023144094273448,-0.984901368618011,-0.171562448143959,-0.0150550249963999,-0.988009989261627,0.153654202818871,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.979430675506592,0.0113505646586418,-0.201461598277092,-0.98232090473175,0.053665392100811,-0.179348051548004,-0.979430675506592,0.0113505646586418,-0.201461598277092,-0.924862325191498,0.0339417010545731,-0.378784507513046,-0.98232090473175,0.053665392100811,-0.179348051548004,-0.0922596231102943,-0.942279100418091,0.321866780519485,0.0432640947401524,-0.938304543495178,0.343093037605286,-0.0452796667814255,-0.976956009864807,0.208583161234856,-0.784515976905823,-0.605969250202179,0.131666287779808,-0.0713130757212639,-0.970307588577271,0.231122881174088,-0.602567911148071,-0.789523839950562,0.116464957594872,-0.518397748470306,-0.83584600687027,0.180624753236771,-0.799471139907837,-0.541045546531677,-0.260989755392075,-0.602567911148071,-0.789523839950562,0.116464957594872,-0.0862603634595871,-0.667261302471161,0.739811837673187, +-0.981810450553894,-0.151327431201935,0.114666238427162,-0.584912180900574,-0.558905065059662,0.587794899940491,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.987234354019165,-0.11734901368618,0.107691690325737,-0.985641717910767,0.0721618831157684,-0.152653142809868,-0.985641717910767,0.0721618831157684,-0.152653142809868,-0.995905220508575,-0.0334713533520699,0.0839798599481583,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.633522391319275,-0.569139063358307,0.524147033691406,-0.982552766799927,-0.141720786690712,0.120437897741795,-0.956862449645996,-0.219759881496429,0.190052449703217,-0.981810450553894,-0.151327431201935,0.114666238427162,-0.956862449645996,-0.219759881496429,0.190052449703217,-0.982552766799927,-0.141720786690712,0.120437897741795,-0.4405697286129,-0.542167365550995,0.715508878231049,-0.609135746955872,-0.442139029502869,0.658381938934326,-0.0922596231102943,-0.942279100418091,0.321866780519485,-0.650378704071045,-0.61406546831131,0.447136640548706,0.0432640947401524,-0.938304543495178,0.343093037605286,-0.963474690914154,0.0229752734303474,0.266812384128571,-0.981810450553894,-0.151327431201935,0.114666238427162,-0.982552766799927,-0.141720786690712,0.120437897741795,-0.971259951591492,-0.176084324717522,0.160151302814484,-0.981810450553894,-0.151327431201935,0.114666238427162,-0.971259951591492,-0.176084324717522,0.160151302814484,-0.995905220508575,-0.0334713533520699,0.0839798599481583,-0.0862603634595871,-0.667261302471161,0.739811837673187,-0.956862449645996,-0.219759881496429,0.190052449703217,-0.981810450553894,-0.151327431201935,0.114666238427162,-0.0922596231102943,-0.942279100418091,0.321866780519485,-0.609135746955872,-0.442139029502869,0.658381938934326,0.0432640947401524,-0.938304543495178,0.343093037605286,-0.963474690914154,0.0229752734303474,0.266812384128571,0.0432640947401524,-0.938304543495178,0.343093037605286,-0.609135746955872,-0.442139029502869,0.658381938934326,-0.944600939750671,-0.0885456278920174,0.316051989793777,-0.266939103603363,-0.896881639957428,0.352628797292709, +0.0432640947401524,-0.938304543495178,0.343093037605286,-0.650378704071045,-0.61406546831131,0.447136640548706,-0.944600939750671,-0.0885456278920174,0.316051989793777,0.0432640947401524,-0.938304543495178,0.343093037605286,-0.985641717910767,0.0721618831157684,-0.152653142809868,-0.981810450553894,-0.151327431201935,0.114666238427162,-0.995905220508575,-0.0334713533520699,0.0839798599481583,-0.708035886287689,-0.472555696964264,0.524763166904449,-0.981810450553894,-0.151327431201935,0.114666238427162,-0.985641717910767,0.0721618831157684,-0.152653142809868,-0.766275942325592,-0.438905894756317,0.469236552715302,-0.708035886287689,-0.472555696964264,0.524763166904449,-0.985641717910767,0.0721618831157684,-0.152653142809868,0.0432640947401524,-0.938304543495178,0.343093037605286,0.0149085093289614,-0.988644599914551,0.149531453847885,-0.0452796667814255,-0.976956009864807,0.208583161234856,-0.518397748470306,-0.83584600687027,0.180624753236771,-0.602567911148071,-0.789523839950562,0.116464957594872,-0.0713130757212639,-0.970307588577271,0.231122881174088,-0.0713130757212639,-0.970307588577271,0.231122881174088,-0.266939103603363,-0.896881639957428,0.352628797292709,-0.518397748470306,-0.83584600687027,0.180624753236771,-0.784515976905823,-0.605969250202179,0.131666287779808,-0.539900541305542,-0.832949817180634,0.12125238776207,-0.0713130757212639,-0.970307588577271,0.231122881174088,-0.0713130757212639,-0.970307588577271,0.231122881174088,0.0149085093289614,-0.988644599914551,0.149531453847885,-0.266939103603363,-0.896881639957428,0.352628797292709,0.0102906823158264,-0.963689208030701,0.266828060150146,0.0149085093289614,-0.988644599914551,0.149531453847885,-0.0713130757212639,-0.970307588577271,0.231122881174088,0.0149085093289614,-0.988644599914551,0.149531453847885,0.0432640947401524,-0.938304543495178,0.343093037605286,-0.266939103603363,-0.896881639957428,0.352628797292709,-0.391642332077026,-0.911906361579895,-0.122650861740112,-0.0606525838375092,-0.997889399528503,0.0231955368071795,-0.231685057282448,-0.971876263618469,-0.0421750247478485, +-0.231685057282448,-0.971876263618469,-0.0421750247478485,-0.0606525838375092,-0.997889399528503,0.0231955368071795,-0.179317072033882,-0.983704268932343,-0.0130924824625254,-0.231685057282448,-0.971876263618469,-0.0421750247478485,-0.908337116241455,-0.416631042957306,-0.0366401225328445,-0.322988331317902,-0.944848597049713,-0.0542190968990326,-0.913208842277527,-0.380097180604935,0.146886840462685,-0.322988331317902,-0.944848597049713,-0.0542190968990326,-0.908337116241455,-0.416631042957306,-0.0366401225328445,-0.913208842277527,-0.380097180604935,0.146886840462685,-0.943144202232361,-0.301370650529861,0.140195608139038,-0.322988331317902,-0.944848597049713,-0.0542190968990326,-0.87917172908783,-0.470092862844467,-0.0779090076684952,-0.322988331317902,-0.944848597049713,-0.0542190968990326,-0.943144202232361,-0.301370650529861,0.140195608139038,-0.0134049616754055,-0.971280694007874,0.237558931112289,-0.0969587415456772,-0.99128121137619,-0.0892228335142136,-0.0852589458227158,-0.996351838111877,-0.00375317828729749,-0.391642332077026,-0.911906361579895,-0.122650861740112,-0.231685057282448,-0.971876263618469,-0.0421750247478485,-0.23143807053566,-0.968309044837952,-0.0938827395439148,-0.114355102181435,-0.990856289863586,0.0716024786233902,0.0642716884613037,-0.990832507610321,0.118828743696213,-0.231685057282448,-0.971876263618469,-0.0421750247478485,-0.23143807053566,-0.968309044837952,-0.0938827395439148,-0.231685057282448,-0.971876263618469,-0.0421750247478485,0.0642716884613037,-0.990832507610321,0.118828743696213,-0.00923777557909489,-0.992933928966522,0.118308655917645,-0.23143807053566,-0.968309044837952,-0.0938827395439148,0.0642716884613037,-0.990832507610321,0.118828743696213,-0.0852589458227158,-0.996351838111877,-0.00375317828729749,-0.23143807053566,-0.968309044837952,-0.0938827395439148,-0.00923777557909489,-0.992933928966522,0.118308655917645,-0.444392591714859,-0.833629131317139,-0.327990621328354,-0.155885204672813,-0.984163880348206,-0.0843878164887428,-0.0852589458227158,-0.996351838111877,-0.00375317828729749, +-0.0594183355569839,-0.958899140357971,-0.277456164360046,-0.0907099321484566,-0.957493543624878,-0.273820996284485,-0.907811284065247,-0.126374363899231,-0.399885177612305,-0.557947397232056,-0.801510572433472,-0.215117484331131,-0.915562510490417,0.0689607039093971,-0.396219313144684,-0.919205904006958,-0.124835148453712,-0.373465865850449,-0.0907099321484566,-0.957493543624878,-0.273820996284485,0.115616418421268,-0.970144748687744,-0.213194698095322,-0.907811284065247,-0.126374363899231,-0.399885177612305,0.115616418421268,-0.970144748687744,-0.213194698095322,-0.919205904006958,-0.124835148453712,-0.373465865850449,-0.907811284065247,-0.126374363899231,-0.399885177612305,-0.155885204672813,-0.984163880348206,-0.0843878164887428,-0.444392591714859,-0.833629131317139,-0.327990621328354,-0.037672895938158,-0.999091029167175,0.0199451204389334,0.341549903154373,0.84341299533844,0.414726585149765,0.544248402118683,-0.0297272354364395,0.838397264480591,0.054380152374506,0.99748158454895,-0.0455348193645477,-0.155885204672813,-0.984163880348206,-0.0843878164887428,-0.037672895938158,-0.999091029167175,0.0199451204389334,-0.0606525838375092,-0.997889399528503,0.0231955368071795,-0.202442407608032,-0.978055894374847,-0.0492333099246025,-0.0606525838375092,-0.997889399528503,0.0231955368071795,-0.037672895938158,-0.999091029167175,0.0199451204389334,-0.557947397232056,-0.801510572433472,-0.215117484331131,-0.535788655281067,-0.84302818775177,0.0472658798098564,-0.915562510490417,0.0689607039093971,-0.396219313144684,-0.749126672744751,-0.614291429519653,-0.247901916503906,-0.915562510490417,0.0689607039093971,-0.396219313144684,-0.535788655281067,-0.84302818775177,0.0472658798098564,-0.179317072033882,-0.983704268932343,-0.0130924824625254,-0.0606525838375092,-0.997889399528503,0.0231955368071795,-0.202442407608032,-0.978055894374847,-0.0492333099246025,-0.155885204672813,-0.984163880348206,-0.0843878164887428,-0.0606525838375092,-0.997889399528503,0.0231955368071795,-0.391642332077026,-0.911906361579895,-0.122650861740112, +-0.0594183355569839,-0.958899140357971,-0.277456164360046,-0.907811284065247,-0.126374363899231,-0.399885177612305,-0.832195937633514,-0.312041282653809,-0.458345115184784,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.832195937633514,-0.312041282653809,-0.458345115184784,-0.907811284065247,-0.126374363899231,-0.399885177612305,-0.176860392093658,-0.928203940391541,-0.327349662780762,-0.0594183355569839,-0.958899140357971,-0.277456164360046,-0.832195937633514,-0.312041282653809,-0.458345115184784,-0.907811284065247,-0.126374363899231,-0.399885177612305,-0.919205904006958,-0.124835148453712,-0.373465865850449,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.926663756370544,0.131446227431297,-0.35215950012207,-0.851567924022675,-0.376440465450287,-0.364862680435181,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.815282225608826,-0.453226238489151,-0.360417991876602,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.851567924022675,-0.376440465450287,-0.364862680435181,-0.815282225608826,-0.453226238489151,-0.360417991876602,-0.903449475765228,-0.201442986726761,-0.378417491912842,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.832195937633514,-0.312041282653809,-0.458345115184784,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.874827027320862,-0.297661691904068,-0.382197886705399,-0.874827027320862,-0.297661691904068,-0.382197886705399,-0.926860868930817,-0.0497429445385933,-0.372094869613647,-0.903449475765228,-0.201442986726761,-0.378417491912842,-0.444392591714859,-0.833629131317139,-0.327990621328354,-0.0852589458227158,-0.996351838111877,-0.00375317828729749,-0.0969587415456772,-0.99128121137619,-0.0892228335142136,-0.0852589458227158,-0.996351838111877,-0.00375317828729749,-0.155885204672813,-0.984163880348206,-0.0843878164887428,-0.23143807053566,-0.968309044837952,-0.0938827395439148,-0.23143807053566,-0.968309044837952,-0.0938827395439148,-0.155885204672813,-0.984163880348206,-0.0843878164887428,-0.391642332077026,-0.911906361579895,-0.122650861740112, +-0.226144924759865,-0.973565757274628,-0.0320658311247826,-0.874871253967285,-0.45140928030014,0.175585135817528,-0.186983644962311,-0.980090618133545,-0.066780611872673,-0.87917172908783,-0.470092862844467,-0.0779090076684952,-0.626379251480103,-0.77646815776825,-0.0688939616084099,-0.322988331317902,-0.944848597049713,-0.0542190968990326,-0.874871253967285,-0.45140928030014,0.175585135817528,-0.322988331317902,-0.944848597049713,-0.0542190968990326,-0.626379251480103,-0.77646815776825,-0.0688939616084099,-0.87917172908783,-0.470092862844467,-0.0779090076684952,-0.914607703685761,-0.370222330093384,-0.162567436695099,-0.626379251480103,-0.77646815776825,-0.0688939616084099,-0.947710037231445,0.117046996951103,-0.296893566846848,-0.626379251480103,-0.77646815776825,-0.0688939616084099,-0.914607703685761,-0.370222330093384,-0.162567436695099,-0.226144924759865,-0.973565757274628,-0.0320658311247826,-0.251152336597443,-0.964980363845825,-0.0757331773638725,-0.874871253967285,-0.45140928030014,0.175585135817528,-0.882780432701111,-0.0177943538874388,-0.46944859623909,-0.979430675506592,0.0113505646586418,-0.201461598277092,-0.791686117649078,-0.117432028055191,-0.599535644054413,-0.979430675506592,0.0113505646586418,-0.201461598277092,-0.961263060569763,0.0326692499220371,-0.273689806461334,-0.791686117649078,-0.117432028055191,-0.599535644054413,-0.186310946941376,0.00982545129954815,-0.982441782951355,-0.961263060569763,0.0326692499220371,-0.273689806461334,-0.945069789886475,0.0255250111222267,-0.325870364904404,-0.979430675506592,0.0113505646586418,-0.201461598277092,-0.945069789886475,0.0255250111222267,-0.325870364904404,-0.961263060569763,0.0326692499220371,-0.273689806461334,-0.982512831687927,0.0227943435311317,-0.184794664382935,-0.83513617515564,0.0833530873060226,-0.543691039085388,-0.945069789886475,0.0255250111222267,-0.325870364904404,-0.982512831687927,0.0227943435311317,-0.184794664382935,-0.945069789886475,0.0255250111222267,-0.325870364904404,-0.979430675506592,0.0113505646586418,-0.201461598277092, +-0.982512831687927,0.0227943435311317,-0.184794664382935,-0.979430675506592,0.0113505646586418,-0.201461598277092,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.251152336597443,-0.964980363845825,-0.0757331773638725,-0.210215911269188,-0.976402103900909,0.0494806282222271,-0.0317156910896301,-0.998998045921326,0.0315758250653744,-0.998278498649597,-0.0518283247947693,-0.0274556204676628,-0.974343180656433,0.065264992415905,-0.215396881103516,-0.989990830421448,0.0197925642132759,-0.139737546443939,-0.864079356193542,0.236580118536949,-0.444293737411499,-0.989990830421448,0.0197925642132759,-0.139737546443939,-0.974343180656433,0.065264992415905,-0.215396881103516,-0.114355102181435,-0.990856289863586,0.0716024786233902,-0.231685057282448,-0.971876263618469,-0.0421750247478485,-0.0317156910896301,-0.998998045921326,0.0315758250653744,-0.251152336597443,-0.964980363845825,-0.0757331773638725,-0.0317156910896301,-0.998998045921326,0.0315758250653744,-0.231685057282448,-0.971876263618469,-0.0421750247478485,-0.283024400472641,-0.957730174064636,-0.051480807363987,-0.210215911269188,-0.976402103900909,0.0494806282222271,-0.251152336597443,-0.964980363845825,-0.0757331773638725,-0.998278498649597,-0.0518283247947693,-0.0274556204676628,-0.989990830421448,0.0197925642132759,-0.139737546443939,-0.996609807014465,-0.00888792518526316,-0.0817925333976746,-0.996609807014465,-0.00888792518526316,-0.0817925333976746,-0.989990830421448,0.0197925642132759,-0.139737546443939,-0.670235812664032,0.438915103673935,-0.598445951938629,-0.111611969769001,-0.988105237483978,-0.105786517262459,-0.069698728621006,-0.986608564853668,-0.147464245557785,-0.251152336597443,-0.964980363845825,-0.0757331773638725,-0.283024400472641,-0.957730174064636,-0.051480807363987,-0.251152336597443,-0.964980363845825,-0.0757331773638725,-0.069698728621006,-0.986608564853668,-0.147464245557785,-0.231685057282448,-0.971876263618469,-0.0421750247478485,-0.322988331317902,-0.944848597049713,-0.0542190968990326,-0.251152336597443,-0.964980363845825,-0.0757331773638725, +-0.874871253967285,-0.45140928030014,0.175585135817528,-0.251152336597443,-0.964980363845825,-0.0757331773638725,-0.322988331317902,-0.944848597049713,-0.0542190968990326,-0.283024400472641,-0.957730174064636,-0.051480807363987,-0.134282469749451,-0.956346929073334,-0.259554922580719,-0.210215911269188,-0.976402103900909,0.0494806282222271,-0.111611969769001,-0.988105237483978,-0.105786517262459,-0.251152336597443,-0.964980363845825,-0.0757331773638725,-0.226144924759865,-0.973565757274628,-0.0320658311247826,0.0513409748673439,-0.876040458679199,0.479496777057648,0.64887136220932,-0.563643932342529,0.511147260665894,-0.0319352261722088,-0.875165462493896,0.482768654823303,0.614320516586304,0.303641140460968,0.728294193744659,-0.0319352261722088,-0.875165462493896,0.482768654823303,0.850986957550049,-0.200224906206131,0.485521495342255,0.850986957550049,-0.200224906206131,0.485521495342255,-0.0319352261722088,-0.875165462493896,0.482768654823303,0.64887136220932,-0.563643932342529,0.511147260665894,-0.0150355864316225,0.181982144713402,-0.983186960220337,-0.921916902065277,0.0579590611159801,-0.383027523756027,-0.90341192483902,0.074037492275238,-0.422333091497421,-0.0749711617827415,0.201058849692345,-0.976706147193909,-0.83513617515564,0.0833530873060226,-0.543691039085388,-0.921916902065277,0.0579590611159801,-0.383027523756027,-0.921916902065277,0.0579590611159801,-0.383027523756027,-0.83513617515564,0.0833530873060226,-0.543691039085388,-0.90341192483902,0.074037492275238,-0.422333091497421,-0.982512831687927,0.0227943435311317,-0.184794664382935,-0.90341192483902,0.074037492275238,-0.422333091497421,-0.83513617515564,0.0833530873060226,-0.543691039085388,-0.89982795715332,0.0837831571698189,-0.428124040365219,-0.90341192483902,0.074037492275238,-0.422333091497421,-0.982512831687927,0.0227943435311317,-0.184794664382935,-0.00923777557909489,-0.992933928966522,0.118308655917645,-0.114355102181435,-0.990856289863586,0.0716024786233902,-0.0930059924721718,-0.995535492897034,0.0160958040505648,-0.0934946984052658,-0.990627408027649,0.0995800346136093, +0.108165070414543,-0.97947359085083,0.170093789696693,-0.0698579773306847,-0.96722424030304,0.244125306606293,-0.0698579773306847,-0.96722424030304,0.244125306606293,0.108165070414543,-0.97947359085083,0.170093789696693,-0.114355102181435,-0.990856289863586,0.0716024786233902,-0.114355102181435,-0.990856289863586,0.0716024786233902,-0.00923777557909489,-0.992933928966522,0.118308655917645,0.0642716884613037,-0.990832507610321,0.118828743696213,-0.114355102181435,-0.990856289863586,0.0716024786233902,-0.0317156910896301,-0.998998045921326,0.0315758250653744,-0.269230365753174,-0.963037252426147,-0.00862021744251251,-0.269230365753174,-0.963037252426147,-0.00862021744251251,0.0371354855597019,-0.978171586990356,0.204453527927399,0.0158239752054214,-0.926918983459473,0.374927759170532,0.354105830192566,-0.919937610626221,0.168297335505486,0.380522042512894,-0.833464622497559,0.400674223899841,0.0371354855597019,-0.978171586990356,0.204453527927399,0.0371354855597019,-0.978171586990356,0.204453527927399,0.380522042512894,-0.833464622497559,0.400674223899841,0.0158239752054214,-0.926918983459473,0.374927759170532,0.00128507625777274,-0.973209083080292,-0.229918330907822,-0.210215911269188,-0.976402103900909,0.0494806282222271,0.0150810237973928,-0.989124536514282,-0.146305814385414,0.0371354855597019,-0.978171586990356,0.204453527927399,-0.269230365753174,-0.963037252426147,-0.00862021744251251,-0.0317156910896301,-0.998998045921326,0.0315758250653744,0.00128507625777274,-0.973209083080292,-0.229918330907822,-0.0317156910896301,-0.998998045921326,0.0315758250653744,-0.210215911269188,-0.976402103900909,0.0494806282222271,-0.114355102181435,-0.990856289863586,0.0716024786233902,-0.269230365753174,-0.963037252426147,-0.00862021744251251,-0.0698579773306847,-0.96722424030304,0.244125306606293,-0.0317156910896301,-0.998998045921326,0.0315758250653744,0.354105830192566,-0.919937610626221,0.168297335505486,0.0371354855597019,-0.978171586990356,0.204453527927399,-0.920236885547638,0.0769475251436234,-0.383722722530365,-0.982512831687927,0.0227943435311317,-0.184794664382935, +-0.996609807014465,-0.00888792518526316,-0.0817925333976746,-0.492798686027527,0.143530249595642,-0.858224093914032,-0.920236885547638,0.0769475251436234,-0.383722722530365,-0.372574269771576,0.198220133781433,-0.906585514545441,-0.920236885547638,0.0769475251436234,-0.383722722530365,-0.492798686027527,0.143530249595642,-0.858224093914032,-0.16083924472332,0.182893022894859,-0.969887137413025,-0.0698579773306847,-0.96722424030304,0.244125306606293,-0.269230365753174,-0.963037252426147,-0.00862021744251251,-0.0934946984052658,-0.990627408027649,0.0995800346136093,-0.920236885547638,0.0769475251436234,-0.383722722530365,-0.16083924472332,0.182893022894859,-0.969887137413025,-0.982512831687927,0.0227943435311317,-0.184794664382935,-0.89982795715332,0.0837831571698189,-0.428124040365219,-0.982512831687927,0.0227943435311317,-0.184794664382935,-0.16083924472332,0.182893022894859,-0.969887137413025,-0.0150550249963999,-0.988009989261627,0.153654202818871,-0.0134049616754055,-0.971280694007874,0.237558931112289,-0.00923777557909489,-0.992933928966522,0.118308655917645,-0.0831555351614952,-0.947372734546661,0.309144079685211,0.0513409748673439,-0.876040458679199,0.479496777057648,0.0169576220214367,-0.965230584144592,0.260849326848984,0.0405052937567234,0.818612694740295,0.572915971279144,-0.0319352261722088,-0.875165462493896,0.482768654823303,0.614320516586304,0.303641140460968,0.728294193744659,-0.0852589458227158,-0.996351838111877,-0.00375317828729749,-0.00923777557909489,-0.992933928966522,0.118308655917645,-0.0134049616754055,-0.971280694007874,0.237558931112289,-0.118574589490891,-0.990898370742798,0.0637214630842209,-0.00923777557909489,-0.992933928966522,0.118308655917645,-0.0930059924721718,-0.995535492897034,0.0160958040505648,-0.00923777557909489,-0.992933928966522,0.118308655917645,-0.118574589490891,-0.990898370742798,0.0637214630842209,-0.00377936847507954,-0.972153544425964,0.234314277768135,0.0406436808407307,-0.906608760356903,0.420010566711426,-0.00377936847507954,-0.972153544425964,0.234314277768135, +-0.118574589490891,-0.990898370742798,0.0637214630842209,-0.0150550249963999,-0.988009989261627,0.153654202818871,-0.00923777557909489,-0.992933928966522,0.118308655917645,-0.00377936847507954,-0.972153544425964,0.234314277768135,0.0513409748673439,-0.876040458679199,0.479496777057648,-0.0319352261722088,-0.875165462493896,0.482768654823303,0.0169576220214367,-0.965230584144592,0.260849326848984,-0.0319352261722088,-0.875165462493896,0.482768654823303,0.0406436808407307,-0.906608760356903,0.420010566711426,0.0169576220214367,-0.965230584144592,0.260849326848984,0.0175816435366869,-0.921970009803772,0.386862248182297,0.0169576220214367,-0.965230584144592,0.260849326848984,0.0406436808407307,-0.906608760356903,0.420010566711426,-0.998278498649597,-0.0518283247947693,-0.0274556204676628,-0.996609807014465,-0.00888792518526316,-0.0817925333976746,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.996609807014465,-0.00888792518526316,-0.0817925333976746,-0.982512831687927,0.0227943435311317,-0.184794664382935,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.0150550249963999,-0.988009989261627,0.153654202818871,-0.00377936847507954,-0.972153544425964,0.234314277768135,-0.0452796667814255,-0.976956009864807,0.208583161234856,-0.995905220508575,-0.0334713533520699,0.0839798599481583,-0.998451173305511,-0.037843257188797,-0.0407820716500282,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.995905220508575,-0.0334713533520699,0.0839798599481583,-0.970171749591827,-0.187680751085281,0.153437152504921,-0.998451173305511,-0.037843257188797,-0.0407820716500282,-0.00377936847507954,-0.972153544425964,0.234314277768135,-0.0291762463748455,-0.872057676315308,0.488532543182373,-0.0922596231102943,-0.942279100418091,0.321866780519485,-0.506403386592865,-0.15679444372654,0.84792172908783,-0.164278954267502,0.789685547351837,0.591108620166779,-0.0922596231102943,-0.942279100418091,0.321866780519485,-0.0922596231102943,-0.942279100418091,0.321866780519485,-0.164278954267502,0.789685547351837,0.591108620166779, +-0.178643494844437,0.626102924346924,0.759000480175018,-0.970171749591827,-0.187680751085281,0.153437152504921,-0.995905220508575,-0.0334713533520699,0.0839798599481583,-0.924965083599091,-0.362240880727768,0.114984154701233,-0.0291762463748455,-0.872057676315308,0.488532543182373,-0.506403386592865,-0.15679444372654,0.84792172908783,-0.0922596231102943,-0.942279100418091,0.321866780519485,-0.4405697286129,-0.542167365550995,0.715508878231049,-0.0922596231102943,-0.942279100418091,0.321866780519485,-0.178643494844437,0.626102924346924,0.759000480175018,-0.982552766799927,-0.141720786690712,0.120437897741795,-0.750110924243927,-0.53496527671814,0.388774842023849,-0.971259951591492,-0.176084324717522,0.160151302814484,-0.760480999946594,-0.570931971073151,0.309362769126892,-0.971259951591492,-0.176084324717522,0.160151302814484,-0.750110924243927,-0.53496527671814,0.388774842023849,-0.00377936847507954,-0.972153544425964,0.234314277768135,-0.352293074131012,-0.0349904969334602,0.935235500335693,-0.0309957899153233,-0.56150221824646,0.826894462108612,-0.118574589490891,-0.990898370742798,0.0637214630842209,0.0169576220214367,-0.965230584144592,0.260849326848984,0.0175816435366869,-0.921970009803772,0.386862248182297,-0.998278498649597,-0.0518283247947693,-0.0274556204676628,-0.991326808929443,0.0240546260029078,-0.129199340939522,-0.998451173305511,-0.037843257188797,-0.0407820716500282,-0.0971544831991196,0.557070970535278,-0.824762344360352,-0.835846781730652,-0.231850743293762,0.497599750757217,-0.998451173305511,-0.037843257188797,-0.0407820716500282,-0.998278498649597,-0.0518283247947693,-0.0274556204676628,-0.998451173305511,-0.037843257188797,-0.0407820716500282,-0.835846781730652,-0.231850743293762,0.497599750757217,-0.00377936847507954,-0.972153544425964,0.234314277768135,-0.0309957899153233,-0.56150221824646,0.826894462108612,-0.0291762463748455,-0.872057676315308,0.488532543182373,-0.62840324640274,0.268781989812851,0.7299764752388,-0.506403386592865,-0.15679444372654,0.84792172908783,-0.0291762463748455,-0.872057676315308,0.488532543182373, +-0.62840324640274,0.268781989812851,0.7299764752388,-0.0291762463748455,-0.872057676315308,0.488532543182373,-0.383161395788193,0.311294406652451,0.869645535945892,-0.383161395788193,0.311294406652451,0.869645535945892,-0.0291762463748455,-0.872057676315308,0.488532543182373,-0.0309957899153233,-0.56150221824646,0.826894462108612,-0.383161395788193,0.311294406652451,0.869645535945892,-0.0309957899153233,-0.56150221824646,0.826894462108612,-0.499139189720154,0.582827687263489,0.641226947307587,-0.987362742424011,-0.135074183344841,0.0828854292631149,-0.998451173305511,-0.037843257188797,-0.0407820716500282,-0.970171749591827,-0.187680751085281,0.153437152504921,-0.987362742424011,-0.135074183344841,0.0828854292631149,-0.979743480682373,-0.163628801703453,0.115448191761971,-0.998451173305511,-0.037843257188797,-0.0407820716500282,-0.0971544831991196,0.557070970535278,-0.824762344360352,-0.998451173305511,-0.037843257188797,-0.0407820716500282,-0.979743480682373,-0.163628801703453,0.115448191761971,-0.0452796667814255,-0.976956009864807,0.208583161234856,-0.00377936847507954,-0.972153544425964,0.234314277768135,-0.0922596231102943,-0.942279100418091,0.321866780519485,-0.118574589490891,-0.990898370742798,0.0637214630842209,-0.0930059924721718,-0.995535492897034,0.0160958040505648,0.108165070414543,-0.97947359085083,0.170093789696693,-0.114355102181435,-0.990856289863586,0.0716024786233902,0.108165070414543,-0.97947359085083,0.170093789696693,-0.0930059924721718,-0.995535492897034,0.0160958040505648,0.0815045610070229,-0.971005976200104,0.224732026457787,0.0169576220214367,-0.965230584144592,0.260849326848984,-0.118574589490891,-0.990898370742798,0.0637214630842209,0.0815045610070229,-0.971005976200104,0.224732026457787,0.108165070414543,-0.97947359085083,0.170093789696693,-0.0934946984052658,-0.990627408027649,0.0995800346136093,-0.118574589490891,-0.990898370742798,0.0637214630842209,0.108165070414543,-0.97947359085083,0.170093789696693,0.0815045610070229,-0.971005976200104,0.224732026457787,0.66334056854248,-0.693172693252563,0.281941592693329, +0.64887136220932,-0.563643932342529,0.511147260665894,0.0158239752054214,-0.926918983459473,0.374927759170532,0.0158239752054214,-0.926918983459473,0.374927759170532,0.64887136220932,-0.563643932342529,0.511147260665894,-0.0831555351614952,-0.947372734546661,0.309144079685211,0.909517407417297,-0.393270611763,-0.134597703814507,0.380522042512894,-0.833464622497559,0.400674223899841,0.790320515632629,-0.571333944797516,0.221294403076172,0.909517407417297,-0.393270611763,-0.134597703814507,0.66334056854248,-0.693172693252563,0.281941592693329,0.380522042512894,-0.833464622497559,0.400674223899841,0.66334056854248,-0.693172693252563,0.281941592693329,0.0158239752054214,-0.926918983459473,0.374927759170532,0.380522042512894,-0.833464622497559,0.400674223899841,-0.920236885547638,0.0769475251436234,-0.383722722530365,-0.996609807014465,-0.00888792518526316,-0.0817925333976746,-0.918607234954834,0.0796912759542465,-0.38705313205719,-0.372574269771576,0.198220133781433,-0.906585514545441,-0.920236885547638,0.0769475251436234,-0.383722722530365,-0.918607234954834,0.0796912759542465,-0.38705313205719,0.0406436808407307,-0.906608760356903,0.420010566711426,-0.118574589490891,-0.990898370742798,0.0637214630842209,0.0175816435366869,-0.921970009803772,0.386862248182297,-0.998278498649597,-0.0518283247947693,-0.0274556204676628,-0.835846781730652,-0.231850743293762,0.497599750757217,-0.985591888427734,0.00815942883491516,-0.168943867087364,-0.0934946984052658,-0.990627408027649,0.0995800346136093,-0.269230365753174,-0.963037252426147,-0.00862021744251251,0.0158239752054214,-0.926918983459473,0.374927759170532,0.0815045610070229,-0.971005976200104,0.224732026457787,-0.0934946984052658,-0.990627408027649,0.0995800346136093,-0.0831555351614952,-0.947372734546661,0.309144079685211,-0.0831555351614952,-0.947372734546661,0.309144079685211,-0.0934946984052658,-0.990627408027649,0.0995800346136093,0.0158239752054214,-0.926918983459473,0.374927759170532,-0.0831555351614952,-0.947372734546661,0.309144079685211,0.0169576220214367,-0.965230584144592,0.260849326848984, +0.0815045610070229,-0.971005976200104,0.224732026457787,-0.0831555351614952,-0.947372734546661,0.309144079685211,0.64887136220932,-0.563643932342529,0.511147260665894,0.0513409748673439,-0.876040458679199,0.479496777057648,0.66334056854248,-0.693172693252563,0.281941592693329,0.991636991500854,-0.112628057599068,0.0630170032382011,0.64887136220932,-0.563643932342529,0.511147260665894,0.850986957550049,-0.200224906206131,0.485521495342255,0.64887136220932,-0.563643932342529,0.511147260665894,0.991636991500854,-0.112628057599068,0.0630170032382011 + } + BinormalsW: *888 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + + } + LayerElementTangent: 0 { + Version: 102 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "Direct" + Tangents: *2664 { + a: -0.34080970287323,-0.222881689667702,0.913330554962158,-0.401752680540085,-0.2020014077425,0.893191039562225,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.340206295251846,-0.518988132476807,0.784162580966949,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.371981501579285,-0.145229995250702,0.916808605194092,-0.401752680540085,-0.2020014077425,0.893191039562225,-0.396370708942413,0.237442508339882,0.886854767799377,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.396370708942413,0.237442508339882,0.886854767799377,-0.371981501579285,-0.145229995250702,0.916808605194092,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.409032583236694,-0.462385386228561,0.786696970462799,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.340206295251846,-0.518988132476807,0.784162580966949,-0.401752680540085,-0.2020014077425,0.893191039562225,-0.752130627632141,0.63495945930481,0.176425665616989,-0.396370708942413,0.237442508339882,0.886854767799377,-0.67662900686264,0.622759640216827,0.392865657806396,-0.401752680540085,-0.2020014077425,0.893191039562225,-0.653414130210876,0.623717188835144,0.428983449935913,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.409032583236694,-0.462385386228561,0.786696970462799,-0.478997111320496,-0.489810973405838,0.728455126285553,-0.803162217140198,0.52612292766571,0.279508709907532,-0.64162689447403,0.766976833343506,0.00785565748810768,-0.653414130210876,0.623717188835144,0.428983449935913,-0.998809099197388,-0.0482193641364574,-0.00743034295737743,-0.86757618188858,-0.404720544815063,-0.288985878229141,-0.88258159160614,-0.320025056600571,-0.344432175159454,-0.26780179142952,-0.334420084953308,0.90357369184494,-0.374158024787903,-0.232682064175606,0.89769971370697,-0.478997111320496,-0.489810973405838,0.728455126285553,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.478997111320496,-0.489810973405838,0.728455126285553,-0.374158024787903,-0.232682064175606,0.89769971370697,-0.998473167419434,0.0528832860291004,-0.0159564036875963, +-0.86757618188858,-0.404720544815063,-0.288985878229141,-0.998809099197388,-0.0482193641364574,-0.00743034295737743,-0.67662900686264,0.622759640216827,0.392865657806396,-0.752130627632141,0.63495945930481,0.176425665616989,-0.401752680540085,-0.2020014077425,0.893191039562225,-0.620353043079376,0.7839195728302,0.0251431483775377,-0.396370708942413,0.237442508339882,0.886854767799377,-0.752130627632141,0.63495945930481,0.176425665616989,-0.99600076675415,0.0339582674205303,0.082639105618,-0.996179401874542,0.00826512556523085,0.0869382321834564,-0.989681541919708,-0.0200657397508621,0.14187303185463,-0.993208646774292,0.0497598312795162,0.105169110000134,-0.99600076675415,0.0339582674205303,0.082639105618,-0.992250919342041,-0.000267796567641199,0.124249570071697,-0.992250919342041,-0.000267796567641199,0.124249570071697,-0.99600076675415,0.0339582674205303,0.082639105618,-0.989681541919708,-0.0200657397508621,0.14187303185463,-0.960592567920685,0.0697387307882309,0.269069641828537,-0.99600076675415,0.0339582674205303,0.082639105618,-0.993208646774292,0.0497598312795162,0.105169110000134,0.0182381458580494,-0.989350140094757,-0.144408077001572,-0.409032583236694,-0.462385386228561,0.786696970462799,-0.340206295251846,-0.518988132476807,0.784162580966949,-0.123486019670963,0.501838088035584,0.856101512908936,-0.32539027929306,-0.110447965562344,0.939107179641724,-0.226579383015633,0.410603761672974,0.883213698863983,-0.371981501579285,-0.145229995250702,0.916808605194092,-0.521684050559998,-0.0852268561720848,0.848871171474457,-0.347203195095062,-0.116375401616097,0.930541098117828,-0.340206295251846,-0.518988132476807,0.784162580966949,-0.371981501579285,-0.145229995250702,0.916808605194092,-0.345083862543106,-0.115518972277641,0.931435644626617,-0.347203195095062,-0.116375401616097,0.930541098117828,-0.521684050559998,-0.0852268561720848,0.848871171474457,0.125549271702766,0.82065749168396,0.557457327842712,-0.21806463599205,0.886594891548157,0.407918483018875,-0.521684050559998,-0.0852268561720848,0.848871171474457, +-0.105957351624966,0.991582632064819,-0.0744101405143738,-0.105957351624966,0.991582632064819,-0.0744101405143738,-0.521684050559998,-0.0852268561720848,0.848871171474457,-0.708394527435303,0.682824492454529,0.178683519363403,0.125549271702766,0.82065749168396,0.557457327842712,-0.521684050559998,-0.0852268561720848,0.848871171474457,-0.21806463599205,0.886594891548157,0.407918483018875,-0.371981501579285,-0.145229995250702,0.916808605194092,-0.347203195095062,-0.116375401616097,0.930541098117828,-0.345083862543106,-0.115518972277641,0.931435644626617,0.251145899295807,0.497683525085449,0.830202877521515,-0.345083862543106,-0.115518972277641,0.931435644626617,-0.347203195095062,-0.116375401616097,0.930541098117828,-0.279065161943436,0.186090484261513,0.942068517208099,-0.32539027929306,-0.110447965562344,0.939107179641724,-0.123486019670963,0.501838088035584,0.856101512908936,-0.901684463024139,-0.0448140203952789,-0.430066078901291,-0.777953028678894,-0.110697142779827,-0.6184943318367,-0.860396862030029,-0.0742750242352486,-0.504182934761047,-0.279065161943436,0.186090484261513,0.942068517208099,-0.329960554838181,-0.147975891828537,0.932324588298798,-0.32539027929306,-0.110447965562344,0.939107179641724,-0.340206295251846,-0.518988132476807,0.784162580966949,-0.32539027929306,-0.110447965562344,0.939107179641724,-0.329960554838181,-0.147975891828537,0.932324588298798,-0.340206295251846,-0.518988132476807,0.784162580966949,-0.345083862543106,-0.115518972277641,0.931435644626617,-0.32539027929306,-0.110447965562344,0.939107179641724,-0.226579383015633,0.410603761672974,0.883213698863983,-0.32539027929306,-0.110447965562344,0.939107179641724,-0.345083862543106,-0.115518972277641,0.931435644626617,-0.708394527435303,0.682824492454529,0.178683519363403,-0.521684050559998,-0.0852268561720848,0.848871171474457,-0.371981501579285,-0.145229995250702,0.916808605194092,-0.454500138759613,-0.0689076408743858,-0.88807737827301,-0.445343941450119,-0.0961556881666183,-0.890181362628937,-0.532106518745422,-0.103770218789577,-0.840294122695923, +-0.489554643630981,0.0878043696284294,-0.867540597915649,-0.777953028678894,-0.110697142779827,-0.6184943318367,-0.460053503513336,-0.0573310926556587,-0.886038362979889,-0.777953028678894,-0.110697142779827,-0.6184943318367,-0.640384078025818,-0.101686500012875,-0.761293649673462,-0.460053503513336,-0.0573310926556587,-0.886038362979889,-0.454500138759613,-0.0689076408743858,-0.88807737827301,-0.532106518745422,-0.103770218789577,-0.840294122695923,-0.452941507101059,-0.0838642790913582,-0.887587070465088,-0.436062067747116,0.0362812466919422,-0.899185001850128,-0.454500138759613,-0.0689076408743858,-0.88807737827301,-0.452941507101059,-0.0838642790913582,-0.887587070465088,-0.532106518745422,-0.103770218789577,-0.840294122695923,-0.640384078025818,-0.101686500012875,-0.761293649673462,-0.572996735572815,-0.131003990769386,-0.809019505977631,-0.460053503513336,-0.0573310926556587,-0.886038362979889,-0.640384078025818,-0.101686500012875,-0.761293649673462,-0.532106518745422,-0.103770218789577,-0.840294122695923,-0.445343941450119,-0.0961556881666183,-0.890181362628937,-0.384769082069397,0.0678700432181358,-0.920514166355133,-0.532106518745422,-0.103770218789577,-0.840294122695923,-0.460053503513336,-0.0573310926556587,-0.886038362979889,-0.532106518745422,-0.103770218789577,-0.840294122695923,-0.384769082069397,0.0678700432181358,-0.920514166355133,-0.968807220458984,0.145865499973297,0.200338959693909,-0.998473167419434,0.0528832860291004,-0.0159564036875963,-0.998809099197388,-0.0482193641364574,-0.00743034295737743,-0.999152958393097,0.029022254049778,0.0291718151420355,-0.998473167419434,0.0528832860291004,-0.0159564036875963,-0.968807220458984,0.145865499973297,0.200338959693909,-0.342197865247726,-0.0672274902462959,0.9372199177742,-0.344318091869354,-0.545004904270172,0.764470219612122,-0.329960554838181,-0.147975891828537,0.932324588298798,0.0276954919099808,-0.99196320772171,0.123458616435528,-0.243461638689041,-0.771117329597473,0.588306367397308,-0.0633167773485184,-0.698416471481323,0.712885320186615,-0.0126387253403664,-0.974856019020081,-0.222476601600647, +-0.344318091869354,-0.545004904270172,0.764470219612122,-0.243461638689041,-0.771117329597473,0.588306367397308,-0.0633167773485184,-0.698416471481323,0.712885320186615,-0.243461638689041,-0.771117329597473,0.588306367397308,-0.306042402982712,-0.0755612328648567,0.949014484882355,-0.306042402982712,-0.0755612328648567,0.949014484882355,-0.243461638689041,-0.771117329597473,0.588306367397308,-0.342197865247726,-0.0672274902462959,0.9372199177742,-0.342197865247726,-0.0672274902462959,0.9372199177742,-0.243461638689041,-0.771117329597473,0.588306367397308,-0.344318091869354,-0.545004904270172,0.764470219612122,-0.436062067747116,0.0362812466919422,-0.899185001850128,-0.452941507101059,-0.0838642790913582,-0.887587070465088,-0.17278890311718,-0.0108997160568833,-0.984898626804352,0.397053122520447,-0.0560179725289345,-0.91608452796936,0.055070336908102,-0.102300070226192,-0.993227958679199,-0.14382928609848,-0.102593511343002,-0.984270095825195,-0.17278890311718,-0.0108997160568833,-0.984898626804352,-0.14382928609848,-0.102593511343002,-0.984270095825195,0.055070336908102,-0.102300070226192,-0.993227958679199,0.055070336908102,-0.102300070226192,-0.993227958679199,-0.145066440105438,0.113575890660286,-0.982881605625153,-0.17278890311718,-0.0108997160568833,-0.984898626804352,-0.0760174617171288,0.124765574932098,0.989269852638245,-0.342192471027374,-0.182860225439072,0.921665132045746,-0.342197865247726,-0.0672274902462959,0.9372199177742,-0.318889975547791,-0.120413109660149,0.940111577510834,-0.342197865247726,-0.0672274902462959,0.9372199177742,-0.342192471027374,-0.182860225439072,0.921665132045746,-0.0760174617171288,0.124765574932098,0.989269852638245,-0.342197865247726,-0.0672274902462959,0.9372199177742,-0.329960554838181,-0.147975891828537,0.932324588298798,0.397053122520447,-0.0560179725289345,-0.91608452796936,0.432746827602386,0.0385779030621052,-0.900689721107483,0.055070336908102,-0.102300070226192,-0.993227958679199,0.404333531856537,0.174954771995544,-0.897722363471985,0.055070336908102,-0.102300070226192,-0.993227958679199, +0.432746827602386,0.0385779030621052,-0.900689721107483,-0.306042402982712,-0.0755612328648567,0.949014484882355,-0.342197865247726,-0.0672274902462959,0.9372199177742,-0.336480557918549,-0.0286601036787033,0.941254258155823,-0.318889975547791,-0.120413109660149,0.940111577510834,-0.336480557918549,-0.0286601036787033,0.941254258155823,-0.342197865247726,-0.0672274902462959,0.9372199177742,-0.279065161943436,0.186090484261513,0.942068517208099,-0.0434246324002743,0.244370624423027,0.968709111213684,-0.329960554838181,-0.147975891828537,0.932324588298798,0.592059314250946,-0.154560133814812,-0.790934264659882,0.708304047584534,-0.388174802064896,-0.589597880840302,0.453601777553558,-0.113533109426498,-0.883943259716034,0.720061659812927,-0.0169125888496637,-0.693703889846802,0.453601777553558,-0.113533109426498,-0.883943259716034,0.329532027244568,-0.932743489742279,-0.146281391382217,0.720061659812927,-0.0169125888496637,-0.693703889846802,0.397053122520447,-0.0560179725289345,-0.91608452796936,0.453601777553558,-0.113533109426498,-0.883943259716034,-0.0149592608213425,-0.906780660152435,-0.421337068080902,-0.0126387253403664,-0.974856019020081,-0.222476601600647,-0.0417261198163033,-0.957016468048096,-0.287016838788986,-0.0126387253403664,-0.974856019020081,-0.222476601600647,-0.243461638689041,-0.771117329597473,0.588306367397308,0.0276954919099808,-0.99196320772171,0.123458616435528,0.397053122520447,-0.0560179725289345,-0.91608452796936,0.592059314250946,-0.154560133814812,-0.790934264659882,0.453601777553558,-0.113533109426498,-0.883943259716034,0.483106404542923,0.046408373862505,-0.874330878257751,0.506427526473999,0.0231721084564924,-0.861971139907837,0.432746827602386,0.0385779030621052,-0.900689721107483,0.432746827602386,0.0385779030621052,-0.900689721107483,0.397053122520447,-0.0560179725289345,-0.91608452796936,0.670566141605377,0.128155052661896,-0.730696439743042,0.720061659812927,-0.0169125888496637,-0.693703889846802,0.670566141605377,0.128155052661896,-0.730696439743042,0.397053122520447,-0.0560179725289345,-0.91608452796936, +0.483106404542923,0.046408373862505,-0.874330878257751,0.432746827602386,0.0385779030621052,-0.900689721107483,0.670566141605377,0.128155052661896,-0.730696439743042,-0.329960554838181,-0.147975891828537,0.932324588298798,-0.344318091869354,-0.545004904270172,0.764470219612122,-0.340206295251846,-0.518988132476807,0.784162580966949,-0.0126387253403664,-0.974856019020081,-0.222476601600647,-0.340206295251846,-0.518988132476807,0.784162580966949,-0.344318091869354,-0.545004904270172,0.764470219612122,-0.0149592608213425,-0.906780660152435,-0.421337068080902,0.0210129898041487,-0.941445529460907,-0.3365099132061,-0.0126387253403664,-0.974856019020081,-0.222476601600647,-0.532106518745422,-0.103770218789577,-0.840294122695923,-0.572996735572815,-0.131003990769386,-0.809019505977631,-0.452941507101059,-0.0838642790913582,-0.887587070465088,-0.17278890311718,-0.0108997160568833,-0.984898626804352,-0.452941507101059,-0.0838642790913582,-0.887587070465088,-0.14382928609848,-0.102593511343002,-0.984270095825195,-0.452941507101059,-0.0838642790913582,-0.887587070465088,-0.164579123258591,-0.26483541727066,-0.950145244598389,-0.14382928609848,-0.102593511343002,-0.984270095825195,-0.14382928609848,-0.102593511343002,-0.984270095825195,0.592059314250946,-0.154560133814812,-0.790934264659882,0.397053122520447,-0.0560179725289345,-0.91608452796936,-0.164579123258591,-0.26483541727066,-0.950145244598389,0.592059314250946,-0.154560133814812,-0.790934264659882,-0.14382928609848,-0.102593511343002,-0.984270095825195,-0.572996735572815,-0.131003990769386,-0.809019505977631,-0.164579123258591,-0.26483541727066,-0.950145244598389,-0.452941507101059,-0.0838642790913582,-0.887587070465088,0.707243323326111,-0.354311496019363,-0.611776173114777,0.883620858192444,-0.32129779458046,-0.340561062097549,-0.164579123258591,-0.26483541727066,-0.950145244598389,0.872999489307404,-0.258586555719376,-0.413527399301529,-0.164579123258591,-0.26483541727066,-0.950145244598389,0.883620858192444,-0.32129779458046,-0.340561062097549,0.0477477982640266,-0.863095223903656,-0.502778947353363, +0.0413179732859135,-0.607961416244507,-0.792890846729279,0.0172278173267841,-0.856378555297852,-0.516061067581177,-0.196369990706444,-0.535389542579651,-0.82146030664444,0.0172278173267841,-0.856378555297852,-0.516061067581177,0.0413179732859135,-0.607961416244507,-0.792890846729279,0.05760483071208,-0.886198759078979,-0.45971018075943,0.0477477982640266,-0.863095223903656,-0.502778947353363,0.0210129898041487,-0.941445529460907,-0.3365099132061,0.229245111346245,-0.699856758117676,-0.676496267318726,0.0413179732859135,-0.607961416244507,-0.792890846729279,0.0477477982640266,-0.863095223903656,-0.502778947353363,0.05760483071208,-0.886198759078979,-0.45971018075943,0.0210129898041487,-0.941445529460907,-0.3365099132061,0.0550652109086514,-0.896338224411011,-0.439938277006149,0.20063216984272,-0.92923367023468,-0.310276299715042,0.0550652109086514,-0.896338224411011,-0.439938277006149,0.0210129898041487,-0.941445529460907,-0.3365099132061,0.20063216984272,-0.92923367023468,-0.310276299715042,0.0210129898041487,-0.941445529460907,-0.3365099132061,-0.0149592608213425,-0.906780660152435,-0.421337068080902,0.690631151199341,-0.214034080505371,-0.690809726715088,-0.164579123258591,-0.26483541727066,-0.950145244598389,0.872999489307404,-0.258586555719376,-0.413527399301529,0.690631151199341,-0.214034080505371,-0.690809726715088,0.708304047584534,-0.388174802064896,-0.589597880840302,0.592059314250946,-0.154560133814812,-0.790934264659882,-0.164579123258591,-0.26483541727066,-0.950145244598389,0.690631151199341,-0.214034080505371,-0.690809726715088,0.592059314250946,-0.154560133814812,-0.790934264659882,0.159868314862251,-0.281233549118042,-0.946229219436646,-0.452129244804382,-0.223351255059242,-0.863535284996033,-0.503664374351501,-0.219487890601158,-0.835552096366882,0.872999489307404,-0.258586555719376,-0.413527399301529,0.866346955299377,-0.349196434020996,-0.357078105211258,0.690631151199341,-0.214034080505371,-0.690809726715088,0.272084414958954,-0.309018045663834,-0.911305665969849,0.707243323326111,-0.354311496019363,-0.611776173114777, +-0.164579123258591,-0.26483541727066,-0.950145244598389,0.272084414958954,-0.309018045663834,-0.911305665969849,-0.164579123258591,-0.26483541727066,-0.950145244598389,-0.21144987642765,-0.211740240454674,-0.954177737236023,-0.396370708942413,0.237442508339882,0.886854767799377,-0.346095234155655,-0.13134278357029,0.928960263729095,-0.371981501579285,-0.145229995250702,0.916808605194092,-0.41207167506218,0.854627847671509,0.315924197435379,-0.371981501579285,-0.145229995250702,0.916808605194092,-0.346095234155655,-0.13134278357029,0.928960263729095,-0.708394527435303,0.682824492454529,0.178683519363403,-0.371981501579285,-0.145229995250702,0.916808605194092,-0.41207167506218,0.854627847671509,0.315924197435379,-0.99336165189743,-0.109581597149372,0.0349928997457027,-0.966522037982941,-0.0244912970811129,-0.25541228055954,-0.963846683502197,-0.100408896803856,-0.246815383434296,-0.963846683502197,-0.100408896803856,-0.246815383434296,-0.966522037982941,-0.0244912970811129,-0.25541228055954,-0.995915949344635,0.00113553181290627,-0.090278185904026,-0.986960172653198,-0.0499677807092667,-0.153012439608574,-0.966522037982941,-0.0244912970811129,-0.25541228055954,-0.990936994552612,-0.0869176164269447,-0.102417729794979,-0.995915949344635,0.00113553181290627,-0.090278185904026,-0.966522037982941,-0.0244912970811129,-0.25541228055954,-0.986960172653198,-0.0499677807092667,-0.153012439608574,-0.640384078025818,-0.101686500012875,-0.761293649673462,-0.777953028678894,-0.110697142779827,-0.6184943318367,-0.963846683502197,-0.100408896803856,-0.246815383434296,-0.777953028678894,-0.110697142779827,-0.6184943318367,-0.901684463024139,-0.0448140203952789,-0.430066078901291,-0.963846683502197,-0.100408896803856,-0.246815383434296,-0.901684463024139,-0.0448140203952789,-0.430066078901291,-0.99336165189743,-0.109581597149372,0.0349928997457027,-0.963846683502197,-0.100408896803856,-0.246815383434296,-0.963846683502197,-0.100408896803856,-0.246815383434296,-0.995915949344635,0.00113553181290627,-0.090278185904026,-0.640384078025818,-0.101686500012875,-0.761293649673462, +-0.640384078025818,-0.101686500012875,-0.761293649673462,-0.995915949344635,0.00113553181290627,-0.090278185904026,-0.877290666103363,-0.0609819442033768,-0.476069629192352,-0.998873293399811,-0.00741469673812389,-0.0468743667006493,-0.998809099197388,-0.0482193641364574,-0.00743034295737743,-0.88258159160614,-0.320025056600571,-0.344432175159454,-0.640384078025818,-0.101686500012875,-0.761293649673462,-0.877290666103363,-0.0609819442033768,-0.476069629192352,-0.572996735572815,-0.131003990769386,-0.809019505977631,-0.999688506126404,0.0115750003606081,0.0221114177256823,-0.995915949344635,0.00113553181290627,-0.090278185904026,-0.986960172653198,-0.0499677807092667,-0.153012439608574,-0.995915949344635,0.00113553181290627,-0.090278185904026,-0.996179401874542,0.00826512556523085,0.0869382321834564,-0.99600076675415,0.0339582674205303,0.082639105618,-0.999688506126404,0.0115750003606081,0.0221114177256823,-0.996179401874542,0.00826512556523085,0.0869382321834564,-0.995915949344635,0.00113553181290627,-0.090278185904026,0.0210129898041487,-0.941445529460907,-0.3365099132061,0.0182381458580494,-0.989350140094757,-0.144408077001572,-0.0126387253403664,-0.974856019020081,-0.222476601600647,0.0182381458580494,-0.989350140094757,-0.144408077001572,-0.340206295251846,-0.518988132476807,0.784162580966949,-0.0126387253403664,-0.974856019020081,-0.222476601600647,-0.918779373168945,-0.0440465062856674,-0.392306208610535,-0.762816548347473,-0.252791583538055,-0.595153212547302,-0.877290666103363,-0.0609819442033768,-0.476069629192352,0.101363718509674,-0.33478581905365,-0.936826407909393,-0.21144987642765,-0.211740240454674,-0.954177737236023,0.372038990259171,-0.407001197338104,-0.834228456020355,0.271156936883926,-0.360992848873138,-0.89227694272995,0.571349263191223,-0.550724565982819,-0.608492016792297,0.372038990259171,-0.407001197338104,-0.834228456020355,-0.405516773462296,-0.654766201972961,-0.637838125228882,0.0405264534056187,-0.757052063941956,-0.652096509933472,-0.0118326861411333,-0.718734622001648,-0.69518381357193, +0.0210129898041487,-0.941445529460907,-0.3365099132061,0.0477477982640266,-0.863095223903656,-0.502778947353363,0.0172278173267841,-0.856378555297852,-0.516061067581177,0.0172278173267841,-0.856378555297852,-0.516061067581177,-0.0221618432551622,-0.81020200252533,-0.585731565952301,0.0210129898041487,-0.941445529460907,-0.3365099132061,-0.2147346585989,-0.52148824930191,-0.825796008110046,0.0225297976285219,-0.733499646186829,-0.679316341876984,0.0200648754835129,-0.702552676200867,-0.711348712444305,0.0405264534056187,-0.757052063941956,-0.652096509933472,0.0200648754835129,-0.702552676200867,-0.711348712444305,0.0225297976285219,-0.733499646186829,-0.679316341876984,-0.757719457149506,-0.20283617079258,-0.620257079601288,-0.547039926052094,-0.366815596818924,-0.752458453178406,-0.918779373168945,-0.0440465062856674,-0.392306208610535,-0.156426206231117,-0.46775296330452,-0.869906902313232,-0.762816548347473,-0.252791583538055,-0.595153212547302,-0.193995386362076,-0.746711909770966,-0.636228859424591,0.0405264534056187,-0.757052063941956,-0.652096509933472,0.0225297976285219,-0.733499646186829,-0.679316341876984,-0.000877226528245956,-0.670191824436188,-0.742187440395355,0.0405264534056187,-0.757052063941956,-0.652096509933472,-0.000877226528245956,-0.670191824436188,-0.742187440395355,-0.0221618432551622,-0.81020200252533,-0.585731565952301,-0.405516773462296,-0.654766201972961,-0.637838125228882,0.0200648754835129,-0.702552676200867,-0.711348712444305,0.0405264534056187,-0.757052063941956,-0.652096509933472,-0.918779373168945,-0.0440465062856674,-0.392306208610535,-0.547039926052094,-0.366815596818924,-0.752458453178406,-0.762816548347473,-0.252791583538055,-0.595153212547302,-0.193995386362076,-0.746711909770966,-0.636228859424591,-0.762816548347473,-0.252791583538055,-0.595153212547302,-0.547039926052094,-0.366815596818924,-0.752458453178406,-0.154004737734795,-0.730776488780975,-0.665017426013947,-0.317219585180283,-0.263742059469223,-0.910940110683441,-0.762816548347473,-0.252791583538055,-0.595153212547302, +-0.156426206231117,-0.46775296330452,-0.869906902313232,-0.154004737734795,-0.730776488780975,-0.665017426013947,-0.762816548347473,-0.252791583538055,-0.595153212547302,0.0172278173267841,-0.856378555297852,-0.516061067581177,0.0405264534056187,-0.757052063941956,-0.652096509933472,-0.0221618432551622,-0.81020200252533,-0.585731565952301,0.0136479651555419,-0.75212299823761,-0.658881425857544,0.0405264534056187,-0.757052063941956,-0.652096509933472,0.0172278173267841,-0.856378555297852,-0.516061067581177,-0.196369990706444,-0.535389542579651,-0.82146030664444,0.0136479651555419,-0.75212299823761,-0.658881425857544,0.0172278173267841,-0.856378555297852,-0.516061067581177,-0.762816548347473,-0.252791583538055,-0.595153212547302,-0.572996735572815,-0.131003990769386,-0.809019505977631,-0.877290666103363,-0.0609819442033768,-0.476069629192352,0.271156936883926,-0.360992848873138,-0.89227694272995,0.372038990259171,-0.407001197338104,-0.834228456020355,-0.21144987642765,-0.211740240454674,-0.954177737236023,-0.21144987642765,-0.211740240454674,-0.954177737236023,-0.317219585180283,-0.263742059469223,-0.910940110683441,0.271156936883926,-0.360992848873138,-0.89227694272995,0.101363718509674,-0.33478581905365,-0.936826407909393,0.272084414958954,-0.309018045663834,-0.911305665969849,-0.21144987642765,-0.211740240454674,-0.954177737236023,-0.21144987642765,-0.211740240454674,-0.954177737236023,-0.572996735572815,-0.131003990769386,-0.809019505977631,-0.317219585180283,-0.263742059469223,-0.910940110683441,-0.164579123258591,-0.26483541727066,-0.950145244598389,-0.572996735572815,-0.131003990769386,-0.809019505977631,-0.21144987642765,-0.211740240454674,-0.954177737236023,-0.572996735572815,-0.131003990769386,-0.809019505977631,-0.762816548347473,-0.252791583538055,-0.595153212547302,-0.317219585180283,-0.263742059469223,-0.910940110683441,-0.449162691831589,0.0731396377086639,0.89045125246048,-0.455306470394135,0.0483388677239418,0.889021456241608,-0.154347121715546,-0.00607990613207221,0.987997949123383,-0.154347121715546,-0.00607990613207221,0.987997949123383, +-0.455306470394135,0.0483388677239418,0.889021456241608,-0.389576345682144,0.0587820746004581,0.91911643743515,-0.154347121715546,-0.00607990613207221,0.987997949123383,0.0284193754196167,-0.148887470364571,0.988445639610291,-0.0501427911221981,-0.0401245579123497,0.997935652732849,0.180243566632271,-0.0534934177994728,0.982166409492493,-0.0501427911221981,-0.0401245579123497,0.997935652732849,0.0284193754196167,-0.148887470364571,0.988445639610291,0.180243566632271,-0.0534934177994728,0.982166409492493,0.181290656328201,-0.112891338765621,0.976928532123566,-0.0501427911221981,-0.0401245579123497,0.997935652732849,-0.093659371137619,0.0101685905829072,0.99555230140686,-0.0501427911221981,-0.0401245579123497,0.997935652732849,0.181290656328201,-0.112891338765621,0.976928532123566,-0.99600076675415,0.0339582674205303,0.082639105618,-0.960592567920685,0.0697387307882309,0.269069641828537,-0.887518405914307,0.0742329359054565,0.454753309488297,-0.449162691831589,0.0731396377086639,0.89045125246048,-0.154347121715546,-0.00607990613207221,0.987997949123383,-0.561243414878845,0.0540705099701881,0.825882613658905,-0.418448716402054,0.113412015140057,0.901131689548492,-0.193870052695274,0.104408942162991,0.975455343723297,-0.154347121715546,-0.00607990613207221,0.987997949123383,-0.561243414878845,0.0540705099701881,0.825882613658905,-0.154347121715546,-0.00607990613207221,0.987997949123383,-0.193870052695274,0.104408942162991,0.975455343723297,-0.984167695045471,0.0299703553318977,0.174687653779984,-0.561243414878845,0.0540705099701881,0.825882613658905,-0.193870052695274,0.104408942162991,0.975455343723297,-0.887518405914307,0.0742329359054565,0.454753309488297,-0.561243414878845,0.0540705099701881,0.825882613658905,-0.984167695045471,0.0299703553318977,0.174687653779984,-0.734114646911621,0.129050508141518,0.666649639606476,-0.487444072961807,0.00233904435299337,0.873151123523712,-0.887518405914307,0.0742329359054565,0.454753309488297,-0.424727886915207,-0.227248251438141,0.876335799694061,-0.458997577428818,-0.20381273329258,0.864743769168854, +-0.353031903505325,-0.284423768520355,0.891331374645233,-0.651999771595001,0.263006299734116,0.711142778396606,-0.401752680540085,-0.2020014077425,0.893191039562225,-0.34080970287323,-0.222881689667702,0.913330554962158,-0.458997577428818,-0.20381273329258,0.864743769168854,-0.535530805587769,-0.241648837924004,0.809204876422882,-0.353031903505325,-0.284423768520355,0.891331374645233,-0.535530805587769,-0.241648837924004,0.809204876422882,-0.34080970287323,-0.222881689667702,0.913330554962158,-0.353031903505325,-0.284423768520355,0.891331374645233,-0.487444072961807,0.00233904435299337,0.873151123523712,-0.734114646911621,0.129050508141518,0.666649639606476,-0.546572208404541,0.037310566753149,0.836580455303192,-0.787243664264679,0.0156837161630392,0.616442561149597,-0.815404415130615,-0.253724932670593,0.520326137542725,-0.545163512229919,0.067864902317524,0.835578441619873,-0.487444072961807,0.00233904435299337,0.873151123523712,-0.546572208404541,0.037310566753149,0.836580455303192,-0.455306470394135,0.0483388677239418,0.889021456241608,-0.421810567378998,0.0417159758508205,0.905723810195923,-0.455306470394135,0.0483388677239418,0.889021456241608,-0.546572208404541,0.037310566753149,0.836580455303192,-0.651999771595001,0.263006299734116,0.711142778396606,-0.803162217140198,0.52612292766571,0.279508709907532,-0.401752680540085,-0.2020014077425,0.893191039562225,-0.653414130210876,0.623717188835144,0.428983449935913,-0.401752680540085,-0.2020014077425,0.893191039562225,-0.803162217140198,0.52612292766571,0.279508709907532,-0.389576345682144,0.0587820746004581,0.91911643743515,-0.455306470394135,0.0483388677239418,0.889021456241608,-0.421810567378998,0.0417159758508205,0.905723810195923,-0.487444072961807,0.00233904435299337,0.873151123523712,-0.455306470394135,0.0483388677239418,0.889021456241608,-0.449162691831589,0.0731396377086639,0.89045125246048,-0.424727886915207,-0.227248251438141,0.876335799694061,-0.353031903505325,-0.284423768520355,0.891331374645233,-0.365148961544037,-0.313654452562332,0.876519858837128, +-0.358429878950119,-0.177426189184189,0.916541397571564,-0.365148961544037,-0.313654452562332,0.876519858837128,-0.353031903505325,-0.284423768520355,0.891331374645233,-0.214991599321365,-0.288127869367599,0.933145701885223,-0.424727886915207,-0.227248251438141,0.876335799694061,-0.365148961544037,-0.313654452562332,0.876519858837128,-0.353031903505325,-0.284423768520355,0.891331374645233,-0.34080970287323,-0.222881689667702,0.913330554962158,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.374158024787903,-0.232682064175606,0.89769971370697,-0.389838218688965,-0.0106256129220128,0.920822143554688,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.342096626758575,-0.125206485390663,0.931285798549652,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.389838218688965,-0.0106256129220128,0.920822143554688,-0.342096626758575,-0.125206485390663,0.931285798549652,-0.325831711292267,-0.250976949930191,0.911506593227386,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.365148961544037,-0.313654452562332,0.876519858837128,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.317987114191055,-0.242348790168762,0.916597604751587,-0.317987114191055,-0.242348790168762,0.916597604751587,-0.358429878950119,-0.177426189184189,0.916541397571564,-0.325831711292267,-0.250976949930191,0.911506593227386,-0.734114646911621,0.129050508141518,0.666649639606476,-0.887518405914307,0.0742329359054565,0.454753309488297,-0.960592567920685,0.0697387307882309,0.269069641828537,-0.887518405914307,0.0742329359054565,0.454753309488297,-0.487444072961807,0.00233904435299337,0.873151123523712,-0.561243414878845,0.0540705099701881,0.825882613658905,-0.561243414878845,0.0540705099701881,0.825882613658905,-0.487444072961807,0.00233904435299337,0.873151123523712,-0.449162691831589,0.0731396377086639,0.89045125246048,0.17217543721199,-0.0723507925868034,0.982405722141266,0.301339417695999,-0.223460912704468,0.926962673664093,0.943311512470245,-0.198111727833748,0.266298919916153,-0.093659371137619,0.0101685905829072,0.99555230140686, +-0.0419706888496876,-0.0546585209667683,0.997622549533844,-0.0501427911221981,-0.0401245579123497,0.997935652732849,0.301339417695999,-0.223460912704468,0.926962673664093,-0.0501427911221981,-0.0401245579123497,0.997935652732849,-0.0419706888496876,-0.0546585209667683,0.997622549533844,-0.093659371137619,0.0101685905829072,0.99555230140686,-0.201579734683037,0.0689619407057762,0.97704142332077,-0.0419706888496876,-0.0546585209667683,0.997622549533844,-0.317089259624481,-0.240247845649719,0.917461395263672,-0.0419706888496876,-0.0546585209667683,0.997622549533844,-0.201579734683037,0.0689619407057762,0.97704142332077,0.17217543721199,-0.0723507925868034,0.982405722141266,-0.074007123708725,-0.0588682852685452,0.995518743991852,0.301339417695999,-0.223460912704468,0.926962673664093,-0.409032583236694,-0.462385386228561,0.786696970462799,0.0182381458580494,-0.989350140094757,-0.144408077001572,-0.478997111320496,-0.489810973405838,0.728455126285553,0.0182381458580494,-0.989350140094757,-0.144408077001572,-0.0278008300811052,-0.999378979206085,-0.021648783236742,-0.478997111320496,-0.489810973405838,0.728455126285553,-0.214648932218552,-0.976200997829437,0.0309431366622448,-0.0278008300811052,-0.999378979206085,-0.021648783236742,-0.00320299481973052,-0.997621715068817,-0.0688533037900925,0.0182381458580494,-0.989350140094757,-0.144408077001572,-0.00320299481973052,-0.997621715068817,-0.0688533037900925,-0.0278008300811052,-0.999378979206085,-0.021648783236742,0.020113168284297,-0.973677754402161,-0.22704005241394,-0.0228451751172543,-0.992854654788971,-0.117122896015644,-0.00320299481973052,-0.997621715068817,-0.0688533037900925,0.020113168284297,-0.973677754402161,-0.22704005241394,-0.00320299481973052,-0.997621715068817,-0.0688533037900925,0.0182381458580494,-0.989350140094757,-0.144408077001572,0.020113168284297,-0.973677754402161,-0.22704005241394,0.0182381458580494,-0.989350140094757,-0.144408077001572,0.0210129898041487,-0.941445529460907,-0.3365099132061,-0.074007123708725,-0.0588682852685452,0.995518743991852, +0.0635536909103394,0.0368566550314426,0.997297585010529,0.171196311712265,0.0256952214986086,0.984901785850525,0.0582011938095093,-0.817485570907593,-0.57300078868866,0.151195824146271,-0.519118130207062,-0.841223180294037,0.0734207183122635,-0.773361682891846,-0.629699349403381,0.207370966672897,-0.636964738368988,-0.742477715015411,0.0734207183122635,-0.773361682891846,-0.629699349403381,0.151195824146271,-0.519118130207062,-0.841223180294037,-0.418448716402054,0.113412015140057,0.901131689548492,-0.154347121715546,-0.00607990613207221,0.987997949123383,0.171196311712265,0.0256952214986086,0.984901785850525,-0.074007123708725,-0.0588682852685452,0.995518743991852,0.171196311712265,0.0256952214986086,0.984901785850525,-0.154347121715546,-0.00607990613207221,0.987997949123383,0.110043399035931,-0.0857468545436859,0.99022114276886,0.0635536909103394,0.0368566550314426,0.997297585010529,-0.074007123708725,-0.0588682852685452,0.995518743991852,0.0582011938095093,-0.817485570907593,-0.57300078868866,0.0734207183122635,-0.773361682891846,-0.629699349403381,0.045583713799715,-0.887263000011444,-0.459005802869797,0.045583713799715,-0.887263000011444,-0.459005802869797,0.0734207183122635,-0.773361682891846,-0.629699349403381,0.121622830629349,-0.730508625507355,-0.671985924243927,0.938461542129517,-0.139815956354141,0.315818578004837,0.832536101341248,-0.138966456055641,0.536257386207581,-0.074007123708725,-0.0588682852685452,0.995518743991852,0.110043399035931,-0.0857468545436859,0.99022114276886,-0.074007123708725,-0.0588682852685452,0.995518743991852,0.832536101341248,-0.138966456055641,0.536257386207581,-0.154347121715546,-0.00607990613207221,0.987997949123383,-0.0501427911221981,-0.0401245579123497,0.997935652732849,-0.074007123708725,-0.0588682852685452,0.995518743991852,0.301339417695999,-0.223460912704468,0.926962673664093,-0.074007123708725,-0.0588682852685452,0.995518743991852,-0.0501427911221981,-0.0401245579123497,0.997935652732849,0.110043399035931,-0.0857468545436859,0.99022114276886,0.912319660186768,-0.221560627222061,0.344359815120697, +0.0635536909103394,0.0368566550314426,0.997297585010529,0.938461542129517,-0.139815956354141,0.315818578004837,-0.074007123708725,-0.0588682852685452,0.995518743991852,0.17217543721199,-0.0723507925868034,0.982405722141266,-0.752397060394287,0.281790792942047,0.595392823219299,-0.112849362194538,0.593052268028259,0.797216415405273,-0.968807220458984,0.145865499973297,0.200338959693909,-0.771242618560791,0.426081120967865,0.472905576229095,-0.968807220458984,0.145865499973297,0.200338959693909,-0.255845457315445,0.649310648441315,0.716197550296783,-0.255845457315445,0.649310648441315,0.716197550296783,-0.968807220458984,0.145865499973297,0.200338959693909,-0.112849362194538,0.593052268028259,0.797216415405273,-0.219097480177879,-0.960000991821289,-0.174339964985847,0.0206947028636932,-0.979963958263397,-0.198096960783005,-0.00756707787513733,-0.987578928470612,-0.156941697001457,-0.294264614582062,-0.940305709838867,-0.170978158712387,-0.0228451751172543,-0.992854654788971,-0.117122896015644,0.0206947028636932,-0.979963958263397,-0.198096960783005,0.0206947028636932,-0.979963958263397,-0.198096960783005,-0.0228451751172543,-0.992854654788971,-0.117122896015644,-0.00756707787513733,-0.987578928470612,-0.156941697001457,0.020113168284297,-0.973677754402161,-0.22704005241394,-0.00756707787513733,-0.987578928470612,-0.156941697001457,-0.0228451751172543,-0.992854654788971,-0.117122896015644,0.0154490899294615,-0.974648475646973,-0.223207861185074,-0.00756707787513733,-0.987578928470612,-0.156941697001457,0.020113168284297,-0.973677754402161,-0.22704005241394,-0.984167695045471,0.0299703553318977,0.174687653779984,-0.418448716402054,0.113412015140057,0.901131689548492,-0.679082274436951,0.0752477422356606,0.730195105075836,-0.688942968845367,0.13657683134079,0.711831748485565,-0.35787358880043,0.121263168752193,0.925862669944763,-0.392820000648499,0.2516228556633,0.884521663188934,-0.392820000648499,0.2516228556633,0.884521663188934,-0.35787358880043,0.121263168752193,0.925862669944763,-0.418448716402054,0.113412015140057,0.901131689548492, +-0.418448716402054,0.113412015140057,0.901131689548492,-0.984167695045471,0.0299703553318977,0.174687653779984,-0.193870052695274,0.104408942162991,0.975455343723297,-0.418448716402054,0.113412015140057,0.901131689548492,0.171196311712265,0.0256952214986086,0.984901785850525,-0.67179012298584,0.181379616260529,0.718191742897034,-0.67179012298584,0.181379616260529,0.718191742897034,-0.193360075354576,0.193694666028023,0.961818277835846,-0.430662304162979,0.332091629505157,0.839193224906921,0.373211890459061,0.304012656211853,0.876521170139313,0.158373698592186,0.485599994659424,0.859715223312378,-0.193360075354576,0.193694666028023,0.961818277835846,-0.193360075354576,0.193694666028023,0.961818277835846,0.158373698592186,0.485599994659424,0.859715223312378,-0.430662304162979,0.332091629505157,0.839193224906921,0.899959564208984,-0.0991124585270882,0.424557954072952,0.0635536909103394,0.0368566550314426,0.997297585010529,0.903317749500275,-0.0492587052285671,0.426134467124939,-0.193360075354576,0.193694666028023,0.961818277835846,-0.67179012298584,0.181379616260529,0.718191742897034,0.171196311712265,0.0256952214986086,0.984901785850525,0.899959564208984,-0.0991124585270882,0.424557954072952,0.171196311712265,0.0256952214986086,0.984901785850525,0.0635536909103394,0.0368566550314426,0.997297585010529,-0.418448716402054,0.113412015140057,0.901131689548492,-0.67179012298584,0.181379616260529,0.718191742897034,-0.392820000648499,0.2516228556633,0.884521663188934,0.171196311712265,0.0256952214986086,0.984901785850525,0.373211890459061,0.304012656211853,0.876521170139313,-0.193360075354576,0.193694666028023,0.961818277835846,0.00335858040489256,-0.978891968727112,-0.204350695014,0.020113168284297,-0.973677754402161,-0.22704005241394,0.045583713799715,-0.887263000011444,-0.459005802869797,0.147741198539734,-0.958179473876953,-0.245080977678299,0.00335858040489256,-0.978891968727112,-0.204350695014,0.176260158419609,-0.944022953510284,-0.278842240571976,0.00335858040489256,-0.978891968727112,-0.204350695014,0.147741198539734,-0.958179473876953,-0.245080977678299, +-0.0666692703962326,-0.982449650764465,-0.174205988645554,-0.392820000648499,0.2516228556633,0.884521663188934,-0.67179012298584,0.181379616260529,0.718191742897034,-0.688942968845367,0.13657683134079,0.711831748485565,0.00335858040489256,-0.978891968727112,-0.204350695014,-0.0666692703962326,-0.982449650764465,-0.174205988645554,0.020113168284297,-0.973677754402161,-0.22704005241394,0.0154490899294615,-0.974648475646973,-0.223207861185074,0.020113168284297,-0.973677754402161,-0.22704005241394,-0.0666692703962326,-0.982449650764465,-0.174205988645554,-0.995915949344635,0.00113553181290627,-0.090278185904026,-0.99600076675415,0.0339582674205303,0.082639105618,-0.984167695045471,0.0299703553318977,0.174687653779984,-0.698683857917786,0.276626706123352,0.659786760807037,-0.752397060394287,0.281790792942047,0.595392823219299,-0.948910415172577,0.0666783004999161,0.308420181274414,-0.999152958393097,0.029022254049778,0.0291718151420355,-0.968807220458984,0.145865499973297,0.200338959693909,-0.771242618560791,0.426081120967865,0.472905576229095,-0.887518405914307,0.0742329359054565,0.454753309488297,-0.984167695045471,0.0299703553318977,0.174687653779984,-0.99600076675415,0.0339582674205303,0.082639105618,-0.992232084274292,0.115813516080379,-0.0454177781939507,-0.984167695045471,0.0299703553318977,0.174687653779984,-0.679082274436951,0.0752477422356606,0.730195105075836,-0.984167695045471,0.0299703553318977,0.174687653779984,-0.992232084274292,0.115813516080379,-0.0454177781939507,-0.998873293399811,-0.00741469673812389,-0.0468743667006493,-0.998809099197388,-0.0482193641364574,-0.00743034295737743,-0.998873293399811,-0.00741469673812389,-0.0468743667006493,-0.992232084274292,0.115813516080379,-0.0454177781939507,-0.995915949344635,0.00113553181290627,-0.090278185904026,-0.984167695045471,0.0299703553318977,0.174687653779984,-0.998873293399811,-0.00741469673812389,-0.0468743667006493,-0.752397060394287,0.281790792942047,0.595392823219299,-0.968807220458984,0.145865499973297,0.200338959693909,-0.948910415172577,0.0666783004999161,0.308420181274414, +-0.968807220458984,0.145865499973297,0.200338959693909,-0.998809099197388,-0.0482193641364574,-0.00743034295737743,-0.948910415172577,0.0666783004999161,0.308420181274414,-0.993945062160492,0.0258561559021473,0.106791988015175,-0.948910415172577,0.0666783004999161,0.308420181274414,-0.998809099197388,-0.0482193641364574,-0.00743034295737743,0.0582011938095093,-0.817485570907593,-0.57300078868866,0.045583713799715,-0.887263000011444,-0.459005802869797,0.0210129898041487,-0.941445529460907,-0.3365099132061,0.045583713799715,-0.887263000011444,-0.459005802869797,0.020113168284297,-0.973677754402161,-0.22704005241394,0.0210129898041487,-0.941445529460907,-0.3365099132061,-0.995915949344635,0.00113553181290627,-0.090278185904026,-0.998873293399811,-0.00741469673812389,-0.0468743667006493,-0.877290666103363,-0.0609819442033768,-0.476069629192352,-0.0221618432551622,-0.81020200252533,-0.585731565952301,0.0536207109689713,-0.850028574466705,-0.52400016784668,0.0210129898041487,-0.941445529460907,-0.3365099132061,-0.0221618432551622,-0.81020200252533,-0.585731565952301,-0.0307513196021318,-0.532549262046814,-0.845840096473694,0.0536207109689713,-0.850028574466705,-0.52400016784668,-0.998873293399811,-0.00741469673812389,-0.0468743667006493,-0.957359194755554,-0.11615613847971,-0.264520764350891,-0.918779373168945,-0.0440465062856674,-0.392306208610535,-0.779115974903107,-0.338170289993286,-0.527843773365021,-0.982512414455414,-0.184240475296974,-0.0269224215298891,-0.918779373168945,-0.0440465062856674,-0.392306208610535,-0.918779373168945,-0.0440465062856674,-0.392306208610535,-0.982512414455414,-0.184240475296974,-0.0269224215298891,-0.954690098762512,-0.296913951635361,0.0202233251184225,-0.0307513196021318,-0.532549262046814,-0.845840096473694,-0.0221618432551622,-0.81020200252533,-0.585731565952301,-0.0889151468873024,-0.0878932923078537,-0.992153644561768,-0.957359194755554,-0.11615613847971,-0.264520764350891,-0.779115974903107,-0.338170289993286,-0.527843773365021,-0.918779373168945,-0.0440465062856674,-0.392306208610535, +-0.757719457149506,-0.20283617079258,-0.620257079601288,-0.918779373168945,-0.0440465062856674,-0.392306208610535,-0.954690098762512,-0.296913951635361,0.0202233251184225,0.0225297976285219,-0.733499646186829,-0.679316341876984,-0.328074097633362,-0.209410488605499,-0.921148419380188,-0.000877226528245956,-0.670191824436188,-0.742187440395355,-0.435785621404648,0.09552301466465,-0.894967198371887,-0.000877226528245956,-0.670191824436188,-0.742187440395355,-0.328074097633362,-0.209410488605499,-0.921148419380188,-0.998873293399811,-0.00741469673812389,-0.0468743667006493,-0.88258159160614,-0.320025056600571,-0.344432175159454,-0.999333620071411,0.00145452190190554,-0.0364719070494175,-0.992232084274292,0.115813516080379,-0.0454177781939507,-0.948910415172577,0.0666783004999161,0.308420181274414,-0.993945062160492,0.0258561559021473,0.106791988015175,0.0582011938095093,-0.817485570907593,-0.57300078868866,0.0210129898041487,-0.941445529460907,-0.3365099132061,0.0536207109689713,-0.850028574466705,-0.52400016784668,0.995082497596741,0.0704244077205658,-0.0696507841348648,-0.452129244804382,-0.223351255059242,-0.863535284996033,0.0536207109689713,-0.850028574466705,-0.52400016784668,0.0582011938095093,-0.817485570907593,-0.57300078868866,0.0536207109689713,-0.850028574466705,-0.52400016784668,-0.452129244804382,-0.223351255059242,-0.863535284996033,-0.998873293399811,-0.00741469673812389,-0.0468743667006493,-0.999333620071411,0.00145452190190554,-0.0364719070494175,-0.957359194755554,-0.11615613847971,-0.264520764350891,-0.739789187908173,-0.496577382087708,-0.454007595777512,-0.779115974903107,-0.338170289993286,-0.527843773365021,-0.957359194755554,-0.11615613847971,-0.264520764350891,-0.739789187908173,-0.496577382087708,-0.454007595777512,-0.957359194755554,-0.11615613847971,-0.264520764350891,-0.910249352455139,-0.287231534719467,-0.29823511838913,-0.910249352455139,-0.287231534719467,-0.29823511838913,-0.957359194755554,-0.11615613847971,-0.264520764350891,-0.999333620071411,0.00145452190190554,-0.0364719070494175, +-0.910249352455139,-0.287231534719467,-0.29823511838913,-0.999333620071411,0.00145452190190554,-0.0364719070494175,-0.844334661960602,-0.493511378765106,-0.208675637841225,-0.0219433698803186,-0.40144881606102,-0.915618538856506,0.0536207109689713,-0.850028574466705,-0.52400016784668,-0.0307513196021318,-0.532549262046814,-0.845840096473694,-0.0219433698803186,-0.40144881606102,-0.915618538856506,0.0462991185486317,-0.745967268943787,-0.664371311664581,0.0536207109689713,-0.850028574466705,-0.52400016784668,0.995082497596741,0.0704244077205658,-0.0696507841348648,0.0536207109689713,-0.850028574466705,-0.52400016784668,0.0462991185486317,-0.745967268943787,-0.664371311664581,-0.877290666103363,-0.0609819442033768,-0.476069629192352,-0.998873293399811,-0.00741469673812389,-0.0468743667006493,-0.918779373168945,-0.0440465062856674,-0.392306208610535,-0.992232084274292,0.115813516080379,-0.0454177781939507,-0.679082274436951,0.0752477422356606,0.730195105075836,-0.35787358880043,0.121263168752193,0.925862669944763,-0.418448716402054,0.113412015140057,0.901131689548492,-0.35787358880043,0.121263168752193,0.925862669944763,-0.679082274436951,0.0752477422356606,0.730195105075836,-0.6353639960289,0.123105809092522,0.76233696937561,-0.948910415172577,0.0666783004999161,0.308420181274414,-0.992232084274292,0.115813516080379,-0.0454177781939507,-0.6353639960289,0.123105809092522,0.76233696937561,-0.35787358880043,0.121263168752193,0.925862669944763,-0.688942968845367,0.13657683134079,0.711831748485565,-0.992232084274292,0.115813516080379,-0.0454177781939507,-0.35787358880043,0.121263168752193,0.925862669944763,-0.6353639960289,0.123105809092522,0.76233696937561,0.154878929257393,0.495783179998398,0.8545241355896,-0.112849362194538,0.593052268028259,0.797216415405273,-0.430662304162979,0.332091629505157,0.839193224906921,-0.430662304162979,0.332091629505157,0.839193224906921,-0.112849362194538,0.593052268028259,0.797216415405273,-0.698683857917786,0.276626706123352,0.659786760807037,0.409984320402145,0.795394897460938,0.44638529419899, +0.158373698592186,0.485599994659424,0.859715223312378,0.468257129192352,0.796166241168976,0.383216083049774,0.409984320402145,0.795394897460938,0.44638529419899,0.154878929257393,0.495783179998398,0.8545241355896,0.158373698592186,0.485599994659424,0.859715223312378,0.154878929257393,0.495783179998398,0.8545241355896,-0.430662304162979,0.332091629505157,0.839193224906921,0.158373698592186,0.485599994659424,0.859715223312378,0.00335858040489256,-0.978891968727112,-0.204350695014,0.045583713799715,-0.887263000011444,-0.459005802869797,0.00565300788730383,-0.976704955101013,-0.214512556791306,0.176260158419609,-0.944022953510284,-0.278842240571976,0.00335858040489256,-0.978891968727112,-0.204350695014,0.00565300788730383,-0.976704955101013,-0.214512556791306,-0.998809099197388,-0.0482193641364574,-0.00743034295737743,-0.992232084274292,0.115813516080379,-0.0454177781939507,-0.993945062160492,0.0258561559021473,0.106791988015175,0.0582011938095093,-0.817485570907593,-0.57300078868866,-0.452129244804382,-0.223351255059242,-0.863535284996033,0.159868314862251,-0.281233549118042,-0.946229219436646,-0.688942968845367,0.13657683134079,0.711831748485565,-0.67179012298584,0.181379616260529,0.718191742897034,-0.430662304162979,0.332091629505157,0.839193224906921,-0.6353639960289,0.123105809092522,0.76233696937561,-0.688942968845367,0.13657683134079,0.711831748485565,-0.698683857917786,0.276626706123352,0.659786760807037,-0.698683857917786,0.276626706123352,0.659786760807037,-0.688942968845367,0.13657683134079,0.711831748485565,-0.430662304162979,0.332091629505157,0.839193224906921,-0.698683857917786,0.276626706123352,0.659786760807037,-0.948910415172577,0.0666783004999161,0.308420181274414,-0.6353639960289,0.123105809092522,0.76233696937561,-0.698683857917786,0.276626706123352,0.659786760807037,-0.112849362194538,0.593052268028259,0.797216415405273,-0.752397060394287,0.281790792942047,0.595392823219299,0.154878929257393,0.495783179998398,0.8545241355896,0.0461355969309807,0.765372335910797,0.641932010650635,-0.112849362194538,0.593052268028259,0.797216415405273, +-0.255845457315445,0.649310648441315,0.716197550296783,-0.112849362194538,0.593052268028259,0.797216415405273,0.0461355969309807,0.765372335910797,0.641932010650635 + } + TangentsW: *888 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementUV: 0 { + Version: 101 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "IndexToDirect" + UV: *480 { + a: 0.722138106822968,0.559724867343903,0.637479245662689,0.547448813915253,0.542526602745056,0.673978328704834,0.773428797721863,0.564315259456635,0.778267025947571,0.581195890903473,0.530104100704193,0.516917169094086,0.765184342861176,0.545581817626953,0.754759609699249,0.531433403491974,0.438700020313263,0.017742058262229,0.37962082028389,0.0241248197853565,0.550947368144989,0.731062650680542,0.37497079372406,0.0125314109027386,0.420673787593842,0.0148582169786096,0.380433112382889,0.45774120092392,0.422832876443863,0.468321532011032,0.442058891057968,0.469326198101044,0.793410897254944,0.620423138141632,0.801942706108093,0.636768817901611,0.363132268190384,0.456076323986053,0.515801429748535,0.645934522151947,0.784605801105499,0.690548181533813,0.740013360977173,0.887778162956238,0.739393889904022,0.867305874824524,0.752894341945648,0.862555325031281,0.828644573688507,0.741312801837921,0.826241314411163,0.748914182186127,0.825286567211151,0.768336534500122,0.831686496734619,0.751637816429138,0.827620625495911,0.758510231971741,0.565638542175293,0.471655011177063,0.805670857429504,0.799342036247253,0.764902651309967,0.850868225097656,0.716779410839081,0.914666056632996,0.572579741477966,0.475124061107636,0.583110153675079,0.475543558597565,0.796489238739014,0.826262533664703,0.64873343706131,0.460467159748077,0.621413290500641,0.470012217760086,0.73116260766983,0.450131446123123,0.704382359981537,0.459529638290405,0.78560084104538,0.43015268445015,0.599681973457336,0.463370442390442,0.695277333259583,0.448341697454453,0.766610682010651,0.4471395611763,0.688775241374969,0.459003269672394,0.309522598981857,0.01682024076581,0.683572173118591,0.931514620780945,0.118060685694218,0.69809502363205,0.104711480438709,0.642381548881531,0.108414970338345,0.58033698797226,0.565578401088715,0.9668790102005,0.585577964782715,0.939843654632568,0.584104120731354,0.957602500915527,0.593618631362915,0.952064871788025,0.633372366428375,0.932640492916107,0.793491840362549,0.441484928131104,0.829978346824646,0.438465625047684, +0.808512151241302,0.454569131135941,0.672398269176483,0.953857719898224,0.654817759990692,0.94979989528656,0.642465651035309,0.952727794647217,0.863871872425079,0.437201112508774,0.850821554660797,0.442652881145477,0.629871070384979,0.945525646209717,0.700987815856934,0.936807513237,0.915863811969757,0.400974273681641,0.914381265640259,0.372542351484299,0.875856935977936,0.407512247562408,0.903511345386505,0.342178672552109,0.505658805370331,0.973411977291107,0.128531947731972,0.724742114543915,0.911210358142853,0.430719584226608,0.878014147281647,0.44109919667244,0.917199373245239,0.422462999820709,0.562724530696869,0.852351605892181,0.537154138088226,0.96954756975174,0.85471123456955,0.322053372859955,0.83967137336731,0.387896418571472,0.846765160560608,0.239131346344948,0.85449481010437,0.266703814268112,0.826588869094849,0.256837636232376,0.349067866802216,0.988258004188538,0.325064927339554,0.958655118942261,0.414247751235962,0.969264090061188,0.386534154415131,0.963971078395844,0.429115027189255,0.962494969367981,0.442788004875183,0.966182410717011,0.456236004829407,0.961412847042084,0.871083676815033,0.289041727781296,0.11003053933382,0.6826531291008,0.882898271083832,0.296484470367432,0.86769825220108,0.275725066661835,0.359566122293472,0.98430722951889,0.814721882343292,0.225660055875778,0.804522156715393,0.650573432445526,0.803591191768646,0.685177683830261,0.808641076087952,0.701268255710602,0.555065333843231,0.471904277801514,0.456375151872635,0.472854763269424,0.491469293832779,0.481262803077698,0.508827805519104,0.480637788772583,0.557450532913208,0.434954255819321,0.446232289075851,0.940206289291382,0.53512704372406,0.385737419128418,0.788578808307648,0.188491076231003,0.757336378097534,0.155302092432976,0.227618053555489,0.942336618900299,0.26732125878334,0.951455473899841,0.281229078769684,0.943492889404297,0.321235209703445,0.936104357242584,0.20451931655407,0.927864909172058,0.198424905538559,0.92165869474411,0.622854173183441,0.0871439874172211,0.625721871852875,0.0794058367609978,0.636758506298065, +0.084710918366909,0.676948964595795,0.104596242308617,0.683839201927185,0.111256346106529,0.777070820331573,0.170696631073952,0.161324888467789,0.858570754528046,0.708085298538208,0.128259494900703,0.692892134189606,0.116709105670452,0.213324621319771,0.93259459733963,0.306640297174454,0.947046339511871,0.711277425289154,0.214146554470062,0.741321086883545,0.154130384325981,0.669048130512238,0.1074034050107,0.757558524608612,0.215098962187767,0.803494989871979,0.223256751894951,0.118473179638386,0.428462475538254,0.547900259494781,0.51372241973877,0.569986462593079,0.517868340015411,0.144807040691376,0.406461775302887,0.13789002597332,0.422997504472733,0.166046440601349,0.419943779706955,0.178535282611847,0.417558372020721,0.192444115877151,0.414643496274948,0.153158262372017,0.424671202898026,0.389690518379211,0.387187331914902,0.260120362043381,0.0222583394497633,0.343401998281479,0.450233608484268,0.324976980686188,0.449031412601471,0.186012968420982,0.413577854633331,0.216349884867668,0.368648022413254,0.209911495447159,0.317739129066467,0.248672872781754,0.0418332554399967,0.252436131238937,0.321102112531662,0.26003098487854,0.374669343233109,0.274907946586609,0.447407156229019,0.233751237392426,0.410312712192535,0.240316838026047,0.439403742551804,0.229066520929337,0.434325814247131,0.717523396015167,0.500753343105316,0.684099078178406,0.489618718624115,0.633525431156158,0.478176832199097,0.662676095962524,0.485978722572327,0.672015964984894,0.488680601119995,0.210223108530045,0.397760003805161,0.220030605792999,0.430297464132309,0.610519468784332,0.491714954376221,0.621145367622375,0.484853357076645,0.660814106464386,0.49187096953392,0.627231359481812,0.478916764259338,0.583031833171844,0.515793144702911,0.58777129650116,0.508543789386749,0.60305380821228,0.503674328327179,0.14939446747303,0.520718991756439,0.166650205850601,0.520338237285614,0.0818674713373184,0.412359535694122,0.079852819442749,0.38989320397377,0.0992846935987473,0.417388498783112,0.119797639548779,0.535090565681458,0.485853791236877,0.504070281982422, +0.454244405031204,0.50591254234314,0.131537303328514,0.428840965032578,0.507940113544464,0.513707756996155,0.092640332877636,0.312206417322159,0.103792585432529,0.265983909368515,0.11423459649086,0.327761471271515,0.219999983906746,0.50129634141922,0.0810328722000122,0.335825055837631,0.0878384411334991,0.322139114141464,0.0963030308485031,0.28553107380867,0.0848383083939552,0.366062134504318,0.16070069372654,0.266826599836349,0.385665506124496,0.542144000530243,0.208929762244225,0.0533048510551453,0.2219368070364,0.0316022150218487,0.388146549463272,0.47645777463913,0.407033681869507,0.484556764364243,0.434192031621933,0.487701535224915,0.360832095146179,0.480952262878418,0.375791370868683,0.480650067329407,0.440881133079529,0.497174888849258,0.177626773715019,0.197592243552208,0.217967063188553,0.141779556870461,0.204151809215546,0.302959710359573,0.262714982032776,0.0912294983863831,0.118444725871086,0.179116263985634,0.117857374250889,0.199426218867302,0.0998224914073944,0.253205537796021,0.100161142647266,0.237922191619873,0.160172998905182,0.175785481929779,0.135199591517448,0.174893453717232,0.131541430950165,0.123149141669273,0.294206887483597,0.487807869911194,0.309518784284592,0.468243628740311,0.259764283895493,0.479677766561508,0.325309216976166,0.460092663764954,0.213510453701019,0.0688474029302597,0.451553076505661,0.0915484428405762,0.580009996891022,0.264091610908508,0.225530922412872,0.0532812736928463,0.606198906898499,0.0639332830905914,0.145299226045609,0.808927059173584,0.149686962366104,0.839678943157196,0.557635188102722,0.0437428876757622,0.583732128143311,0.0624400526285172,0.618728816509247,0.0742416754364967,0.16926620900631,0.891278266906738,0.162818238139153,0.881947696208954,0.161416068673134,0.873832523822784,0.468027114868164,0.0183798763900995,0.151939988136292,0.760367691516876,0.187121823430061,0.0544073581695557,0.521977007389069,0.0527343489229679,0.497315973043442,0.0269815232604742,0.128529131412506,0.754704833030701,0.481338173151016,0.020694462582469,0.131166160106659,0.738146066665649, +0.238101914525032,0.172990888357162,0.27129864692688,0.153320983052254,0.249335959553719,0.203655809164047,0.239794090390205,0.13553948700428,0.146344587206841,0.0747499465942383,0.134167835116386,0.100443176925182,0.244796827435493,0.491988211870193,0.28728649020195,0.0991067290306091,0.189776912331581,0.109352841973305,0.201924741268158,0.032780084758997,0.17890328168869,0.502014875411987 + } + UVIndex: *888 { + a: 152,0,1,10,1,20,0,94,1,94,20,1,2,1,10,0,16,94,4,0,3,1,2,5,7,6,3,9,12,8,129,130,5,1,5,130,11,12,9,4,16,0,17,94,16,137,14,13,139,137,18,18,137,13,140,137,139,19,2,10,21,22,23,20,25,30,10,20,31,30,25,26,28,25,27,27,25,24,26,25,28,20,30,31,35,31,30,32,22,21,29,34,33,32,46,22,10,22,46,10,31,22,23,22,31,24,25,20,38,39,42,37,34,36,34,41,36,38,42,40,43,38,40,42,41,123,36,41,42,39,44,42,36,42,44,144,11,9,45,11,144,54,74,46,50,51,52,75,74,51,52,51,53,53,51,54,54,51,74,43,40,55,67,56,77,55,77,56,56,57,55,58,59,54,60,54,59,58,54,46,67,61,56,62,56,61,53,54,63,60,63,54,32,64,46,76,90,68,65,68,66,65,67,68,87,75,69,75,51,50,67,76,68,71,72,61,61,67,73,65,73,67,71,61,73,46,74,10,75,10,74,87,102,75,42,123,40,55,40,77,40,80,77,77,76,67,80,76,77,123,80,40,93,78,80,79,80,78,84,81,109,82,109,81,83,84,102,92,81,84,83,102,85,86,85,102,86,102,87,88,80,79,88,90,76,80,88,76,48,47,89,79,91,88,127,93,80,127,80,126,94,95,20,96,20,95,24,20,96,97,100,101,101,100,103,98,100,99,103,100,98,41,34,101,34,29,101,29,97,101,101,103,41,41,103,210,209,9,8,41,210,123,15,103,98,103,14,137,15,14,103,102,19,75,19,10,75,112,125,210,104,126,117,124,105,117,106,108,107,102,84,109,109,118,102,110,111,121,108,121,111,113,114,112,116,125,115,108,111,220,108,220,118,106,121,108,112,114,125,115,125,114,120,119,125,116,120,125,109,108,118,122,108,109,82,122,109,125,123,210,124,117,126,126,119,124,104,127,126,126,123,119,80,123,126,123,125,119,142,156,141,141,156,135,141,134,131,133,131,134,133,136,131,132,131,136,137,140,146,142,141,143,183,195,141,143,141,195,145,143,195,146,143,145,147,148,146,153,154,160,151,0,152,154,155,160,155,152,160,148,147,150,147,149,150,148,150,156,157,156,150,151,7,0,3,0,7,135,156,157,148,156,142,153,160,159,1,159,160,161,153,159,160,152,1,130,162,1,163,1,162,163,164,1,159,1,158,158,1,164,147,146,140,146,148,143,143,148,142,182,167,168,132,169,131,167,131,169,132,173,169,128,169,173,182,177,167,2,19,5,19,174,5,171,174,172,19,172,174,184,192,172,184,172,19,184,19,102,177,176,198,49,170,166,165,166,170,183,141,198,177,198, +141,175,176,177,49,166,178,178,166,239,179,180,177,175,177,180,141,131,177,167,177,131,175,181,176,179,177,182,211,185,144,138,144,186,186,144,185,187,188,191,189,192,188,188,192,191,184,191,192,190,191,184,145,183,231,194,229,193,193,229,183,183,145,195,183,198,201,201,202,237,197,203,202,202,203,237,200,176,199,202,201,198,200,198,176,183,201,193,198,197,202,204,184,178,205,204,206,204,205,207,193,201,194,204,207,184,190,184,207,103,137,145,208,211,196,45,144,138,146,145,137,230,145,231,145,230,209,9,209,230,103,145,209,211,144,196,144,9,196,236,196,9,49,178,102,178,184,102,103,209,210,118,222,102,118,213,222,209,224,112,216,212,112,112,212,217,213,118,214,224,216,112,113,112,217,111,218,220,219,220,218,209,8,221,230,196,236,49,102,222,70,47,222,49,222,47,209,221,224,215,216,224,215,224,225,225,224,221,225,221,227,226,222,213,226,228,222,70,222,228,210,209,112,230,231,229,183,229,231,232,196,230,232,229,194,230,229,232,223,185,237,237,185,208,233,203,234,233,223,203,223,237,203,204,178,235,206,204,235,9,230,236,49,47,48,194,201,237,232,194,208,208,194,237,208,196,232,208,185,211,223,238,185,186,185,238 + } + } + LayerElementSmoothing: 0 { + Version: 102 + Name: "" + MappingInformationType: "ByEdge" + ReferenceInformationType: "Direct" + Smoothing: *444 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementMaterial: 0 { + Version: 101 + Name: "" + MappingInformationType: "AllSame" + ReferenceInformationType: "IndexToDirect" + Materials: *1 { + a: 0 + } + } + Layer: 0 { + Version: 100 + LayerElement: { + Type: "LayerElementNormal" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementBinormal" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementTangent" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementMaterial" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementSmoothing" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementUV" + TypedIndex: 0 + } + } + } + Geometry: 664391685792, "Geometry::", "Mesh" { + Vertices: *225 { + a: 2.74967336654663,-46.0315322875977,-61.1675186157227,30.0010261535645,-53.073486328125,36.9719085693359,53.8716583251953,-47.2680969238281,-5.02901554107666,29.0974998474121,103.907516479492,4.49119710922241,-14.2433853149414,-58.5655899047852,25.4676055908203,-43.2337036132813,-60.2767066955566,31.1784782409668,-46.333065032959,-60.6065483093262,29.1505126953125,27.8316040039063,103.188484191895,9.08074188232422,-61.8694953918457,-57.7532958984375,11.2883892059326,-69.0972518920898,-58.5790901184082,-8.0590124130249,-84.5330047607422,-46.8299522399902,-76.6675491333008,-97.6856002807617,-40.142707824707,-52.5575294494629,-93.3418960571289,8.82772350311279,-53.5505332946777,-3.15281009674072,-58.4581718444824,37.7726135253906,-38.7113571166992,-45.1768188476563,32.9150924682617,-78.662353515625,37.177116394043,-39.3126564025879,-89.4785385131836,26.9347553253174,-29.9827861785889,68.5574188232422,101.749404907227,3.28607416152954,73.9104919433594,96.5120391845703,7.04238224029541,77.5845565795898,-37.821159362793,-14.0955410003662,59.7531242370605,-52.1703948974609,28.0571708679199,72.906982421875,-23.758861541748,10.6799116134644,75.219108581543,-41.2858200073242,2.64138412475586,77.1131286621094,-42.6634674072266,-2.04280281066895,81.9227447509766,37.0699996948242,-4.32074928283691,97.4256896972656,33.5915298461914,-19.05419921875,80.6978378295898,91.2709732055664,3.13374257087708,-48.7638549804688,82.412971496582,-8.33373641967773,-0.850710868835449,96.8674163818359,-2.99260258674622,69.0928573608398,57.8976364135742,23.6896095275879,72.8145751953125,60.9932594299316,10.1671524047852,91.5403671264648,68.6519775390625,1.07870554924011,82.4300994873047,88.232421875,-1.51666259765625,91.1131286621094,57.8833160400391,-18.0321788787842,90.198844909668,42.9114151000977,-6.30356359481812,1.13879346847534,79.7074966430664,16.3695125579834,-33.1483192443848,-26.6199626922607,38.7267456054688,-13.3552913665771,88.597297668457,-7.7183723449707,-22.9664821624756,93.0951766967773,4.48961734771729,80.0453643798828,49.7102470397949,18.0005474090576, +83.5273284912109,72.5420761108398,-17.5103168487549,-68.9544830322266,-58.899959564209,-13.30943775177,-39.7689323425293,-60.6602554321289,32.1279067993164,-66.4085922241211,-57.5017776489258,-2.55000400543213,-87.9192810058594,-56.0310020446777,-34.7330360412598,-51.5775680541992,-56.8006324768066,25.6490364074707,-70.1359024047852,-55.3241653442383,-4.04374599456787,-81.770637512207,-53.3918571472168,-75.9966125488281,-86.3886871337891,-54.9889488220215,-57.0373115539551,-90.5327453613281,-56.7641563415527,-46.9989128112793,-84.8960723876953,-36.6725273132324,-77.0381164550781,-92.9610366821289,22.2950325012207,-46.186351776123,-21.0445671081543,-59.7277221679688,32.3425941467285,-81.9405670166016,-9.60839366912842,-67.514762878418,-77.9866104125977,44.95556640625,-34.0856742858887,-74.789680480957,34.1345901489258,-43.9563407897949,-74.9367752075195,64.0533905029297,-17.7411193847656,-56.9728851318359,78.2580261230469,-4.66860008239746,-54.2238235473633,81.328971862793,-7.34694385528564,-71.3280563354492,69.6548309326172,-11.6708908081055,-78.3315505981445,59.7339630126953,-20.9950733184814,73.0526657104492,-42.4980850219727,-10.758394241333,84.4189376831055,-1.16395473480225,10.242395401001,71.4443664550781,-6.46144533157349,24.1512985229492,73.6211471557617,-34.7116851806641,8.68922901153564,68.9173812866211,-47.8916282653809,14.262638092041,74.7134628295898,92.9690551757813,-2.46494317054749,78.4373931884766,-39.4644355773926,-37.2482376098633,73.1136245727539,-43.5393562316895,-24.0417385101318,83.0875854492188,-11.5760250091553,-35.4980430603027,92.0924377441406,11.4128952026367,-26.0911865234375,86.2479476928711,-10.1396360397339,-23.5380191802979,88.7160034179688,-4.83618497848511,-31.3172416687012,8.91298866271973,98.9684906005859,0.594467401504517,85.6788940429688,11.2951793670654,-6.5612964630127 + } + PolygonVertexIndex: *438 { + a: 65,20,-3,0,2,-5,20,13,-3,13,4,-3,2,0,-68,2,67,-69,3,73,-8,1,13,-21,4,42,-7,0,4,-44,6,42,-6,4,6,-44,8,43,-7,44,41,-10,0,41,-45,0,43,-42,9,41,-44,6,45,-9,9,46,-45,46,45,-17,8,45,-47,9,43,-47,8,46,-44,18,3,-8,48,0,-45,50,0,-48,48,47,-1,10,49,-12,44,11,-50,49,48,-45,10,48,-50,50,47,-11,10,53,-51,48,10,-48,46,16,-45,44,12,-12,11,53,-11,12,53,-12,16,12,-45,53,12,-52,15,55,-52,51,12,-17,13,52,-5,42,4,-53,42,52,-15,14,52,-37,36,52,-14,45,6,-15,6,5,-15,5,42,-15,14,36,-46,35,7,-74,45,36,-17,36,13,-2,53,0,-51,57,59,-37,53,51,-56,55,27,-54,54,56,-59,54,58,-28,60,56,-55,57,58,-60,56,59,-59,56,60,-60,55,54,-28,15,54,-56,59,16,-37,54,15,-17,16,60,-55,15,51,-17,16,59,-61,21,64,-24,23,64,-23,23,61,-20,21,23,-63,74,62,-24,20,21,-64,21,20,-66,21,65,-65,22,64,-66,22,65,-24,2,23,-66,61,2,-69,23,2,-62,20,63,-2,63,21,-63,61,68,-20,67,19,-69,0,69,-68,70,72,-70,70,69,-1,70,0,-54,71,70,-26,3,17,-67,74,23,-26,71,25,-24,72,70,-72,3,66,-41,40,66,-33,69,72,-72,23,19,-72,67,71,-20,69,71,-68,26,32,-19,17,18,-67,66,18,-33,63,74,-40,30,39,-25,24,39,-75,74,63,-63,74,25,-35,34,25,-32,25,33,-32,74,34,-25,33,70,-41,24,34,-31,33,25,-71,36,1,-64,3,18,-18,29,63,-40,63,29,-36,7,35,-30,36,63,-36,3,40,-54,40,70,-54,27,37,-54,35,38,-58,57,27,-59,38,27,-58,35,73,-29,3,53,-38,28,73,-38,3,37,-74,35,28,-39,27,38,-29,28,37,-28,36,35,-58,30,18,-30,29,39,-31,31,32,-27,40,32,-34,32,31,-34,7,29,-19,30,34,-32,26,30,-32,26,18,-31 + } + Edges: *219 { + a: 5,1,14,20,29,32,36,42,50,41,28,26,54,59,62,51,83,86,81,90,106,119,122,125,9,131,143,165,182,179,170,202,175,176,171,198,203,279,221,215,311,233,230,293,239,295,219,248,23,257,281,220,13,269,272,287,261,284,227,278,290,299,342,275,225,332,323,326,344,353,359,365,368,389,392,395,378,404,167,413,0,4,7,3,16,6,25,31,34,40,39,46,24,38,52,57,58,55,64,69,44,18,77,76,72,82,87,74,95,94,103,84,96,108,105,121,111,127,136,126,142,134,137,151,21,140,75,97,195,172,183,178,153,174,184,186,192,120,204,157,190,217,218,312,223,228,235,213,241,17,246,243,253,224,259,265,268,264,162,280,283,276,301,303,310,267,319,318,334,337,331,340,336,277,161,357,361,71,362,370,371,343,376,375,379,155,394,388,384,380,412,411,417,309,421,431,419,296,19,78,114,118,133,145,166,180,214,229,2,292,313,322,346,320,381,400,321,335,432 + } + GeometryVersion: 124 + LayerElementNormal: 0 { + Version: 102 + Name: "" + MappingInformationType: "ByVertice" + ReferenceInformationType: "Direct" + Normals: *225 { + a: 0.227528616786003,-0.276012480258942,-0.933834969997406,0.12848336994648,0.0638462156057358,0.989654362201691,0.114647336304188,-0.984383165836334,-0.133587822318077,-0.0110988132655621,0.56528240442276,-0.824822723865509,0.0804504379630089,-0.989030420780182,-0.123881086707115,-0.437840163707733,-0.033161535859108,0.898441076278687,-0.0251838434487581,-0.999391615390778,-0.0241299048066139,-0.0102543085813522,0.419648170471191,0.907629013061523,-0.651897549629211,-0.681864321231842,0.33179897069931,-0.512864291667938,-0.795623362064362,0.322418451309204,-0.870543539524078,-0.0108258025720716,-0.491972357034683,-0.999896109104156,0.0134375486522913,0.00521575519815087,-0.99893993139267,0.0405167154967785,-0.0218483135104179,0.0541294142603874,-0.757068693637848,0.651089191436768,-0.216367036104202,-0.184908494353294,0.958641886711121,-0.654412984848022,0.599607467651367,-0.460667461156845,-0.827015042304993,0.0578457117080688,0.559195816516876,0.105487443506718,0.945053100585938,-0.309430181980133,0.206778571009636,0.402738034725189,0.891652822494507,0.930082559585571,-0.367229431867599,-0.0094298692420125,0.344469994306564,-0.808848798274994,0.476554393768311,0.817964017391205,-0.253519058227539,0.516394257545471,0.901522219181061,-0.150291830301285,0.405795574188232,0.80185729265213,-0.595147013664246,0.0531496927142143,0.90390807390213,0.0533983036875725,0.424380481243134,0.998810112476349,-0.0273590199649334,-0.040371760725975,0.563757002353668,0.178419038653374,0.806439518928528,-0.10896897315979,0.612675070762634,-0.782786726951599,-0.0669426396489143,0.923021018505096,0.378881186246872,0.0171835180372,0.0996155291795731,0.994877636432648,0.827273368835449,0.0747366771101952,0.556806147098541,0.832649648189545,0.126461133360863,0.539168000221252,0.759344041347504,0.5570387840271,-0.336310237646103,0.75534588098526,0.280781507492065,-0.592126905918121,0.653733968734741,-0.215534061193466,0.725380599498749,-0.098740465939045,0.239364713430405,0.96589583158493,-0.243187621235847,0.173005983233452,0.954425811767578, +0.0297731831669807,0.506297826766968,-0.861844539642334,-0.322457551956177,0.689182341098785,0.648882627487183,0.842508137226105,0.100981242954731,0.529134035110474,0.117176346480846,0.374164491891861,-0.91992974281311,0.093443475663662,-0.990511894226074,-0.100769147276878,-0.0187348313629627,-0.607194244861603,0.794332563877106,0.0621885322034359,-0.99311089515686,-0.0993139445781708,-0.631789445877075,-0.722674012184143,0.280329018831253,-0.757582545280457,0.0661086067557335,0.649383008480072,-0.854084253311157,-0.0529244467616081,0.517435193061829,0.12511420249939,-0.734618544578552,-0.666844964027405,0.0657080858945847,-0.995857954025269,-0.0628446713089943,-0.791698336601257,-0.602411866188049,-0.101556569337845,0.147768974304199,0.204465836286545,-0.967656016349792,-0.522315382957459,0.507263004779816,-0.685471296310425,-0.182179600000381,-0.499106764793396,0.847173511981964,0.0181286167353392,0.341375023126602,-0.939752221107483,-0.421581774950027,0.588115036487579,-0.690209686756134,0.23425181210041,0.455619066953659,-0.858799993991852,-0.20232629776001,0.668320298194885,-0.71582967042923,-0.390471905469894,0.291435390710831,0.873267948627472,-0.285641193389893,0.751489162445068,-0.594704329967499,-0.699047029018402,0.132148161530495,0.702758967876434,-0.921831011772156,0.373425722122192,0.103829957544804,0.337367683649063,-0.940915644168854,-0.0293412953615189,0.959919095039368,0.00398999731987715,0.280248641967773,0.203683450818062,0.108212426304817,0.973038017749786,0.898306608200073,-0.0541541650891304,0.436018884181976,0.617142081260681,-0.772497355937958,0.149610847234726,0.0911655277013779,0.62739634513855,-0.773345112800598,0.401120036840439,-0.619079232215881,-0.675161898136139,0.274563491344452,-0.953619778156281,-0.123385868966579,0.308442562818527,0.179535984992981,-0.934146642684937,0.233141481876373,0.182906582951546,-0.955086588859558,0.966881811618805,-0.255026400089264,0.0100574148818851,0.92864054441452,-0.208843410015106,-0.306612432003021,-0.398549139499664,0.836567938327789,0.375915706157684, +0.905846953392029,-0.079337015748024,0.416109323501587 + } + NormalsW: *75 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementBinormal: 0 { + Version: 102 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "Direct" + Binormals: *1314 { + a: -0.661674082279205,-0.612392961978912,-0.432622700929642,-0.760429084300995,-0.53808206319809,-0.363614469766617,-0.92845356464386,-0.0583510398864746,-0.366836905479431,-0.941931426525116,0.180840581655502,-0.282952129840851,-0.92845356464386,-0.0583510398864746,-0.366836905479431,-0.933065354824066,-0.0310107097029686,-0.358367681503296,-0.760429084300995,-0.53808206319809,-0.363614469766617,-0.840320110321045,-0.38675445318222,-0.379846036434174,-0.92845356464386,-0.0583510398864746,-0.366836905479431,-0.840320110321045,-0.38675445318222,-0.379846036434174,-0.933065354824066,-0.0310107097029686,-0.358367681503296,-0.92845356464386,-0.0583510398864746,-0.366836905479431,-0.92845356464386,-0.0583510398864746,-0.366836905479431,-0.941931426525116,0.180840581655502,-0.282952129840851,-0.893065690994263,-0.10030859708786,-0.438602268695831,-0.92845356464386,-0.0583510398864746,-0.366836905479431,-0.893065690994263,-0.10030859708786,-0.438602268695831,-0.897227227687836,-0.207924157381058,-0.389552354812622,-0.0372006669640541,0.824069142341614,0.56526654958725,-0.185051679611206,-0.474794983863831,0.860421776771545,0.0407338850200176,-0.906747877597809,0.419700980186462,-0.365109533071518,-0.924787938594818,0.107062339782715,-0.840320110321045,-0.38675445318222,-0.379846036434174,-0.760429084300995,-0.53808206319809,-0.363614469766617,-0.933065354824066,-0.0310107097029686,-0.358367681503296,-0.861667454242706,-0.393163681030273,-0.320860505104065,-0.933071613311768,0.0321624353528023,-0.358249992132187,-0.941931426525116,0.180840581655502,-0.282952129840851,-0.933065354824066,-0.0310107097029686,-0.358367681503296,-0.935573399066925,-0.0233485735952854,-0.352359503507614,-0.933071613311768,0.0321624353528023,-0.358249992132187,-0.861667454242706,-0.393163681030273,-0.320860505104065,-0.897343158721924,0.0777196362614632,-0.434436440467834,-0.933065354824066,-0.0310107097029686,-0.358367681503296,-0.933071613311768,0.0321624353528023,-0.358249992132187,-0.935573399066925,-0.0233485735952854,-0.352359503507614, +-0.757091701030731,0.56047910451889,-0.335671752691269,-0.935573399066925,-0.0233485735952854,-0.352359503507614,-0.933071613311768,0.0321624353528023,-0.358249992132187,-0.775095164775848,0.585099756717682,-0.238507553935051,-0.931255578994751,-0.0511517785489559,-0.360758394002914,-0.845067381858826,0.401792883872986,-0.352737545967102,-0.941931426525116,0.180840581655502,-0.282952129840851,-0.931255578994751,-0.0511517785489559,-0.360758394002914,-0.775095164775848,0.585099756717682,-0.238507553935051,-0.941931426525116,0.180840581655502,-0.282952129840851,-0.935573399066925,-0.0233485735952854,-0.352359503507614,-0.931255578994751,-0.0511517785489559,-0.360758394002914,-0.845067381858826,0.401792883872986,-0.352737545967102,-0.931255578994751,-0.0511517785489559,-0.360758394002914,-0.935573399066925,-0.0233485735952854,-0.352359503507614,0.647374629974365,0.00208895863033831,-0.762169241905212,0.0226362813264132,-0.991598963737488,0.127354845404625,0.620223701000214,-0.731188118457794,-0.284053832292557,0.739418745040894,-0.600216209888458,-0.3049595952034,0.0936951488256454,-0.99419105052948,0.0529661327600479,0.700016736984253,-0.687255620956421,-0.194052562117577,0.0936951488256454,-0.99419105052948,0.0529661327600479,0.0226362813264132,-0.991598963737488,0.127354845404625,0.0728762224316597,-0.975268125534058,0.208665370941162,0.620223701000214,-0.731188118457794,-0.284053832292557,0.0226362813264132,-0.991598963737488,0.127354845404625,0.0936951488256454,-0.99419105052948,0.0529661327600479,0.739418745040894,-0.600216209888458,-0.3049595952034,0.920981645584106,0.0954462885856628,-0.377733916044235,0.0936951488256454,-0.99419105052948,0.0529661327600479,0.620223701000214,-0.731188118457794,-0.284053832292557,0.0936951488256454,-0.99419105052948,0.0529661327600479,0.920981645584106,0.0954462885856628,-0.377733916044235,-0.0589423552155495,-0.904565930366516,0.422239571809769,-0.0372006669640541,0.824069142341614,0.56526654958725,0.0407338850200176,-0.906747877597809,0.419700980186462,-0.940475523471832,-0.04076137393713,-0.33740821480751, +-0.941931426525116,0.180840581655502,-0.282952129840851,-0.775095164775848,0.585099756717682,-0.238507553935051,-0.988681733608246,0.0562006905674934,-0.139104560017586,-0.941931426525116,0.180840581655502,-0.282952129840851,-0.959876537322998,0.0803897529840469,-0.268653124570847,-0.940475523471832,-0.04076137393713,-0.33740821480751,-0.959876537322998,0.0803897529840469,-0.268653124570847,-0.941931426525116,0.180840581655502,-0.282952129840851,-0.0105286901816726,-0.999119341373444,0.0406160056591034,0.586231172084808,-0.795916616916656,0.151160955429077,-0.0124454256147146,-0.987371861934662,0.157930165529251,0.700016736984253,-0.687255620956421,-0.194052562117577,-0.0124454256147146,-0.987371861934662,0.157930165529251,0.586231172084808,-0.795916616916656,0.151160955429077,-0.595615863800049,0.798102200031281,-0.0909653380513191,-0.940475523471832,-0.04076137393713,-0.33740821480751,-0.775095164775848,0.585099756717682,-0.238507553935051,-0.0105286901816726,-0.999119341373444,0.0406160056591034,0.930066168308258,0.0383087806403637,0.365389227867126,0.586231172084808,-0.795916616916656,0.151160955429077,-0.988681733608246,0.0562006905674934,-0.139104560017586,-0.959876537322998,0.0803897529840469,-0.268653124570847,-0.491935163736343,0.0443418994545937,0.869501888751984,-0.0231005139648914,0.999554872512817,0.0188811831176281,0.647391974925995,-0.720279574394226,-0.249160528182983,0.353334814310074,-0.924742698669434,-0.141441136598587,0.930066168308258,0.0383087806403637,0.365389227867126,-0.0105286901816726,-0.999119341373444,0.0406160056591034,0.922839045524597,-0.160626858472824,0.350095987319946,0.0936951488256454,-0.99419105052948,0.0529661327600479,0.0728762224316597,-0.975268125534058,0.208665370941162,0.700016736984253,-0.687255620956421,-0.194052562117577,0.700016736984253,-0.687255620956421,-0.194052562117577,-0.0442201942205429,-0.97649621963501,0.210949912667274,-0.0124454256147146,-0.987371861934662,0.157930165529251,-0.0124454256147146,-0.987371861934662,0.157930165529251,-0.498787343502045,-0.811507940292358,-0.304410934448242, +-0.0105286901816726,-0.999119341373444,0.0406160056591034,-0.0442201942205429,-0.97649621963501,0.210949912667274,-0.498787343502045,-0.811507940292358,-0.304410934448242,-0.0124454256147146,-0.987371861934662,0.157930165529251,0.0728762224316597,-0.975268125534058,0.208665370941162,-0.0442201942205429,-0.97649621963501,0.210949912667274,0.700016736984253,-0.687255620956421,-0.194052562117577,-0.498787343502045,-0.811507940292358,-0.304410934448242,-0.0442201942205429,-0.97649621963501,0.210949912667274,-0.703619658946991,-0.710501372814178,0.0103583047166467,-0.750796139240265,-0.442989975214005,0.489964365959167,-0.972159147262573,0.104590803384781,-0.209683820605278,-0.852559447288513,-0.327726870775223,0.407108515501022,-0.703619658946991,-0.710501372814178,0.0103583047166467,-0.0442201942205429,-0.97649621963501,0.210949912667274,0.0728762224316597,-0.975268125534058,0.208665370941162,-0.840320110321045,-0.38675445318222,-0.379846036434174,-0.879334568977356,-0.302834004163742,-0.367508322000504,-0.933065354824066,-0.0310107097029686,-0.358367681503296,-0.861667454242706,-0.393163681030273,-0.320860505104065,-0.933065354824066,-0.0310107097029686,-0.358367681503296,-0.879334568977356,-0.302834004163742,-0.367508322000504,-0.0197604298591614,-0.794091999530792,-0.607476413249969,0.16041225194931,-0.865135490894318,-0.475193232297897,0.0853594988584518,-0.981723725795746,-0.170094877481461,0.0853594988584518,-0.981723725795746,-0.170094877481461,0.16041225194931,-0.865135490894318,-0.475193232297897,-0.0158866979181767,-0.984543740749359,0.174417436122894,-0.0158866979181767,-0.984543740749359,0.174417436122894,0.16041225194931,-0.865135490894318,-0.475193232297897,0.0580380074679852,-0.648557424545288,-0.758949816226959,0.0226362813264132,-0.991598963737488,0.127354845404625,0.647374629974365,0.00208895863033831,-0.762169241905212,0.0853594988584518,-0.981723725795746,-0.170094877481461,0.647374629974365,0.00208895863033831,-0.762169241905212,-0.174315750598907,-0.977224886417389,-0.121019311249256,0.0853594988584518,-0.981723725795746,-0.170094877481461, +-0.174315750598907,-0.977224886417389,-0.121019311249256,-0.0197604298591614,-0.794091999530792,-0.607476413249969,0.0853594988584518,-0.981723725795746,-0.170094877481461,0.0853594988584518,-0.981723725795746,-0.170094877481461,-0.0158866979181767,-0.984543740749359,0.174417436122894,0.0226362813264132,-0.991598963737488,0.127354845404625,0.00237582065165043,-0.97057968378067,0.240768313407898,0.0407338850200176,-0.906747877597809,0.419700980186462,-0.185051679611206,-0.474794983863831,0.860421776771545,0.0226362813264132,-0.991598963737488,0.127354845404625,-0.0158866979181767,-0.984543740749359,0.174417436122894,0.0728762224316597,-0.975268125534058,0.208665370941162,-0.0158866979181767,-0.984543740749359,0.174417436122894,0.0580380074679852,-0.648557424545288,-0.758949816226959,-0.0306009035557508,-0.997195065021515,0.0683054998517036,-0.999346315860748,-0.0232181083410978,-0.0277124643325806,-0.941931426525116,0.180840581655502,-0.282952129840851,-0.988681733608246,0.0562006905674934,-0.139104560017586,-0.0823247954249382,-0.955823957920074,0.282176166772842,0.119995348155499,-0.947161197662354,0.297467559576035,-0.0158866979181767,-0.984543740749359,0.174417436122894,-0.999346315860748,-0.0232181083410978,-0.0277124643325806,-0.852559447288513,-0.327726870775223,0.407108515501022,-0.972159147262573,0.104590803384781,-0.209683820605278,-0.972159147262573,0.104590803384781,-0.209683820605278,-0.99347972869873,-0.0936812907457352,0.0649759024381638,-0.999346315860748,-0.0232181083410978,-0.0277124643325806,-0.906008124351501,-0.304798990488052,0.293678343296051,-0.978772163391113,-0.162403598427773,0.125020980834961,-0.95828640460968,-0.217618316411972,0.185282453894615,-0.906008124351501,-0.304798990488052,0.293678343296051,-0.95828640460968,-0.217618316411972,0.185282453894615,-0.99347972869873,-0.0936812907457352,0.0649759024381638,-0.18482831120491,-0.658985614776611,0.72909289598465,-0.978772163391113,-0.162403598427773,0.125020980834961,-0.906008124351501,-0.304798990488052,0.293678343296051,-0.0823247954249382,-0.955823957920074,0.282176166772842, +-0.766642987728119,0.193173572421074,0.612325549125671,0.119995348155499,-0.947161197662354,0.297467559576035,-0.976914644241333,-0.188915699720383,0.0997434481978416,0.119995348155499,-0.947161197662354,0.297467559576035,-0.766642987728119,0.193173572421074,0.612325549125671,-0.976914644241333,-0.188915699720383,0.0997434481978416,-0.29944720864296,-0.856245338916779,0.420921981334686,0.119995348155499,-0.947161197662354,0.297467559576035,-0.972159147262573,0.104590803384781,-0.209683820605278,-0.906008124351501,-0.304798990488052,0.293678343296051,-0.99347972869873,-0.0936812907457352,0.0649759024381638,-0.750796139240265,-0.442989975214005,0.489964365959167,-0.906008124351501,-0.304798990488052,0.293678343296051,-0.972159147262573,0.104590803384781,-0.209683820605278,0.119995348155499,-0.947161197662354,0.297467559576035,0.0728762224316597,-0.975268125534058,0.208665370941162,-0.0158866979181767,-0.984543740749359,0.174417436122894,-0.804133594036102,-0.594254672527313,-0.0151867736130953,-0.717557787895203,-0.684582233428955,0.128288984298706,0.0728762224316597,-0.975268125534058,0.208665370941162,0.0728762224316597,-0.975268125534058,0.208665370941162,-0.29944720864296,-0.856245338916779,0.420921981334686,-0.804133594036102,-0.594254672527313,-0.0151867736130953,-0.717557787895203,-0.684582233428955,0.128288984298706,-0.703619658946991,-0.710501372814178,0.0103583047166467,0.0728762224316597,-0.975268125534058,0.208665370941162,0.0728762224316597,-0.975268125534058,0.208665370941162,0.119995348155499,-0.947161197662354,0.297467559576035,-0.29944720864296,-0.856245338916779,0.420921981334686,-0.24474510550499,-0.965726613998413,-0.0864405706524849,-0.0733678564429283,-0.996930241584778,0.0273357648402452,-0.583860039710999,-0.799334108829498,-0.14203006029129,-0.583860039710999,-0.799334108829498,-0.14203006029129,-0.0733678564429283,-0.996930241584778,0.0273357648402452,-0.160158097743988,-0.987043261528015,-0.00975480768829584,-0.583860039710999,-0.799334108829498,-0.14203006029129,-0.940173447132111,-0.338347047567368,0.0399400182068348, +-0.367225795984268,-0.928791701793671,-0.0499137230217457,-0.24474510550499,-0.965726613998413,-0.0864405706524849,-0.583860039710999,-0.799334108829498,-0.14203006029129,-0.019677234813571,-0.996472060680389,0.0815863832831383,-0.121816411614418,-0.989599704742432,0.0765066593885422,-0.019677234813571,-0.996472060680389,0.0815863832831383,-0.583860039710999,-0.799334108829498,-0.14203006029129,-0.622417092323303,-0.57678747177124,-0.529068291187286,-0.24474510550499,-0.965726613998413,-0.0864405706524849,0.0168807804584503,-0.994113326072693,0.107022620737553,-0.24474510550499,-0.965726613998413,-0.0864405706524849,-0.622417092323303,-0.57678747177124,-0.529068291187286,-0.689790546894073,-0.622628152370453,-0.369490474462509,-0.24474510550499,-0.965726613998413,-0.0864405706524849,-0.689790546894073,-0.622628152370453,-0.369490474462509,-0.0733678564429283,-0.996930241584778,0.0273357648402452,-0.160158097743988,-0.987043261528015,-0.00975480768829584,-0.0733678564429283,-0.996930241584778,0.0273357648402452,-0.689790546894073,-0.622628152370453,-0.369490474462509,-0.0487552583217621,-0.967057108879089,-0.249847054481506,-0.661674082279205,-0.612392961978912,-0.432622700929642,-0.527336001396179,-0.746698975563049,-0.405410170555115,-0.92845356464386,-0.0583510398864746,-0.366836905479431,-0.527336001396179,-0.746698975563049,-0.405410170555115,-0.661674082279205,-0.612392961978912,-0.432622700929642,-0.87441611289978,-0.301674723625183,-0.379985332489014,-0.92845356464386,-0.0583510398864746,-0.366836905479431,-0.897227227687836,-0.207924157381058,-0.389552354812622,-0.527336001396179,-0.746698975563049,-0.405410170555115,-0.92845356464386,-0.0583510398864746,-0.366836905479431,-0.87441611289978,-0.301674723625183,-0.379985332489014,-0.622417092323303,-0.57678747177124,-0.529068291187286,0.0168807804584503,-0.994113326072693,0.107022620737553,-0.0306009035557508,-0.997195065021515,0.0683054998517036,0.0168807804584503,-0.994113326072693,0.107022620737553,-0.24474510550499,-0.965726613998413,-0.0864405706524849, +-0.019677234813571,-0.996472060680389,0.0815863832831383,-0.940173447132111,-0.338347047567368,0.0399400182068348,-0.960532188415527,-0.266042739152908,-0.0812366455793381,-0.367225795984268,-0.928791701793671,-0.0499137230217457,-0.847318172454834,-0.53082400560379,-0.0166688710451126,-0.367225795984268,-0.928791701793671,-0.0499137230217457,-0.960532188415527,-0.266042739152908,-0.0812366455793381,-0.941931426525116,0.180840581655502,-0.282952129840851,-0.951044321060181,0.0381332151591778,-0.306693017482758,-0.893065690994263,-0.10030859708786,-0.438602268695831,-0.972384393215179,0.0330774523317814,-0.231029376387596,-0.265255957841873,0.204017132520676,-0.942346215248108,-0.951044321060181,0.0381332151591778,-0.306693017482758,-0.972384393215179,0.0330774523317814,-0.231029376387596,-0.951044321060181,0.0381332151591778,-0.306693017482758,-0.941931426525116,0.180840581655502,-0.282952129840851,-0.972384393215179,0.0330774523317814,-0.231029376387596,-0.941931426525116,0.180840581655502,-0.282952129840851,-0.999346315860748,-0.0232181083410978,-0.0277124643325806,-0.253886669874191,-0.965095698833466,-0.0642796754837036,0.728025376796722,-0.683955550193787,0.0467318184673786,-0.0249177627265453,-0.997900485992432,0.0597810372710228,-0.998160719871521,-0.0554283708333969,-0.0245559215545654,-0.976444065570831,0.0395397804677486,-0.212116971611977,-0.993868947029114,0.00853868201375008,-0.110234677791595,-0.121816411614418,-0.989599704742432,0.0765066593885422,-0.583860039710999,-0.799334108829498,-0.14203006029129,-0.0249177627265453,-0.997900485992432,0.0597810372710228,-0.253886669874191,-0.965095698833466,-0.0642796754837036,-0.0249177627265453,-0.997900485992432,0.0597810372710228,-0.583860039710999,-0.799334108829498,-0.14203006029129,-0.229715958237648,-0.972690939903259,-0.0332127660512924,0.728025376796722,-0.683955550193787,0.0467318184673786,-0.253886669874191,-0.965095698833466,-0.0642796754837036,-0.998160719871521,-0.0554283708333969,-0.0245559215545654,-0.993868947029114,0.00853868201375008,-0.110234677791595, +-0.992922842502594,0.0261019766330719,-0.115857362747192,-0.992922842502594,0.0261019766330719,-0.115857362747192,-0.993868947029114,0.00853868201375008,-0.110234677791595,-0.638259530067444,0.537095904350281,-0.551500558853149,0.176064848899841,-0.975834727287292,-0.129413887858391,-0.229715958237648,-0.972690939903259,-0.0332127660512924,-0.253886669874191,-0.965095698833466,-0.0642796754837036,-0.583860039710999,-0.799334108829498,-0.14203006029129,-0.367225795984268,-0.928791701793671,-0.0499137230217457,-0.253886669874191,-0.965095698833466,-0.0642796754837036,-0.847318172454834,-0.53082400560379,-0.0166688710451126,-0.253886669874191,-0.965095698833466,-0.0642796754837036,-0.367225795984268,-0.928791701793671,-0.0499137230217457,0.176064848899841,-0.975834727287292,-0.129413887858391,-0.253886669874191,-0.965095698833466,-0.0642796754837036,-0.847318172454834,-0.53082400560379,-0.0166688710451126,-0.177157148718834,-0.92754328250885,0.329057484865189,0.648926079273224,-0.610268115997314,0.454387336969376,-0.0589423552155495,-0.904565930366516,0.422239571809769,0.576659381389618,0.195369720458984,0.793280959129334,-0.0589423552155495,-0.904565930366516,0.422239571809769,0.93129289150238,0.221314817667007,0.289332538843155,0.93129289150238,0.221314817667007,0.289332538843155,-0.0589423552155495,-0.904565930366516,0.422239571809769,0.648926079273224,-0.610268115997314,0.454387336969376,0.0168807804584503,-0.994113326072693,0.107022620737553,-0.121816411614418,-0.989599704742432,0.0765066593885422,0.0139588341116905,-0.986035168170929,0.165951579809189,-0.0460874661803246,-0.978743076324463,0.199845045804977,0.0139588341116905,-0.986035168170929,0.165951579809189,-0.0568631738424301,-0.968367755413055,0.242961853742599,-0.0568631738424301,-0.968367755413055,0.242961853742599,0.0139588341116905,-0.986035168170929,0.165951579809189,-0.121816411614418,-0.989599704742432,0.0765066593885422,-0.121816411614418,-0.989599704742432,0.0765066593885422,0.0168807804584503,-0.994113326072693,0.107022620737553,-0.019677234813571,-0.996472060680389,0.0815863832831383, +-0.121816411614418,-0.989599704742432,0.0765066593885422,-0.0249177627265453,-0.997900485992432,0.0597810372710228,-0.225670337677002,-0.970490038394928,-0.0849833637475967,-0.225670337677002,-0.970490038394928,-0.0849833637475967,-0.0249177627265453,-0.997900485992432,0.0597810372710228,-0.0350302532315254,-0.959602117538452,0.27917143702507,-0.0249177627265453,-0.997900485992432,0.0597810372710228,0.511508703231812,-0.817431330680847,0.264886498451233,-0.0350302532315254,-0.959602117538452,0.27917143702507,-0.121816411614418,-0.989599704742432,0.0765066593885422,-0.225670337677002,-0.970490038394928,-0.0849833637475967,-0.0568631738424301,-0.968367755413055,0.242961853742599,-0.642501413822174,0.139419049024582,-0.753494739532471,-0.972384393215179,0.0330774523317814,-0.231029376387596,-0.992922842502594,0.0261019766330719,-0.115857362747192,-0.0568631738424301,-0.968367755413055,0.242961853742599,-0.225670337677002,-0.970490038394928,-0.0849833637475967,-0.0460874661803246,-0.978743076324463,0.199845045804977,-0.642501413822174,0.139419049024582,-0.753494739532471,-0.0347143746912479,0.182583525776863,-0.982577323913574,-0.972384393215179,0.0330774523317814,-0.231029376387596,-0.0158866979181767,-0.984543740749359,0.174417436122894,-0.0306009035557508,-0.997195065021515,0.0683054998517036,0.0168807804584503,-0.994113326072693,0.107022620737553,-0.0372006669640541,0.824069142341614,0.56526654958725,-0.0589423552155495,-0.904565930366516,0.422239571809769,0.576659381389618,0.195369720458984,0.793280959129334,-0.118395149707794,-0.987821340560913,0.100953921675682,0.0168807804584503,-0.994113326072693,0.107022620737553,0.0139588341116905,-0.986035168170929,0.165951579809189,0.0168807804584503,-0.994113326072693,0.107022620737553,-0.118395149707794,-0.987821340560913,0.100953921675682,0.00237582065165043,-0.97057968378067,0.240768313407898,0.0407338850200176,-0.906747877597809,0.419700980186462,0.00237582065165043,-0.97057968378067,0.240768313407898,-0.118395149707794,-0.987821340560913,0.100953921675682,-0.0158866979181767,-0.984543740749359,0.174417436122894, +0.0168807804584503,-0.994113326072693,0.107022620737553,0.00237582065165043,-0.97057968378067,0.240768313407898,-0.998160719871521,-0.0554283708333969,-0.0245559215545654,-0.992922842502594,0.0261019766330719,-0.115857362747192,-0.999346315860748,-0.0232181083410978,-0.0277124643325806,-0.992922842502594,0.0261019766330719,-0.115857362747192,-0.972384393215179,0.0330774523317814,-0.231029376387596,-0.999346315860748,-0.0232181083410978,-0.0277124643325806,-0.99347972869873,-0.0936812907457352,0.0649759024381638,-0.998682022094727,-0.0209954082965851,-0.0468342825770378,-0.999346315860748,-0.0232181083410978,-0.0277124643325806,0.00237582065165043,-0.97057968378067,0.240768313407898,-0.182981327176094,-0.717952966690063,0.671611130237579,-0.0823247954249382,-0.955823957920074,0.282176166772842,-0.0823247954249382,-0.955823957920074,0.282176166772842,-0.41856175661087,0.685983180999756,0.595174908638,-0.766642987728119,0.193173572421074,0.612325549125671,-0.182981327176094,-0.717952966690063,0.671611130237579,-0.41856175661087,0.685983180999756,0.595174908638,-0.0823247954249382,-0.955823957920074,0.282176166772842,0.00237582065165043,-0.97057968378067,0.240768313407898,-0.185051679611206,-0.474794983863831,0.860421776771545,-0.294093459844589,-0.381116211414337,0.876504063606262,-0.998160719871521,-0.0554283708333969,-0.0245559215545654,-0.999346315860748,-0.0232181083410978,-0.0277124643325806,-0.998682022094727,-0.0209954082965851,-0.0468342825770378,-0.992923617362976,-0.0989598631858826,0.0656488463282585,-0.772934198379517,-0.0857390835881233,-0.628666639328003,0.990516901016235,0.10075469315052,0.0934074744582176,-0.998160719871521,-0.0554283708333969,-0.0245559215545654,-0.998682022094727,-0.0209954082965851,-0.0468342825770378,-0.553636252880096,-0.54621958732605,0.628594517707825,0.00237582065165043,-0.97057968378067,0.240768313407898,-0.294093459844589,-0.381116211414337,0.876504063606262,-0.182981327176094,-0.717952966690063,0.671611130237579,-0.41856175661087,0.685983180999756,0.595174908638,-0.182981327176094,-0.717952966690063,0.671611130237579, +-0.294093459844589,-0.381116211414337,0.876504063606262,-0.994681715965271,-0.0915281027555466,0.047233123332262,-0.998682022094727,-0.0209954082965851,-0.0468342825770378,-0.99347972869873,-0.0936812907457352,0.0649759024381638,-0.0158866979181767,-0.984543740749359,0.174417436122894,0.00237582065165043,-0.97057968378067,0.240768313407898,-0.0823247954249382,-0.955823957920074,0.282176166772842,-0.0460874661803246,-0.978743076324463,0.199845045804977,-0.0589423552155495,-0.904565930366516,0.422239571809769,-0.118395149707794,-0.987821340560913,0.100953921675682,-0.118395149707794,-0.987821340560913,0.100953921675682,0.0139588341116905,-0.986035168170929,0.165951579809189,-0.0460874661803246,-0.978743076324463,0.199845045804977,-0.0350302532315254,-0.959602117538452,0.27917143702507,0.648926079273224,-0.610268115997314,0.454387336969376,-0.177157148718834,-0.92754328250885,0.329057484865189,0.964405953884125,-0.263973087072372,0.0154753178358078,0.648926079273224,-0.610268115997314,0.454387336969376,0.511508703231812,-0.817431330680847,0.264886498451233,0.648926079273224,-0.610268115997314,0.454387336969376,-0.0350302532315254,-0.959602117538452,0.27917143702507,0.511508703231812,-0.817431330680847,0.264886498451233,0.0407338850200176,-0.906747877597809,0.419700980186462,-0.118395149707794,-0.987821340560913,0.100953921675682,-0.0589423552155495,-0.904565930366516,0.422239571809769,-0.0460874661803246,-0.978743076324463,0.199845045804977,-0.225670337677002,-0.970490038394928,-0.0849833637475967,-0.0350302532315254,-0.959602117538452,0.27917143702507,-0.177157148718834,-0.92754328250885,0.329057484865189,-0.0460874661803246,-0.978743076324463,0.199845045804977,-0.0350302532315254,-0.959602117538452,0.27917143702507,-0.177157148718834,-0.92754328250885,0.329057484865189,-0.0589423552155495,-0.904565930366516,0.422239571809769,-0.0460874661803246,-0.978743076324463,0.199845045804977 + } + BinormalsW: *438 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + + } + LayerElementTangent: 0 { + Version: 102 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "Direct" + Tangents: *1314 { + a: -0.425820499658585,-0.167996034026146,0.889074921607971,-0.550534427165985,0.237131476402283,0.800425112247467,-0.353313088417053,-0.166086971759796,0.92064380645752,-0.246973633766174,-0.943988263607025,0.218838527798653,-0.353313088417053,-0.166086971759796,0.92064380645752,-0.350594907999039,-0.144419983029366,0.925324857234955,-0.550534427165985,0.237131476402283,0.800425112247467,-0.539381206035614,0.526562571525574,0.657114744186401,-0.353313088417053,-0.166086971759796,0.92064380645752,-0.539381206035614,0.526562571525574,0.657114744186401,-0.350594907999039,-0.144419983029366,0.925324857234955,-0.353313088417053,-0.166086971759796,0.92064380645752,-0.353313088417053,-0.166086971759796,0.92064380645752,-0.246973633766174,-0.943988263607025,0.218838527798653,-0.203805029392242,-0.77889609336853,0.593114197254181,-0.353313088417053,-0.166086971759796,0.92064380645752,-0.203805029392242,-0.77889609336853,0.593114197254181,-0.34582993388176,-0.217662021517754,0.912702023983002,-0.999246180057526,-0.0369577445089817,-0.0118826935067773,-0.898284196853638,-0.273356527090073,-0.344037443399429,-0.999117374420166,-0.0412749908864498,0.00779584143310785,-0.922056019306183,0.375087976455688,0.0955089405179024,-0.539381206035614,0.526562571525574,0.657114744186401,-0.550534427165985,0.237131476402283,0.800425112247467,-0.350594907999039,-0.144419983029366,0.925324857234955,-0.507127404212952,0.690461874008179,0.515833616256714,-0.358808100223541,-0.0134928273037076,0.933313846588135,-0.246973633766174,-0.943988263607025,0.218838527798653,-0.350594907999039,-0.144419983029366,0.925324857234955,-0.347613245248795,-0.114828199148178,0.930580198764801,-0.358808100223541,-0.0134928273037076,0.933313846588135,-0.507127404212952,0.690461874008179,0.515833616256714,0.0554199703037739,0.996423602104187,0.0637859627604485,-0.350594907999039,-0.144419983029366,0.925324857234955,-0.358808100223541,-0.0134928273037076,0.933313846588135,-0.347613245248795,-0.114828199148178,0.930580198764801,-0.0429162420332432,0.470025807619095,0.881608724594116, +-0.347613245248795,-0.114828199148178,0.930580198764801,-0.358808100223541,-0.0134928273037076,0.933313846588135,-0.00834277924150229,0.36796823143959,0.929800987243652,-0.352180957794189,-0.127552330493927,0.927199482917786,-0.151100814342499,0.453371793031693,0.87842059135437,-0.246973633766174,-0.943988263607025,0.218838527798653,-0.352180957794189,-0.127552330493927,0.927199482917786,-0.00834277924150229,0.36796823143959,0.929800987243652,-0.246973633766174,-0.943988263607025,0.218838527798653,-0.347613245248795,-0.114828199148178,0.930580198764801,-0.352180957794189,-0.127552330493927,0.927199482917786,-0.151100814342499,0.453371793031693,0.87842059135437,-0.352180957794189,-0.127552330493927,0.927199482917786,-0.347613245248795,-0.114828199148178,0.930580198764801,-0.761755764484406,0.0348154418170452,-0.646928071975708,-0.652346730232239,-0.111181423068047,-0.749721586704254,-0.436293661594391,-0.0206155870109797,-0.899568200111389,-0.436153739690781,-0.0819993615150452,-0.896128237247467,-0.511626183986664,-0.0937187001109123,-0.854081571102142,-0.332894384860992,-0.073634646832943,-0.94008469581604,-0.511626183986664,-0.0937187001109123,-0.854081571102142,-0.652346730232239,-0.111181423068047,-0.749721586704254,-0.557436287403107,-0.21332149207592,-0.802345871925354,-0.436293661594391,-0.0206155870109797,-0.899568200111389,-0.652346730232239,-0.111181423068047,-0.749721586704254,-0.511626183986664,-0.0937187001109123,-0.854081571102142,-0.436153739690781,-0.0819993615150452,-0.896128237247467,-0.384610801935196,0.0679755881428719,-0.920572519302368,-0.511626183986664,-0.0937187001109123,-0.854081571102142,-0.436293661594391,-0.0206155870109797,-0.899568200111389,-0.511626183986664,-0.0937187001109123,-0.854081571102142,-0.384610801935196,0.0679755881428719,-0.920572519302368,-0.976610779762268,0.139866203069687,0.16330648958683,-0.999246180057526,-0.0369577445089817,-0.0118826935067773,-0.999117374420166,-0.0412749908864498,0.00779584143310785,-0.333449006080627,-0.0812743157148361,0.939258337020874,-0.246973633766174,-0.943988263607025,0.218838527798653, +-0.00834277924150229,0.36796823143959,0.929800987243652,-0.0259408019483089,-0.977259039878845,-0.210456326603889,-0.246973633766174,-0.943988263607025,0.218838527798653,-0.250965058803558,-0.673700988292694,0.695085227489471,-0.333449006080627,-0.0812743157148361,0.939258337020874,-0.250965058803558,-0.673700988292694,0.695085227489471,-0.246973633766174,-0.943988263607025,0.218838527798653,0.491978853940964,-0.0405378267168999,-0.869663000106812,0.17189171910286,-0.0601382590830326,-0.983278572559357,-0.00727208470925689,-0.157848849892616,-0.987436532974243,-0.332894384860992,-0.073634646832943,-0.94008469581604,-0.00727208470925689,-0.157848849892616,-0.987436532974243,0.17189171910286,-0.0601382590830326,-0.983278572559357,-0.135851100087166,0.0115284044295549,0.990662217140198,-0.333449006080627,-0.0812743157148361,0.939258337020874,-0.00834277924150229,0.36796823143959,0.929800987243652,0.491978853940964,-0.0405378267168999,-0.869663000106812,0.361468255519867,0.0824587345123291,-0.928731024265289,0.17189171910286,-0.0601382590830326,-0.983278572559357,-0.0259408019483089,-0.977259039878845,-0.210456326603889,-0.250965058803558,-0.673700988292694,0.695085227489471,-0.0124019300565124,-0.998957872390747,0.0439271479845047,0.491548985242844,0.0278017055243254,-0.870406031608582,-0.761941611766815,-0.603871047496796,-0.234061494469643,-0.923752725124359,-0.321005970239639,-0.208893001079559,0.361468255519867,0.0824587345123291,-0.928731024265289,0.491978853940964,-0.0405378267168999,-0.869663000106812,0.364300131797791,0.659192621707916,-0.657837748527527,-0.511626183986664,-0.0937187001109123,-0.854081571102142,-0.557436287403107,-0.21332149207592,-0.802345871925354,-0.332894384860992,-0.073634646832943,-0.94008469581604,-0.332894384860992,-0.073634646832943,-0.94008469581604,0.0127878179773688,-0.211692407727242,-0.977252662181854,-0.00727208470925689,-0.157848849892616,-0.987436532974243,-0.00727208470925689,-0.157848849892616,-0.987436532974243,0.866534769535065,-0.47425502538681,-0.155562192201614,0.491978853940964,-0.0405378267168999,-0.869663000106812, +0.0127878179773688,-0.211692407727242,-0.977252662181854,0.866534769535065,-0.47425502538681,-0.155562192201614,-0.00727208470925689,-0.157848849892616,-0.987436532974243,-0.557436287403107,-0.21332149207592,-0.802345871925354,0.0127878179773688,-0.211692407727242,-0.977252662181854,-0.332894384860992,-0.073634646832943,-0.94008469581604,0.866534769535065,-0.47425502538681,-0.155562192201614,0.0127878179773688,-0.211692407727242,-0.977252662181854,0.481773853302002,-0.48772132396698,-0.728025913238525,-0.0897151827812195,-0.666506409645081,-0.740081369876862,0.00571336597204208,-0.884009122848511,-0.467434823513031,0.018136253580451,-0.797044157981873,-0.603648722171783,0.481773853302002,-0.48772132396698,-0.728025913238525,0.0127878179773688,-0.211692407727242,-0.977252662181854,-0.557436287403107,-0.21332149207592,-0.802345871925354,-0.539381206035614,0.526562571525574,0.657114744186401,-0.439978867769241,0.811901390552521,0.383711785078049,-0.350594907999039,-0.144419983029366,0.925324857234955,-0.507127404212952,0.690461874008179,0.515833616256714,-0.350594907999039,-0.144419983029366,0.925324857234955,-0.439978867769241,0.811901390552521,0.383711785078049,-0.999629259109497,0.0270773097872734,-0.00287874508649111,-0.970091998577118,-0.0493264943361282,-0.237672865390778,-0.972573339939117,-0.0450262688100338,-0.228196278214455,-0.972573339939117,-0.0450262688100338,-0.228196278214455,-0.970091998577118,-0.0493264943361282,-0.237672865390778,-0.969849169254303,-0.0272534880787134,-0.242177337408066,-0.969849169254303,-0.0272534880787134,-0.242177337408066,-0.970091998577118,-0.0493264943361282,-0.237672865390778,-0.996845841407776,-0.0788694471120834,-0.00883271265774965,-0.652346730232239,-0.111181423068047,-0.749721586704254,-0.761755764484406,0.0348154418170452,-0.646928071975708,-0.972573339939117,-0.0450262688100338,-0.228196278214455,-0.761755764484406,0.0348154418170452,-0.646928071975708,-0.881992101669312,0.209599539637566,-0.422087728977203,-0.972573339939117,-0.0450262688100338,-0.228196278214455,-0.881992101669312,0.209599539637566,-0.422087728977203, +-0.999629259109497,0.0270773097872734,-0.00287874508649111,-0.972573339939117,-0.0450262688100338,-0.228196278214455,-0.972573339939117,-0.0450262688100338,-0.228196278214455,-0.969849169254303,-0.0272534880787134,-0.242177337408066,-0.652346730232239,-0.111181423068047,-0.749721586704254,-0.995110392570496,-0.0260683782398701,-0.0952668264508247,-0.999117374420166,-0.0412749908864498,0.00779584143310785,-0.898284196853638,-0.273356527090073,-0.344037443399429,-0.652346730232239,-0.111181423068047,-0.749721586704254,-0.969849169254303,-0.0272534880787134,-0.242177337408066,-0.557436287403107,-0.21332149207592,-0.802345871925354,-0.969849169254303,-0.0272534880787134,-0.242177337408066,-0.996845841407776,-0.0788694471120834,-0.00883271265774965,-0.991239488124847,0.039060439914465,0.126169234514236,0.0312796123325825,-0.939640283584595,-0.340730965137482,-0.246973633766174,-0.943988263607025,0.218838527798653,-0.0259408019483089,-0.977259039878845,-0.210456326603889,-0.916926562786102,-0.0382902696728706,-0.397214829921722,-0.704935729503632,-0.292271584272385,-0.646252930164337,-0.969849169254303,-0.0272534880787134,-0.242177337408066,0.0312796123325825,-0.939640283584595,-0.340730965137482,0.018136253580451,-0.797044157981873,-0.603648722171783,0.00571336597204208,-0.884009122848511,-0.467434823513031,0.00571336597204208,-0.884009122848511,-0.467434823513031,0.0335233435034752,-0.784763038158417,-0.61888861656189,0.0312796123325825,-0.939640283584595,-0.340730965137482,0.0376585833728313,-0.749145030975342,-0.661334693431854,0.0326992571353912,-0.725929141044617,-0.686991751194,-0.00981920026242733,-0.62282133102417,-0.782302558422089,0.0376585833728313,-0.749145030975342,-0.661334693431854,-0.00981920026242733,-0.62282133102417,-0.782302558422089,0.0335233435034752,-0.784763038158417,-0.61888861656189,-0.340684473514557,-0.652909815311432,-0.676493048667908,0.0326992571353912,-0.725929141044617,-0.686991751194,0.0376585833728313,-0.749145030975342,-0.661334693431854,-0.916926562786102,-0.0382902696728706,-0.397214829921722, +-0.575037121772766,-0.630831301212311,-0.520945489406586,-0.704935729503632,-0.292271584272385,-0.646252930164337,0.0685708969831467,-0.71948516368866,-0.69111442565918,-0.704935729503632,-0.292271584272385,-0.646252930164337,-0.575037121772766,-0.630831301212311,-0.520945489406586,0.0685708969831467,-0.71948516368866,-0.69111442565918,-0.246086999773979,-0.356927335262299,-0.901134848594666,-0.704935729503632,-0.292271584272385,-0.646252930164337,0.00571336597204208,-0.884009122848511,-0.467434823513031,0.0376585833728313,-0.749145030975342,-0.661334693431854,0.0335233435034752,-0.784763038158417,-0.61888861656189,-0.0897151827812195,-0.666506409645081,-0.740081369876862,0.0376585833728313,-0.749145030975342,-0.661334693431854,0.00571336597204208,-0.884009122848511,-0.467434823513031,-0.704935729503632,-0.292271584272385,-0.646252930164337,-0.557436287403107,-0.21332149207592,-0.802345871925354,-0.969849169254303,-0.0272534880787134,-0.242177337408066,0.419091910123825,-0.548618316650391,-0.723450005054474,0.238441705703735,-0.414509534835815,-0.878252506256104,-0.557436287403107,-0.21332149207592,-0.802345871925354,-0.557436287403107,-0.21332149207592,-0.802345871925354,-0.246086999773979,-0.356927335262299,-0.901134848594666,0.419091910123825,-0.548618316650391,-0.723450005054474,0.238441705703735,-0.414509534835815,-0.878252506256104,0.481773853302002,-0.48772132396698,-0.728025913238525,-0.557436287403107,-0.21332149207592,-0.802345871925354,-0.557436287403107,-0.21332149207592,-0.802345871925354,-0.704935729503632,-0.292271584272385,-0.646252930164337,-0.246086999773979,-0.356927335262299,-0.901134848594666,-0.52061003446579,0.0556797012686729,0.851977109909058,-0.433200150728226,0.0565456822514534,0.899522364139557,-0.127013117074966,-0.0828558504581451,0.988434374332428,-0.127013117074966,-0.0828558504581451,0.988434374332428,-0.433200150728226,0.0565456822514534,0.899522364139557,-0.402003824710846,0.0561972670257092,0.913911819458008,-0.127013117074966,-0.0828558504581451,0.988434374332428,0.047507718205452,-0.0141114257276058,0.998771131038666, +-0.00957140047103167,-0.0498867705464363,0.99870902299881,-0.52061003446579,0.0556797012686729,0.851977109909058,-0.127013117074966,-0.0828558504581451,0.988434374332428,-0.279585510492325,0.0838308483362198,0.956454038619995,-0.405711889266968,0.119992271065712,0.906090378761292,-0.279585510492325,0.0838308483362198,0.956454038619995,-0.127013117074966,-0.0828558504581451,0.988434374332428,-0.702806890010834,0.114367462694645,0.70212733745575,-0.52061003446579,0.0556797012686729,0.851977109909058,-0.97889119386673,0.00537310400977731,0.204311221837997,-0.52061003446579,0.0556797012686729,0.851977109909058,-0.702806890010834,0.114367462694645,0.70212733745575,-0.378582328557968,-0.124827936291695,0.917111396789551,-0.52061003446579,0.0556797012686729,0.851977109909058,-0.378582328557968,-0.124827936291695,0.917111396789551,-0.433200150728226,0.0565456822514534,0.899522364139557,-0.402003824710846,0.0561972670257092,0.913911819458008,-0.433200150728226,0.0565456822514534,0.899522364139557,-0.378582328557968,-0.124827936291695,0.917111396789551,-0.429977506399155,-0.205458030104637,0.879151046276093,-0.425820499658585,-0.167996034026146,0.889074921607971,-0.280965447425842,-0.297053307294846,0.91258841753006,-0.353313088417053,-0.166086971759796,0.92064380645752,-0.280965447425842,-0.297053307294846,0.91258841753006,-0.425820499658585,-0.167996034026146,0.889074921607971,-0.348682582378387,-0.153851255774498,0.924526989459991,-0.353313088417053,-0.166086971759796,0.92064380645752,-0.34582993388176,-0.217662021517754,0.912702023983002,-0.280965447425842,-0.297053307294846,0.91258841753006,-0.353313088417053,-0.166086971759796,0.92064380645752,-0.348682582378387,-0.153851255774498,0.924526989459991,-0.702806890010834,0.114367462694645,0.70212733745575,-0.97889119386673,0.00537310400977731,0.204311221837997,-0.991239488124847,0.039060439914465,0.126169234514236,-0.97889119386673,0.00537310400977731,0.204311221837997,-0.52061003446579,0.0556797012686729,0.851977109909058,-0.279585510492325,0.0838308483362198,0.956454038619995, +0.047507718205452,-0.0141114257276058,0.998771131038666,-0.0446429662406445,-0.140820696949959,0.989028096199036,-0.00957140047103167,-0.0498867705464363,0.99870902299881,0.348072797060013,-0.57876318693161,0.737481296062469,-0.00957140047103167,-0.0498867705464363,0.99870902299881,-0.0446429662406445,-0.140820696949959,0.989028096199036,-0.246973633766174,-0.943988263607025,0.218838527798653,0.0194404236972332,-0.983011960983276,-0.182508587837219,-0.203805029392242,-0.77889609336853,0.593114197254181,0.0106649594381452,-0.982573688030243,-0.185567200183868,-0.25935697555542,-0.95643162727356,-0.134061619639397,0.0194404236972332,-0.983011960983276,-0.182508587837219,0.0106649594381452,-0.982573688030243,-0.185567200183868,0.0194404236972332,-0.983011960983276,-0.182508587837219,-0.246973633766174,-0.943988263607025,0.218838527798653,0.0106649594381452,-0.982573688030243,-0.185567200183868,-0.246973633766174,-0.943988263607025,0.218838527798653,0.0312796123325825,-0.939640283584595,-0.340730965137482,-0.0260993838310242,-0.0595974065363407,0.997881233692169,0.644689381122589,0.706222474575043,0.292618185281754,0.0419225618243217,0.0587039291858673,0.997394800186157,0.0595996156334877,-0.823033154010773,-0.564857959747314,0.188226997852325,-0.324516952037811,-0.926962435245514,0.0625574812293053,-0.778653264045715,-0.624328136444092,-0.405711889266968,0.119992271065712,0.906090378761292,-0.127013117074966,-0.0828558504581451,0.988434374332428,0.0419225618243217,0.0587039291858673,0.997394800186157,-0.0260993838310242,-0.0595974065363407,0.997881233692169,0.0419225618243217,0.0587039291858673,0.997394800186157,-0.127013117074966,-0.0828558504581451,0.988434374332428,0.291302859783173,-0.101276479661465,0.951254785060883,0.644689381122589,0.706222474575043,0.292618185281754,-0.0260993838310242,-0.0595974065363407,0.997881233692169,0.0595996156334877,-0.823033154010773,-0.564857959747314,0.0625574812293053,-0.778653264045715,-0.624328136444092,0.0193377304822207,-0.926994979381561,-0.374575018882751,0.0193377304822207,-0.926994979381561,-0.374575018882751, +0.0625574812293053,-0.778653264045715,-0.624328136444092,0.126576364040375,-0.633431792259216,-0.763375759124756,0.934807062149048,0.124553620815277,0.332599014043808,0.291302859783173,-0.101276479661465,0.951254785060883,-0.0260993838310242,-0.0595974065363407,0.997881233692169,-0.127013117074966,-0.0828558504581451,0.988434374332428,-0.00957140047103167,-0.0498867705464363,0.99870902299881,-0.0260993838310242,-0.0595974065363407,0.997881233692169,0.348072797060013,-0.57876318693161,0.737481296062469,-0.0260993838310242,-0.0595974065363407,0.997881233692169,-0.00957140047103167,-0.0498867705464363,0.99870902299881,0.934807062149048,0.124553620815277,0.332599014043808,-0.0260993838310242,-0.0595974065363407,0.997881233692169,0.348072797060013,-0.57876318693161,0.737481296062469,-0.806717753410339,0.32837501168251,0.491300851106644,-0.0478719845414162,0.563276767730713,0.824880361557007,-0.976610779762268,0.139866203069687,0.16330648958683,-0.810145914554596,0.262116998434067,0.524364650249481,-0.976610779762268,0.139866203069687,0.16330648958683,-0.352678865194321,0.746587872505188,0.564113438129425,-0.352678865194321,0.746587872505188,0.564113438129425,-0.976610779762268,0.139866203069687,0.16330648958683,-0.0478719845414162,0.563276767730713,0.824880361557007,-0.97889119386673,0.00537310400977731,0.204311221837997,-0.405711889266968,0.119992271065712,0.906090378761292,-0.538502752780914,0.132429465651512,0.832152247428894,-0.55990594625473,0.190988257527351,0.806243658065796,-0.538502752780914,0.132429465651512,0.832152247428894,-0.423930168151855,0.243746817111969,0.872279047966003,-0.423930168151855,0.243746817111969,0.872279047966003,-0.538502752780914,0.132429465651512,0.832152247428894,-0.405711889266968,0.119992271065712,0.906090378761292,-0.405711889266968,0.119992271065712,0.906090378761292,-0.97889119386673,0.00537310400977731,0.204311221837997,-0.279585510492325,0.0838308483362198,0.956454038619995,-0.405711889266968,0.119992271065712,0.906090378761292,0.0419225618243217,0.0587039291858673,0.997394800186157, +-0.72229129076004,0.108140349388123,0.683081865310669,-0.72229129076004,0.108140349388123,0.683081865310669,0.0419225618243217,0.0587039291858673,0.997394800186157,-0.552691102027893,0.251339197158813,0.794582426548004,0.0419225618243217,0.0587039291858673,0.997394800186157,0.409647852182388,0.502959012985229,0.761065661907196,-0.552691102027893,0.251339197158813,0.794582426548004,-0.405711889266968,0.119992271065712,0.906090378761292,-0.72229129076004,0.108140349388123,0.683081865310669,-0.423930168151855,0.243746817111969,0.872279047966003,0.129013612866402,-0.94959157705307,-0.285712122917175,0.0106649594381452,-0.982573688030243,-0.185567200183868,0.0193377304822207,-0.926994979381561,-0.374575018882751,-0.423930168151855,0.243746817111969,0.872279047966003,-0.72229129076004,0.108140349388123,0.683081865310669,-0.55990594625473,0.190988257527351,0.806243658065796,0.129013612866402,-0.94959157705307,-0.285712122917175,-0.0342535711824894,-0.982809603214264,-0.181416511535645,0.0106649594381452,-0.982573688030243,-0.185567200183868,-0.969849169254303,-0.0272534880787134,-0.242177337408066,-0.991239488124847,0.039060439914465,0.126169234514236,-0.97889119386673,0.00537310400977731,0.204311221837997,-0.999246180057526,-0.0369577445089817,-0.0118826935067773,-0.976610779762268,0.139866203069687,0.16330648958683,-0.810145914554596,0.262116998434067,0.524364650249481,-0.9928178191185,0.119523406028748,0.00518021965399385,-0.97889119386673,0.00537310400977731,0.204311221837997,-0.538502752780914,0.132429465651512,0.832152247428894,-0.97889119386673,0.00537310400977731,0.204311221837997,-0.9928178191185,0.119523406028748,0.00518021965399385,-0.995110392570496,-0.0260683782398701,-0.0952668264508247,-0.999117374420166,-0.0412749908864498,0.00779584143310785,-0.995110392570496,-0.0260683782398701,-0.0952668264508247,-0.9928178191185,0.119523406028748,0.00518021965399385,-0.969849169254303,-0.0272534880787134,-0.242177337408066,-0.97889119386673,0.00537310400977731,0.204311221837997,-0.995110392570496,-0.0260683782398701,-0.0952668264508247, +0.0595996156334877,-0.823033154010773,-0.564857959747314,0.0193377304822207,-0.926994979381561,-0.374575018882751,0.0312796123325825,-0.939640283584595,-0.340730965137482,0.0193377304822207,-0.926994979381561,-0.374575018882751,0.0106649594381452,-0.982573688030243,-0.185567200183868,0.0312796123325825,-0.939640283584595,-0.340730965137482,0.0335233435034752,-0.784763038158417,-0.61888861656189,0.0418068766593933,-0.86210310459137,-0.505005478858948,0.0312796123325825,-0.939640283584595,-0.340730965137482,-0.995110392570496,-0.0260683782398701,-0.0952668264508247,-0.928729832172394,-0.0978326946496964,-0.357616871595383,-0.916926562786102,-0.0382902696728706,-0.397214829921722,-0.916926562786102,-0.0382902696728706,-0.397214829921722,-0.901627361774445,-0.392500191926956,-0.181691437959671,-0.575037121772766,-0.630831301212311,-0.520945489406586,-0.928729832172394,-0.0978326946496964,-0.357616871595383,-0.901627361774445,-0.392500191926956,-0.181691437959671,-0.916926562786102,-0.0382902696728706,-0.397214829921722,-0.995110392570496,-0.0260683782398701,-0.0952668264508247,-0.898284196853638,-0.273356527090073,-0.344037443399429,-0.953429460525513,0.0527510084211826,-0.296967387199402,0.0595996156334877,-0.823033154010773,-0.564857959747314,0.0312796123325825,-0.939640283584595,-0.340730965137482,0.0418068766593933,-0.86210310459137,-0.505005478858948,0.0980892926454544,-0.371805220842361,0.923114061355591,-0.493691653013229,-0.541112661361694,0.680783092975616,0.134126871824265,-0.856452584266663,-0.49849671125412,0.0595996156334877,-0.823033154010773,-0.564857959747314,0.0418068766593933,-0.86210310459137,-0.505005478858948,-0.73119455575943,-0.0424053333699703,-0.68084979057312,-0.995110392570496,-0.0260683782398701,-0.0952668264508247,-0.953429460525513,0.0527510084211826,-0.296967387199402,-0.928729832172394,-0.0978326946496964,-0.357616871595383,-0.901627361774445,-0.392500191926956,-0.181691437959671,-0.928729832172394,-0.0978326946496964,-0.357616871595383,-0.953429460525513,0.0527510084211826,-0.296967387199402, +-0.0782754570245743,0.373704493045807,-0.924239099025726,0.0418068766593933,-0.86210310459137,-0.505005478858948,0.0335233435034752,-0.784763038158417,-0.61888861656189,-0.969849169254303,-0.0272534880787134,-0.242177337408066,-0.995110392570496,-0.0260683782398701,-0.0952668264508247,-0.916926562786102,-0.0382902696728706,-0.397214829921722,-0.55990594625473,0.190988257527351,0.806243658065796,-0.976610779762268,0.139866203069687,0.16330648958683,-0.9928178191185,0.119523406028748,0.00518021965399385,-0.9928178191185,0.119523406028748,0.00518021965399385,-0.538502752780914,0.132429465651512,0.832152247428894,-0.55990594625473,0.190988257527351,0.806243658065796,-0.552691102027893,0.251339197158813,0.794582426548004,-0.0478719845414162,0.563276767730713,0.824880361557007,-0.806717753410339,0.32837501168251,0.491300851106644,0.237046360969543,0.888998985290527,0.391777753829956,-0.0478719845414162,0.563276767730713,0.824880361557007,0.409647852182388,0.502959012985229,0.761065661907196,-0.0478719845414162,0.563276767730713,0.824880361557007,-0.552691102027893,0.251339197158813,0.794582426548004,0.409647852182388,0.502959012985229,0.761065661907196,-0.999117374420166,-0.0412749908864498,0.00779584143310785,-0.9928178191185,0.119523406028748,0.00518021965399385,-0.976610779762268,0.139866203069687,0.16330648958683,-0.55990594625473,0.190988257527351,0.806243658065796,-0.72229129076004,0.108140349388123,0.683081865310669,-0.552691102027893,0.251339197158813,0.794582426548004,-0.806717753410339,0.32837501168251,0.491300851106644,-0.55990594625473,0.190988257527351,0.806243658065796,-0.552691102027893,0.251339197158813,0.794582426548004,-0.806717753410339,0.32837501168251,0.491300851106644,-0.976610779762268,0.139866203069687,0.16330648958683,-0.55990594625473,0.190988257527351,0.806243658065796 + } + TangentsW: *438 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementUV: 0 { + Version: 101 + Name: "map1" + MappingInformationType: "ByPolygonVertex" + ReferenceInformationType: "IndexToDirect" + UV: *234 { + a: 0.637479245662689,0.547448813915253,0.550947368144989,0.731062650680542,0.773428797721863,0.564315259456635,0.37962082028389,0.0241248197853565,0.37497079372406,0.0125314109027386,0.438700020313263,0.017742058262229,0.363132268190384,0.456076323986053,0.784605801105499,0.690548181533813,0.752894341945648,0.862555325031281,0.739393889904022,0.867305874824524,0.826241314411163,0.748914182186127,0.825286567211151,0.768336534500122,0.827620625495911,0.758510231971741,0.572579741477966,0.475124061107636,0.764902651309967,0.850868225097656,0.583110153675079,0.475543558597565,0.796489238739014,0.826262533664703,0.64873343706131,0.460467159748077,0.704382359981537,0.459529638290405,0.793491840362549,0.441484928131104,0.599681973457336,0.463370442390442,0.695277333259583,0.448341697454453,0.688775241374969,0.459003269672394,0.700987815856934,0.936807513237,0.104711480438709,0.642381548881531,0.565578401088715,0.9668790102005,0.584104120731354,0.957602500915527,0.642465651035309,0.952727794647217,0.672398269176483,0.953857719898224,0.829978346824646,0.438465625047684,0.915863811969757,0.400974273681641,0.914381265640259,0.372542351484299,0.537154138088226,0.96954756975174,0.128531947731972,0.724742114543915,0.917199373245239,0.422462999820709,0.863871872425079,0.437201112508774,0.83967137336731,0.387896418571472,0.803494989871979,0.223256751894951,0.826588869094849,0.256837636232376,0.306640297174454,0.947046339511871,0.349067866802216,0.988258004188538,0.118060685694218,0.69809502363205,0.882898271083832,0.296484470367432,0.804522156715393,0.650573432445526,0.808641076087952,0.701268255710602,0.555065333843231,0.471904277801514,0.456375151872635,0.472854763269424,0.508827805519104,0.480637788772583,0.557450532913208,0.434954255819321,0.456236004829407,0.961412847042084,0.777070820331573,0.170696631073952,0.757336378097534,0.155302092432976,0.227618053555489,0.942336618900299,0.281229078769684,0.943492889404297,0.321235209703445,0.936104357242584,0.213324621319771,0.93259459733963,0.622854173183441,0.0871439874172211, +0.618728816509247,0.0742416754364967,0.692892134189606,0.116709105670452,0.708085298538208,0.128259494900703,0.757558524608612,0.215098962187767,0.669048130512238,0.1074034050107,0.569986462593079,0.517868340015411,0.144807040691376,0.406461775302887,0.178535282611847,0.417558372020721,0.192444115877151,0.414643496274948,0.153158262372017,0.424671202898026,0.260120362043381,0.0222583394497633,0.204151809215546,0.302959710359573,0.248672872781754,0.0418332554399967,0.252436131238937,0.321102112531662,0.274907946586609,0.447407156229019,0.216349884867668,0.368648022413254,0.229066520929337,0.434325814247131,0.717523396015167,0.500753343105316,0.633525431156158,0.478176832199097,0.210223108530045,0.397760003805161,0.621145367622375,0.484853357076645,0.672015964984894,0.488680601119995,0.60305380821228,0.503674328327179,0.14939446747303,0.520718991756439,0.0818674713373184,0.412359535694122,0.118473179638386,0.428462475538254,0.119797639548779,0.535090565681458,0.454244405031204,0.50591254234314,0.530104100704193,0.516917169094086,0.103792585432529,0.265983909368515,0.11423459649086,0.327761471271515,0.0810328722000122,0.335825055837631,0.092640332877636,0.312206417322159,0.16070069372654,0.266826599836349,0.208929762244225,0.0533048510551453,0.388146549463272,0.47645777463913,0.434192031621933,0.487701535224915,0.177626773715019,0.197592243552208,0.117857374250889,0.199426218867302,0.160172998905182,0.175785481929779,0.131541430950165,0.123149141669273,0.259764283895493,0.479677766561508,0.325309216976166,0.460092663764954,0.225530922412872,0.0532812736928463,0.451553076505661,0.0915484428405762,0.53512704372406,0.385737419128418,0.161324888467789,0.858570754528046,0.606198906898499,0.0639332830905914,0.161416068673134,0.873832523822784,0.468027114868164,0.0183798763900995,0.151939988136292,0.760367691516876,0.521977007389069,0.0527343489229679,0.27129864692688,0.153320983052254,0.238101914525032,0.172990888357162,0.239794090390205,0.13553948700428,0.146344587206841,0.0747499465942383,0.219999983906746,0.50129634141922, +0.189776912331581,0.109352841973305,0.2219368070364,0.0316022150218487,0.17890328168869,0.502014875411987 + } + UVIndex: *438 { + a: 78,74,0,1,0,7,74,43,0,43,7,0,0,1,85,0,85,62,4,5,3,2,43,74,7,10,11,1,7,14,11,10,12,7,11,14,16,14,11,23,9,8,1,9,23,1,14,9,8,9,14,15,20,17,18,21,19,21,20,60,17,20,21,18,22,21,17,21,22,69,4,3,27,1,23,32,1,26,27,26,1,30,29,36,19,36,29,28,27,23,30,35,29,32,26,25,30,42,31,35,30,34,21,60,19,19,38,36,36,42,30,38,42,36,60,38,19,42,38,37,39,54,40,37,38,60,43,44,7,10,7,44,45,47,48,48,47,102,102,47,46,20,15,48,15,13,48,13,45,48,48,102,20,101,3,5,20,102,60,102,46,6,49,1,32,56,61,102,49,40,54,54,103,49,53,55,105,53,105,103,52,55,53,56,57,61,58,61,57,58,59,61,54,53,103,39,53,54,61,60,102,51,50,60,60,59,51,50,37,60,60,61,59,72,76,64,64,76,65,64,66,63,72,64,68,90,68,64,71,72,70,72,71,73,72,73,76,65,76,73,75,78,77,0,77,78,79,0,62,77,0,79,71,70,6,70,72,68,66,82,63,81,63,82,1,84,85,92,93,84,92,84,1,92,1,49,87,86,95,24,83,80,90,64,95,87,95,64,89,86,87,24,80,113,113,80,116,88,89,87,64,63,87,81,87,63,88,87,81,100,91,69,67,69,115,115,69,91,70,90,110,111,110,94,94,110,90,90,70,68,90,95,96,96,95,114,95,97,114,90,96,94,98,92,113,94,96,111,98,99,92,102,6,70,4,69,67,109,70,110,70,109,101,3,101,109,102,70,101,24,113,49,113,92,49,103,107,49,101,108,56,56,104,57,108,104,56,101,5,106,24,49,107,33,41,107,24,107,41,101,106,108,104,108,106,33,107,103,102,101,56,111,69,109,109,110,111,114,91,100,112,91,97,91,114,97,3,109,69,111,96,114,100,111,114,100,69,111 + } + } + LayerElementSmoothing: 0 { + Version: 102 + Name: "" + MappingInformationType: "ByEdge" + ReferenceInformationType: "Direct" + Smoothing: *219 { + a: 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 + } + } + LayerElementMaterial: 0 { + Version: 101 + Name: "" + MappingInformationType: "AllSame" + ReferenceInformationType: "IndexToDirect" + Materials: *1 { + a: 0 + } + } + Layer: 0 { + Version: 100 + LayerElement: { + Type: "LayerElementNormal" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementBinormal" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementTangent" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementMaterial" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementSmoothing" + TypedIndex: 0 + } + LayerElement: { + Type: "LayerElementUV" + TypedIndex: 0 + } + } + } + Model: 664387383840, "Model::rcgRock012_LOD0", "Mesh" { + Version: 232 + Properties70: { + P: "RotationPivot", "Vector3D", "Vector", "",0,3.5527136788005e-015,0 + P: "ScalingPivot", "Vector3D", "Vector", "",0,3.5527136788005e-015,0 + P: "RotationActive", "bool", "", "",1 + P: "InheritType", "enum", "", "",1 + P: "ScalingMax", "Vector3D", "Vector", "",0,0,0 + P: "DefaultAttributeIndex", "int", "Integer", "",0 + P: "currentUVSet", "KString", "", "U", "map1" + } + Shading: T + Culling: "CullingOff" + } + Model: 664387400080, "Model::rcgRock012_LOD1", "Mesh" { + Version: 232 + Properties70: { + P: "RotationPivot", "Vector3D", "Vector", "",0,3.5527136788005e-015,0 + P: "ScalingPivot", "Vector3D", "Vector", "",0,3.5527136788005e-015,0 + P: "RotationActive", "bool", "", "",1 + P: "InheritType", "enum", "", "",1 + P: "ScalingMax", "Vector3D", "Vector", "",0,0,0 + P: "DefaultAttributeIndex", "int", "Integer", "",0 + P: "currentUVSet", "KString", "", "U", "map1" + } + Shading: T + Culling: "CullingOff" + } + Model: 664387397760, "Model::rcgRock012_LOD2", "Mesh" { + Version: 232 + Properties70: { + P: "RotationPivot", "Vector3D", "Vector", "",0,3.5527136788005e-015,0 + P: "ScalingPivot", "Vector3D", "Vector", "",0,3.5527136788005e-015,0 + P: "RotationActive", "bool", "", "",1 + P: "InheritType", "enum", "", "",1 + P: "ScalingMax", "Vector3D", "Vector", "",0,0,0 + P: "DefaultAttributeIndex", "int", "Integer", "",0 + P: "currentUVSet", "KString", "", "U", "map1" + } + Shading: T + Culling: "CullingOff" + } + Model: 664387402400, "Model::rcgRock012_LOD3", "Mesh" { + Version: 232 + Properties70: { + P: "RotationPivot", "Vector3D", "Vector", "",0,3.5527136788005e-015,0 + P: "ScalingPivot", "Vector3D", "Vector", "",0,3.5527136788005e-015,0 + P: "RotationActive", "bool", "", "",1 + P: "InheritType", "enum", "", "",1 + P: "ScalingMax", "Vector3D", "Vector", "",0,0,0 + P: "DefaultAttributeIndex", "int", "Integer", "",0 + P: "currentUVSet", "KString", "", "U", "map1" + } + Shading: T + Culling: "CullingOff" + } + Material: 664196490064, "Material::rcgRock012Material", "" { + Version: 102 + ShadingModel: "unknown" + MultiLayer: 0 + Properties70: { + P: "Maya", "Compound", "", "" + P: "Maya|TypeId", "int", "Integer", "",1166017 + P: "Maya|TEX_global_diffuse_cube", "Vector3D", "Vector", "",0,0,0 + P: "Maya|TEX_global_specular_cube", "Vector3D", "Vector", "",0,0,0 + P: "Maya|TEX_brdf_lut", "Vector3D", "Vector", "",0,0,0 + P: "Maya|use_normal_map", "float", "", "",1 + P: "Maya|TEX_normal_map", "Vector3D", "Vector", "",0,0,0 + P: "Maya|use_color_map", "float", "", "",1 + P: "Maya|TEX_color_map", "Vector3D", "Vector", "",0,0,0 + P: "Maya|base_color", "Vector3D", "Vector", "",0.5,0.5,0.5 + P: "Maya|use_metallic_map", "float", "", "",0 + P: "Maya|TEX_metallic_map", "Vector3D", "Vector", "",0,0,0 + P: "Maya|metallic", "float", "", "",0 + P: "Maya|use_roughness_map", "float", "", "",1 + P: "Maya|TEX_roughness_map", "Vector3D", "Vector", "",0,0,0 + P: "Maya|roughness", "float", "", "",0.33 + P: "Maya|use_emissive_map", "float", "", "",0 + P: "Maya|TEX_emissive_map", "Vector3D", "Vector", "",0,0,0 + P: "Maya|emissive", "Vector3D", "Vector", "",0,0,0 + P: "Maya|emissive_intensity", "float", "", "",1 + P: "Maya|use_ao_map", "float", "", "",1 + P: "Maya|TEX_ao_map", "Vector3D", "Vector", "",0,0,0 + } + } + Video: 664389649568, "Video::rcgRock012AO", "Clip" { + Type: "Clip" + Properties70: { + P: "Path", "KString", "XRefUrl", "", "rcgRock012_4K_Occlusion.tga" + } + UseMipMap: 0 + Filename: "rcgRock012_4K_Occlusion.tga" + RelativeFilename: "rcgRock012_4K_Occlusion.tga" + } + Video: 664389649968, "Video::file2", "Clip" { + Type: "Clip" + Properties70: { + P: "Path", "KString", "XRefUrl", "", "" + } + UseMipMap: 0 + Filename: "" + RelativeFilename: "" + } + Video: 664389659168, "Video::file1", "Clip" { + Type: "Clip" + Properties70: { + P: "Path", "KString", "XRefUrl", "", "" + } + UseMipMap: 0 + Filename: "" + RelativeFilename: "" + } + Video: 664389661168, "Video::rcgRock012Roughness", "Clip" { + Type: "Clip" + Properties70: { + P: "Path", "KString", "XRefUrl", "", "rcgRock012_4K_UnityMetallicSmoothness.tga" + } + UseMipMap: 0 + Filename: "rcgRock012_4K_UnityMetallicSmoothness.tga" + RelativeFilename: "rcgRock012_4K_UnityMetallicSmoothness.tga" + } + Video: 664389665968, "Video::file3", "Clip" { + Type: "Clip" + Properties70: { + P: "Path", "KString", "XRefUrl", "", "" + } + UseMipMap: 0 + Filename: "" + RelativeFilename: "" + } + Video: 664389655568, "Video::rcgRock012Albedo", "Clip" { + Type: "Clip" + Properties70: { + P: "Path", "KString", "XRefUrl", "", "rcgRock012_4K_Albedo.tga" + } + UseMipMap: 0 + Filename: "rcgRock012_4K_Albedo.tga" + RelativeFilename: "rcgRock012_4K_Albedo.tga" + } + Video: 664389664768, "Video::rcgRock012Normal", "Clip" { + Type: "Clip" + Properties70: { + P: "Path", "KString", "XRefUrl", "", "rcgRock012_4K_Normal.tga" + } + UseMipMap: 0 + Filename: "rcgRock012_4K_Normal.tga" + RelativeFilename: "rcgRock012_4K_Normal.tga" + } + Texture: 664307460304, "Texture::rcgRock012AO", "" { + Type: "TextureVideoClip" + Version: 202 + TextureName: "Texture::rcgRock012AO" + Properties70: { + P: "UseMaterial", "bool", "", "",1 + } + Media: "Video::rcgRock012AO" + FileName: "rcgRock012_4K_Occlusion.tga" + RelativeFilename: "rcgRock012_4K_Occlusion.tga" + ModelUVTranslation: 0,0 + ModelUVScaling: 1,1 + Texture_Alpha_Source: "None" + Cropping: 0,0,0,0 + } + Texture: 664307460784, "Texture::file2", "" { + Type: "TextureVideoClip" + Version: 202 + TextureName: "Texture::file2" + Properties70: { + P: "UseMaterial", "bool", "", "",1 + } + Media: "Video::file2" + FileName: "" + RelativeFilename: "" + ModelUVTranslation: 0,0 + ModelUVScaling: 1,1 + Texture_Alpha_Source: "None" + Cropping: 0,0,0,0 + } + Texture: 664307466064, "Texture::file1", "" { + Type: "TextureVideoClip" + Version: 202 + TextureName: "Texture::file1" + Properties70: { + P: "UseMaterial", "bool", "", "",1 + } + Media: "Video::file1" + FileName: "" + RelativeFilename: "" + ModelUVTranslation: 0,0 + ModelUVScaling: 1,1 + Texture_Alpha_Source: "None" + Cropping: 0,0,0,0 + } + Texture: 664307463664, "Texture::rcgRock012Roughness", "" { + Type: "TextureVideoClip" + Version: 202 + TextureName: "Texture::rcgRock012Roughness" + Properties70: { + P: "UseMaterial", "bool", "", "",1 + } + Media: "Video::rcgRock012Roughness" + FileName: "rcgRock012_4K_UnityMetallicSmoothness.tga" + RelativeFilename: "rcgRock012_4K_UnityMetallicSmoothness.tga" + ModelUVTranslation: 0,0 + ModelUVScaling: 1,1 + Texture_Alpha_Source: "None" + Cropping: 0,0,0,0 + } + Texture: 664307461264, "Texture::file3", "" { + Type: "TextureVideoClip" + Version: 202 + TextureName: "Texture::file3" + Properties70: { + P: "UseMaterial", "bool", "", "",1 + } + Media: "Video::file3" + FileName: "" + RelativeFilename: "" + ModelUVTranslation: 0,0 + ModelUVScaling: 1,1 + Texture_Alpha_Source: "None" + Cropping: 0,0,0,0 + } + Texture: 664307468464, "Texture::rcgRock012Albedo", "" { + Type: "TextureVideoClip" + Version: 202 + TextureName: "Texture::rcgRock012Albedo" + Properties70: { + P: "UseMaterial", "bool", "", "",1 + } + Media: "Video::rcgRock012Albedo" + FileName: "rcgRock012_4K_Albedo.tga" + RelativeFilename: "rcgRock012_4K_Albedo.tga" + ModelUVTranslation: 0,0 + ModelUVScaling: 1,1 + Texture_Alpha_Source: "None" + Cropping: 0,0,0,0 + } + Texture: 664307461744, "Texture::rcgRock012Normal", "" { + Type: "TextureVideoClip" + Version: 202 + TextureName: "Texture::rcgRock012Normal" + Properties70: { + P: "UseMaterial", "bool", "", "",1 + } + Media: "Video::rcgRock012Normal" + FileName: "rcgRock012_4K_Normal.tga" + RelativeFilename: "rcgRock012_4K_Normal.tga" + ModelUVTranslation: 0,0 + ModelUVScaling: 1,1 + Texture_Alpha_Source: "None" + Cropping: 0,0,0,0 + } + Implementation: 664209291632, "Implementation::rcgRock012Material_Implementation", "" { + Version: 100 + Properties70: { + P: "ShaderLanguage", "KString", "", "", "SFX" + P: "ShaderLanguageVersion", "KString", "", "", "27" + P: "RenderAPI", "KString", "", "", "SFX_PBS_SHADER" + P: "RootBindingName", "KString", "", "", "root" + P: "ShaderGraph", "Blob", "", "",29265 { + BinaryData: "U0ZCX1dJTiA9IHsgcGFyZW50X21hdGVyaWFsID0gImNvcmUvc3RpbmdyYXlfcmVuZGVyZXIvc2hhZGVyX2ltcG9ydC9zdGFuZGFyZCIgLyoKVmVyc2lvbj0yNwpHcm91cFZlcnNpb249LTEuMApBZHZhbmNlZD0wCkhlbHBJRD0wClBhcmVudE1hdGVyaWFsPXByZXNldHMvU3RhbmRhcmQKTnVtYmVyT2ZOb2Rlcz0yOQojTlQ9MjAxNzYgMAoJUEM9NQoJcG9zeD0xIHY9MjAwMyAyODUuMAoJcG9zeT0xIHY9MjAwMyAtNDAuMAoJc2hhZGVycmVzb3VyY2U9MSB2PTUwMDAgY29yZS9zdGluZ3JheV9yZW5kZXJlci9zaGFkZXJfaW1wb3J0L3N0YW5kYXJkCglwcmVzZXRfcGF0aD0xIHY9NTAwMCBwcmVzZXRzL1N0YW5kYXJkCglub3JtYWxzcGFjZT0yIGU9MCB2PTUwMTIgMQoJZ3JvdXA9LTEKCUlTQz05CgkJU1ZUPTUwMjIgMzAwMiAxIDAgMCAKCQlTVlQ9NTAyMiAzMDAyIDIgMCAwIAoJCVNWVD01MDIyIDIwMDMgMyAwIDAgCgkJU1ZUPTUwMjIgMjAwMyA0IDAgMCAKCQlTVlQ9NTAyMiAzMDAyIDUgMCAwIAoJCVNWVD01MDIyIDIwMDMgNiAwIDAgCgkJU1ZUPTUwMjIgMjAwMyA3IDAgMCAKCQlTVlQ9NTAyMiAzMDAyIDggMCAwIAoJCVNWVD01MDIyIDIwMDMgOSAwIDAgCglPU0M9MAojTlQ9MjAxNzggMAoJUEM9MgoJcG9zeD0xIHY9MjAwMyAtMTE0MS44OQoJcG9zeT0xIHY9MjAwMyA4MC43MjM5Cglncm91cD0tMQoJSVNDPTAKCU9TQz0xCgkJU1ZUPTUwMjIgMzAwMSAxIAoJCUNDPTYKCQkJQz0xIDAgMSAyIDAgMSAwCgkJCUNQQz0wCgkJCUM9MSAwIDEgMyAwIDEgMAoJCQlDUEM9MAoJCQlDPTEgMCAxIDQgMCAxIDAKCQkJQ1BDPTAKCQkJQz0xIDAgMSA1IDAgMSAwCgkJCUNQQz0wCgkJCUM9MSAwIDEgNiAwIDEgMAoJCQlDUEM9MAoJCQlDPTEgMCAxIDcgMCAxIDAKCQkJQ1BDPTAKI05UPTIwMTc3IDAKCVBDPTYKCW5hbWU9MSB2PTUwMDAgY29sb3JfbWFwCglwb3N4PTEgdj0yMDAzIC02MjMuNwoJcG9zeT0xIHY9MjAwMyAtNjc0LjE1NgoJY29sbGFwc2VkPTEgdj0yMDAxIDEKCXRleHR1cmVwYXRoPTIgZT0xIHY9NTAwMCBGOi9SZWFkeUNHL1JvY2swMTIvcmNnUm9jazAxMl80S19BbGJlZG8udGdhCgl1aW9yZGVyPTIgZT0wIHY9MjAwMiAxCglncm91cD0tMQoJSVNDPTIKCQlTVlQ9NTAyMiAzMDAxIDEgMCAwIAoJCVNWVD01MDIyIDIwMDMgMiAwIDAgCglPU0M9MQoJCVNWVD01MDIyIDMwMDMgMyAKCQlDQz0xCgkJCUM9MiAwIDMgOCAyIDMgMAoJCQlDUEM9MAojTlQ9MjAxNzcgMAoJUEM9NwoJbmFtZT0xIHY9NTAwMCBub3JtYWxfbWFwCglwb3N4PTEgdj0yMDAzIC04NDQuNTM5Cglwb3N5PTEgdj0yMDAzIC0zNjQuODE1Cgljb2xsYXBzZWQ9MSB2PTIwMDEgMQoJdGV4dHVyZXBhdGg9MiBlPTEgdj01MDAwIEY6L1JlYWR5Q0cvUm9jazAxMi9yY2dSb2NrMDEyXzRLX05vcm1hbC50Z2EKCWVuY29kaW5nPTIgZT0wIHY9NTAxMiAyCgl1aW9yZGVyPTIgZT0wIHY9MjAwMiAyCglncm91cD0tMQoJSVNDPTIKCQlTVlQ9NTAyMiAzMDAxIDEgMCAwIAoJCVNWVD01MDIyIDIwMDMgMiAwIDAgCglPU0M9MQoJCVNWVD01MDIyIDMwMDMgMyAKCQlDQz0xCgkJCUM9MyAwIDMgMjUgMCAxIDAKCQkJQ1BDPTAKI05UPTIwMTc3IDAKCVBDPTYKCW5hbWU9MSB2PTUwMDAgbWV0YWxsaWNfbWFwCglwb3N4PTEgdj0yMDAzIC02MDcuNzQ0Cglwb3N5PTEgdj0yMDAzIC02MC43NzM3Cgljb2xsYXBzZWQ9MSB2PTIwMDEgMQoJZW5jb2Rpbmc9MiBlPTAgdj01MDEyIDAKCXVpb3JkZXI9MiBlPTAgdj0yMDAyIDMKCWdyb3VwPS0xCglJU0M9MgoJCVNWVD01MDIyIDMwMDEgMSAwIDAgCgkJU1ZUPTUwMjIgMjAwMyAyIDAgMCAKCU9TQz0xCgkJU1ZUPTUwMjIgMzAwMyAzIAoJCUNDPTEKCQkJQz00IDAgMyAxMyAyIDMgMAoJCQlDUEM9MAojTlQ9MjAxNzcgMAoJUEM9NwoJbmFtZT0xIHY9NTAwMCByb3VnaG5lc3NfbWFwCglwb3N4PTEgdj0yMDAzIC02MDcuMTg4Cglwb3N5PTEgdj0yMDAzIDI0My4yNDIKCWNvbGxhcHNlZD0xIHY9MjAwMSAxCgl0ZXh0dXJlcGF0aD0yIGU9MSB2PTUwMDAgRjovUmVhZHlDRy9Sb2NrMDEyL3JjZ1JvY2swMTJfNEtfVW5pdHlNZXRhbGxpY1Ntb290aG5lc3MudGdhCgllbmNvZGluZz0yIGU9MCB2PTUwMTIgMAoJdWlvcmRlcj0yIGU9MCB2PTIwMDIgNAoJZ3JvdXA9LTEKCUlTQz0yCgkJU1ZUPTUwMjIgMzAwMSAxIDAgMCAKCQlTVlQ9NTAyMiAyMDAzIDIgMCAwIAoJT1NDPTEKCQlTVlQ9NTAyMiAzMDAzIDMgCgkJQ0M9MQoJCQlDPTUgMCAzIDE2IDIgMyAwCgkJCUNQQz0wCiNOVD0yMDE3NyAwCglQQz01CgluYW1lPTEgdj01MDAwIGVtaXNzaXZlX21hcAoJcG9zeD0xIHY9MjAwMyAtNzgwLjM1NAoJcG9zeT0xIHY9MjAwMyA1MjUuMzI0Cgljb2xsYXBzZWQ9MSB2PTIwMDEgMQoJdWlvcmRlcj0yIGU9MCB2PTIwMDIgNQoJZ3JvdXA9LTEKCUlTQz0yCgkJU1ZUPTUwMjIgMzAwMSAxIDAgMCAKCQlTVlQ9NTAyMiAyMDAzIDIgMCAwIAoJT1NDPTEKCQlTVlQ9NTAyMiAzMDAzIDMgCgkJQ0M9MQoJCQlDPTYgMCAzIDE5IDIgMyAwCgkJCUNQQz0wCiNOVD0yMDE3NyAwCglQQz03CgluYW1lPTEgdj01MDAwIGFvX21hcAoJcG9zeD0xIHY9MjAwMyAtNjE3LjQ2Cglwb3N5PTEgdj0yMDAzIDg3OC44NTMKCWNvbGxhcHNlZD0xIHY9MjAwMSAxCgl0ZXh0dXJlcGF0aD0yIGU9MSB2PTUwMDAgRjovUmVhZHlDRy9Sb2NrMDEyL3JjZ1JvY2swMTJfNEtfT2NjbHVzaW9uLnRn", + "YQoJZW5jb2Rpbmc9MiBlPTAgdj01MDEyIDAKCXVpb3JkZXI9MiBlPTAgdj0yMDAyIDYKCWdyb3VwPS0xCglJU0M9MgoJCVNWVD01MDIyIDMwMDEgMSAwIDAgCgkJU1ZUPTUwMjIgMjAwMyAyIDAgMCAKCU9TQz0xCgkJU1ZUPTUwMjIgMzAwMyAzIAoJCUNDPTEKCQkJQz03IDAgMyAyMiAyIDMgMAoJCQlDUEM9MAojTlQ9MjAxODkgMAoJUEM9MwoJbmFtZT0xIHY9NTAwMCBDb2xvcl9NYXBfU3dpdGNoCglwb3N4PTEgdj0yMDAzIC0zNjQuNTMKCXBvc3k9MSB2PTIwMDMgLTcxNC45MDIKCWdyb3VwPS0xCglJU0M9NAoJCVNWVD01MDIyIDIwMDMgMSAwIDAgCgkJU1ZUPTUwMjIgMjAwMyAyIDEgMCAKCQlTRFY9MS4wCgkJU1ZUPTUwMjIgMzAwMiAzIDAgMSAKCQlTQ1M9cmdiCgkJU1ZUPTUwMjIgMzAwMiA0IDAgMCAKCU9TQz0xCgkJU1ZUPTUwMjIgMzAwMiA1IAoJCUNDPTEKCQkJQz04IDAgNSAwIDEgMiAwCgkJCUNQQz0wCiNOVD0yMDE4NSAwCglQQz02CgluYW1lPTEgdj01MDAwIGJhc2VfY29sb3IKCXBvc3g9MSB2PTIwMDMgLTYyNC40MDEKCXBvc3k9MSB2PTIwMDMgLTU4NS41MzIKCWNvbGxhcHNlZD0xIHY9MjAwMSAxCgl0eXBlPTIgZT0wIHY9NTAxMiAyCglkZWZhdWx0dmVjdG9yPTIgZT0wIHY9MzAwMyAwLjUsMC41LDAuNSwxLjAKCWdyb3VwPS0xCglJU0M9MAoJT1NDPTEKCQlTVlQ9NTAyMiAzMDAyIDEgCgkJQ0M9MQoJCQlDPTkgMCAxIDggMyA0IDAKCQkJQ1BDPTAKI05UPTIwMTg1IDAKCVBDPTgKCW5hbWU9MSB2PTUwMDAgdXNlX2NvbG9yX21hcAoJcG9zeD0xIHY9MjAwMyAtNjI1LjI0NwoJcG9zeT0xIHY9MjAwMyAtNzY0LjQxMgoJY29sbGFwc2VkPTEgdj0yMDAxIDEKCXR5cGU9MiBlPTAgdj01MDEyIDAKCWRlZmF1bHRzY2FsYXI9MiBlPTAgdj0yMDAzIDEuMAoJdWl0eXBlPTIgZT0wIHY9NTAxMiAxCgl1aW9yZGVyPTIgZT0wIHY9MjAwMiAxMAoJZ3JvdXA9LTEKCUlTQz0wCglPU0M9MQoJCVNWVD01MDIyIDIwMDMgMSAKCQlDQz0xCgkJCUM9MTAgMCAxIDggMCAxIDAKCQkJQ1BDPTAKI05UPTIwMTg5IDAKCVBDPTMKCW5hbWU9MSB2PTUwMDAgTm9ybWFsX01hcF9Td2l0Y2gKCXBvc3g9MSB2PTIwMDMgLTM1MC4wMTkKCXBvc3k9MSB2PTIwMDMgLTQxNi40MTYKCWdyb3VwPS0xCglJU0M9NAoJCVNWVD01MDIyIDIwMDMgMSAwIDAgCgkJU1ZUPTUwMjIgMjAwMyAyIDEgMCAKCQlTRFY9MS4wCgkJU1ZUPTUwMjIgMzAwMiAzIDAgMCAKCQlTVlQ9NTAyMiAzMDAyIDQgMCAwIAoJT1NDPTEKCQlTVlQ9NTAyMiAzMDAyIDUgCgkJQ0M9MQoJCQlDPTExIDAgNSAwIDQgNSAwCgkJCUNQQz0wCiNOVD0yMDE4NSAwCglQQz04CgluYW1lPTEgdj01MDAwIHVzZV9ub3JtYWxfbWFwCglwb3N4PTEgdj0yMDAzIC02MjcuNTM2Cglwb3N5PTEgdj0yMDAzIC00NjEuMjc0Cgljb2xsYXBzZWQ9MSB2PTIwMDEgMQoJdHlwZT0yIGU9MCB2PTUwMTIgMAoJZGVmYXVsdHNjYWxhcj0yIGU9MCB2PTIwMDMgMS4wCgl1aXR5cGU9MiBlPTAgdj01MDEyIDEKCXVpb3JkZXI9MiBlPTAgdj0yMDAyIDExCglncm91cD0tMQoJSVNDPTAKCU9TQz0xCgkJU1ZUPTUwMjIgMjAwMyAxIAoJCUNDPTEKCQkJQz0xMiAwIDEgMTEgMCAxIDAKCQkJQ1BDPTAKI05UPTIwMTg5IDAKCVBDPTMKCW5hbWU9MSB2PTUwMDAgTWV0YWxsaWNfTWFwX1N3aXRjaAoJcG9zeD0xIHY9MjAwMyAtMzQ3LjAyNAoJcG9zeT0xIHY9MjAwMyAtMTExLjkwNQoJZ3JvdXA9LTEKCUlTQz00CgkJU1ZUPTUwMjIgMjAwMyAxIDAgMCAKCQlTVlQ9NTAyMiAyMDAzIDIgMSAwIAoJCVNEVj0xLjAKCQlTVlQ9NTAyMiAyMDAzIDMgMCAxIAoJCVNDUz1yCgkJU1ZUPTUwMjIgMjAwMyA0IDAgMCAKCU9TQz0xCgkJU1ZUPTUwMjIgMjAwMyA1IAoJCUNDPTEKCQkJQz0xMyAwIDUgMCA1IDYgMAoJCQlDUEM9MAojTlQ9MjAxODUgMAoJUEM9NQoJbmFtZT0xIHY9NTAwMCBtZXRhbGxpYwoJcG9zeD0xIHY9MjAwMyAtNjEwLjQxNwoJcG9zeT0xIHY9MjAwMyAyNi42NjY3Cgljb2xsYXBzZWQ9MSB2PTIwMDEgMQoJdHlwZT0yIGU9MCB2PTUwMTIgMAoJZ3JvdXA9LTEKCUlTQz0wCglPU0M9MQoJCVNWVD01MDIyIDIwMDMgMSAKCQlDQz0xCgkJCUM9MTQgMCAxIDEzIDMgNCAwCgkJCUNQQz0wCiNOVD0yMDE4NSAwCglQQz03CgluYW1lPTEgdj01MDAwIHVzZV9tZXRhbGxpY19tYXAKCXBvc3g9MSB2PTIwMDMgLTYxMS4xNTIKCXBvc3k9MSB2PTIwMDMgLTE1Ni4zODkKCWNvbGxhcHNlZD0xIHY9MjAwMSAxCgl0eXBlPTIgZT0wIHY9NTAxMiAwCgl1aXR5cGU9MiBlPTAgdj01MDEyIDEKCXVpb3JkZXI9MiBlPTAgdj0yMDAyIDEyCglncm91cD0tMQoJSVNDPTAKCU9TQz0xCgkJU1ZUPTUwMjIgMjAwMyAxIAoJCUNDPTEKCQkJQz0xNSAwIDEgMTMgMCAxIDAKCQkJQ1BDPTAKI05UPTIwMTg5IDAKCVBDPTMKCW5hbWU9MSB2PTUwMDAgUm91Z2huZXNzX01hcF9Td2l0Y2gKCXBvc3g9MSB2PTIwMDMgLTMzNS4yNzgKCXBvc3k9MSB2PTIwMDMgMTkzLjYxMQoJZ3JvdXA9LTEKCUlTQz00CgkJU1ZUPTUwMjIgMjAwMyAxIDAgMCAKCQlTVlQ9NTAyMiAyMDAzIDIgMSAwIAoJCVNEVj0xLjAKCQlTVlQ9NTAyMiAyMDAzIDMgMCAxIAoJCVNDUz1yCgkJU1ZUPTUwMjIgMjAwMyA0IDAgMCAKCU9TQz0xCgkJU1ZUPTUwMjIgMjAwMyA1IAoJCUNDPTEKCQkJQz0xNiAwIDUgMCA2IDcgMAoJCQlDUEM9MAojTlQ9MjAxODUgMAoJUEM9NgoJbmFtZT0xIHY9NTAw", + "MCByb3VnaG5lc3MKCXBvc3g9MSB2PTIwMDMgLTYwOS4xNjYKCXBvc3k9MSB2PTIwMDMgMzMxLjExMQoJY29sbGFwc2VkPTEgdj0yMDAxIDEKCXR5cGU9MiBlPTAgdj01MDEyIDAKCWRlZmF1bHRzY2FsYXI9MiBlPTAgdj0yMDAzIDAuMzMKCWdyb3VwPS0xCglJU0M9MAoJT1NDPTEKCQlTVlQ9NTAyMiAyMDAzIDEgCgkJQ0M9MQoJCQlDPTE3IDAgMSAxNiAzIDQgMAoJCQlDUEM9MAojTlQ9MjAxODUgMAoJUEM9OAoJbmFtZT0xIHY9NTAwMCB1c2Vfcm91Z2huZXNzX21hcAoJcG9zeD0xIHY9MjAwMyAtNjExLjM4OQoJcG9zeT0xIHY9MjAwMyAxNTQuNDQ0Cgljb2xsYXBzZWQ9MSB2PTIwMDEgMQoJdHlwZT0yIGU9MCB2PTUwMTIgMAoJZGVmYXVsdHNjYWxhcj0yIGU9MCB2PTIwMDMgMS4wCgl1aXR5cGU9MiBlPTAgdj01MDEyIDEKCXVpb3JkZXI9MiBlPTAgdj0yMDAyIDEzCglncm91cD0tMQoJSVNDPTAKCU9TQz0xCgkJU1ZUPTUwMjIgMjAwMyAxIAoJCUNDPTEKCQkJQz0xOCAwIDEgMTYgMCAxIDAKCQkJQ1BDPTAKI05UPTIwMTg5IDAKCVBDPTMKCW5hbWU9MSB2PTUwMDAgRW1pc3NpdmVfTWFwX1N3aXRjaAoJcG9zeD0xIHY9MjAwMyAtNTMwLjk1MwoJcG9zeT0xIHY9MjAwMyA0NjIuMzgxCglncm91cD0tMQoJSVNDPTQKCQlTVlQ9NTAyMiAyMDAzIDEgMCAwIAoJCVNWVD01MDIyIDIwMDMgMiAxIDAgCgkJU0RWPTEuMAoJCVNWVD01MDIyIDMwMDIgMyAwIDEgCgkJU0NTPXJnYgoJCVNWVD01MDIyIDMwMDIgNCAwIDAgCglPU0M9MQoJCVNWVD01MDIyIDMwMDIgNSAKCQlDQz0xCgkJCUM9MTkgMCA1IDI3IDAgMSAwCgkJCUNQQz0wCiNOVD0yMDE4NSAwCglQQz03CgluYW1lPTEgdj01MDAwIHVzZV9lbWlzc2l2ZV9tYXAKCXBvc3g9MSB2PTIwMDMgLTc3OC4yNzQKCXBvc3k9MSB2PTIwMDMgNDMzLjgxCgljb2xsYXBzZWQ9MSB2PTIwMDEgMQoJdHlwZT0yIGU9MCB2PTUwMTIgMAoJdWl0eXBlPTIgZT0wIHY9NTAxMiAxCgl1aW9yZGVyPTIgZT0wIHY9MjAwMiAxNAoJZ3JvdXA9LTEKCUlTQz0wCglPU0M9MQoJCVNWVD01MDIyIDIwMDMgMSAKCQlDQz0xCgkJCUM9MjAgMCAxIDE5IDAgMSAwCgkJCUNQQz0wCiNOVD0yMDE4NSAwCglQQz01CgluYW1lPTEgdj01MDAwIGVtaXNzaXZlCglwb3N4PTEgdj0yMDAzIC03ODMuODEKCXBvc3k9MSB2PTIwMDMgNjE1LjIzNwoJY29sbGFwc2VkPTEgdj0yMDAxIDEKCXR5cGU9MiBlPTAgdj01MDEyIDIKCWdyb3VwPS0xCglJU0M9MAoJT1NDPTEKCQlTVlQ9NTAyMiAzMDAyIDEgCgkJQ0M9MQoJCQlDPTIxIDAgMSAxOSAzIDQgMAoJCQlDUEM9MAojTlQ9MjAxODkgMAoJUEM9MwoJbmFtZT0xIHY9NTAwMCBhb19tYXBfc3dpdGNoCglwb3N4PTEgdj0yMDAzIC0zMjUuMjM4Cglwb3N5PTEgdj0yMDAzIDgwNy42MTkKCWdyb3VwPS0xCglJU0M9NAoJCVNWVD01MDIyIDIwMDMgMSAwIDAgCgkJU1ZUPTUwMjIgMjAwMyAyIDEgMCAKCQlTRFY9MS4wCgkJU1ZUPTUwMjIgMjAwMyAzIDAgMSAKCQlTQ1M9cgoJCVNWVD01MDIyIDIwMDMgNCAwIDEgCgkJU0NTPXIKCU9TQz0xCgkJU1ZUPTUwMjIgMjAwMyA1IAoJCUNDPTEKCQkJQz0yMiAwIDUgMCA4IDkgMAoJCQlDUEM9MAojTlQ9MjAxODUgMAoJUEM9OAoJbmFtZT0xIHY9NTAwMCB1c2VfYW9fbWFwCglwb3N4PTEgdj0yMDAzIC02MTMuNTEzCglwb3N5PTEgdj0yMDAzIDc4OC42MDcKCWNvbGxhcHNlZD0xIHY9MjAwMSAxCgl0eXBlPTIgZT0wIHY9NTAxMiAwCglkZWZhdWx0c2NhbGFyPTIgZT0wIHY9MjAwMyAxLjAKCXVpdHlwZT0yIGU9MCB2PTUwMTIgMQoJdWlvcmRlcj0yIGU9MCB2PTIwMDIgMTUKCWdyb3VwPS0xCglJU0M9MAoJT1NDPTEKCQlTVlQ9NTAyMiAyMDAzIDEgCgkJQ0M9MQoJCQlDPTIzIDAgMSAyMiAwIDEgMAoJCQlDUEM9MAojTlQ9MjAxOTQgMAoJUEM9MwoJcG9zeD0xIHY9MjAwMyAtNjMwLjAKCXBvc3k9MSB2PTIwMDMgLTI4Mi4yODYKCWNvbGxhcHNlZD0xIHY9MjAwMSAxCglncm91cD0tMQoJSVNDPTAKCU9TQz0xCgkJU1ZUPTUwMjIgMzAwMiAxIAoJCUNDPTEKCQkJQz0yNCAwIDEgMTEgMyA0IDAKCQkJQ1BDPTAKI05UPTIwMTk1IDAKCVBDPTMKCXBvc3g9MSB2PTIwMDMgLTYzMC4wCglwb3N5PTEgdj0yMDAzIC0zNjcuMTQzCgljb2xsYXBzZWQ9MSB2PTIwMDEgMQoJZ3JvdXA9LTEKCUlTQz0xCgkJU1ZUPTUwMjIgMzAwMiAxIDAgMCAKCU9TQz0xCgkJU1ZUPTUwMjIgMzAwMiAyIAoJCUNDPTEKCQkJQz0yNSAwIDIgMTEgMiAzIDAKCQkJQ1BDPTAKI05UPTIwMTk2IDAKCVBDPTQKCW5hbWU9MSB2PTUwMDAgQW8KCXBvc3g9MSB2PTIwMDMgLTYxMy43NQoJcG9zeT0xIHY9MjAwMyA5NjMuNzUKCWNvbGxhcHNlZD0xIHY9MjAwMSAxCglncm91cD0tMQoJSVNDPTEKCQlTVlQ9NTAyMiAyMDAzIDEgMSAwIAoJCVNEVj0xLjAKCU9TQz0xCgkJU1ZUPTUwMjIgMjAwMyAyIAoJCUNDPTEKCQkJQz0yNiAwIDIgMjIgMyA0IDAKCQkJQ1BDPTAKI05UPTIwMTg2IDAKCVBDPTIKCXBvc3g9MSB2PTIwMDMgLTMxMy4zMzMKCXBvc3k9MSB2PTIwMDMgNTIyLjUKCWdyb3VwPS0xCglJU0M9MgoJCVNWVD01MDIyIDMwMDIgMSAwIDAgCgkJU1ZUPTUwMjIgMjAwMyAyIDAgMCAKCU9TQz0xCgkJU1ZUPTUwMjIgMzAwMiAzIAoJCUNDPTEKCQkJQz0yNyAwIDMgMCA3IDggMAoJCQlDUEM9MAojTlQ9MjAxODUgMAoJUEM9NQoJbmFtZT0xIHY9NTAwMCBlbWlzc2l2ZV9pbnRlbnNpdHkKCXBvc3g9", + "MSB2PTIwMDMgLTUyNy45MTcKCXBvc3k9MSB2PTIwMDMgNjM2LjY2NgoJdHlwZT0yIGU9MCB2PTUwMTIgMAoJZGVmYXVsdHNjYWxhcj0yIGU9MCB2PTIwMDMgMS4wCglncm91cD0tMQoJSVNDPTAKCU9TQz0xCgkJU1ZUPTUwMjIgMjAwMyAxIAoJCUNDPTEKCQkJQz0yOCAwIDEgMjcgMSAyIDAKCQkJQ1BDPTAKCiAqLyB9IApjb25uZWN0aW9ucyA9IFsKCXsgCgkJZGVzdGluYXRpb24gPSB7IAoJCQljb25uZWN0b3JfaWQgPSAiYWNhNjkwY2ItNjMwNS00YTJmLWJmM2QtNjkxODNhNDkzZGIzIiAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYmIxIiAKCQl9IAoJCXNvdXJjZSA9IHsgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiOSIgCgkJfSAKCX0gCgl7IAoJCWRlc3RpbmF0aW9uID0geyAKCQkJY29ubmVjdG9yX2lkID0gIkNFRDdCQkYzLTBCNDgtNDMzNS1COTMzLTA5NUE0MUNBMDI5NCIgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiOSIgCgkJfSAKCQlzb3VyY2UgPSB7IAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTEiIAoJCX0gCgl9IAoJeyAKCQlkZXN0aW5hdGlvbiA9IHsgCgkJCWNvbm5lY3Rvcl9pZCA9ICI0Q0JCNDQ4MC03OUU4LTRDRTctQUMwRi04QjA5QkFGMTIzOTAiIAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiYjkiIAoJCX0gCgkJc2VsZWN0ID0gWyAKCQkJInJnYiIgCgkJCV0gCgkJc291cmNlID0geyAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYmIzIiAKCQl9IAoJfSAKCXsgCgkJZGVzdGluYXRpb24gPSB7IAoJCQljb25uZWN0b3JfaWQgPSAiMWVlOWFmMWYtNjVmMi00NzM5LWFkMjgtNWVhNmEwZTY4ZmMzIiAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYmIzIiAKCQl9IAoJCXNvdXJjZSA9IHsgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiMiIgCgkJfSAKCX0gCgl7IAoJCWRlc3RpbmF0aW9uID0geyAKCQkJY29ubmVjdG9yX2lkID0gIjFlZTlhZjFmLTY1ZjItNDczOS1hZDI4LTVlYTZhMGU2OGZjMyIgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiNCIgCgkJfSAKCQlzb3VyY2UgPSB7IAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiYjIiIAoJCX0gCgl9IAoJeyAKCQlkZXN0aW5hdGlvbiA9IHsgCgkJCWNvbm5lY3Rvcl9pZCA9ICIxZWU5YWYxZi02NWYyLTQ3MzktYWQyOC01ZWE2YTBlNjhmYzMiIAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiYjUiIAoJCX0gCgkJc291cmNlID0geyAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYmIyIiAKCQl9IAoJfSAKCXsgCgkJZGVzdGluYXRpb24gPSB7IAoJCQljb25uZWN0b3JfaWQgPSAiMWVlOWFmMWYtNjVmMi00NzM5LWFkMjgtNWVhNmEwZTY4ZmMzIiAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYmI2IiAKCQl9IAoJCXNvdXJjZSA9IHsgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiMiIgCgkJfSAKCX0gCgl7IAoJCWRlc3RpbmF0aW9uID0geyAKCQkJY29ubmVjdG9yX2lkID0gIjFlZTlhZjFmLTY1ZjItNDczOS1hZDI4LTVlYTZhMGU2OGZjMyIgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiNyIgCgkJfSAKCQlzb3VyY2UgPSB7IAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiYjIiIAoJCX0gCgl9IAoJeyAKCQlkZXN0aW5hdGlvbiA9IHsgCgkJCWNvbm5lY3Rvcl9pZCA9ICIxZWU5YWYxZi02NWYyLTQ3MzktYWQyOC01ZWE2YTBlNjhmYzMiIAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiYjgiIAoJCX0gCgkJc291cmNlID0geyAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYmIyIiAKCQl9IAoJfSAKCXsgCgkJZGVzdGluYXRpb24gPSB7IAoJCQljb25uZWN0b3JfaWQgPSAiRjJGNzRFNTgtNDAyRC00NzJCLTg3REQtMzMxRTAwREI0MTZDIiAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYmI5IiAKCQl9IAoJCXNvdXJjZSA9IHsgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxMCIgCgkJfSAKCX0gCgl7IAoJCWRlc3RpbmF0aW9uID0geyAKCQkJY29ubmVjdG9yX2lkID0gImIxYzg2NDA4LWFhY2ItNDQ2Ni1iNzU0LWRkY2YzN2EzYTJjOCIgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiMSIgCgkJfSAKCQlzb3VyY2UgPSB7IAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTIiIAoJCX0gCgl9IAoJeyAKCQlk", + "ZXN0aW5hdGlvbiA9IHsgCgkJCWNvbm5lY3Rvcl9pZCA9ICJDRUQ3QkJGMy0wQjQ4LTQzMzUtQjkzMy0wOTVBNDFDQTAyOTQiIAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTIiIAoJCX0gCgkJc291cmNlID0geyAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjEzIiAKCQl9IAoJfSAKCXsgCgkJZGVzdGluYXRpb24gPSB7IAoJCQljb25uZWN0b3JfaWQgPSAiNENCQjQ0ODAtNzlFOC00Q0U3LUFDMEYtOEIwOUJBRjEyMzkwIiAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjEyIiAKCQl9IAoJCXNvdXJjZSA9IHsgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIyNiIgCgkJfSAKCX0gCgl7IAoJCWRlc3RpbmF0aW9uID0geyAKCQkJY29ubmVjdG9yX2lkID0gImY3MjU5N2M0LTc0ODctNDE5YS1hZmZiLWRmNjkwZTY1ODJlMSIgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIyNiIgCgkJfSAKCQlzZWxlY3QgPSBbIAoJCQkieHl6IiAKCQkJXSAKCQlzb3VyY2UgPSB7IAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiYjQiIAoJCX0gCgl9IAoJeyAKCQlkZXN0aW5hdGlvbiA9IHsgCgkJCWNvbm5lY3Rvcl9pZCA9ICJGMkY3NEU1OC00MDJELTQ3MkItODdERC0zMzFFMDBEQjQxNkMiIAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTIiIAoJCX0gCgkJc291cmNlID0geyAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjI1IiAKCQl9IAoJfSAKCXsgCgkJZGVzdGluYXRpb24gPSB7IAoJCQljb25uZWN0b3JfaWQgPSAiYWQ1ZTA1MmYtZDMxNi00YTBmLThiNzktNTNjMzgyMDRkNjFiIiAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYmIxIiAKCQl9IAoJCXNvdXJjZSA9IHsgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxNCIgCgkJfSAKCX0gCgl7IAoJCWRlc3RpbmF0aW9uID0geyAKCQkJY29ubmVjdG9yX2lkID0gIkNFRDdCQkYzLTBCNDgtNDMzNS1COTMzLTA5NUE0MUNBMDI5NCIgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxNCIgCgkJfSAKCQlzb3VyY2UgPSB7IAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTYiIAoJCX0gCgl9IAoJeyAKCQlkZXN0aW5hdGlvbiA9IHsgCgkJCWNvbm5lY3Rvcl9pZCA9ICI0Q0JCNDQ4MC03OUU4LTRDRTctQUMwRi04QjA5QkFGMTIzOTAiIAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTQiIAoJCX0gCgkJc2VsZWN0ID0gWyAKCQkJInIiIAoJCQldIAoJCXNvdXJjZSA9IHsgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiNSIgCgkJfSAKCX0gCgl7IAoJCWRlc3RpbmF0aW9uID0geyAKCQkJY29ubmVjdG9yX2lkID0gIkYyRjc0RTU4LTQwMkQtNDcyQi04N0RELTMzMUUwMERCNDE2QyIgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxNCIgCgkJfSAKCQlzb3VyY2UgPSB7IAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTUiIAoJCX0gCgl9IAoJeyAKCQlkZXN0aW5hdGlvbiA9IHsgCgkJCWNvbm5lY3Rvcl9pZCA9ICIzNmJhNDZkMi1mNmVhLTRlNjAtYTQyOC1mZGMxN2M3NWJjNjIiIAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiYjEiIAoJCX0gCgkJc291cmNlID0geyAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjE3IiAKCQl9IAoJfSAKCXsgCgkJZGVzdGluYXRpb24gPSB7IAoJCQljb25uZWN0b3JfaWQgPSAiQ0VEN0JCRjMtMEI0OC00MzM1LUI5MzMtMDk1QTQxQ0EwMjk0IiAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjE3IiAKCQl9IAoJCXNvdXJjZSA9IHsgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxOSIgCgkJfSAKCX0gCgl7IAoJCWRlc3RpbmF0aW9uID0geyAKCQkJY29ubmVjdG9yX2lkID0gIjRDQkI0NDgwLTc5RTgtNENFNy1BQzBGLThCMDlCQUYxMjM5MCIgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxNyIgCgkJfSAKCQlzZWxlY3QgPSBbIAoJCQkiciIgCgkJCV0gCgkJc291cmNlID0geyAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYmI2IiAKCQl9IAoJfSAKCXsgCgkJZGVzdGluYXRpb24gPSB7IAoJCQljb25uZWN0b3JfaWQgPSAiRjJGNzRFNTgtNDAyRC00NzJCLTg3REQtMzMxRTAwREI0MTZDIiAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjE3IiAKCQl9IAoJCXNvdXJjZSA9IHsg", + "CgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxOCIgCgkJfSAKCX0gCgl7IAoJCWRlc3RpbmF0aW9uID0geyAKCQkJY29ubmVjdG9yX2lkID0gIjExNjRhNWVmLTQ1NjMtNDc5NS1iM2I1LTQyODI1ZDZkZjAzNyIgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiMSIgCgkJfSAKCQlzb3VyY2UgPSB7IAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMjgiIAoJCX0gCgl9IAoJeyAKCQlkZXN0aW5hdGlvbiA9IHsgCgkJCWNvbm5lY3Rvcl9pZCA9ICJjNTgyM2M3NS00YWU1LTRjNzEtYjA3MC0zMTVmYTRkMDNlOGUiIAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMjgiIAoJCX0gCgkJc291cmNlID0geyAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjIwIiAKCQl9IAoJfSAKCXsgCgkJZGVzdGluYXRpb24gPSB7IAoJCQljb25uZWN0b3JfaWQgPSAiQ0VEN0JCRjMtMEI0OC00MzM1LUI5MzMtMDk1QTQxQ0EwMjk0IiAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjIwIiAKCQl9IAoJCXNvdXJjZSA9IHsgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIyMSIgCgkJfSAKCX0gCgl7IAoJCWRlc3RpbmF0aW9uID0geyAKCQkJY29ubmVjdG9yX2lkID0gIjRDQkI0NDgwLTc5RTgtNENFNy1BQzBGLThCMDlCQUYxMjM5MCIgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIyMCIgCgkJfSAKCQlzZWxlY3QgPSBbIAoJCQkicmdiIiAKCQkJXSAKCQlzb3VyY2UgPSB7IAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiYjciIAoJCX0gCgl9IAoJeyAKCQlkZXN0aW5hdGlvbiA9IHsgCgkJCWNvbm5lY3Rvcl9pZCA9ICJGMkY3NEU1OC00MDJELTQ3MkItODdERC0zMzFFMDBEQjQxNkMiIAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMjAiIAoJCX0gCgkJc291cmNlID0geyAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjIyIiAKCQl9IAoJfSAKCXsgCgkJZGVzdGluYXRpb24gPSB7IAoJCQljb25uZWN0b3JfaWQgPSAiMjQyZDE2NDgtYTYyNi00NDViLTk1MzQtYmNjZWMwOTQxMTJmIiAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjI4IiAKCQl9IAoJCXNvdXJjZSA9IHsgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIyOSIgCgkJfSAKCX0gCgl7IAoJCWRlc3RpbmF0aW9uID0geyAKCQkJY29ubmVjdG9yX2lkID0gIjU5ZmQxY2Y0LWY3MzYtNDcwZC04NTEwLTFkZDdjMDE2NjM5ZSIgCgkJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiMSIgCgkJfSAKCQlzb3VyY2UgPSB7IAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMjMiIAoJCX0gCgl9IAoJeyAKCQlkZXN0aW5hdGlvbiA9IHsgCgkJCWNvbm5lY3Rvcl9pZCA9ICJDRUQ3QkJGMy0wQjQ4LTQzMzUtQjkzMy0wOTVBNDFDQTAyOTQiIAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMjMiIAoJCX0gCgkJc291cmNlID0geyAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjI0IiAKCQl9IAoJfSAKCXsgCgkJZGVzdGluYXRpb24gPSB7IAoJCQljb25uZWN0b3JfaWQgPSAiNENCQjQ0ODAtNzlFOC00Q0U3LUFDMEYtOEIwOUJBRjEyMzkwIiAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjIzIiAKCQl9IAoJCXNlbGVjdCA9IFsgCgkJCSJyIiAKCQkJXSAKCQlzb3VyY2UgPSB7IAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiYjgiIAoJCX0gCgl9IAoJeyAKCQlkZXN0aW5hdGlvbiA9IHsgCgkJCWNvbm5lY3Rvcl9pZCA9ICJGMkY3NEU1OC00MDJELTQ3MkItODdERC0zMzFFMDBEQjQxNkMiIAoJCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMjMiIAoJCX0gCgkJc291cmNlID0geyAKCQkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjI3IiAKCQl9IAoJfSAKXQpjb25zdGFudHMgPSBbCgl7IAoJCWNvbm5lY3Rvcl9pZCA9ICIzOUJDNzYxOS0yNzY4LTQ4MEItQUNGRC02M0ZBNjZFRjY5MDUiIAoJCWlkID0gIjFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiOSIgCgkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYmI5IiAKCQl2YWx1ZSA9IFsgCgkJCTEuMAoJCV0gCgl9IAoJeyAKCQljb25uZWN0b3JfaWQgPSAiMzlCQzc2MTktMjc2OC00ODBCLUFDRkQtNjNGQTY2RUY2OTA1IiAKCQlpZCA9ICIxYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTIiIAoJCWluc3RhbmNlX2lkID0g", + "ImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxMiIgCgkJdmFsdWUgPSBbIAoJCQkxLjAKCQldIAoJfSAKCXsgCgkJY29ubmVjdG9yX2lkID0gIjM5QkM3NjE5LTI3NjgtNDgwQi1BQ0ZELTYzRkE2NkVGNjkwNSIgCgkJaWQgPSAiMWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjE0IiAKCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTQiIAoJCXZhbHVlID0gWyAKCQkJMS4wCgkJXSAKCX0gCgl7IAoJCWNvbm5lY3Rvcl9pZCA9ICIzOUJDNzYxOS0yNzY4LTQ4MEItQUNGRC02M0ZBNjZFRjY5MDUiIAoJCWlkID0gIjFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxNyIgCgkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjE3IiAKCQl2YWx1ZSA9IFsgCgkJCTEuMAoJCV0gCgl9IAoJeyAKCQljb25uZWN0b3JfaWQgPSAiMzlCQzc2MTktMjc2OC00ODBCLUFDRkQtNjNGQTY2RUY2OTA1IiAKCQlpZCA9ICIxYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMjAiIAoJCWluc3RhbmNlX2lkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIyMCIgCgkJdmFsdWUgPSBbIAoJCQkxLjAKCQldIAoJfSAKCXsgCgkJY29ubmVjdG9yX2lkID0gIjM5QkM3NjE5LTI3NjgtNDgwQi1BQ0ZELTYzRkE2NkVGNjkwNSIgCgkJaWQgPSAiMWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjIzIiAKCQlpbnN0YW5jZV9pZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMjMiIAoJCXZhbHVlID0gWyAKCQkJMS4wCgkJXSAKCX0gCgl7IAoJCWNvbm5lY3Rvcl9pZCA9ICJjNGQ2YmMwOC1jNDg5LTQzMGYtYTgzNi1lZDQ5MGU1OWMzZjkiIAoJCWlkID0gIjBiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIyNyIgCgkJaW5zdGFuY2VfaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjI3IiAKCQl2YWx1ZSA9IFsgCgkJCTEuMAoJCV0gCgl9IApdCm5vZGVzID0gWwoJeyAKCQljb250ZW50X3NpemUgPSBbIAoJCQkxNjAgCgkJCTAgCgkJXSAKCQlleHBvcnQgPSB7IAoJCX0gCgkJaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYmIxIiAKCQlvcHRpb25zID0gWyAKCQkJIjJiMTM2NDQ3LTY3NmUtNDk0My05OTdiLTA0YTI4YWU2ODQ5NyIKCQldIAoJCXBvc2l0aW9uID0gWyAKCQkJMjg1IAoJCQktNDAgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJTdGFuZGFyZCBCYXNlIiAKCQl0eXBlID0gImNvcmUvc3RpbmdyYXlfcmVuZGVyZXIvb3V0cHV0X25vZGVzL3N0YW5kYXJkX2Jhc2UiIAoJfSAKCXsgCgkJY29udGVudF9zaXplID0gWyAKCQkJMTYwIAoJCQkwIAoJCV0gCgkJZXhwb3J0ID0geyAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiOSIgCgkJb3B0aW9ucyA9IFsgCgkJCSI5QTg0MjgyQi1GMUEyLTQ2RDQtOUZDNC01QTc2RkM5QjMwREQiCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS0zNjQgCgkJCS03MTQgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJDb2xvciBNYXAgU3dpdGNoIiAKCQl0eXBlID0gImNvcmUvc2hhZGVyX25vZGVzL2lmIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJCW1hdGVyaWFsX3ZhcmlhYmxlID0geyAKCQkJCWRpc3BsYXlfbmFtZSA9ICJVc2UgQ29sb3IgTWFwIiAKCQkJCW5hbWUgPSAidXNlX2NvbG9yX21hcCIgCgkJCQl1aSA9IHsgCgkJCQkJbWF4ID0gMSAKCQkJCQltaW4gPSAwIAoJCQkJCXN0ZXAgPSAxIAoJCQkJCW9yZGVyID0gMTAgCgkJCQkJdWlfdHlwZSA9ICJjaGVja2JveCIgCgkJCQl9IAoJCQkJdHlwZSA9ICJmbG9hdCIgCgkJCQl2YWx1ZSA9IDEuMCAKCQkJfSAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxMSIgCgkJb3B0aW9ucyA9IFsgCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS02MjUgCgkJCS03NjQgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJVc2UgQ29sb3IgTWFwIiAKCQl0eXBlID0gImNvcmUvc2hhZGVyX25vZGVzL21hdGVyaWFsX3ZhcmlhYmxlIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJfSAKCQlpZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiYjMiIAoJCW9wdGlvbnMgPSBbIAoJCQkiMWUwNjc0NjQtMTJkOC00ODI2LTliNzItY2ZkNTc2NTAwM2UzIgoJCQkiZmIzZjcwOWItYTU0YS00ZTkzLWFjOWYtZTlmYzc2ZmI4YmNkIgoJCQkiNWRkNTliM2QtMTc2Mi00YTE0LTk5MzAtNzUwMDIzMGVmM2RiIgoJCV0gCgkJcG9zaXRpb24gPSBbIAoJCQktNjIzIAoJCQktNjc0IAoJCV0gCgkJc2FtcGxlcnMgPSB7IAoJCQl0ZXh0dXJlX21hcCA9IHsgCgkJCQlkaXNwbGF5X25hbWUgPSAiQ29sb3IgTWFwIiAKCQkJCXNsb3RfbmFtZSA9ICJjb2xvcl9tYXAiIAoJCQkJdWkgPSB7IAoJCQkJCW9yZGVyID0gMSAKCQkJCX0gCgkJCX0gCgkJfSAKCQl0aXRsZSA9ICJDb2xvciBNYXAiIAoJCXR5cGUgPSAiY29yZS9zaGFkZXJfbm9kZXMvc2FtcGxlX3RleHR1cmUiIAoJfSAKCXsgCgkJ", + "Y29udGVudF9zaXplID0gWyAKCQkJMTYwIAoJCQkwIAoJCV0gCgkJZXhwb3J0ID0geyAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiMiIgCgkJb3B0aW9ucyA9IFsgCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS0xMTQxIAoJCQk4MCAKCQldIAoJCXNhbXBsZXJzID0geyAKCQl9IAoJCXRpdGxlID0gIlRleGNvb3JkMCIgCgkJdHlwZSA9ICJjb3JlL3NoYWRlcl9ub2Rlcy90ZXh0dXJlX2Nvb3JkaW5hdGUwIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJCW1hdGVyaWFsX3ZhcmlhYmxlID0geyAKCQkJCWRpc3BsYXlfbmFtZSA9ICJCYXNlIENvbG9yIiAKCQkJCW5hbWUgPSAiYmFzZV9jb2xvciIgCgkJCQl1aSA9IHsgCgkJCQkJbWF4ID0gWyA5OSA5OSA5OSBdIAoJCQkJCW1pbiA9IFsgMCAwIDAgXSAKCQkJCQlzdGVwID0gWyAwLjAxIDAuMDEgMC4wMSBdIAoJCQkJCW9yZGVyID0gMTAwIAoJCQkJCXVpX3R5cGUgPSAiY29sb3IiIAoJCQkJfSAKCQkJCXR5cGUgPSAiZmxvYXQzIiAKCQkJCXZhbHVlID0gWzAuNSAwLjUgMC41XSAKCQkJfSAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxMCIgCgkJb3B0aW9ucyA9IFsgCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS02MjQgCgkJCS01ODUgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJCYXNlIENvbG9yIiAKCQl0eXBlID0gImNvcmUvc2hhZGVyX25vZGVzL21hdGVyaWFsX3ZhcmlhYmxlIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJfSAKCQlpZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTIiIAoJCW9wdGlvbnMgPSBbIAoJCQkiOUE4NDI4MkItRjFBMi00NkQ0LTlGQzQtNUE3NkZDOUIzMEREIgoJCV0gCgkJcG9zaXRpb24gPSBbIAoJCQktMzUwIAoJCQktNDE2IAoJCV0gCgkJc2FtcGxlcnMgPSB7IAoJCX0gCgkJdGl0bGUgPSAiTm9ybWFsIE1hcCBTd2l0Y2giIAoJCXR5cGUgPSAiY29yZS9zaGFkZXJfbm9kZXMvaWYiIAoJfSAKCXsgCgkJY29udGVudF9zaXplID0gWyAKCQkJMTYwIAoJCQkwIAoJCV0gCgkJZXhwb3J0ID0geyAKCQkJbWF0ZXJpYWxfdmFyaWFibGUgPSB7IAoJCQkJZGlzcGxheV9uYW1lID0gIlVzZSBOb3JtYWwgTWFwIiAKCQkJCW5hbWUgPSAidXNlX25vcm1hbF9tYXAiIAoJCQkJdWkgPSB7IAoJCQkJCW1heCA9IDEgCgkJCQkJbWluID0gMCAKCQkJCQlzdGVwID0gMSAKCQkJCQlvcmRlciA9IDExIAoJCQkJCXVpX3R5cGUgPSAiY2hlY2tib3giIAoJCQkJfSAKCQkJCXR5cGUgPSAiZmxvYXQiIAoJCQkJdmFsdWUgPSAxLjAgCgkJCX0gCgkJfSAKCQlpZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTMiIAoJCW9wdGlvbnMgPSBbIAoJCV0gCgkJcG9zaXRpb24gPSBbIAoJCQktNjI3IAoJCQktNDYxIAoJCV0gCgkJc2FtcGxlcnMgPSB7IAoJCX0gCgkJdGl0bGUgPSAiVXNlIE5vcm1hbCBNYXAiIAoJCXR5cGUgPSAiY29yZS9zaGFkZXJfbm9kZXMvbWF0ZXJpYWxfdmFyaWFibGUiIAoJfSAKCXsgCgkJY29udGVudF9zaXplID0gWyAKCQkJMTYwIAoJCQkwIAoJCV0gCgkJZXhwb3J0ID0geyAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIyNiIgCgkJb3B0aW9ucyA9IFsgCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS02MzAgCgkJCS0zNjcgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJUYW5nZW50IFRvIFdvcmxkIiAKCQl0eXBlID0gImNvcmUvc2hhZGVyX25vZGVzL3RhbmdlbnRfdG9fd29ybGQiIAoJfSAKCXsgCgkJY29udGVudF9zaXplID0gWyAKCQkJMTYwIAoJCQkwIAoJCV0gCgkJZXhwb3J0ID0geyAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiNCIgCgkJb3B0aW9ucyA9IFsgCgkJCSIxZTA2NzQ2NC0xMmQ4LTQ4MjYtOWI3Mi1jZmQ1NzY1MDAzZTMiCgkJCSI5MGUyMDgyNi04Njg5LTQyZmEtOGUyNC1mNDg0ZWM2NGM1YzMiCgkJCSI1ZGQ1OWIzZC0xNzYyLTRhMTQtOTkzMC03NTAwMjMwZWYzZGIiCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS04NDQgCgkJCS0zNjQgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJCXRleHR1cmVfbWFwID0geyAKCQkJCWRpc3BsYXlfbmFtZSA9ICJOb3JtYWwgTWFwIiAKCQkJCXNsb3RfbmFtZSA9ICJub3JtYWxfbWFwIiAKCQkJCXVpID0geyAKCQkJCQlvcmRlciA9IDIgCgkJCQl9IAoJCQl9IAoJCX0gCgkJdGl0bGUgPSAiTm9ybWFsIE1hcCIgCgkJdHlwZSA9ICJjb3JlL3NoYWRlcl9ub2Rlcy9zYW1wbGVfdGV4dHVyZSIgCgl9IAoJeyAKCQljb250ZW50X3NpemUgPSBbIAoJCQkxNjAgCgkJCTAgCgkJXSAKCQlleHBvcnQgPSB7IAoJCX0gCgkJaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjI1IiAKCQlvcHRpb25zID0gWyAKCQldIAoJCXBvc2l0aW9uID0gWyAKCQkJLTYzMCAKCQkJLTI4MiAKCQldIAoJCXNhbXBsZXJzID0geyAKCQl9IAoJCXRpdGxlID0gIldvcmxkIE5vcm1hbCIgCgkJdHlwZSA9ICJjb3JlL3NoYWRlcl9ub2Rlcy93b3JsZF9zcGFjZV9ub3JtYWwiIAoJfSAKCXsgCgkJY29udGVudF9zaXplID0gWyAKCQkJ", + "MTYwIAoJCQkwIAoJCV0gCgkJZXhwb3J0ID0geyAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxNCIgCgkJb3B0aW9ucyA9IFsgCgkJCSI5QTg0MjgyQi1GMUEyLTQ2RDQtOUZDNC01QTc2RkM5QjMwREQiCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS0zNDcgCgkJCS0xMTEgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJNZXRhbGxpYyBNYXAgU3dpdGNoIiAKCQl0eXBlID0gImNvcmUvc2hhZGVyX25vZGVzL2lmIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJCW1hdGVyaWFsX3ZhcmlhYmxlID0geyAKCQkJCWRpc3BsYXlfbmFtZSA9ICJVc2UgTWV0YWxsaWMgTWFwIiAKCQkJCW5hbWUgPSAidXNlX21ldGFsbGljX21hcCIgCgkJCQl1aSA9IHsgCgkJCQkJbWF4ID0gMSAKCQkJCQltaW4gPSAwIAoJCQkJCXN0ZXAgPSAxIAoJCQkJCW9yZGVyID0gMTIgCgkJCQkJdWlfdHlwZSA9ICJjaGVja2JveCIgCgkJCQl9IAoJCQkJdHlwZSA9ICJmbG9hdCIgCgkJCQl2YWx1ZSA9IDAuMCAKCQkJfSAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxNiIgCgkJb3B0aW9ucyA9IFsgCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS02MTEgCgkJCS0xNTYgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJVc2UgTWV0YWxsaWMgTWFwIiAKCQl0eXBlID0gImNvcmUvc2hhZGVyX25vZGVzL21hdGVyaWFsX3ZhcmlhYmxlIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJfSAKCQlpZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiYjUiIAoJCW9wdGlvbnMgPSBbIAoJCQkiMWUwNjc0NjQtMTJkOC00ODI2LTliNzItY2ZkNTc2NTAwM2UzIgoJCQkiZTk0ZTUzZTYtNDliNi00MTk0LWE3NDctOGYwNjRhNTkzMmUwIgoJCQkiNWRkNTliM2QtMTc2Mi00YTE0LTk5MzAtNzUwMDIzMGVmM2RiIgoJCV0gCgkJcG9zaXRpb24gPSBbIAoJCQktNjA3IAoJCQktNjAgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJCXRleHR1cmVfbWFwID0geyAKCQkJCWRpc3BsYXlfbmFtZSA9ICJNZXRhbGxpYyBNYXAiIAoJCQkJc2xvdF9uYW1lID0gIm1ldGFsbGljX21hcCIgCgkJCQl1aSA9IHsgCgkJCQkJb3JkZXIgPSAzIAoJCQkJfSAKCQkJfSAKCQl9IAoJCXRpdGxlID0gIk1ldGFsbGljIE1hcCIgCgkJdHlwZSA9ICJjb3JlL3NoYWRlcl9ub2Rlcy9zYW1wbGVfdGV4dHVyZSIgCgl9IAoJeyAKCQljb250ZW50X3NpemUgPSBbIAoJCQkxNjAgCgkJCTAgCgkJXSAKCQlleHBvcnQgPSB7IAoJCQltYXRlcmlhbF92YXJpYWJsZSA9IHsgCgkJCQlkaXNwbGF5X25hbWUgPSAiTWV0YWxsaWMiIAoJCQkJbmFtZSA9ICJtZXRhbGxpYyIgCgkJCQl1aSA9IHsgCgkJCQkJbWF4ID0gOTkgCgkJCQkJbWluID0gMCAKCQkJCQlzdGVwID0gMC4wMSAKCQkJCQlvcmRlciA9IDEwMCAKCQkJCX0gCgkJCQl0eXBlID0gImZsb2F0IiAKCQkJCXZhbHVlID0gMC4wIAoJCQl9IAoJCX0gCgkJaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjE1IiAKCQlvcHRpb25zID0gWyAKCQldIAoJCXBvc2l0aW9uID0gWyAKCQkJLTYxMCAKCQkJMjYgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJNZXRhbGxpYyIgCgkJdHlwZSA9ICJjb3JlL3NoYWRlcl9ub2Rlcy9tYXRlcmlhbF92YXJpYWJsZSIgCgl9IAoJeyAKCQljb250ZW50X3NpemUgPSBbIAoJCQkxNjAgCgkJCTAgCgkJXSAKCQlleHBvcnQgPSB7IAoJCX0gCgkJaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjE3IiAKCQlvcHRpb25zID0gWyAKCQkJIjlBODQyODJCLUYxQTItNDZENC05RkM0LTVBNzZGQzlCMzBERCIKCQldIAoJCXBvc2l0aW9uID0gWyAKCQkJLTMzNSAKCQkJMTkzIAoJCV0gCgkJc2FtcGxlcnMgPSB7IAoJCX0gCgkJdGl0bGUgPSAiUm91Z2huZXNzIE1hcCBTd2l0Y2giIAoJCXR5cGUgPSAiY29yZS9zaGFkZXJfbm9kZXMvaWYiIAoJfSAKCXsgCgkJY29udGVudF9zaXplID0gWyAKCQkJMTYwIAoJCQkwIAoJCV0gCgkJZXhwb3J0ID0geyAKCQkJbWF0ZXJpYWxfdmFyaWFibGUgPSB7IAoJCQkJZGlzcGxheV9uYW1lID0gIlVzZSBSb3VnaG5lc3MgTWFwIiAKCQkJCW5hbWUgPSAidXNlX3JvdWdobmVzc19tYXAiIAoJCQkJdWkgPSB7IAoJCQkJCW1heCA9IDEgCgkJCQkJbWluID0gMCAKCQkJCQlzdGVwID0gMSAKCQkJCQlvcmRlciA9IDEzIAoJCQkJCXVpX3R5cGUgPSAiY2hlY2tib3giIAoJCQkJfSAKCQkJCXR5cGUgPSAiZmxvYXQiIAoJCQkJdmFsdWUgPSAxLjAgCgkJCX0gCgkJfSAKCQlpZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMTkiIAoJCW9wdGlvbnMgPSBbIAoJCV0gCgkJcG9zaXRpb24gPSBbIAoJCQktNjExIAoJCQkxNTQgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJVc2UgUm91Z2huZXNzIE1hcCIgCgkJdHlwZSA9ICJjb3JlL3NoYWRlcl9ub2Rlcy9tYXRlcmlhbF92YXJpYWJsZSIgCgl9IAoJeyAKCQljb250ZW50X3NpemUgPSBbIAoJCQkxNjAgCgkJCTAgCgkJXSAKCQlleHBvcnQgPSB7IAoJCX0gCgkJaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEt", + "YWJiYWFiYmFhYmI2IiAKCQlvcHRpb25zID0gWyAKCQkJIjFlMDY3NDY0LTEyZDgtNDgyNi05YjcyLWNmZDU3NjUwMDNlMyIKCQkJImU5NGU1M2U2LTQ5YjYtNDE5NC1hNzQ3LThmMDY0YTU5MzJlMCIKCQkJIjVkZDU5YjNkLTE3NjItNGExNC05OTMwLTc1MDAyMzBlZjNkYiIKCQldIAoJCXBvc2l0aW9uID0gWyAKCQkJLTYwNyAKCQkJMjQzIAoJCV0gCgkJc2FtcGxlcnMgPSB7IAoJCQl0ZXh0dXJlX21hcCA9IHsgCgkJCQlkaXNwbGF5X25hbWUgPSAiUm91Z2huZXNzIE1hcCIgCgkJCQlzbG90X25hbWUgPSAicm91Z2huZXNzX21hcCIgCgkJCQl1aSA9IHsgCgkJCQkJb3JkZXIgPSA0IAoJCQkJfSAKCQkJfSAKCQl9IAoJCXRpdGxlID0gIlJvdWdobmVzcyBNYXAiIAoJCXR5cGUgPSAiY29yZS9zaGFkZXJfbm9kZXMvc2FtcGxlX3RleHR1cmUiIAoJfSAKCXsgCgkJY29udGVudF9zaXplID0gWyAKCQkJMTYwIAoJCQkwIAoJCV0gCgkJZXhwb3J0ID0geyAKCQkJbWF0ZXJpYWxfdmFyaWFibGUgPSB7IAoJCQkJZGlzcGxheV9uYW1lID0gIlJvdWdobmVzcyIgCgkJCQluYW1lID0gInJvdWdobmVzcyIgCgkJCQl1aSA9IHsgCgkJCQkJbWF4ID0gOTkgCgkJCQkJbWluID0gMCAKCQkJCQlzdGVwID0gMC4wMSAKCQkJCQlvcmRlciA9IDEwMCAKCQkJCX0gCgkJCQl0eXBlID0gImZsb2F0IiAKCQkJCXZhbHVlID0gMC4zMyAKCQkJfSAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIxOCIgCgkJb3B0aW9ucyA9IFsgCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS02MDkgCgkJCTMzMSAKCQldIAoJCXNhbXBsZXJzID0geyAKCQl9IAoJCXRpdGxlID0gIlJvdWdobmVzcyIgCgkJdHlwZSA9ICJjb3JlL3NoYWRlcl9ub2Rlcy9tYXRlcmlhbF92YXJpYWJsZSIgCgl9IAoJeyAKCQljb250ZW50X3NpemUgPSBbIAoJCQkxNjAgCgkJCTAgCgkJXSAKCQlleHBvcnQgPSB7IAoJCX0gCgkJaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjI4IiAKCQlvcHRpb25zID0gWyAKCQldIAoJCXBvc2l0aW9uID0gWyAKCQkJLTMxMyAKCQkJNTIyIAoJCV0gCgkJc2FtcGxlcnMgPSB7IAoJCX0gCgkJdGl0bGUgPSAiTXVsdGlwbHkiIAoJCXR5cGUgPSAiY29yZS9zaGFkZXJfbm9kZXMvbXVsIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJfSAKCQlpZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMjAiIAoJCW9wdGlvbnMgPSBbIAoJCQkiOUE4NDI4MkItRjFBMi00NkQ0LTlGQzQtNUE3NkZDOUIzMEREIgoJCV0gCgkJcG9zaXRpb24gPSBbIAoJCQktNTMwIAoJCQk0NjIgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJFbWlzc2l2ZSBNYXAgU3dpdGNoIiAKCQl0eXBlID0gImNvcmUvc2hhZGVyX25vZGVzL2lmIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJCW1hdGVyaWFsX3ZhcmlhYmxlID0geyAKCQkJCWRpc3BsYXlfbmFtZSA9ICJVc2UgRW1pc3NpdmUgTWFwIiAKCQkJCW5hbWUgPSAidXNlX2VtaXNzaXZlX21hcCIgCgkJCQl1aSA9IHsgCgkJCQkJbWF4ID0gMSAKCQkJCQltaW4gPSAwIAoJCQkJCXN0ZXAgPSAxIAoJCQkJCW9yZGVyID0gMTQgCgkJCQkJdWlfdHlwZSA9ICJjaGVja2JveCIgCgkJCQl9IAoJCQkJdHlwZSA9ICJmbG9hdCIgCgkJCQl2YWx1ZSA9IDAuMCAKCQkJfSAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIyMSIgCgkJb3B0aW9ucyA9IFsgCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS03NzggCgkJCTQzMyAKCQldIAoJCXNhbXBsZXJzID0geyAKCQl9IAoJCXRpdGxlID0gIlVzZSBFbWlzc2l2ZSBNYXAiIAoJCXR5cGUgPSAiY29yZS9zaGFkZXJfbm9kZXMvbWF0ZXJpYWxfdmFyaWFibGUiIAoJfSAKCXsgCgkJY29udGVudF9zaXplID0gWyAKCQkJMTYwIAoJCQkwIAoJCV0gCgkJZXhwb3J0ID0geyAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiNyIgCgkJb3B0aW9ucyA9IFsgCgkJCSIxZTA2NzQ2NC0xMmQ4LTQ4MjYtOWI3Mi1jZmQ1NzY1MDAzZTMiCgkJCSJmYjNmNzA5Yi1hNTRhLTRlOTMtYWM5Zi1lOWZjNzZmYjhiY2QiCgkJCSI1ZGQ1OWIzZC0xNzYyLTRhMTQtOTkzMC03NTAwMjMwZWYzZGIiCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS03ODAgCgkJCTUyNSAKCQldIAoJCXNhbXBsZXJzID0geyAKCQkJdGV4dHVyZV9tYXAgPSB7IAoJCQkJZGlzcGxheV9uYW1lID0gIkVtaXNzaXZlIE1hcCIgCgkJCQlzbG90X25hbWUgPSAiZW1pc3NpdmVfbWFwIiAKCQkJCXVpID0geyAKCQkJCQlvcmRlciA9IDUgCgkJCQl9IAoJCQl9IAoJCX0gCgkJdGl0bGUgPSAiRW1pc3NpdmUgTWFwIiAKCQl0eXBlID0gImNvcmUvc2hhZGVyX25vZGVzL3NhbXBsZV90ZXh0dXJlIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJCW1hdGVyaWFsX3ZhcmlhYmxlID0geyAKCQkJCWRpc3BsYXlfbmFtZSA9ICJFbWlzc2l2ZSIgCgkJCQluYW1lID0gImVtaXNzaXZlIiAKCQkJCXVpID0geyAKCQkJCQltYXggPSBbIDk5IDk5IDk5IF0gCgkJCQkJbWluID0gWyAwIDAgMCBdIAoJCQkJCXN0ZXAgPSBb", + "IDAuMDEgMC4wMSAwLjAxIF0gCgkJCQkJb3JkZXIgPSAxMDAgCgkJCQkJdWlfdHlwZSA9ICJjb2xvciIgCgkJCQl9IAoJCQkJdHlwZSA9ICJmbG9hdDMiIAoJCQkJdmFsdWUgPSBbMC4wIDAuMCAwLjBdIAoJCQl9IAoJCX0gCgkJaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjIyIiAKCQlvcHRpb25zID0gWyAKCQldIAoJCXBvc2l0aW9uID0gWyAKCQkJLTc4MyAKCQkJNjE1IAoJCV0gCgkJc2FtcGxlcnMgPSB7IAoJCX0gCgkJdGl0bGUgPSAiRW1pc3NpdmUiIAoJCXR5cGUgPSAiY29yZS9zaGFkZXJfbm9kZXMvbWF0ZXJpYWxfdmFyaWFibGUiIAoJfSAKCXsgCgkJY29udGVudF9zaXplID0gWyAKCQkJMTYwIAoJCQkwIAoJCV0gCgkJZXhwb3J0ID0geyAKCQkJbWF0ZXJpYWxfdmFyaWFibGUgPSB7IAoJCQkJZGlzcGxheV9uYW1lID0gIkVtaXNzaXZlIEludGVuc2l0eSIgCgkJCQluYW1lID0gImVtaXNzaXZlX2ludGVuc2l0eSIgCgkJCQl1aSA9IHsgCgkJCQkJbWF4ID0gOTkgCgkJCQkJbWluID0gMCAKCQkJCQlzdGVwID0gMC4wMSAKCQkJCQlvcmRlciA9IDEwMCAKCQkJCX0gCgkJCQl0eXBlID0gImZsb2F0IiAKCQkJCXZhbHVlID0gMS4wIAoJCQl9IAoJCX0gCgkJaWQgPSAiYWJiYWFiYmEtYWJiYS1hYmJhLWFiYmEtYWJiYWFiYmFhYjI5IiAKCQlvcHRpb25zID0gWyAKCQldIAoJCXBvc2l0aW9uID0gWyAKCQkJLTUyNyAKCQkJNjM2IAoJCV0gCgkJc2FtcGxlcnMgPSB7IAoJCX0gCgkJdGl0bGUgPSAiRW1pc3NpdmUgSW50ZW5zaXR5IiAKCQl0eXBlID0gImNvcmUvc2hhZGVyX25vZGVzL21hdGVyaWFsX3ZhcmlhYmxlIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJfSAKCQlpZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMjMiIAoJCW9wdGlvbnMgPSBbIAoJCQkiOUE4NDI4MkItRjFBMi00NkQ0LTlGQzQtNUE3NkZDOUIzMEREIgoJCV0gCgkJcG9zaXRpb24gPSBbIAoJCQktMzI1IAoJCQk4MDcgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJBbyBNYXAgU3dpdGNoIiAKCQl0eXBlID0gImNvcmUvc2hhZGVyX25vZGVzL2lmIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJCW1hdGVyaWFsX3ZhcmlhYmxlID0geyAKCQkJCWRpc3BsYXlfbmFtZSA9ICJVc2UgQW8gTWFwIiAKCQkJCW5hbWUgPSAidXNlX2FvX21hcCIgCgkJCQl1aSA9IHsgCgkJCQkJbWF4ID0gMSAKCQkJCQltaW4gPSAwIAoJCQkJCXN0ZXAgPSAxIAoJCQkJCW9yZGVyID0gMTUgCgkJCQkJdWlfdHlwZSA9ICJjaGVja2JveCIgCgkJCQl9IAoJCQkJdHlwZSA9ICJmbG9hdCIgCgkJCQl2YWx1ZSA9IDEuMCAKCQkJfSAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWIyNCIgCgkJb3B0aW9ucyA9IFsgCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS02MTMgCgkJCTc4OCAKCQldIAoJCXNhbXBsZXJzID0geyAKCQl9IAoJCXRpdGxlID0gIlVzZSBBbyBNYXAiIAoJCXR5cGUgPSAiY29yZS9zaGFkZXJfbm9kZXMvbWF0ZXJpYWxfdmFyaWFibGUiIAoJfSAKCXsgCgkJY29udGVudF9zaXplID0gWyAKCQkJMTYwIAoJCQkwIAoJCV0gCgkJZXhwb3J0ID0geyAKCQl9IAoJCWlkID0gImFiYmFhYmJhLWFiYmEtYWJiYS1hYmJhLWFiYmFhYmJhYWJiOCIgCgkJb3B0aW9ucyA9IFsgCgkJCSIxZTA2NzQ2NC0xMmQ4LTQ4MjYtOWI3Mi1jZmQ1NzY1MDAzZTMiCgkJCSJlOTRlNTNlNi00OWI2LTQxOTQtYTc0Ny04ZjA2NGE1OTMyZTAiCgkJCSI1ZGQ1OWIzZC0xNzYyLTRhMTQtOTkzMC03NTAwMjMwZWYzZGIiCgkJXSAKCQlwb3NpdGlvbiA9IFsgCgkJCS02MTcgCgkJCTg3OCAKCQldIAoJCXNhbXBsZXJzID0geyAKCQkJdGV4dHVyZV9tYXAgPSB7IAoJCQkJZGlzcGxheV9uYW1lID0gIkFvIE1hcCIgCgkJCQlzbG90X25hbWUgPSAiYW9fbWFwIiAKCQkJCXVpID0geyAKCQkJCQlvcmRlciA9IDYgCgkJCQl9IAoJCQl9IAoJCX0gCgkJdGl0bGUgPSAiQW8gTWFwIiAKCQl0eXBlID0gImNvcmUvc2hhZGVyX25vZGVzL3NhbXBsZV90ZXh0dXJlIiAKCX0gCgl7IAoJCWNvbnRlbnRfc2l6ZSA9IFsgCgkJCTE2MCAKCQkJMCAKCQldIAoJCWV4cG9ydCA9IHsgCgkJfSAKCQlpZCA9ICJhYmJhYWJiYS1hYmJhLWFiYmEtYWJiYS1hYmJhYWJiYWFiMjciIAoJCW9wdGlvbnMgPSBbIAoJCV0gCgkJcG9zaXRpb24gPSBbIAoJCQktNjEzIAoJCQk5NjMgCgkJXSAKCQlzYW1wbGVycyA9IHsgCgkJfSAKCQl0aXRsZSA9ICJBbyIgCgkJdHlwZSA9ICJjb3JlL3NoYWRlcl9ub2Rlcy9jb25zdGFudF9zY2FsYXIiIAoJfSAKXQp2ZXJzaW9uID0gMgoA" + } + } + } + BindingTable: 664211014992, "BindingTable::root 41", "" { + Version: 100 + Properties70: { + P: "TargetName", "KString", "", "", "root" + P: "TargetType", "KString", "", "", "shader" + } + Entry: "Maya|use_metallic_map", "FbxPropertyEntry", "use_metallic_map", "FbxSemanticEntry" + Entry: "Maya|base_color", "FbxPropertyEntry", "base_color", "FbxSemanticEntry" + Entry: "Maya|use_ao_map", "FbxPropertyEntry", "use_ao_map", "FbxSemanticEntry" + Entry: "Maya|TEX_emissive_map", "FbxPropertyEntry", "TEX_emissive_map", "FbxSemanticEntry" + Entry: "Maya|TEX_metallic_map", "FbxPropertyEntry", "TEX_metallic_map", "FbxSemanticEntry" + Entry: "Maya|TEX_ao_map", "FbxPropertyEntry", "TEX_ao_map", "FbxSemanticEntry" + Entry: "Maya|emissive_intensity", "FbxPropertyEntry", "emissive_intensity", "FbxSemanticEntry" + Entry: "Maya|metallic", "FbxPropertyEntry", "metallic", "FbxSemanticEntry" + Entry: "Maya|TEX_global_specular_cube", "FbxPropertyEntry", "TEX_global_specular_cube", "FbxSemanticEntry" + Entry: "Maya|use_roughness_map", "FbxPropertyEntry", "use_roughness_map", "FbxSemanticEntry" + Entry: "Maya|use_normal_map", "FbxPropertyEntry", "use_normal_map", "FbxSemanticEntry" + Entry: "Maya|use_color_map", "FbxPropertyEntry", "use_color_map", "FbxSemanticEntry" + Entry: "Maya|emissive", "FbxPropertyEntry", "emissive", "FbxSemanticEntry" + Entry: "Maya|use_emissive_map", "FbxPropertyEntry", "use_emissive_map", "FbxSemanticEntry" + Entry: "Maya|TEX_global_diffuse_cube", "FbxPropertyEntry", "TEX_global_diffuse_cube", "FbxSemanticEntry" + Entry: "Maya|TEX_roughness_map", "FbxPropertyEntry", "TEX_roughness_map", "FbxSemanticEntry" + Entry: "Maya|roughness", "FbxPropertyEntry", "roughness", "FbxSemanticEntry" + Entry: "Maya|TEX_brdf_lut", "FbxPropertyEntry", "TEX_brdf_lut", "FbxSemanticEntry" + Entry: "Maya|TEX_color_map", "FbxPropertyEntry", "TEX_color_map", "FbxSemanticEntry" + Entry: "Maya|TEX_normal_map", "FbxPropertyEntry", "TEX_normal_map", "FbxSemanticEntry" + } +} + +; Object connections +;------------------------------------------------------------------ + +Connections: { + + ;Model::rcgRock012_LOD0, Model::RootNode + C: "OO",664387383840,0 + + ;Model::rcgRock012_LOD1, Model::RootNode + C: "OO",664387400080,0 + + ;Model::rcgRock012_LOD2, Model::RootNode + C: "OO",664387397760,0 + + ;Model::rcgRock012_LOD3, Model::RootNode + C: "OO",664387402400,0 + + ;AnimLayer::BaseLayer, AnimStack::Take 001 + C: "OO",665526401504,664199786048 + + ;Texture::file1, Material::rcgRock012Material + C: "OP",664307466064,664196490064, "Maya|TEX_global_diffuse_cube" + + ;Texture::file2, Material::rcgRock012Material + C: "OP",664307460784,664196490064, "Maya|TEX_global_specular_cube" + + ;Texture::file3, Material::rcgRock012Material + C: "OP",664307461264,664196490064, "Maya|TEX_brdf_lut" + + ;Texture::rcgRock012Normal, Material::rcgRock012Material + C: "OP",664307461744,664196490064, "Maya|TEX_normal_map" + + ;Texture::rcgRock012Albedo, Material::rcgRock012Material + C: "OP",664307468464,664196490064, "Maya|TEX_color_map" + + ;Texture::rcgRock012Roughness, Material::rcgRock012Material + C: "OP",664307463664,664196490064, "Maya|TEX_roughness_map" + + ;Texture::rcgRock012AO, Material::rcgRock012Material + C: "OP",664307460304,664196490064, "Maya|TEX_ao_map" + + ;Material::rcgRock012Material, Implementation::rcgRock012Material_Implementation + C: "OO",664196490064,664209291632 + + ;BindingTable::root 41, Implementation::rcgRock012Material_Implementation + C: "OO",664211014992,664209291632 + + ;Video::rcgRock012AO, Texture::rcgRock012AO + C: "OO",664389649568,664307460304 + + ;Video::file2, Texture::file2 + C: "OO",664389649968,664307460784 + + ;Video::file1, Texture::file1 + C: "OO",664389659168,664307466064 + + ;Video::rcgRock012Roughness, Texture::rcgRock012Roughness + C: "OO",664389661168,664307463664 + + ;Video::file3, Texture::file3 + C: "OO",664389665968,664307461264 + + ;Video::rcgRock012Albedo, Texture::rcgRock012Albedo + C: "OO",664389655568,664307468464 + + ;Video::rcgRock012Normal, Texture::rcgRock012Normal + C: "OO",664389664768,664307461744 + + ;Geometry::, Model::rcgRock012_LOD0 + C: "OO",664391634592,664387383840 + + ;Material::rcgRock012Material, Model::rcgRock012_LOD0 + C: "OO",664196490064,664387383840 + + ;Geometry::, Model::rcgRock012_LOD1 + C: "OO",664391653536,664387400080 + + ;Material::rcgRock012Material, Model::rcgRock012_LOD1 + C: "OO",664196490064,664387400080 + + ;Geometry::, Model::rcgRock012_LOD2 + C: "OO",664391685280,664387397760 + + ;Material::rcgRock012Material, Model::rcgRock012_LOD2 + C: "OO",664196490064,664387397760 + + ;Geometry::, Model::rcgRock012_LOD3 + C: "OO",664391685792,664387402400 + + ;Material::rcgRock012Material, Model::rcgRock012_LOD3 + C: "OO",664196490064,664387402400 +} diff --git a/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_LODs.fbx.meta b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_LODs.fbx.meta new file mode 100644 index 00000000000..42d0e54d93f --- /dev/null +++ b/Assets/TestScenes/HDTest/Rock/rcgRock012/rcgRock012_LODs.fbx.meta @@ -0,0 +1,96 @@ +fileFormatVersion: 2 +guid: 05f56086cbfbdfc4db8b6f58fdb68b6c +timeCreated: 1436154474 +licenseType: Store +ModelImporter: + serializedVersion: 18 + fileIDToRecycleName: + 100000: rcgRock012_LOD0 + 100002: rcgRock012_LOD1 + 100004: rcgRock012_LOD2 + 100006: rcgRock012_LOD3 + 100008: //RootNode + 400000: rcgRock012_LOD0 + 400002: rcgRock012_LOD1 + 400004: rcgRock012_LOD2 + 400006: rcgRock012_LOD3 + 400008: //RootNode + 2300000: rcgRock012_LOD0 + 2300002: rcgRock012_LOD1 + 2300004: rcgRock012_LOD2 + 2300006: rcgRock012_LOD3 + 3300000: rcgRock012_LOD0 + 3300002: rcgRock012_LOD1 + 3300004: rcgRock012_LOD2 + 3300006: rcgRock012_LOD3 + 4300000: rcgRock012_LOD0 + 4300002: rcgRock012_LOD1 + 4300004: rcgRock012_LOD2 + 4300006: rcgRock012_LOD3 + 20500000: //RootNode + materials: + importMaterials: 1 + materialName: 0 + materialSearch: 1 + animations: + legacyGenerateAnimations: 4 + bakeSimulation: 0 + optimizeGameObjects: 0 + motionNodeName: + animationImportErrors: + animationImportWarnings: + animationRetargetingWarnings: + animationDoRetargetingWarnings: 0 + animationCompression: 1 + animationRotationError: .5 + animationPositionError: .5 + animationScaleError: .5 + animationWrapMode: 0 + extraExposedTransformPaths: [] + clipAnimations: [] + isReadable: 1 + meshes: + lODScreenPercentages: + - .25 + - .125 + - .0625 + - .00999999978 + globalScale: 1 + meshCompression: 0 + addColliders: 0 + importBlendShapes: 1 + swapUVChannels: 0 + generateSecondaryUV: 0 + useFileUnits: 1 + optimizeMeshForGPU: 1 + keepQuads: 0 + weldVertices: 1 + secondaryUVAngleDistortion: 8 + secondaryUVAreaDistortion: 15.000001 + secondaryUVHardAngle: 88 + secondaryUVPackMargin: 4 + useFileScale: 1 + tangentSpace: + normalSmoothAngle: 60 + splitTangentsAcrossUV: 1 + normalImportMode: 0 + tangentImportMode: 1 + importAnimation: 1 + copyAvatar: 0 + humanDescription: + human: [] + skeleton: [] + armTwist: .5 + foreArmTwist: .5 + upperLegTwist: .5 + legTwist: .5 + armStretch: .0500000007 + legStretch: .0500000007 + feetSpacing: 0 + rootMotionBoneName: + lastHumanDescriptionAvatarSource: {instanceID: 0} + animationType: 0 + additionalBone: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard.meta b/Assets/TestScenes/HDTest/SphereStandard.meta new file mode 100644 index 00000000000..10df4759e54 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: b80c867ec9fb6de4b98ef86862d547c5 +folderAsset: yes +timeCreated: 1476868376 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_10.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_10.mat new file mode 100644 index 00000000000..5bf85c0339f --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_10.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_10 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.7 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.7 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_10.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_10.mat.meta new file mode 100644 index 00000000000..cd5bc1a3b51 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_10.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 90d7cc703d2e7f54eb4fff6c4268b6ac +timeCreated: 1448039507 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_11.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_11.mat new file mode 100644 index 00000000000..40ec0e9290b --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_11.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_11 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.6 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.6 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_11.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_11.mat.meta new file mode 100644 index 00000000000..14feec43963 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_11.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 97a0b0a8f86690e4dbd25517a4c124e1 +timeCreated: 1448039507 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_12.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_12.mat new file mode 100644 index 00000000000..e1364bdc6d5 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_12.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_12 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.4 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.4 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_12.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_12.mat.meta new file mode 100644 index 00000000000..a0b2013aa87 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_12.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a92557fb37c78dc42b30a3e696b83394 +timeCreated: 1448039507 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_13.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_13.mat new file mode 100644 index 00000000000..a8c3dbe0c0f --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_13.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_13 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.8 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.8 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_13.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_13.mat.meta new file mode 100644 index 00000000000..c0638eb7b60 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_13.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 66d39d54753be4c408bfd6a05d011dce +timeCreated: 1448039506 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_14.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_14.mat new file mode 100644 index 00000000000..40c7d6c8c33 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_14.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_14 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.2 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.2 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_14.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_14.mat.meta new file mode 100644 index 00000000000..191302bb88a --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_14.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 84ca741b197c7584787f0ab1c43c0ce8 +timeCreated: 1448039530 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_15.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_15.mat new file mode 100644 index 00000000000..5bb1f06be1f --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_15.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_15 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.3 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.3 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_15.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_15.mat.meta new file mode 100644 index 00000000000..f648ae34487 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_15.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: af6c751df6220a44cbcbbdcf7ade9193 +timeCreated: 1448039508 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_16.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_16.mat new file mode 100644 index 00000000000..b607f21c858 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_16.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_16 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.9 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.9 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_16.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_16.mat.meta new file mode 100644 index 00000000000..29fed860406 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_16.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb79a0858b07c1047ac08b413a553ed8 +timeCreated: 1448039483 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_17.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_17.mat new file mode 100644 index 00000000000..c926ca5545d --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_17.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_17 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.1 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.1 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_17.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_17.mat.meta new file mode 100644 index 00000000000..9f6fe7239db --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_17.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7e4fb22a39197844986d2a1fa35e7218 +timeCreated: 1448039530 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_18.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_18.mat new file mode 100644 index 00000000000..bb00f35ec5f --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_18.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_18 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.5 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_18.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_18.mat.meta new file mode 100644 index 00000000000..f3f11915c57 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_18.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c47e47ee203d47548b68c69c6b36bb9e +timeCreated: 1448039507 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_19.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_19.mat new file mode 100644 index 00000000000..caaef298f9b --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_19.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_19 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_19.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_19.mat.meta new file mode 100644 index 00000000000..bc75511a5aa --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth0_19.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3152548f14008844eab1605433b95636 +timeCreated: 1448039538 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth1_2.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth1_2.mat new file mode 100644 index 00000000000..4e3bfd34373 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth1_2.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth1_2 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 1 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 1 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth1_2.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth1_2.mat.meta new file mode 100644 index 00000000000..daf1132d02b --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smooth1_2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f72f69e2b63a38d47bff3d025bca4f6c +timeCreated: 1453738565 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_10.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_10.mat new file mode 100644 index 00000000000..cd58874cdfb --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_10.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_10 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.8 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.8 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_10.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_10.mat.meta new file mode 100644 index 00000000000..c28f78aed80 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_10.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b129de7d48a2f6e4182bdade9637e020 +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_11.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_11.mat new file mode 100644 index 00000000000..1914c6a5a22 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_11.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_11 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_11.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_11.mat.meta new file mode 100644 index 00000000000..4f75de21c17 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_11.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3ad58ded85ef3da40a117f42e053571a +timeCreated: 1453738565 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_12.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_12.mat new file mode 100644 index 00000000000..bf0cf2a493a --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_12.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_12 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.4 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.4 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_12.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_12.mat.meta new file mode 100644 index 00000000000..4927f82ae6d --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_12.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c78342dca4939d24982561a0635f4b8e +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_13.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_13.mat new file mode 100644 index 00000000000..43fc8b88042 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_13.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_13 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.5 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_13.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_13.mat.meta new file mode 100644 index 00000000000..f3c70622513 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_13.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e07f3c8b8cfa82a4eadef7a3ef527d9d +timeCreated: 1453738565 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_14.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_14.mat new file mode 100644 index 00000000000..8aa23f9491b --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_14.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_14 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.7 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.7 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_14.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_14.mat.meta new file mode 100644 index 00000000000..5f32bff4c52 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_14.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 52b5512542c743e4b86078ff73c47464 +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_15.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_15.mat new file mode 100644 index 00000000000..d3ec94b2036 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_15.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_15 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.3 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.3 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_15.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_15.mat.meta new file mode 100644 index 00000000000..467dbea8397 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_15.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb033f1f15b95324693fb49089844e74 +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_16.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_16.mat new file mode 100644 index 00000000000..3604ce910f6 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_16.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_16 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.6 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.6 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_16.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_16.mat.meta new file mode 100644 index 00000000000..9492943bfa3 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_16.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 33251b8be4eebc74fb7bcf1153fe7bda +timeCreated: 1453738565 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_17.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_17.mat new file mode 100644 index 00000000000..8d7a82bc145 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_17.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_17 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.2 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.2 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_17.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_17.mat.meta new file mode 100644 index 00000000000..a7487033c96 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_17.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a80e805fa7e6a1c4c8c333ac51243ec0 +timeCreated: 1453738565 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_18.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_18.mat new file mode 100644 index 00000000000..caaa514d4e1 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_18.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_18 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.1 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.1 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_18.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_18.mat.meta new file mode 100644 index 00000000000..69f47e5cf14 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_18.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5a0154f3b4b43af4e9f6456007f81a67 +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_19.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_19.mat new file mode 100644 index 00000000000..03ab91055dd --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_19.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_19 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.9 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.9 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_19.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_19.mat.meta new file mode 100644 index 00000000000..c87d45509b0 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric0_19.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bca841a846c5c3b47b65cc00ec323eff +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric1_1.mat b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric1_1.mat new file mode 100644 index 00000000000..344c8b6ad54 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric1_1.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric1_1 + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 1 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 1 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric1_1.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric1_1.mat.meta new file mode 100644 index 00000000000..8ff48738760 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/Mat_smoothdielectric1_1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c47a26239081afc43a2e20ed3e999410 +timeCreated: 1448039441 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/SphereGroup 1.prefab b/Assets/TestScenes/HDTest/SphereStandard/SphereGroup 1.prefab new file mode 100644 index 00000000000..3f2a66e8bd0 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/SphereGroup 1.prefab @@ -0,0 +1,2454 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1000012470308022} + m_IsPrefabParent: 1 +--- !u!1 &1000010007989558 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013674302558} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010071295928 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013302451620} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010087587216 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012813361656} + - component: {fileID: 33000013191588704} + - component: {fileID: 135000013332565106} + - component: {fileID: 23000012055495256} + m_Layer: 0 + m_Name: Sphere (12) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010289061002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013647363470} + - component: {fileID: 33000012691087676} + - component: {fileID: 135000012343630262} + - component: {fileID: 23000011727209500} + m_Layer: 0 + m_Name: Sphere (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010291928302 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012464417950} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010434065936 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010178680272} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010545922352 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010971999112} + - component: {fileID: 33000012182004980} + - component: {fileID: 135000010485048620} + - component: {fileID: 23000012140681540} + m_Layer: 0 + m_Name: Sphere (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010629167112 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010794846548} + - component: {fileID: 33000012014437306} + - component: {fileID: 135000014046954128} + - component: {fileID: 23000012881930702} + m_Layer: 0 + m_Name: Sphere (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010677277646 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010574205308} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010754605226 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012631573820} + - component: {fileID: 33000012496129964} + - component: {fileID: 135000010322373284} + - component: {fileID: 23000010922128364} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011140611266 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011801280982} + - component: {fileID: 33000012304415750} + - component: {fileID: 135000011788593278} + - component: {fileID: 23000013442133786} + m_Layer: 0 + m_Name: Sphere (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011280293128 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013457853772} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011419217470 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012908174082} + - component: {fileID: 33000012165602584} + - component: {fileID: 135000012254264818} + - component: {fileID: 23000013069349862} + m_Layer: 0 + m_Name: Sphere (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011439797364 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012634066572} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011498593814 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013798480240} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011603578742 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010113146392} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011677831218 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011206241358} + - component: {fileID: 33000010361159574} + - component: {fileID: 135000013244871946} + - component: {fileID: 23000012856979566} + m_Layer: 0 + m_Name: Sphere (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011697605022 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012549693380} + - component: {fileID: 33000012341634524} + - component: {fileID: 135000012210333046} + - component: {fileID: 23000011036715798} + m_Layer: 0 + m_Name: Sphere (20) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011753996734 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013009955538} + - component: {fileID: 33000011373522048} + - component: {fileID: 135000012092621100} + - component: {fileID: 23000010311915246} + m_Layer: 0 + m_Name: Sphere (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011787985402 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011030235908} + - component: {fileID: 33000011331132656} + - component: {fileID: 135000012989055838} + - component: {fileID: 23000013032495660} + m_Layer: 0 + m_Name: Sphere (18) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011836353396 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000014170456964} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011887723186 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000014187209622} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011973232756 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010163547154} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012112892728 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011685292612} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012344280542 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012542715892} + - component: {fileID: 33000011112248652} + - component: {fileID: 135000012388857190} + - component: {fileID: 23000013796798692} + m_Layer: 0 + m_Name: Sphere (19) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012378950814 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012054217298} + - component: {fileID: 33000010588528966} + - component: {fileID: 135000011902358174} + - component: {fileID: 23000010636634114} + m_Layer: 0 + m_Name: Sphere (16) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012470308022 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010760374938} + m_Layer: 0 + m_Name: SphereGroup 1 + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012470888132 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010363248526} + - component: {fileID: 33000011331681606} + - component: {fileID: 135000013122701806} + - component: {fileID: 23000013523107472} + m_Layer: 0 + m_Name: Sphere (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012481083098 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011403334846} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012743780564 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012871338094} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012774224490 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010433353240} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012798601726 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011488636830} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012848132142 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011224780184} + - component: {fileID: 33000011098133760} + - component: {fileID: 135000010906751980} + - component: {fileID: 23000013421624772} + m_Layer: 0 + m_Name: Sphere (14) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012862413288 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011920970476} + - component: {fileID: 33000014221939320} + - component: {fileID: 135000012222279098} + - component: {fileID: 23000013898528828} + m_Layer: 0 + m_Name: Sphere (13) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012877361228 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010224350464} + - component: {fileID: 33000010231940884} + - component: {fileID: 135000014092929856} + - component: {fileID: 23000012532277778} + m_Layer: 0 + m_Name: Sphere (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013025147428 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010199868884} + - component: {fileID: 33000011615211680} + - component: {fileID: 135000013751575902} + - component: {fileID: 23000013751080654} + m_Layer: 0 + m_Name: Sphere (10) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013055705134 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011256059824} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013240302738 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013336532474} + - component: {fileID: 33000014130596838} + - component: {fileID: 135000010665472466} + - component: {fileID: 23000012703457538} + m_Layer: 0 + m_Name: Sphere (17) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013308341636 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013466806034} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013343956054 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011101297958} + - component: {fileID: 33000011519123438} + - component: {fileID: 135000013266396486} + - component: {fileID: 23000014070242114} + m_Layer: 0 + m_Name: Sphere (15) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013554399048 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011818357032} + - component: {fileID: 33000011229769100} + - component: {fileID: 135000010500615814} + - component: {fileID: 23000010816873258} + m_Layer: 0 + m_Name: Sphere (11) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013662182516 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013843224976} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000014164875786 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011497627172} + - component: {fileID: 33000013419629684} + - component: {fileID: 135000012111690070} + - component: {fileID: 23000012110281398} + m_Layer: 0 + m_Name: Sphere (21) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000014269651680 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000014079264936} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4000010113146392 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011603578742} + 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: 4000011101297958} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010163547154 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011973232756} + 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: 4000012549693380} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010178680272 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010434065936} + 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: 4000012542715892} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010199868884 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013025147428} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 7.46, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013302451620} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010224350464 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012877361228} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -4.54, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013457853772} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010363248526 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012470888132} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.04, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000014079264936} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010433353240 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012774224490} + 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: 4000010971999112} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010574205308 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010677277646} + 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: 4000013336532474} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010760374938 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012470308022} + 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: 4000012631573820} + - {fileID: 4000013647363470} + - {fileID: 4000010224350464} + - {fileID: 4000010363248526} + - {fileID: 4000013009955538} + - {fileID: 4000011801280982} + - {fileID: 4000010794846548} + - {fileID: 4000010971999112} + - {fileID: 4000011206241358} + - {fileID: 4000012908174082} + - {fileID: 4000010199868884} + - {fileID: 4000011818357032} + - {fileID: 4000012813361656} + - {fileID: 4000011920970476} + - {fileID: 4000011224780184} + - {fileID: 4000011101297958} + - {fileID: 4000012054217298} + - {fileID: 4000013336532474} + - {fileID: 4000011030235908} + - {fileID: 4000012542715892} + - {fileID: 4000012549693380} + - {fileID: 4000011497627172} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010794846548 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010629167112} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.46, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013674302558} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010971999112 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010545922352} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.96, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000010433353240} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011030235908 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011787985402} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.04, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011256059824} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 18 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011101297958 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013343956054} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.46, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000010113146392} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011206241358 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011677831218} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.46, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013843224976} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011224780184 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012848132142} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.96, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000010760374938} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011256059824 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013055705134} + 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: 4000011030235908} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011403334846 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012481083098} + 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: 4000013009955538} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011488636830 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012798601726} + 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: 4000012908174082} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011497627172 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000014164875786} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -7.54, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000014170456964} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 21 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011685292612 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012112892728} + 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: 4000012813361656} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011801280982 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011140611266} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.03999996, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000012871338094} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011818357032 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013554399048} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 7.46, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000014187209622} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011920970476 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012862413288} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.46, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013466806034} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012054217298 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012378950814} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.03999996, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013798480240} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012464417950 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010291928302} + 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: 4000013647363470} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012542715892 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012344280542} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -4.54, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000010178680272} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 19 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012549693380 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011697605022} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -6.04, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000010163547154} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 20 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012631573820 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010754605226} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -7.54, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000012634066572} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012634066572 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011439797364} + 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: 4000012631573820} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012813361656 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010087587216} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5.96, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011685292612} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012871338094 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012743780564} + 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: 4000011801280982} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012908174082 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011419217470} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5.96, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011488636830} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013009955538 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011753996734} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.54, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011403334846} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013302451620 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010071295928} + 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: 4000010199868884} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013336532474 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013240302738} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.54, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000010574205308} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013457853772 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011280293128} + 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: 4000010224350464} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013466806034 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013308341636} + 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: 4000011920970476} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013647363470 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010289061002} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -6.04, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000012464417950} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013674302558 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010007989558} + 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: 4000010794846548} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013798480240 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011498593814} + 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: 4000012054217298} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013843224976 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013662182516} + 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: 4000011206241358} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000014079264936 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000014269651680} + 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: 4000010363248526} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000014170456964 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011836353396} + 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: 4000011497627172} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000014187209622 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011887723186} + 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: 4000011818357032} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &23000010311915246 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011753996734} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 4e560d4bc2c20cc4fba9fb5b1f1be541, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000010636634114 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012378950814} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 163701ce9c397d542bbbfdea8cdf7296, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000010816873258 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013554399048} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 1cf5eed996385fa4fa3b8fcb5652286e, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000010922128364 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010754605226} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 61f42391dbd7154448c0045c536e1d65, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000011036715798 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011697605022} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: fd05883380b8e33459781ce77287d924, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000011727209500 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010289061002} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: d843b398f9818ea44b1025499d6eb030, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012055495256 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010087587216} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: cc6c2aad115095e4c943d30cb25b33b2, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012110281398 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000014164875786} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 0f837bd8819543a409b5e505acaa7de0, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012140681540 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010545922352} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 5561a61553f8b4c43821223f61cd7d29, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012532277778 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012877361228} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: a4895dde5062b86498cb244d8ec29364, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012703457538 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013240302738} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 5e6573a30d7ca4b4784325f7cf75e402, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012856979566 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011677831218} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 4a2884ce64f12e1488bb34a0b873c9d3, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012881930702 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010629167112} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 72599c9a42ea42049a2a36b1828875c3, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013032495660 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011787985402} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: e4f7f026e60078a43a553e584d261671, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013069349862 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011419217470} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: c43c315665a6e9e46a45b39cc3645d85, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013421624772 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012848132142} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: c99506b671307f34c995cd21fd4badb8, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013442133786 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011140611266} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 044b04b8868827a4b9c545bf762f0adc, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013523107472 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012470888132} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: efaced99acd4b8149a75a5c01e47e985, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013751080654 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013025147428} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: d3953630a3c6bd64eb0cb867beae30d3, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013796798692 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012344280542} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: e682479f0c6d8c24db2635eea4343591, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013898528828 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012862413288} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 4dee58bca878da146ba35583d00f6ed8, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000014070242114 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013343956054} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 81b54dc3c415c894e9c176f3053eb0b8, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &33000010231940884 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012877361228} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000010361159574 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011677831218} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000010588528966 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012378950814} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011098133760 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012848132142} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011112248652 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012344280542} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011229769100 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013554399048} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011331132656 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011787985402} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011331681606 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012470888132} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011373522048 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011753996734} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011519123438 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013343956054} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011615211680 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013025147428} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012014437306 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010629167112} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012165602584 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011419217470} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012182004980 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010545922352} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012304415750 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011140611266} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012341634524 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011697605022} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012496129964 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010754605226} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012691087676 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010289061002} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000013191588704 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010087587216} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000013419629684 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000014164875786} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000014130596838 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013240302738} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000014221939320 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012862413288} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!135 &135000010322373284 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010754605226} + 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!135 &135000010485048620 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010545922352} + 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!135 &135000010500615814 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013554399048} + 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!135 &135000010665472466 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013240302738} + 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!135 &135000010906751980 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012848132142} + 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!135 &135000011788593278 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011140611266} + 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!135 &135000011902358174 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012378950814} + 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!135 &135000012092621100 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011753996734} + 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!135 &135000012111690070 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000014164875786} + 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!135 &135000012210333046 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011697605022} + 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!135 &135000012222279098 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012862413288} + 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!135 &135000012254264818 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011419217470} + 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!135 &135000012343630262 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010289061002} + 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!135 &135000012388857190 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012344280542} + 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!135 &135000012989055838 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011787985402} + 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!135 &135000013122701806 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012470888132} + 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!135 &135000013244871946 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011677831218} + 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!135 &135000013266396486 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013343956054} + 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!135 &135000013332565106 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010087587216} + 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!135 &135000013751575902 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013025147428} + 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!135 &135000014046954128 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010629167112} + 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!135 &135000014092929856 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012877361228} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} diff --git a/Assets/TestScenes/HDTest/SphereStandard/SphereGroup 1.prefab.meta b/Assets/TestScenes/HDTest/SphereStandard/SphereGroup 1.prefab.meta new file mode 100644 index 00000000000..769e57a6e7d --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/SphereGroup 1.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2f2830c79042f2f47879fdec78f8de5f +timeCreated: 1460557875 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/SphereStandard/red.mat b/Assets/TestScenes/HDTest/SphereStandard/red.mat new file mode 100644 index 00000000000..c0ec3194134 --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/red.mat @@ -0,0 +1,127 @@ +%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: red + m_Shader: {fileID: 46, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _BumpScale + second: 1 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DstBlend + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/SphereStandard/red.mat.meta b/Assets/TestScenes/HDTest/SphereStandard/red.mat.meta new file mode 100644 index 00000000000..4f12c28e92c --- /dev/null +++ b/Assets/TestScenes/HDTest/SphereStandard/red.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 83f9931d31aac4d42b96d07245f13861 +timeCreated: 1476870536 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres.meta b/Assets/TestScenes/HDTest/Spheres.meta new file mode 100644 index 00000000000..2111a6c5bf0 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 37edb374d593ad44f905f1b46cc79f49 +folderAsset: yes +timeCreated: 1476481711 +licenseType: Pro +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_0.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_0.mat new file mode 100644 index 00000000000..811074b577a --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_0.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_0 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_0.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_0.mat.meta new file mode 100644 index 00000000000..a92bc401925 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_0.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d3953630a3c6bd64eb0cb867beae30d3 +timeCreated: 1448039538 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_1.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_1.mat new file mode 100644 index 00000000000..191cfc70f0c --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_1.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_1 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.1 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.1 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_1.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_1.mat.meta new file mode 100644 index 00000000000..47c45612f0d --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c43c315665a6e9e46a45b39cc3645d85 +timeCreated: 1448039530 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_2.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_2.mat new file mode 100644 index 00000000000..2d5f4ca75ff --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_2.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_2 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.2 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.2 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_2.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_2.mat.meta new file mode 100644 index 00000000000..5925746a62c --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4a2884ce64f12e1488bb34a0b873c9d3 +timeCreated: 1448039530 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_3.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_3.mat new file mode 100644 index 00000000000..43a61ffc015 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_3.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_3 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.3 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.3 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_3.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_3.mat.meta new file mode 100644 index 00000000000..0f920f1e9a5 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5561a61553f8b4c43821223f61cd7d29 +timeCreated: 1448039508 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_4.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_4.mat new file mode 100644 index 00000000000..4cfab39ccaa --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_4.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_4 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.4 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.4 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_4.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_4.mat.meta new file mode 100644 index 00000000000..55d857c3bff --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_4.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 72599c9a42ea42049a2a36b1828875c3 +timeCreated: 1448039507 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_5.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_5.mat new file mode 100644 index 00000000000..90f460f42ae --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_5.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_5 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.5 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_5.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_5.mat.meta new file mode 100644 index 00000000000..f994f409f47 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_5.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 044b04b8868827a4b9c545bf762f0adc +timeCreated: 1448039507 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_6.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_6.mat new file mode 100644 index 00000000000..5738ad15541 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_6.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_6 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.6 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.6 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_6.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_6.mat.meta new file mode 100644 index 00000000000..3ead16f0d9b --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_6.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4e560d4bc2c20cc4fba9fb5b1f1be541 +timeCreated: 1448039507 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_7.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_7.mat new file mode 100644 index 00000000000..1b15b20af6a --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_7.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_7 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.7 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.7 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_7.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_7.mat.meta new file mode 100644 index 00000000000..ced1470122d --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_7.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: efaced99acd4b8149a75a5c01e47e985 +timeCreated: 1448039507 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_8.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_8.mat new file mode 100644 index 00000000000..3685dabca28 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_8.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_8 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.8 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.8 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_8.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_8.mat.meta new file mode 100644 index 00000000000..11d2c4dfd5f --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_8.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a4895dde5062b86498cb244d8ec29364 +timeCreated: 1448039506 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_9.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_9.mat new file mode 100644 index 00000000000..0cb2ea32cfc --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_9.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth0_9 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.9 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.9 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_9.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_9.mat.meta new file mode 100644 index 00000000000..dbba79e65e2 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth0_9.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: d843b398f9818ea44b1025499d6eb030 +timeCreated: 1448039483 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth1_1.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smooth1_1.mat new file mode 100644 index 00000000000..3bccdb16840 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth1_1.mat @@ -0,0 +1,236 @@ +%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: Mat_smooth1_1 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 1 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 1 + - first: + name: _Metallic + second: 1 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 1 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smooth1_1.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smooth1_1.mat.meta new file mode 100644 index 00000000000..f208746d6b8 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smooth1_1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 61f42391dbd7154448c0045c536e1d65 +timeCreated: 1453738565 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_0.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_0.mat new file mode 100644 index 00000000000..02e897810cc --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_0.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_0 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_0.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_0.mat.meta new file mode 100644 index 00000000000..060aec1b08c --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_0.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1cf5eed996385fa4fa3b8fcb5652286e +timeCreated: 1453738565 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_1.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_1.mat new file mode 100644 index 00000000000..9a91a805ff1 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_1.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_1 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.1 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.1 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_1.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_1.mat.meta new file mode 100644 index 00000000000..21cd2fe6260 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_1.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cc6c2aad115095e4c943d30cb25b33b2 +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_2.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_2.mat new file mode 100644 index 00000000000..1dde5129db0 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_2.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_2 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.2 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.2 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_2.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_2.mat.meta new file mode 100644 index 00000000000..9238ef8b2c5 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_2.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4dee58bca878da146ba35583d00f6ed8 +timeCreated: 1453738565 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_3.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_3.mat new file mode 100644 index 00000000000..dcd799978b0 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_3.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_3 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.3 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.3 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_3.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_3.mat.meta new file mode 100644 index 00000000000..ff3a77de843 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_3.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: c99506b671307f34c995cd21fd4badb8 +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_4.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_4.mat new file mode 100644 index 00000000000..55f59ba1d91 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_4.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_4 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.4 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.4 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_4.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_4.mat.meta new file mode 100644 index 00000000000..d69b12c6412 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_4.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 81b54dc3c415c894e9c176f3053eb0b8 +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_5.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_5.mat new file mode 100644 index 00000000000..6b0e166f37c --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_5.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_5 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.5 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.5 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_5.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_5.mat.meta new file mode 100644 index 00000000000..c9b74d78bf3 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_5.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 163701ce9c397d542bbbfdea8cdf7296 +timeCreated: 1453738565 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_6.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_6.mat new file mode 100644 index 00000000000..0462dd65f1d --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_6.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_6 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.6 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.6 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_6.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_6.mat.meta new file mode 100644 index 00000000000..98db3749a16 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_6.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5e6573a30d7ca4b4784325f7cf75e402 +timeCreated: 1453738565 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_7.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_7.mat new file mode 100644 index 00000000000..d0227788d91 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_7.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_7 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.7 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.7 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_7.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_7.mat.meta new file mode 100644 index 00000000000..5a436dc7328 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_7.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e4f7f026e60078a43a553e584d261671 +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_8.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_8.mat new file mode 100644 index 00000000000..e15f3788f05 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_8.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_8 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.8 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.8 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_8.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_8.mat.meta new file mode 100644 index 00000000000..730568d06d0 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_8.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e682479f0c6d8c24db2635eea4343591 +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_9.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_9.mat new file mode 100644 index 00000000000..a9afba33f8a --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_9.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric0_9 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 0.9 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 0.9 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_9.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_9.mat.meta new file mode 100644 index 00000000000..2e305f171dc --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric0_9.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fd05883380b8e33459781ce77287d924 +timeCreated: 1453738566 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric1_0.mat b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric1_0.mat new file mode 100644 index 00000000000..1f0dfd4970d --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric1_0.mat @@ -0,0 +1,236 @@ +%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: Mat_smoothdielectric1_0 + m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3} + m_ShaderKeywords: _ALPHACUTOFFENABLE_OFF _DISTORTIONDEPTHTEST_OFF _DISTORTIONONLY_OFF + _EMISSION _NORMALMAP_TANGENT_SPACE + m_LightmapFlags: 1 + m_CustomRenderQueue: -1 + stringTagMap: {} + m_SavedProperties: + serializedVersion: 2 + m_TexEnvs: + - first: + name: _BaseColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _BumpMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailAlbedoMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailMask + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DetailNormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _DiffuseLightingMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _EmissiveColorMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _HeightMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MainTex + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MaskMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _MetallicGlossMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _NormalMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _OcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _ParallaxMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SpecularOcclusionMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - first: + name: _SubSurfaceRadiusMap + second: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - first: + name: _AlphaCutoff + second: 0.5 + - first: + name: _AlphaCutoffEnable + second: 0 + - first: + name: _BlendMode + second: 0 + - first: + name: _BumpScale + second: 1 + - first: + name: _CullMode + second: 2 + - first: + name: _Cutoff + second: 0.5 + - first: + name: _DetailNormalMapScale + second: 1 + - first: + name: _DistortionDepthTest + second: 0 + - first: + name: _DistortionOnly + second: 0 + - first: + name: _DoubleSidedMode + second: 0 + - first: + name: _DstBlend + second: 0 + - first: + name: _EmissiveColorMode + second: 1 + - first: + name: _EmissiveIntensity + second: 0 + - first: + name: _GlossMapScale + second: 1 + - first: + name: _Glossiness + second: 1 + - first: + name: _GlossyReflections + second: 1 + - first: + name: _HeightBias + second: 0 + - first: + name: _HeightMapMode + second: 0 + - first: + name: _HeightScale + second: 1 + - first: + name: _MaterialId + second: 0 + - first: + name: _Metalic + second: 0 + - first: + name: _Metallic + second: 0 + - first: + name: _Mode + second: 0 + - first: + name: _NormalMapSpace + second: 0 + - first: + name: _OcclusionStrength + second: 1 + - first: + name: _Parallax + second: 0.02 + - first: + name: _Smoothness + second: 1 + - first: + name: _SmoothnessTextureChannel + second: 0 + - first: + name: _SpecularHighlights + second: 1 + - first: + name: _SrcBlend + second: 1 + - first: + name: _SubSurfaceRadius + second: 0 + - first: + name: _SurfaceType + second: 0 + - first: + name: _UVSec + second: 0 + - first: + name: _ZWrite + second: 1 + m_Colors: + - first: + name: _BaseColor + second: {r: 1, g: 1, b: 1, a: 1} + - first: + name: _Color + second: {r: 0.7176471, g: 0.7176471, b: 0.7176471, a: 1} + - first: + name: _EmissionColor + second: {r: 0, g: 0, b: 0, a: 1} + - first: + name: _EmissiveColor + second: {r: 0, g: 0, b: 0, a: 1} diff --git a/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric1_0.mat.meta b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric1_0.mat.meta new file mode 100644 index 00000000000..c59175b0bf9 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/Mat_smoothdielectric1_0.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0f837bd8819543a409b5e505acaa7de0 +timeCreated: 1448039441 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Spheres/SphereGroup.prefab b/Assets/TestScenes/HDTest/Spheres/SphereGroup.prefab new file mode 100644 index 00000000000..fe7317c77ce --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/SphereGroup.prefab @@ -0,0 +1,2454 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &100100000 +Prefab: + m_ObjectHideFlags: 1 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: [] + m_RemovedComponents: [] + m_ParentPrefab: {fileID: 0} + m_RootGameObject: {fileID: 1000012470308022} + m_IsPrefabParent: 1 +--- !u!1 &1000010007989558 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013674302558} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010071295928 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013302451620} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010087587216 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012813361656} + - component: {fileID: 33000013191588704} + - component: {fileID: 135000013332565106} + - component: {fileID: 23000012055495256} + m_Layer: 0 + m_Name: Sphere (12) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010289061002 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013647363470} + - component: {fileID: 33000012691087676} + - component: {fileID: 135000012343630262} + - component: {fileID: 23000011727209500} + m_Layer: 0 + m_Name: Sphere (1) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010291928302 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012464417950} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010434065936 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010178680272} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010545922352 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010971999112} + - component: {fileID: 33000012182004980} + - component: {fileID: 135000010485048620} + - component: {fileID: 23000012140681540} + m_Layer: 0 + m_Name: Sphere (7) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010629167112 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010794846548} + - component: {fileID: 33000012014437306} + - component: {fileID: 135000014046954128} + - component: {fileID: 23000012881930702} + m_Layer: 0 + m_Name: Sphere (6) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010677277646 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010574205308} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000010754605226 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012631573820} + - component: {fileID: 33000012496129964} + - component: {fileID: 135000010322373284} + - component: {fileID: 23000010922128364} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011140611266 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011801280982} + - component: {fileID: 33000012304415750} + - component: {fileID: 135000011788593278} + - component: {fileID: 23000013442133786} + m_Layer: 0 + m_Name: Sphere (5) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011280293128 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013457853772} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011419217470 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012908174082} + - component: {fileID: 33000012165602584} + - component: {fileID: 135000012254264818} + - component: {fileID: 23000013069349862} + m_Layer: 0 + m_Name: Sphere (9) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011439797364 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012634066572} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011498593814 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013798480240} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011603578742 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010113146392} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011677831218 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011206241358} + - component: {fileID: 33000010361159574} + - component: {fileID: 135000013244871946} + - component: {fileID: 23000012856979566} + m_Layer: 0 + m_Name: Sphere (8) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011697605022 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012549693380} + - component: {fileID: 33000012341634524} + - component: {fileID: 135000012210333046} + - component: {fileID: 23000011036715798} + m_Layer: 0 + m_Name: Sphere (20) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011753996734 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013009955538} + - component: {fileID: 33000011373522048} + - component: {fileID: 135000012092621100} + - component: {fileID: 23000010311915246} + m_Layer: 0 + m_Name: Sphere (4) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011787985402 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011030235908} + - component: {fileID: 33000011331132656} + - component: {fileID: 135000012989055838} + - component: {fileID: 23000013032495660} + m_Layer: 0 + m_Name: Sphere (18) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011836353396 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000014170456964} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011887723186 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000014187209622} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000011973232756 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010163547154} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012112892728 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011685292612} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012344280542 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012542715892} + - component: {fileID: 33000011112248652} + - component: {fileID: 135000012388857190} + - component: {fileID: 23000013796798692} + m_Layer: 0 + m_Name: Sphere (19) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012378950814 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012054217298} + - component: {fileID: 33000010588528966} + - component: {fileID: 135000011902358174} + - component: {fileID: 23000010636634114} + m_Layer: 0 + m_Name: Sphere (16) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012470308022 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010760374938} + m_Layer: 0 + m_Name: SphereGroup + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012470888132 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010363248526} + - component: {fileID: 33000011331681606} + - component: {fileID: 135000013122701806} + - component: {fileID: 23000013523107472} + m_Layer: 0 + m_Name: Sphere (3) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012481083098 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011403334846} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012743780564 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000012871338094} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012774224490 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010433353240} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012798601726 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011488636830} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012848132142 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011224780184} + - component: {fileID: 33000011098133760} + - component: {fileID: 135000010906751980} + - component: {fileID: 23000013421624772} + m_Layer: 0 + m_Name: Sphere (14) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012862413288 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011920970476} + - component: {fileID: 33000014221939320} + - component: {fileID: 135000012222279098} + - component: {fileID: 23000013898528828} + m_Layer: 0 + m_Name: Sphere (13) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000012877361228 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010224350464} + - component: {fileID: 33000010231940884} + - component: {fileID: 135000014092929856} + - component: {fileID: 23000012532277778} + m_Layer: 0 + m_Name: Sphere (2) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013025147428 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000010199868884} + - component: {fileID: 33000011615211680} + - component: {fileID: 135000013751575902} + - component: {fileID: 23000013751080654} + m_Layer: 0 + m_Name: Sphere (10) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013055705134 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011256059824} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013240302738 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013336532474} + - component: {fileID: 33000014130596838} + - component: {fileID: 135000010665472466} + - component: {fileID: 23000012703457538} + m_Layer: 0 + m_Name: Sphere (17) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013308341636 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013466806034} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013343956054 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011101297958} + - component: {fileID: 33000011519123438} + - component: {fileID: 135000013266396486} + - component: {fileID: 23000014070242114} + m_Layer: 0 + m_Name: Sphere (15) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013554399048 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011818357032} + - component: {fileID: 33000011229769100} + - component: {fileID: 135000010500615814} + - component: {fileID: 23000010816873258} + m_Layer: 0 + m_Name: Sphere (11) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000013662182516 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000013843224976} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000014164875786 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000011497627172} + - component: {fileID: 33000013419629684} + - component: {fileID: 135000012111690070} + - component: {fileID: 23000012110281398} + m_Layer: 0 + m_Name: Sphere (21) + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!1 &1000014269651680 +GameObject: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + serializedVersion: 5 + m_Component: + - component: {fileID: 4000014079264936} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4000010113146392 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011603578742} + 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: 4000011101297958} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010163547154 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011973232756} + 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: 4000012549693380} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010178680272 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010434065936} + 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: 4000012542715892} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010199868884 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013025147428} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 7.46, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013302451620} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 10 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010224350464 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012877361228} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -4.54, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013457853772} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010363248526 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012470888132} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.04, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000014079264936} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010433353240 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012774224490} + 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: 4000010971999112} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010574205308 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010677277646} + 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: 4000013336532474} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010760374938 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012470308022} + 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: 4000012631573820} + - {fileID: 4000013647363470} + - {fileID: 4000010224350464} + - {fileID: 4000010363248526} + - {fileID: 4000013009955538} + - {fileID: 4000011801280982} + - {fileID: 4000010794846548} + - {fileID: 4000010971999112} + - {fileID: 4000011206241358} + - {fileID: 4000012908174082} + - {fileID: 4000010199868884} + - {fileID: 4000011818357032} + - {fileID: 4000012813361656} + - {fileID: 4000011920970476} + - {fileID: 4000011224780184} + - {fileID: 4000011101297958} + - {fileID: 4000012054217298} + - {fileID: 4000013336532474} + - {fileID: 4000011030235908} + - {fileID: 4000012542715892} + - {fileID: 4000012549693380} + - {fileID: 4000011497627172} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010794846548 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010629167112} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.46, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013674302558} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 6 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000010971999112 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010545922352} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.96, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000010433353240} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 7 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011030235908 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011787985402} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -3.04, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011256059824} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 18 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011101297958 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013343956054} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.46, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000010113146392} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 15 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011206241358 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011677831218} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.46, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013843224976} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 8 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011224780184 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012848132142} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.96, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4000010760374938} + m_RootOrder: 14 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011256059824 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013055705134} + 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: 4000011030235908} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011403334846 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012481083098} + 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: 4000013009955538} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011488636830 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012798601726} + 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: 4000012908174082} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011497627172 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000014164875786} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -7.54, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000014170456964} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 21 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011685292612 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012112892728} + 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: 4000012813361656} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011801280982 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011140611266} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.03999996, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000012871338094} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011818357032 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013554399048} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 7.46, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000014187209622} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 11 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000011920970476 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012862413288} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 4.46, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013466806034} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 13 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012054217298 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012378950814} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0.03999996, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000013798480240} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 16 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012464417950 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010291928302} + 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: 4000013647363470} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012542715892 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012344280542} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -4.54, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000010178680272} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 19 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012549693380 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011697605022} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -6.04, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000010163547154} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 20 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012631573820 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010754605226} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -7.54, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000012634066572} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012634066572 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011439797364} + 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: 4000012631573820} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012813361656 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010087587216} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5.96, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011685292612} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 12 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012871338094 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012743780564} + 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: 4000011801280982} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000012908174082 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011419217470} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 5.96, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011488636830} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 9 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013009955538 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011753996734} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.54, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000011403334846} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 4 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013302451620 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010071295928} + 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: 4000010199868884} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013336532474 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013240302738} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.54, y: 0, z: -1.75} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000010574205308} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 17 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013457853772 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011280293128} + 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: 4000010224350464} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013466806034 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013308341636} + 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: 4000011920970476} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013647363470 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010289061002} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -6.04, y: 0, z: 0.8299999} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4000012464417950} + m_Father: {fileID: 4000010760374938} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013674302558 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010007989558} + 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: 4000010794846548} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013798480240 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011498593814} + 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: 4000012054217298} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000013843224976 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013662182516} + 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: 4000011206241358} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000014079264936 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000014269651680} + 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: 4000010363248526} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000014170456964 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011836353396} + 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: 4000011497627172} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!4 &4000014187209622 +Transform: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011887723186} + 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: 4000011818357032} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!23 &23000010311915246 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011753996734} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 4e560d4bc2c20cc4fba9fb5b1f1be541, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000010636634114 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012378950814} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 163701ce9c397d542bbbfdea8cdf7296, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000010816873258 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013554399048} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 1cf5eed996385fa4fa3b8fcb5652286e, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000010922128364 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010754605226} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 61f42391dbd7154448c0045c536e1d65, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000011036715798 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011697605022} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: fd05883380b8e33459781ce77287d924, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000011727209500 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010289061002} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: d843b398f9818ea44b1025499d6eb030, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012055495256 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010087587216} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: cc6c2aad115095e4c943d30cb25b33b2, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012110281398 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000014164875786} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 0f837bd8819543a409b5e505acaa7de0, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012140681540 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010545922352} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 5561a61553f8b4c43821223f61cd7d29, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012532277778 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012877361228} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: a4895dde5062b86498cb244d8ec29364, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012703457538 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013240302738} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 5e6573a30d7ca4b4784325f7cf75e402, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012856979566 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011677831218} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 4a2884ce64f12e1488bb34a0b873c9d3, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000012881930702 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010629167112} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 72599c9a42ea42049a2a36b1828875c3, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013032495660 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011787985402} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: e4f7f026e60078a43a553e584d261671, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013069349862 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011419217470} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: c43c315665a6e9e46a45b39cc3645d85, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013421624772 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012848132142} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: c99506b671307f34c995cd21fd4badb8, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013442133786 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011140611266} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 044b04b8868827a4b9c545bf762f0adc, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013523107472 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012470888132} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: efaced99acd4b8149a75a5c01e47e985, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013751080654 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013025147428} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: d3953630a3c6bd64eb0cb867beae30d3, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013796798692 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012344280542} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: e682479f0c6d8c24db2635eea4343591, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000013898528828 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012862413288} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 4dee58bca878da146ba35583d00f6ed8, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!23 &23000014070242114 +MeshRenderer: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013343956054} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_Materials: + - {fileID: 2100000, guid: 81b54dc3c415c894e9c176f3053eb0b8, 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: 1 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingOrder: 0 +--- !u!33 &33000010231940884 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012877361228} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000010361159574 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011677831218} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000010588528966 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012378950814} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011098133760 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012848132142} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011112248652 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012344280542} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011229769100 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013554399048} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011331132656 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011787985402} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011331681606 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012470888132} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011373522048 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011753996734} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011519123438 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013343956054} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000011615211680 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013025147428} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012014437306 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010629167112} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012165602584 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011419217470} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012182004980 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010545922352} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012304415750 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011140611266} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012341634524 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011697605022} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012496129964 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010754605226} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000012691087676 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010289061002} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000013191588704 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010087587216} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000013419629684 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000014164875786} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000014130596838 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013240302738} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!33 &33000014221939320 +MeshFilter: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012862413288} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!135 &135000010322373284 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010754605226} + 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!135 &135000010485048620 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010545922352} + 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!135 &135000010500615814 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013554399048} + 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!135 &135000010665472466 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013240302738} + 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!135 &135000010906751980 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012848132142} + 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!135 &135000011788593278 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011140611266} + 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!135 &135000011902358174 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012378950814} + 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!135 &135000012092621100 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011753996734} + 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!135 &135000012111690070 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000014164875786} + 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!135 &135000012210333046 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011697605022} + 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!135 &135000012222279098 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012862413288} + 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!135 &135000012254264818 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011419217470} + 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!135 &135000012343630262 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010289061002} + 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!135 &135000012388857190 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012344280542} + 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!135 &135000012989055838 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011787985402} + 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!135 &135000013122701806 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012470888132} + 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!135 &135000013244871946 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000011677831218} + 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!135 &135000013266396486 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013343956054} + 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!135 &135000013332565106 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010087587216} + 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!135 &135000013751575902 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000013025147428} + 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!135 &135000014046954128 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000010629167112} + 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!135 &135000014092929856 +SphereCollider: + m_ObjectHideFlags: 1 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 100100000} + m_GameObject: {fileID: 1000012877361228} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} diff --git a/Assets/TestScenes/HDTest/Spheres/SphereGroup.prefab.meta b/Assets/TestScenes/HDTest/Spheres/SphereGroup.prefab.meta new file mode 100644 index 00000000000..f0d733164a1 --- /dev/null +++ b/Assets/TestScenes/HDTest/Spheres/SphereGroup.prefab.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1faa212e4ad88f04a81c5ed019001de5 +timeCreated: 1460557875 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/TestScenes/HDTest/Material/test.mat b/Assets/TestScenes/fptl/Materials/FwdMat.mat similarity index 79% rename from Assets/TestScenes/HDTest/Material/test.mat rename to Assets/TestScenes/fptl/Materials/FwdMat.mat index 7ac69f7acb0..28ce9dbd82c 100644 --- a/Assets/TestScenes/HDTest/Material/test.mat +++ b/Assets/TestScenes/fptl/Materials/FwdMat.mat @@ -6,8 +6,8 @@ Material: m_ObjectHideFlags: 0 m_PrefabParentObject: {fileID: 0} m_PrefabInternal: {fileID: 0} - m_Name: test - m_Shader: {fileID: 4800000, guid: e1a84346ee54f9f4993c2f05c59805a0, type: 3} + m_Name: FwdMat + m_Shader: {fileID: 4800000, guid: ccaa200b3477a2a4cbc0fecd9fc2dde8, type: 3} m_ShaderKeywords: _EMISSION m_LightmapFlags: 1 m_CustomRenderQueue: -1 @@ -39,12 +39,6 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - - first: - name: _DiffuseMap - second: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - first: name: _EmissionMap second: @@ -63,12 +57,6 @@ Material: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - - first: - name: _NormalMap - second: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - first: name: _OcclusionMap second: @@ -82,13 +70,7 @@ Material: m_Scale: {x: 1, y: 1} m_Offset: {x: 0, y: 0} - first: - name: _SmoothnessMap - second: - m_Texture: {fileID: 0} - m_Scale: {x: 1, y: 1} - m_Offset: {x: 0, y: 0} - - first: - name: _SpecMap + name: _SpecGlossMap second: m_Texture: {fileID: 0} m_Scale: {x: 1, y: 1} @@ -127,9 +109,6 @@ Material: - first: name: _Parallax second: 0.02 - - first: - name: _Smoothness - second: 0.5 - first: name: _SmoothnessTextureChannel second: 0 @@ -149,12 +128,9 @@ Material: - first: name: _Color second: {r: 1, g: 1, b: 1, a: 1} - - first: - name: _DiffuseColor - second: {r: 1, g: 1, b: 1, a: 1} - first: name: _EmissionColor second: {r: 0, g: 0, b: 0, a: 1} - first: name: _SpecColor - second: {r: 0.04, g: 0.04, b: 0.04, a: 1} + second: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1} diff --git a/Assets/Textures/cubeTest.png.meta b/Assets/Textures/cubeTest.png.meta index c1acb1e399f..9bd8cc2b532 100644 --- a/Assets/Textures/cubeTest.png.meta +++ b/Assets/Textures/cubeTest.png.meta @@ -60,7 +60,7 @@ TextureImporter: allowsAlphaSplitting: 0 overridden: 0 - buildTarget: Standalone - maxTextureSize: 2048 + maxTextureSize: 128 textureFormat: 4 textureCompression: 1 compressionQuality: 50 diff --git a/Assets/forwardrenderloop.asset b/Assets/forwardrenderloop.asset new file mode 100644 index 00000000000..e35d128d629 --- /dev/null +++ b/Assets/forwardrenderloop.asset @@ -0,0 +1,20 @@ +%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: 98fe12104b04e43dd9a963f3f7b26e8e, type: 3} + m_Name: forwardrenderloop + m_EditorClassIdentifier: + m_ShadowSettings: + enabled: 1 + shadowAtlasWidth: 4096 + shadowAtlasHeight: 4096 + maxShadowDistance: 1000 + directionalLightCascadeCount: 4 + directionalLightCascades: {x: 0.05, y: 0.2, z: 0.3} diff --git a/Assets/forwardrenderloop.asset.meta b/Assets/forwardrenderloop.asset.meta new file mode 100644 index 00000000000..6f67230f124 --- /dev/null +++ b/Assets/forwardrenderloop.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: bfc231f294556ca4799e7f7feddee50d +timeCreated: 1475076344 +licenseType: Pro +NativeFormatImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/LICENSE b/LICENSE new file mode 100644 index 00000000000..d6315ef330f --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2016 Unity Technologies + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/ProjectSettings/GraphicsSettings.asset b/ProjectSettings/GraphicsSettings.asset index ccbbe35af4e..7322528c201 100644 --- a/ProjectSettings/GraphicsSettings.asset +++ b/ProjectSettings/GraphicsSettings.asset @@ -3,7 +3,7 @@ --- !u!30 &1 GraphicsSettings: m_ObjectHideFlags: 0 - serializedVersion: 7 + serializedVersion: 10 m_Deferred: m_Mode: 0 m_Shader: {fileID: 0} @@ -28,9 +28,6 @@ GraphicsSettings: m_LensFlare: m_Mode: 1 m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} - m_SpritesDefault: - m_Mode: 1 - m_Shader: {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} m_AlwaysIncludedShaders: - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} @@ -39,26 +36,70 @@ GraphicsSettings: - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0} - {fileID: 4800000, guid: 36c23fe83f8e7a54d8fb168fa6cf2a3d, type: 3} + - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} m_PreloadedShaders: [] - m_ShaderSettings_Tier1: + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, + type: 0} + m_TierSettings_Tier1: + renderingPath: 1 useCascadedShadowMaps: 1 - useSinglePassStereoRendering: 0 - standardShaderQuality: 2 - useReflectionProbeBoxProjection: 1 - useReflectionProbeBlending: 1 - m_ShaderSettings_Tier2: + useHDR: 0 + hdrMode: 0 + m_TierSettings_Tier2: + renderingPath: 1 useCascadedShadowMaps: 1 - useSinglePassStereoRendering: 0 - standardShaderQuality: 2 - useReflectionProbeBoxProjection: 1 - useReflectionProbeBlending: 1 - m_ShaderSettings_Tier3: + useHDR: 0 + hdrMode: 0 + m_TierSettings_Tier3: + renderingPath: 1 useCascadedShadowMaps: 1 - useSinglePassStereoRendering: 0 - standardShaderQuality: 2 - useReflectionProbeBoxProjection: 1 - useReflectionProbeBlending: 1 - m_BuildTargetShaderSettings: [] + useHDR: 0 + hdrMode: 0 + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: + - serializedVersion: 2 + m_BuildTarget: 1 + m_Tier: 0 + m_Settings: + standardShaderQuality: 2 + renderingPath: 1 + hdrMode: 0 + useReflectionProbeBoxProjection: 1 + useReflectionProbeBlending: 1 + useHDR: 0 + useDetailNormalMap: 1 + useCascadedShadowMaps: 1 + useDitherMaskForAlphaBlendedShadows: 1 + m_Automatic: 0 + - serializedVersion: 2 + m_BuildTarget: 1 + m_Tier: 1 + m_Settings: + standardShaderQuality: 2 + renderingPath: 1 + hdrMode: 0 + useReflectionProbeBoxProjection: 1 + useReflectionProbeBlending: 1 + useHDR: 0 + useDetailNormalMap: 1 + useCascadedShadowMaps: 1 + useDitherMaskForAlphaBlendedShadows: 1 + m_Automatic: 0 + - serializedVersion: 2 + m_BuildTarget: 1 + m_Tier: 2 + m_Settings: + standardShaderQuality: 2 + renderingPath: 1 + hdrMode: 0 + useReflectionProbeBoxProjection: 1 + useReflectionProbeBlending: 1 + useHDR: 0 + useDetailNormalMap: 1 + useCascadedShadowMaps: 1 + useDitherMaskForAlphaBlendedShadows: 1 + m_Automatic: 0 m_LightmapStripping: 0 m_FogStripping: 0 m_LightmapKeepPlain: 1 diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index e9c3eca8990..63da28ea80c 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -3,7 +3,8 @@ --- !u!129 &1 PlayerSettings: m_ObjectHideFlags: 0 - serializedVersion: 8 + serializedVersion: 10 + productGUID: 900e9e40d20cd3e44ad40e5b00239dcc AndroidProfiler: 0 defaultScreenOrientation: 4 targetDevice: 2 @@ -13,21 +14,45 @@ PlayerSettings: productName: dev defaultCursor: {fileID: 0} cursorHotspot: {x: 0, y: 0} - m_SplashScreenStyle: 0 + m_SplashScreenBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21176471, a: 1} m_ShowUnitySplashScreen: 0 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_SplashScreenBackgroundLandscape: {fileID: 0} + m_SplashScreenBackgroundPortrait: {fileID: 0} m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} defaultScreenWidth: 1024 defaultScreenHeight: 768 defaultScreenWidthWeb: 960 defaultScreenHeightWeb: 600 - m_RenderingPath: 1 - m_MobileRenderingPath: 1 m_ActiveColorSpace: 1 m_MTRendering: 1 m_MobileMTRendering: 0 m_StackTraceTypes: 010000000100000001000000010000000100000001000000 iosShowActivityIndicatorOnLoading: -1 androidShowActivityIndicatorOnLoading: -1 + tizenShowActivityIndicatorOnLoading: -1 iosAppInBackgroundBehavior: 0 displayResolutionDialog: 2 iosAllowHTTPDownload: 1 @@ -42,7 +67,7 @@ PlayerSettings: defaultIsNativeResolution: 1 runInBackground: 1 captureSingleScreen: 0 - Override IPod Music: 0 + muteOtherAudioSources: 0 Prepare IOS For Recording: 0 submitAnalytics: 1 usePlayerLog: 1 @@ -72,7 +97,8 @@ PlayerSettings: uiUse16BitDepthBuffer: 0 ignoreAlphaClear: 0 xboxOneResolution: 0 - ps3SplashScreen: {fileID: 0} + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 videoMemoryForVertexBuffers: 0 psp2PowerMode: 0 psp2AcquireBGM: 1 @@ -94,11 +120,11 @@ PlayerSettings: bundleIdentifier: com.Company.ProductName bundleVersion: 1.0 preloadedAssets: [] - metroEnableIndependentInputSource: 0 + metroInputSource: 0 + m_HolographicPauseOnTrackingLoss: 1 xboxOneDisableKinectGpuReservation: 0 singlePassStereoRendering: 0 protectGraphicsMemory: 0 - productGUID: 900e9e40d20cd3e44ad40e5b00239dcc AndroidBundleVersionCode: 1 AndroidMinSdkVersion: 9 AndroidPreferredInstallLocation: 1 @@ -112,15 +138,16 @@ PlayerSettings: ForceSDCardPermission: 0 CreateWallpaper: 0 APKExpansionFiles: 0 - preloadShaders: 0 + keepLoadedShadersAlive: 0 StripUnusedMeshComponents: 0 VertexChannelCompressionMask: serializedVersion: 2 m_Bits: 238 iPhoneSdkVersion: 988 - iPhoneTargetOSVersion: 22 + iOSTargetOSVersionString: 6.0 tvOSSdkVersion: 0 - tvOSTargetOSVersion: 900 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 9.0 uIPrerenderedIcon: 0 uIRequiresPersistentWiFi: 0 uIRequiresFullScreen: 1 @@ -160,6 +187,9 @@ PlayerSettings: iOSLaunchScreeniPadCustomXibPath: iOSDeviceRequirements: [] iOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + appleDeveloperTeamID: AndroidTargetDevice: 0 AndroidSplashScreenScale: 0 androidSplashScreen: {fileID: 0} @@ -189,6 +219,63 @@ PlayerSettings: - m_BuildTarget: WindowsStandaloneSupport m_APIs: 0200000001000000 m_Automatic: 1 + m_BuildTargetVRSettings: + - m_BuildTarget: Android + m_Enabled: 0 + m_Devices: + - Oculus + - m_BuildTarget: Metro + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: N3DS + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: PS3 + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: PS4 + m_Enabled: 0 + m_Devices: + - PlayStationVR + - m_BuildTarget: PSM + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: PSP2 + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: SamsungTV + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: Standalone + m_Enabled: 0 + m_Devices: + - Oculus + - m_BuildTarget: Tizen + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: WebGL + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: WebPlayer + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: WiiU + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: Xbox360 + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: XboxOne + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: iOS + m_Enabled: 0 + m_Devices: [] + - m_BuildTarget: tvOS + m_Enabled: 0 + m_Devices: [] + openGLRequireES31: 0 + openGLRequireES31AEP: 0 webPlayerTemplate: APPLICATION:Default m_TemplateCustomTags: {} wiiUTitleID: 0005000011000000 @@ -207,12 +294,15 @@ PlayerSettings: wiiUSystemHeapSize: 128 wiiUTVStartupScreen: {fileID: 0} wiiUGamePadStartupScreen: {fileID: 0} + wiiUDrcBufferDisabled: 0 wiiUProfilerLibPath: actionOnDotNetUnhandledException: 1 enableInternalProfiler: 0 logObjCUncaughtExceptions: 1 enableCrashReportAPI: 0 + cameraUsageDescription: locationUsageDescription: + microphoneUsageDescription: XboxTitleId: XboxImageXexPath: XboxSpaPath: @@ -223,24 +313,6 @@ PlayerSettings: xboxAdditionalTitleMemorySize: 0 xboxDeployKinectHeadOrientation: 0 xboxDeployKinectHeadPosition: 0 - ps3TitleConfigPath: - ps3DLCConfigPath: - ps3ThumbnailPath: - ps3BackgroundPath: - ps3SoundPath: - ps3NPAgeRating: 12 - ps3TrophyCommId: - ps3NpCommunicationPassphrase: - ps3TrophyPackagePath: - ps3BootCheckMaxSaveGameSizeKB: 128 - ps3TrophyCommSig: - ps3SaveGameSlots: 1 - ps3TrialMode: 0 - ps3VideoMemoryForAudio: 0 - ps3EnableVerboseMemoryStats: 0 - ps3UseSPUForUmbra: 0 - ps3EnableMoveSupport: 1 - ps3DisableDolbyEncoding: 0 ps4NPAgeRating: 12 ps4NPTitleSecret: ps4NPTrophyPackPath: @@ -252,7 +324,8 @@ PlayerSettings: ps4AppType: 0 ps4ParamSfxPath: ps4VideoOutPixelFormat: 0 - ps4VideoOutResolution: 4 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutReprojectionRate: 120 ps4PronunciationXMLPath: ps4PronunciationSIGPath: ps4BackgroundImagePath: @@ -266,6 +339,7 @@ PlayerSettings: ps4NPtitleDatPath: ps4RemotePlayKeyAssignment: -1 ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 ps4EnterButtonAssignment: 1 ps4ApplicationParam1: 0 ps4ApplicationParam2: 0 @@ -280,18 +354,24 @@ PlayerSettings: ps4pnFriends: 1 ps4pnGameCustomData: 1 playerPrefsSupport: 0 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 ps4ReprojectionSupport: 0 ps4UseAudio3dBackend: 0 ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 3 ps4Audio3dVirtualSpeakerCount: 14 ps4attribCpuUsage: 0 ps4PatchPkgPath: ps4PatchLatestPkgPath: ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 ps4attribUserManagement: 0 ps4attribMoveSupport: 0 ps4attrib3DSupport: 0 ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 ps4IncludedModules: [] monoEnv: psp2Splashimage: {fileID: 0} @@ -342,8 +422,35 @@ PlayerSettings: psp2InfoBarColor: 0 psp2UseDebugIl2cppLibs: 0 psmSplashimage: {fileID: 0} + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} spritePackerPolicy: + webGLMemorySize: 256 + webGLExceptionSupport: 1 + webGLDataCaching: 0 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLUseWasm: 0 + webGLCompressionFormat: 1 scriptingDefineSymbols: {} + platformArchitecture: + iOS: 2 + scriptingBackend: + Android: 0 + Metro: 2 + Standalone: 0 + WP8: 2 + WebGL: 1 + iOS: 1 + incrementalIl2cppBuild: + iOS: 0 + additionalIl2CppArgs: + m_RenderingPath: 1 + m_MobileRenderingPath: 1 metroPackageName: dev metroPackageVersion: metroCertificatePath: @@ -374,6 +481,9 @@ PlayerSettings: tizenSigningProfileName: tizenGPSPermissions: 0 tizenMicrophonePermissions: 0 + tizenDeploymentTarget: + tizenDeploymentTargetType: 0 + tizenMinOSVersion: 0 n3dsUseExtSaveData: 0 n3dsCompressStaticMem: 1 n3dsExtSaveDataNumber: 0x12345 @@ -403,141 +513,28 @@ PlayerSettings: XboxOnePackageEncryption: 0 XboxOnePackageUpdateGranularity: 2 XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} XboxOneIsContentPackage: 0 XboxOneEnableGPUVariability: 0 XboxOneSockets: {} XboxOneSplashScreen: {fileID: 0} XboxOneAllowedProductIds: [] XboxOnePersistentLocalStorageSize: 0 - intPropertyNames: - - Android::ScriptingBackend - - Metro::ScriptingBackend - - Standalone::ScriptingBackend - - WP8::ScriptingBackend - - WebGL::ScriptingBackend - - WebGL::audioCompressionFormat - - WebGL::exceptionSupport - - WebGL::memorySize - - iOS::Architecture - - iOS::EnableIncrementalBuildSupportForIl2cpp - - iOS::ScriptingBackend - Android::ScriptingBackend: 0 - Metro::ScriptingBackend: 2 - Standalone::ScriptingBackend: 0 - WP8::ScriptingBackend: 2 - WebGL::ScriptingBackend: 1 - WebGL::audioCompressionFormat: 4 - WebGL::exceptionSupport: 1 - WebGL::memorySize: 256 - iOS::Architecture: 2 - iOS::EnableIncrementalBuildSupportForIl2cpp: 0 - iOS::ScriptingBackend: 1 - boolPropertyNames: - - Android::VR::enable - - Metro::VR::enable - - N3DS::VR::enable - - PS3::VR::enable - - PS4::VR::enable - - PSM::VR::enable - - PSP2::VR::enable - - SamsungTV::VR::enable - - Standalone::VR::enable - - Tizen::VR::enable - - WebGL::VR::enable - - WebGL::analyzeBuildSize - - WebGL::dataCaching - - WebGL::useEmbeddedResources - - WebPlayer::VR::enable - - WiiU::VR::enable - - Xbox360::VR::enable - - XboxOne::VR::enable - - XboxOne::enus - - iOS::VR::enable - - tvOS::VR::enable - Android::VR::enable: 0 - Metro::VR::enable: 0 - N3DS::VR::enable: 0 - PS3::VR::enable: 0 - PS4::VR::enable: 0 - PSM::VR::enable: 0 - PSP2::VR::enable: 0 - SamsungTV::VR::enable: 0 - Standalone::VR::enable: 0 - Tizen::VR::enable: 0 - WebGL::VR::enable: 0 - WebGL::analyzeBuildSize: 0 - WebGL::dataCaching: 0 - WebGL::useEmbeddedResources: 0 - WebPlayer::VR::enable: 0 - WiiU::VR::enable: 0 - Xbox360::VR::enable: 0 - XboxOne::VR::enable: 0 - XboxOne::enus: 1 - iOS::VR::enable: 0 - tvOS::VR::enable: 0 - stringPropertyNames: - - Analytics_ServiceEnabled::Analytics_ServiceEnabled - - Build_ServiceEnabled::Build_ServiceEnabled - - Collab_ServiceEnabled::Collab_ServiceEnabled - - ErrorHub_ServiceEnabled::ErrorHub_ServiceEnabled - - Game_Performance_ServiceEnabled::Game_Performance_ServiceEnabled - - Hub_ServiceEnabled::Hub_ServiceEnabled - - Purchasing_ServiceEnabled::Purchasing_ServiceEnabled - - UNet_ServiceEnabled::UNet_ServiceEnabled - - Unity_Ads_ServiceEnabled::Unity_Ads_ServiceEnabled - - WebGL::emscriptenArgs - - WebGL::template - - additionalIl2CppArgs::additionalIl2CppArgs - Analytics_ServiceEnabled::Analytics_ServiceEnabled: False - Build_ServiceEnabled::Build_ServiceEnabled: False - Collab_ServiceEnabled::Collab_ServiceEnabled: False - ErrorHub_ServiceEnabled::ErrorHub_ServiceEnabled: False - Game_Performance_ServiceEnabled::Game_Performance_ServiceEnabled: False - Hub_ServiceEnabled::Hub_ServiceEnabled: False - Purchasing_ServiceEnabled::Purchasing_ServiceEnabled: False - UNet_ServiceEnabled::UNet_ServiceEnabled: False - Unity_Ads_ServiceEnabled::Unity_Ads_ServiceEnabled: False - WebGL::emscriptenArgs: - WebGL::template: APPLICATION:Default - additionalIl2CppArgs::additionalIl2CppArgs: - vectorPropertyNames: - - Android::VR::enabledDevices - - Metro::VR::enabledDevices - - N3DS::VR::enabledDevices - - PS3::VR::enabledDevices - - PS4::VR::enabledDevices - - PSM::VR::enabledDevices - - PSP2::VR::enabledDevices - - SamsungTV::VR::enabledDevices - - Standalone::VR::enabledDevices - - Tizen::VR::enabledDevices - - WebGL::VR::enabledDevices - - WebPlayer::VR::enabledDevices - - WiiU::VR::enabledDevices - - Xbox360::VR::enabledDevices - - XboxOne::VR::enabledDevices - - iOS::VR::enabledDevices - - tvOS::VR::enabledDevices - Android::VR::enabledDevices: - - Oculus - Metro::VR::enabledDevices: [] - N3DS::VR::enabledDevices: [] - PS3::VR::enabledDevices: [] - PS4::VR::enabledDevices: - - PlayStationVR - PSM::VR::enabledDevices: [] - PSP2::VR::enabledDevices: [] - SamsungTV::VR::enabledDevices: [] - Standalone::VR::enabledDevices: - - Oculus - Tizen::VR::enabledDevices: [] - WebGL::VR::enabledDevices: [] - WebPlayer::VR::enabledDevices: [] - WiiU::VR::enabledDevices: [] - Xbox360::VR::enabledDevices: [] - XboxOne::VR::enabledDevices: [] - iOS::VR::enabledDevices: [] - tvOS::VR::enabledDevices: [] + vrEditorSettings: {} + cloudServicesEnabled: + Analytics: 0 + Build: 0 + Collab: 0 + ErrorHub: 0 + Game_Performance: 0 + Hub: 0 + Purchasing: 0 + UNet: 0 + Unity_Ads: 0 + facebookSdkVersion: 7.8.2 cloudProjectId: projectName: organizationId: diff --git a/ProjectSettings/ProjectVersion.txt b/ProjectSettings/ProjectVersion.txt index 30fe00748e7..2d770a00662 100755 --- a/ProjectSettings/ProjectVersion.txt +++ b/ProjectSettings/ProjectVersion.txt @@ -1 +1 @@ -m_EditorVersion: 5.5.0b4 +m_EditorVersion: 5.6.0a1 diff --git a/ProjectSettings/QualitySettings.asset b/ProjectSettings/QualitySettings.asset index e7262e1724b..fc88556c984 100644 --- a/ProjectSettings/QualitySettings.asset +++ b/ProjectSettings/QualitySettings.asset @@ -142,14 +142,14 @@ QualitySettings: shadows: 2 shadowResolution: 2 shadowProjection: 1 - shadowCascades: 4 - shadowDistance: 45.9 + shadowCascades: 2 + shadowDistance: 200 shadowNearPlaneOffset: 2 shadowCascade2Split: 0.33333334 shadowCascade4Split: {x: 0.021409363, y: 0.051549375, z: 0.07213539} blendWeights: 4 textureQuality: 0 - anisotropicTextures: 2 + anisotropicTextures: 1 antiAliasing: 0 softParticles: 1 softVegetation: 1 diff --git a/README.md b/README.md new file mode 100644 index 00000000000..54f878105f5 --- /dev/null +++ b/README.md @@ -0,0 +1,12 @@ +# Unity Scriptable Render Loop testbed + +**NOTE**: this is a testbed for a Unity feature that has not shipped yet! The project will not work with any public +Unity version, and things in it might and will be broken. + +"Scriptable Render Loops" is a potential future Unity feature, think "Command Buffers, take two". We plan to ship the feature, and a +new modern built-in rendering loop with it. For now you can look around if you're _really_ curious, but like said above, this is +not useful for any public Unity version yet. + +There's a more detailed overview document here: [ScriptableRenderLoop google doc](https://docs.google.com/document/d/1e2jkr_-v5iaZRuHdnMrSv978LuJKYZhsIYnrDkNAuvQ/edit?usp=sharing) + +Did we mention it's a very WIP, no promises, may or might not ship feature, anything and everything in it can change? It totally is. diff --git a/ScriptableRenderLoop.userprefs b/ScriptableRenderLoop.userprefs deleted file mode 100644 index ff50da46745..00000000000 --- a/ScriptableRenderLoop.userprefs +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file