├── .gitignore ├── Assets ├── SignedDistanceFields.meta └── SignedDistanceFields │ ├── AnimatedSweep.cs │ ├── AnimatedSweep.cs.meta │ ├── BasicSignedDistanceField.shader │ ├── BasicSignedDistanceField.shader.meta │ ├── DistanceField.shader │ ├── DistanceField.shader.meta │ ├── DistanceFieldWithOffset.shader │ ├── DistanceFieldWithOffset.shader.meta │ ├── Resources.meta │ ├── Resources │ ├── aliaslines.png │ ├── aliaslines.png.meta │ ├── aliaslines2.png │ ├── aliaslines2.png.meta │ ├── arrow.png │ ├── arrow.png.meta │ ├── cat.jpg │ ├── cat.jpg.meta │ ├── cat256.jpg │ ├── cat256.jpg.meta │ ├── catcredit.txt │ ├── catcredit.txt.meta │ ├── cathires.jpg │ ├── cathires.jpg.meta │ ├── catlores.jpg │ ├── catlores.jpg.meta │ ├── rectangles.png │ ├── rectangles.png.meta │ ├── seamless-animal-fur-texture-600x600.jpg │ ├── seamless-animal-fur-texture-600x600.jpg.meta │ ├── texturecredits.txt │ └── texturecredits.txt.meta │ ├── SDF.unity │ ├── SDF.unity.meta │ ├── SignedDistanceField.cs │ ├── SignedDistanceField.cs.meta │ ├── SignedDistanceField.shader │ ├── SignedDistanceField.shader.meta │ ├── SignedDistanceFieldGenerator.cs │ ├── SignedDistanceFieldGenerator.cs.meta │ ├── gradient.png │ ├── gradient.png.meta │ ├── gradient2.png │ ├── gradient2.png.meta │ ├── sdfgradient.psd │ ├── sdfgradient.psd.meta │ ├── tinycircle.png │ └── tinycircle.png.meta ├── Packages └── manifest.json ├── ProjectSettings ├── AudioManager.asset ├── ClusterInputManager.asset ├── DynamicsManager.asset ├── EditorBuildSettings.asset ├── EditorSettings.asset ├── GraphicsSettings.asset ├── InputManager.asset ├── NavMeshAreas.asset ├── NetworkManager.asset ├── Physics2DSettings.asset ├── PresetManager.asset ├── ProjectSettings.asset ├── ProjectVersion.txt ├── QualitySettings.asset ├── TagManager.asset ├── TimeManager.asset └── UnityConnectSettings.asset ├── README.md ├── Unity.PackageManagerUI.Editor.csproj ├── UnityEditor.StandardEvents.csproj ├── sdf.csproj ├── sdf.sln ├── signeddistancefields.csproj └── signeddistancefields.sln /.gitignore: -------------------------------------------------------------------------------- 1 | .vs/ 2 | Library/ 3 | Temp/__Backupscenes/0.backup 4 | Temp/ 5 | Build/ 6 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: dd622c385219ac44d946e8444807c2e3 3 | folderAsset: yes 4 | timeCreated: 1521828843 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/AnimatedSweep.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | 5 | //slightly bodgy class that implements the 8 point sweep with enumerators so we can 6 | //animate it with unity coroutines and make a nice video 7 | public class AnimatedGridSweep 8 | { 9 | public SignedDistanceFieldGenerator generator; 10 | public int x; 11 | public int y; 12 | public Color[] col_buff; 13 | public Texture2D tex; 14 | public float[] outside_grid; 15 | public float[] inside_grid; 16 | public SignedDistanceField target; 17 | public int step; 18 | 19 | bool NextStep() 20 | { 21 | step++; 22 | if (step >= 500) 23 | { 24 | step = 0; 25 | return true; 26 | } 27 | return false; 28 | } 29 | 30 | IEnumerator SweepGridRoutine(float[] grid) 31 | { 32 | // Pass 0 33 | for (y = 0; y < generator.m_y_dims; y++) 34 | { 35 | for (x = 0; x < generator.m_x_dims; x++) 36 | { 37 | generator.Compare(grid, x, y, -1, 0); 38 | generator.Compare(grid, x, y, 0, -1); 39 | generator.Compare(grid, x, y, -1, -1); 40 | generator.Compare(grid, x, y, 1, -1); 41 | if (NextStep()) 42 | yield return null; 43 | } 44 | 45 | for (x = generator.m_x_dims - 1; x >= 0; x--) 46 | { 47 | generator.Compare(grid, x, y, 1, 0); 48 | if (NextStep()) 49 | yield return null; 50 | } 51 | } 52 | 53 | // Pass 1 54 | for (y = generator.m_y_dims - 1; y >= 0; y--) 55 | { 56 | for (x = generator.m_x_dims - 1; x >= 0; x--) 57 | { 58 | generator.Compare(grid, x, y, 1, 0); 59 | generator.Compare(grid, x, y, 0, 1); 60 | generator.Compare(grid, x, y, -1, 1); 61 | generator.Compare(grid, x, y, 1, 1); 62 | if (NextStep()) 63 | yield return null; 64 | } 65 | 66 | for (x = 0; x < generator.m_x_dims; x++) 67 | { 68 | generator.Compare(grid, x, y, -1, 0); 69 | if (NextStep()) 70 | yield return null; 71 | } 72 | } 73 | } 74 | 75 | //8-points Signed Sequential Euclidean Distance Transform, based on 76 | //http://www.codersnotes.com/notes/signed-distance-fields/ 77 | public IEnumerator SweepRoutine() 78 | { 79 | //read out input state of pixels, just so we can show it for a couple of seconds 80 | ReadGrid(); 81 | WriteTexture(); 82 | yield return new WaitForSeconds(0.5f); 83 | 84 | //clean the field so any none edge pixels simply contain 99999 for outer 85 | //pixels, or -99999 for inner pixels. we then read it and render it as before 86 | //so the user can see it 87 | generator.ClearAndMarkNoneEdgePixels(); 88 | ReadGrid(); 89 | WriteTexture(); 90 | yield return new WaitForSeconds(0.5f); 91 | 92 | //run the 8PSSEDT sweep on each grid using enumerators to step through 93 | //a bit at a time and refresh the texture 94 | { 95 | IEnumerator e = SweepGridRoutine(outside_grid); 96 | while (e.MoveNext()) 97 | { 98 | WriteTexture(); 99 | yield return null; 100 | } 101 | } 102 | { 103 | IEnumerator e = SweepGridRoutine(inside_grid); 104 | while (e.MoveNext()) 105 | { 106 | WriteTexture(); 107 | yield return null; 108 | } 109 | } 110 | 111 | //write results back 112 | for (int i = 0; i < generator.m_pixels.Length; i++) 113 | generator.m_pixels[i].distance = outside_grid[i] - inside_grid[i]; 114 | 115 | //clear coord and write final texture 116 | x = y = -1; 117 | WriteTexture(); 118 | } 119 | void ReadGrid() 120 | { 121 | for (int i = 0; i < generator.m_pixels.Length; i++) 122 | { 123 | if (generator.m_pixels[i].distance < 0) 124 | { 125 | //inside pixel. mark the outer grid as having 0 distance so it gets ignored 126 | outside_grid[i] = 0f; 127 | inside_grid[i] = -generator.m_pixels[i].distance; 128 | } 129 | else 130 | { 131 | //outside pixel 132 | inside_grid[i] = 0f; 133 | outside_grid[i] = generator.m_pixels[i].distance; 134 | } 135 | } 136 | } 137 | void WriteTexture() 138 | { 139 | for (int ypix = 0; ypix < generator.m_y_dims; ypix++) 140 | { 141 | for (int xpix = 0; xpix < generator.m_x_dims; xpix++) 142 | { 143 | int i = ypix * generator.m_x_dims + xpix; 144 | if (xpix == x && ypix == y) 145 | col_buff[i] = Color.clear; 146 | else 147 | col_buff[i] = new Color(outside_grid[i] - inside_grid[i], 0, 0, 0); 148 | } 149 | } 150 | 151 | tex.SetPixels(col_buff); 152 | tex.Apply(); 153 | } 154 | 155 | public void Run(SignedDistanceFieldGenerator _generator, SignedDistanceField _target) 156 | { 157 | generator = _generator; 158 | target = _target; 159 | tex = new Texture2D(generator.m_x_dims, generator.m_y_dims, TextureFormat.RGBAFloat, false); 160 | outside_grid = new float[generator.m_pixels.Length]; 161 | inside_grid = new float[generator.m_pixels.Length]; 162 | col_buff = new Color[generator.m_pixels.Length]; 163 | 164 | target.m_texture = tex; 165 | target.StartCoroutine(SweepRoutine()); 166 | } 167 | } 168 | 169 | 170 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/AnimatedSweep.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 01c0bfa155f394d4aa1f801a3ba70658 3 | timeCreated: 1526200862 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/BasicSignedDistanceField.shader: -------------------------------------------------------------------------------- 1 | Shader "SDF/BasicSignedDistanceField" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Texture", 2D) = "white" {} 6 | _Offset("Offset", Float) = 0 7 | _BorderWidth("BorderWidth", Float) = 0.5 8 | _Background("Background", Color) = (0,0,0.25,1) 9 | _Fill("Fill", Color) = (1,0,0,1) 10 | _Border("Border", Color) = (0,1,0,1) 11 | } 12 | SubShader 13 | { 14 | Tags { "RenderType"="Opaque" } 15 | LOD 100 16 | 17 | Pass 18 | { 19 | CGPROGRAM 20 | #pragma vertex vert 21 | #pragma fragment frag 22 | #include "UnityCG.cginc" 23 | 24 | struct appdata 25 | { 26 | float4 vertex : POSITION; 27 | float2 uv : TEXCOORD0; 28 | }; 29 | 30 | struct v2f 31 | { 32 | float2 uv : TEXCOORD0; 33 | float4 vertex : SV_POSITION; 34 | }; 35 | 36 | //texture info 37 | sampler2D _MainTex; 38 | float4 _MainTex_ST; 39 | float4 _MainTex_TexelSize; 40 | 41 | //field controls 42 | float _Offset; 43 | float _BorderWidth; 44 | 45 | //colours 46 | float4 _Background; 47 | float4 _Border; 48 | float4 _Fill; 49 | 50 | //simple vertex shader that fiddles with vertices + uvs of a quad to work nicely in the demo 51 | v2f vert(appdata v) 52 | { 53 | v2f o; 54 | v.vertex.y *= _MainTex_TexelSize.x * _MainTex_TexelSize.w; //stretch quad to maintain aspect ratio 55 | o.vertex = UnityObjectToClipPos(v.vertex); 56 | o.uv = TRANSFORM_TEX(v.uv, _MainTex); 57 | o.uv = 1 - o.uv; //flip uvs 58 | return o; 59 | } 60 | 61 | //distance field fragment shader 62 | fixed4 frag (v2f i) : SV_Target 63 | { 64 | //sample distance field 65 | float4 sdf = tex2D(_MainTex, i.uv); 66 | 67 | //combine sdf with offset to get distance 68 | float d = sdf.r + _Offset; 69 | 70 | //if distance from border < _BorderWidth, return border 71 | //otherwise return _Fill if inside shape (-ve dist) or 72 | //_Background if outside shape (+ve dist) 73 | if (abs(d) < _BorderWidth) 74 | return _Border; 75 | else if (d < 0) 76 | return _Fill; 77 | else 78 | return _Background; 79 | } 80 | ENDCG 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/BasicSignedDistanceField.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5433b2e8d004afd45a195f35475facd8 3 | timeCreated: 1521828940 4 | licenseType: Free 5 | ShaderImporter: 6 | externalObjects: {} 7 | defaultTextures: [] 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/DistanceField.shader: -------------------------------------------------------------------------------- 1 | Shader "SDF/DistanceField" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Texture", 2D) = "white" {} 6 | _BorderWidth("BorderWidth", Float) = 0.5 7 | _Background("Background", Color) = (0,0,0.25,1) 8 | _Border("Border", Color) = (0,1,0,1) 9 | } 10 | SubShader 11 | { 12 | Tags { "RenderType"="Opaque" } 13 | LOD 100 14 | 15 | Pass 16 | { 17 | CGPROGRAM 18 | #pragma vertex vert 19 | #pragma fragment frag 20 | #include "UnityCG.cginc" 21 | 22 | struct appdata 23 | { 24 | float4 vertex : POSITION; 25 | float2 uv : TEXCOORD0; 26 | }; 27 | 28 | struct v2f 29 | { 30 | float2 uv : TEXCOORD0; 31 | float4 vertex : SV_POSITION; 32 | }; 33 | 34 | //texture info 35 | sampler2D _MainTex; 36 | float4 _MainTex_ST; 37 | float4 _MainTex_TexelSize; 38 | 39 | //field controls 40 | float _BorderWidth; 41 | 42 | //colours 43 | float4 _Background; 44 | float4 _Border; 45 | 46 | //simple vertex shader that fiddles with vertices + uvs of a quad to work nicely in the demo 47 | v2f vert(appdata v) 48 | { 49 | v2f o; 50 | v.vertex.y *= _MainTex_TexelSize.x * _MainTex_TexelSize.w; //stretch quad to maintain aspect ratio 51 | o.vertex = UnityObjectToClipPos(v.vertex); 52 | o.uv = TRANSFORM_TEX(v.uv, _MainTex); 53 | o.uv = 1 - o.uv; //flip uvs 54 | return o; 55 | } 56 | 57 | //distance field fragment shader 58 | fixed4 frag (v2f i) : SV_Target 59 | { 60 | //sample distance field 61 | float4 sdf = tex2D(_MainTex, i.uv); 62 | 63 | //return border or background colour depending on distance from geometry 64 | float d = sdf.r; 65 | if (d < _BorderWidth) 66 | return _Border; 67 | else 68 | return _Background; 69 | } 70 | ENDCG 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/DistanceField.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: fd0945fb592c7734cbe7c38ce06c7207 3 | timeCreated: 1521828940 4 | licenseType: Free 5 | ShaderImporter: 6 | externalObjects: {} 7 | defaultTextures: [] 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/DistanceFieldWithOffset.shader: -------------------------------------------------------------------------------- 1 | Shader "SDF/DistanceFieldWithOffset" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Texture", 2D) = "white" {} 6 | _Offset("Offset", Float) = 0 7 | _BorderWidth("BorderWidth", Float) = 0.5 8 | _Background("Background", Color) = (0,0,0.25,1) 9 | _Border("Border", Color) = (0,1,0,1) 10 | } 11 | SubShader 12 | { 13 | Tags { "RenderType"="Opaque" } 14 | LOD 100 15 | 16 | Pass 17 | { 18 | CGPROGRAM 19 | #pragma vertex vert 20 | #pragma fragment frag 21 | #include "UnityCG.cginc" 22 | 23 | struct appdata 24 | { 25 | float4 vertex : POSITION; 26 | float2 uv : TEXCOORD0; 27 | }; 28 | 29 | struct v2f 30 | { 31 | float2 uv : TEXCOORD0; 32 | float4 vertex : SV_POSITION; 33 | }; 34 | 35 | //texture info 36 | sampler2D _MainTex; 37 | float4 _MainTex_ST; 38 | float4 _MainTex_TexelSize; 39 | 40 | //field controls 41 | float _Offset; 42 | float _BorderWidth; 43 | 44 | //colours 45 | float4 _Background; 46 | float4 _Border; 47 | 48 | //simple vertex shader that fiddles with vertices + uvs of a quad to work nicely in the demo 49 | v2f vert(appdata v) 50 | { 51 | v2f o; 52 | v.vertex.y *= _MainTex_TexelSize.x * _MainTex_TexelSize.w; //stretch quad to maintain aspect ratio 53 | o.vertex = UnityObjectToClipPos(v.vertex); 54 | o.uv = TRANSFORM_TEX(v.uv, _MainTex); 55 | o.uv = 1 - o.uv; //flip uvs 56 | return o; 57 | } 58 | 59 | //distance field fragment shader 60 | fixed4 frag (v2f i) : SV_Target 61 | { 62 | //sample distance field 63 | float4 sdf = tex2D(_MainTex, i.uv); 64 | 65 | //combine sdf with offset to get distance 66 | float d = sdf.r + _Offset; 67 | 68 | //return border or background colour depending on distance from geometry 69 | if (d < _BorderWidth) 70 | return _Border; 71 | else 72 | return _Background; 73 | } 74 | ENDCG 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/DistanceFieldWithOffset.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3104d477284bb9048afead06d11a6853 3 | timeCreated: 1521828940 4 | licenseType: Free 5 | ShaderImporter: 6 | externalObjects: {} 7 | defaultTextures: [] 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bcaff1cc99230fa41a13fd38921eaead 3 | folderAsset: yes 4 | timeCreated: 1526211632 5 | licenseType: Free 6 | DefaultImporter: 7 | externalObjects: {} 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/aliaslines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/Resources/aliaslines.png -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/aliaslines.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 739c4dcf71efe8046a94fe4eb65e1153 3 | timeCreated: 1526215001 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 1 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 0 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | - buildTarget: Standalone 70 | maxTextureSize: 2048 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | - buildTarget: iPhone 80 | maxTextureSize: 2048 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 0 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | - buildTarget: tvOS 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 0 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | - buildTarget: Android 100 | maxTextureSize: 2048 101 | resizeAlgorithm: 0 102 | textureFormat: -1 103 | textureCompression: 0 104 | compressionQuality: 50 105 | crunchedCompression: 0 106 | allowsAlphaSplitting: 0 107 | overridden: 0 108 | androidETC2FallbackOverride: 0 109 | - buildTarget: Windows Store Apps 110 | maxTextureSize: 2048 111 | resizeAlgorithm: 0 112 | textureFormat: -1 113 | textureCompression: 0 114 | compressionQuality: 50 115 | crunchedCompression: 0 116 | allowsAlphaSplitting: 0 117 | overridden: 0 118 | androidETC2FallbackOverride: 0 119 | - buildTarget: WebGL 120 | maxTextureSize: 2048 121 | resizeAlgorithm: 0 122 | textureFormat: -1 123 | textureCompression: 0 124 | compressionQuality: 50 125 | crunchedCompression: 0 126 | allowsAlphaSplitting: 0 127 | overridden: 0 128 | androidETC2FallbackOverride: 0 129 | spriteSheet: 130 | serializedVersion: 2 131 | sprites: [] 132 | outline: [] 133 | physicsShape: [] 134 | spritePackingTag: 135 | userData: 136 | assetBundleName: 137 | assetBundleVariant: 138 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/aliaslines2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/Resources/aliaslines2.png -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/aliaslines2.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a4d75138a1ce9aa418293aa8cf712a90 3 | timeCreated: 1526215647 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 1 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 0 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | - buildTarget: Standalone 70 | maxTextureSize: 2048 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | - buildTarget: iPhone 80 | maxTextureSize: 2048 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 0 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | - buildTarget: tvOS 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 0 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | - buildTarget: Android 100 | maxTextureSize: 2048 101 | resizeAlgorithm: 0 102 | textureFormat: -1 103 | textureCompression: 0 104 | compressionQuality: 50 105 | crunchedCompression: 0 106 | allowsAlphaSplitting: 0 107 | overridden: 0 108 | androidETC2FallbackOverride: 0 109 | - buildTarget: Windows Store Apps 110 | maxTextureSize: 2048 111 | resizeAlgorithm: 0 112 | textureFormat: -1 113 | textureCompression: 0 114 | compressionQuality: 50 115 | crunchedCompression: 0 116 | allowsAlphaSplitting: 0 117 | overridden: 0 118 | androidETC2FallbackOverride: 0 119 | - buildTarget: WebGL 120 | maxTextureSize: 2048 121 | resizeAlgorithm: 0 122 | textureFormat: -1 123 | textureCompression: 0 124 | compressionQuality: 50 125 | crunchedCompression: 0 126 | allowsAlphaSplitting: 0 127 | overridden: 0 128 | androidETC2FallbackOverride: 0 129 | spriteSheet: 130 | serializedVersion: 2 131 | sprites: [] 132 | outline: [] 133 | physicsShape: [] 134 | spritePackingTag: 135 | userData: 136 | assetBundleName: 137 | assetBundleVariant: 138 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/Resources/arrow.png -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/arrow.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 90314f7d6915bf245ba92b7b6a7590a4 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: 1 36 | wrapV: 1 37 | wrapW: 1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 1 51 | spriteTessellationDetail: -1 52 | textureType: 0 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 2048 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | - serializedVersion: 2 71 | buildTarget: Standalone 72 | maxTextureSize: 2048 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | androidETC2FallbackOverride: 0 81 | spriteSheet: 82 | serializedVersion: 2 83 | sprites: [] 84 | outline: [] 85 | physicsShape: [] 86 | bones: [] 87 | spriteID: 88 | vertices: [] 89 | indices: 90 | edges: [] 91 | weights: [] 92 | spritePackingTag: 93 | userData: 94 | assetBundleName: 95 | assetBundleVariant: 96 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/cat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/Resources/cat.jpg -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/cat.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 872c7c389855bcc4f997d0d9f128dd08 3 | timeCreated: 1526214599 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 1 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 0 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | - buildTarget: Standalone 70 | maxTextureSize: 2048 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | - buildTarget: iPhone 80 | maxTextureSize: 2048 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 0 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | - buildTarget: tvOS 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 0 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | - buildTarget: Android 100 | maxTextureSize: 2048 101 | resizeAlgorithm: 0 102 | textureFormat: -1 103 | textureCompression: 0 104 | compressionQuality: 50 105 | crunchedCompression: 0 106 | allowsAlphaSplitting: 0 107 | overridden: 0 108 | androidETC2FallbackOverride: 0 109 | - buildTarget: Windows Store Apps 110 | maxTextureSize: 2048 111 | resizeAlgorithm: 0 112 | textureFormat: -1 113 | textureCompression: 0 114 | compressionQuality: 50 115 | crunchedCompression: 0 116 | allowsAlphaSplitting: 0 117 | overridden: 0 118 | androidETC2FallbackOverride: 0 119 | - buildTarget: WebGL 120 | maxTextureSize: 2048 121 | resizeAlgorithm: 0 122 | textureFormat: -1 123 | textureCompression: 0 124 | compressionQuality: 50 125 | crunchedCompression: 0 126 | allowsAlphaSplitting: 0 127 | overridden: 0 128 | androidETC2FallbackOverride: 0 129 | spriteSheet: 130 | serializedVersion: 2 131 | sprites: [] 132 | outline: [] 133 | physicsShape: [] 134 | spritePackingTag: 135 | userData: 136 | assetBundleName: 137 | assetBundleVariant: 138 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/cat256.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/Resources/cat256.jpg -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/cat256.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 158842aa816b737409d15da0de80cd45 3 | timeCreated: 1529359229 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 1 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | - buildTarget: Standalone 70 | maxTextureSize: 2048 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 1 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | - buildTarget: iPhone 80 | maxTextureSize: 2048 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | - buildTarget: tvOS 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 1 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | - buildTarget: Android 100 | maxTextureSize: 2048 101 | resizeAlgorithm: 0 102 | textureFormat: -1 103 | textureCompression: 1 104 | compressionQuality: 50 105 | crunchedCompression: 0 106 | allowsAlphaSplitting: 0 107 | overridden: 0 108 | androidETC2FallbackOverride: 0 109 | - buildTarget: Windows Store Apps 110 | maxTextureSize: 2048 111 | resizeAlgorithm: 0 112 | textureFormat: -1 113 | textureCompression: 1 114 | compressionQuality: 50 115 | crunchedCompression: 0 116 | allowsAlphaSplitting: 0 117 | overridden: 0 118 | androidETC2FallbackOverride: 0 119 | - buildTarget: WebGL 120 | maxTextureSize: 2048 121 | resizeAlgorithm: 0 122 | textureFormat: -1 123 | textureCompression: 1 124 | compressionQuality: 50 125 | crunchedCompression: 0 126 | allowsAlphaSplitting: 0 127 | overridden: 0 128 | androidETC2FallbackOverride: 0 129 | spriteSheet: 130 | serializedVersion: 2 131 | sprites: [] 132 | outline: [] 133 | physicsShape: [] 134 | spritePackingTag: 135 | userData: 136 | assetBundleName: 137 | assetBundleVariant: 138 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/catcredit.txt: -------------------------------------------------------------------------------- 1 | Cat.jpg curtesy Tricia Moore at http://lshdesigns.blogspot.co.uk/2009/10/free-cat-silhouette-svg-and-png.html 2 | 3 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/catcredit.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: e17ed3e3339e1394f80f6b91f7ba4f8e 3 | timeCreated: 1526214784 4 | licenseType: Free 5 | TextScriptImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/cathires.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/Resources/cathires.jpg -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/cathires.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: f3faa0ea2920991428ef272f35159e86 3 | timeCreated: 1529443411 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 1 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | - buildTarget: Standalone 70 | maxTextureSize: 2048 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 1 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | - buildTarget: iPhone 80 | maxTextureSize: 2048 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 1 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | - buildTarget: tvOS 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 1 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | - buildTarget: Android 100 | maxTextureSize: 2048 101 | resizeAlgorithm: 0 102 | textureFormat: -1 103 | textureCompression: 1 104 | compressionQuality: 50 105 | crunchedCompression: 0 106 | allowsAlphaSplitting: 0 107 | overridden: 0 108 | androidETC2FallbackOverride: 0 109 | - buildTarget: Windows Store Apps 110 | maxTextureSize: 2048 111 | resizeAlgorithm: 0 112 | textureFormat: -1 113 | textureCompression: 1 114 | compressionQuality: 50 115 | crunchedCompression: 0 116 | allowsAlphaSplitting: 0 117 | overridden: 0 118 | androidETC2FallbackOverride: 0 119 | - buildTarget: WebGL 120 | maxTextureSize: 2048 121 | resizeAlgorithm: 0 122 | textureFormat: -1 123 | textureCompression: 1 124 | compressionQuality: 50 125 | crunchedCompression: 0 126 | allowsAlphaSplitting: 0 127 | overridden: 0 128 | androidETC2FallbackOverride: 0 129 | spriteSheet: 130 | serializedVersion: 2 131 | sprites: [] 132 | outline: [] 133 | physicsShape: [] 134 | spritePackingTag: 135 | userData: 136 | assetBundleName: 137 | assetBundleVariant: 138 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/catlores.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/Resources/catlores.jpg -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/catlores.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 096b4a26b0760754ab777324e6a985bd 3 | timeCreated: 1526216420 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 1 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 0 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | - buildTarget: Standalone 70 | maxTextureSize: 2048 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | - buildTarget: iPhone 80 | maxTextureSize: 2048 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 0 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | - buildTarget: tvOS 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 0 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | - buildTarget: Android 100 | maxTextureSize: 2048 101 | resizeAlgorithm: 0 102 | textureFormat: -1 103 | textureCompression: 0 104 | compressionQuality: 50 105 | crunchedCompression: 0 106 | allowsAlphaSplitting: 0 107 | overridden: 0 108 | androidETC2FallbackOverride: 0 109 | - buildTarget: Windows Store Apps 110 | maxTextureSize: 2048 111 | resizeAlgorithm: 0 112 | textureFormat: -1 113 | textureCompression: 0 114 | compressionQuality: 50 115 | crunchedCompression: 0 116 | allowsAlphaSplitting: 0 117 | overridden: 0 118 | androidETC2FallbackOverride: 0 119 | - buildTarget: WebGL 120 | maxTextureSize: 2048 121 | resizeAlgorithm: 0 122 | textureFormat: -1 123 | textureCompression: 0 124 | compressionQuality: 50 125 | crunchedCompression: 0 126 | allowsAlphaSplitting: 0 127 | overridden: 0 128 | androidETC2FallbackOverride: 0 129 | spriteSheet: 130 | serializedVersion: 2 131 | sprites: [] 132 | outline: [] 133 | physicsShape: [] 134 | spritePackingTag: 135 | userData: 136 | assetBundleName: 137 | assetBundleVariant: 138 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/rectangles.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/Resources/rectangles.png -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/rectangles.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: a3d6385c0d6104c47ac2f2dc4a7be817 3 | timeCreated: 1526211632 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 1 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 0 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | - buildTarget: Standalone 70 | maxTextureSize: 2048 71 | resizeAlgorithm: 0 72 | textureFormat: -1 73 | textureCompression: 0 74 | compressionQuality: 50 75 | crunchedCompression: 0 76 | allowsAlphaSplitting: 0 77 | overridden: 0 78 | androidETC2FallbackOverride: 0 79 | - buildTarget: iPhone 80 | maxTextureSize: 2048 81 | resizeAlgorithm: 0 82 | textureFormat: -1 83 | textureCompression: 0 84 | compressionQuality: 50 85 | crunchedCompression: 0 86 | allowsAlphaSplitting: 0 87 | overridden: 0 88 | androidETC2FallbackOverride: 0 89 | - buildTarget: tvOS 90 | maxTextureSize: 2048 91 | resizeAlgorithm: 0 92 | textureFormat: -1 93 | textureCompression: 0 94 | compressionQuality: 50 95 | crunchedCompression: 0 96 | allowsAlphaSplitting: 0 97 | overridden: 0 98 | androidETC2FallbackOverride: 0 99 | - buildTarget: Android 100 | maxTextureSize: 2048 101 | resizeAlgorithm: 0 102 | textureFormat: -1 103 | textureCompression: 0 104 | compressionQuality: 50 105 | crunchedCompression: 0 106 | allowsAlphaSplitting: 0 107 | overridden: 0 108 | androidETC2FallbackOverride: 0 109 | - buildTarget: Windows Store Apps 110 | maxTextureSize: 2048 111 | resizeAlgorithm: 0 112 | textureFormat: -1 113 | textureCompression: 0 114 | compressionQuality: 50 115 | crunchedCompression: 0 116 | allowsAlphaSplitting: 0 117 | overridden: 0 118 | androidETC2FallbackOverride: 0 119 | - buildTarget: WebGL 120 | maxTextureSize: 2048 121 | resizeAlgorithm: 0 122 | textureFormat: -1 123 | textureCompression: 0 124 | compressionQuality: 50 125 | crunchedCompression: 0 126 | allowsAlphaSplitting: 0 127 | overridden: 0 128 | androidETC2FallbackOverride: 0 129 | spriteSheet: 130 | serializedVersion: 2 131 | sprites: [] 132 | outline: [] 133 | physicsShape: [] 134 | spritePackingTag: 135 | userData: 136 | assetBundleName: 137 | assetBundleVariant: 138 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/seamless-animal-fur-texture-600x600.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/Resources/seamless-animal-fur-texture-600x600.jpg -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/seamless-animal-fur-texture-600x600.jpg.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 6317d71b5bcda7b47b46c96026c9e9fb 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 0 51 | spriteTessellationDetail: -1 52 | textureType: 0 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 2048 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | spriteSheet: 71 | serializedVersion: 2 72 | sprites: [] 73 | outline: [] 74 | physicsShape: [] 75 | bones: [] 76 | spriteID: 77 | vertices: [] 78 | indices: 79 | edges: [] 80 | weights: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/texturecredits.txt: -------------------------------------------------------------------------------- 1 | http://www.myfreetextures.com/seamless-fur-texture-or-fur-background/ 2 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/Resources/texturecredits.txt.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 784727ea273ace84e9c737d635e104ca 3 | TextScriptImporter: 4 | externalObjects: {} 5 | userData: 6 | assetBundleName: 7 | assetBundleVariant: 8 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/SDF.unity.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 5df36427dbf910d4bbafeebfa3e13e28 3 | timeCreated: 1521828850 4 | licenseType: Free 5 | DefaultImporter: 6 | externalObjects: {} 7 | userData: 8 | assetBundleName: 9 | assetBundleVariant: 10 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/SignedDistanceField.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | #if UNITY_EDITOR 5 | using UnityEditor; 6 | #endif 7 | 8 | //main signed distance fiedl test component 9 | [ExecuteInEditMode] 10 | [RequireComponent(typeof(MeshRenderer))] 11 | [RequireComponent(typeof(MeshFilter))] 12 | public class SignedDistanceField : MonoBehaviour 13 | { 14 | //render mode 15 | public enum Mode 16 | { 17 | Black, 18 | RawTexture, 19 | Distance, 20 | Gradient, 21 | Solid, 22 | Border, 23 | SolidWithBorder, 24 | SoftBorder, 25 | Neon, 26 | EdgeTexture, 27 | DropShadow, 28 | Bevel, 29 | EdgeFind, 30 | ShowNoiseTexture, 31 | NoisyEdge 32 | } 33 | 34 | //shader to use 35 | public Shader m_sdf_shader; 36 | 37 | //render options 38 | public Mode m_mode = Mode.SolidWithBorder; 39 | public Texture2D m_texture; 40 | public bool m_show_grid = false; 41 | public FilterMode m_filter = FilterMode.Bilinear; 42 | public float m_text_grid_size = 40f; 43 | public bool m_show_text = false; 44 | public Color m_background = new Color32(0x13,0x13,0x80,0xFF); 45 | public Color m_fill = new Color32(0x7E,0x16,0x16,0xFF); 46 | public Color m_border = new Color32(0xD2,0x17,0x17,0xFF); 47 | public float m_border_width = 0.5f; 48 | public float m_offset = 0f; 49 | public float m_distance_visualisation_scale = 1f; 50 | public float m_gradient_arrow_tile = 15f; 51 | public float m_gradient_arrow_opacity = 1f; 52 | 53 | //used for neon effect (blog post 7) 54 | public float m_neon_power = 5f; 55 | public float m_neon_brightness = 0.75f; 56 | 57 | //used for edge texture effect (blog post 7) 58 | public Texture2D m_edge_texture; 59 | 60 | //used for drop shadow (blog post 7) 61 | public float m_shadow_dist; 62 | public float m_shadow_border_width; 63 | 64 | //used for morphing effect (blog post 7) 65 | [Range(0,1)] 66 | public float m_circle_morph_amount; 67 | public float m_circle_morph_radius; 68 | 69 | //bevel curvature (blog post 8) 70 | public float m_bevel_curvature=0; 71 | 72 | [Range(1,8)] 73 | public int m_edge_find_steps = 1; 74 | 75 | public Texture2D m_tile_texture; 76 | 77 | public Texture2D m_noise_texture; 78 | public float m_noise_anim; 79 | public bool m_enable_edge_noise; 80 | public float m_edge_noise_a; 81 | public float m_edge_noise_b; 82 | public bool m_fix_gradient; 83 | 84 | //internally created temp material 85 | Material m_material; 86 | 87 | private void Update() 88 | { 89 | //little bit of code to run an animated sweep from blog 90 | if (Input.GetKeyDown(KeyCode.Space)) 91 | { 92 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(); 93 | generator.LoadFromTextureAntiAliased(Resources.Load("cat")); 94 | AnimatedGridSweep anim = new AnimatedGridSweep(); 95 | anim.Run(generator, this); 96 | } 97 | if(Application.isPlaying) 98 | m_noise_anim = Time.time; 99 | } 100 | 101 | //OnRenderObject calls init, then sets up render parameters 102 | public void OnRenderObject() 103 | { 104 | //make sure we have all the bits needed for rendering 105 | if (!m_texture) 106 | { 107 | m_texture = Texture2D.whiteTexture; 108 | } 109 | if (!m_material) 110 | { 111 | m_material = new Material(m_sdf_shader); 112 | m_material.hideFlags = HideFlags.DontSave; 113 | GetComponent().sharedMaterial = m_material; 114 | GetComponent().sharedMesh = BuildQuad(Vector2.one); 115 | } 116 | 117 | //store texture filter mode 118 | m_texture.filterMode = m_filter; 119 | m_texture.wrapMode = TextureWrapMode.Clamp; 120 | 121 | //store material properties 122 | m_material.SetTexture("_MainTex", m_texture); 123 | m_material.SetInt("_Mode", (int)m_mode); 124 | m_material.SetFloat("_BorderWidth", m_border_width); 125 | m_material.SetFloat("_Offset", m_offset); 126 | m_material.SetFloat("_Grid", m_show_grid ? 0.75f : 0f); 127 | m_material.SetColor("_Background", m_background); 128 | m_material.SetColor("_Fill", m_fill); 129 | m_material.SetColor("_Border", m_border); 130 | m_material.SetFloat("_DistanceVisualisationScale", m_distance_visualisation_scale); 131 | m_material.SetFloat("_ArrowTiles", m_gradient_arrow_tile); 132 | m_material.SetFloat("_ArrowOpacity", m_gradient_arrow_opacity); 133 | m_material.SetTexture("_ArrowTex", Resources.Load("arrow")); 134 | 135 | //parameters for effects in blog post 7 136 | m_material.SetFloat("_NeonPower", m_neon_power); 137 | m_material.SetFloat("_NeonBrightness", m_neon_brightness); 138 | m_material.SetTexture("_EdgeTex", m_edge_texture); 139 | m_material.SetFloat("_ShadowDist", m_shadow_dist); 140 | m_material.SetFloat("_ShadowBorderWidth", m_shadow_border_width); 141 | m_material.SetFloat("_CircleMorphAmount", m_circle_morph_amount); 142 | m_material.SetFloat("_CircleMorphRadius", m_circle_morph_radius); 143 | m_material.SetTexture("_TileTex", m_tile_texture); 144 | 145 | //parameters for effects in blog post 8 146 | m_material.SetFloat("_BevelCurvature", m_bevel_curvature); 147 | m_material.SetInt("_EdgeFindSteps", m_edge_find_steps); 148 | m_material.SetTexture("_NoiseTex", m_noise_texture); 149 | m_material.SetFloat("_NoiseAnimTime", m_noise_anim); 150 | m_material.SetInt("_EnableEdgeNoise", m_enable_edge_noise ? 1 : 0); 151 | m_material.SetFloat("_EdgeNoiseA", m_edge_noise_a); 152 | m_material.SetFloat("_EdgeNoiseB", m_edge_noise_b); 153 | m_material.SetFloat("_FixGradient", m_fix_gradient ? 1 : 0); 154 | 155 | } 156 | 157 | //debug function for bodgily rendering a grid of pixel distances 158 | public void OnGUI() 159 | { 160 | if (m_show_text && m_texture) 161 | { 162 | Color[] pixels = m_texture.GetPixels(); 163 | 164 | float sz = m_text_grid_size; 165 | Vector2 tl = new Vector2(Screen.width, Screen.height) * 0.5f - sz * new Vector2(m_texture.width, m_texture.height) * 0.5f; 166 | GUIStyle style = new GUIStyle(); 167 | style.normal.textColor = Color.white; 168 | style.fontSize = 20; 169 | style.fontStyle = FontStyle.Bold; 170 | style.alignment = TextAnchor.MiddleCenter; 171 | for (int y = 0; y < m_texture.height; y++) 172 | { 173 | for (int x = 0; x < m_texture.width; x++) 174 | { 175 | GUI.Label(new Rect(tl.x + x * sz, tl.y + y * sz, sz, sz), string.Format("{0:0.0}",pixels[m_texture.width*y+x].r, style)); 176 | } 177 | } 178 | } 179 | } 180 | 181 | //helper to build a temporary quad with the correct winding + uvs 182 | static Mesh BuildQuad(Vector2 half_size) 183 | { 184 | var mesh = new Mesh(); 185 | mesh.hideFlags = HideFlags.HideAndDontSave; 186 | 187 | var vertices = new Vector3[4]; 188 | vertices[0] = new Vector3(-half_size.x, -half_size.y, 0); 189 | vertices[1] = new Vector3(half_size.x, -half_size.y, 0); 190 | vertices[2] = new Vector3(-half_size.x, half_size.y, 0); 191 | vertices[3] = new Vector3(half_size.x, half_size.y, 0); 192 | mesh.vertices = vertices; 193 | 194 | var tri = new int[6]; 195 | tri[0] = 0; 196 | tri[1] = 1; 197 | tri[2] = 2; 198 | tri[3] = 2; 199 | tri[4] = 1; 200 | tri[5] = 3; 201 | mesh.triangles = tri; 202 | 203 | var normals = new Vector3[4]; 204 | normals[0] = Vector3.forward; 205 | normals[1] = Vector3.forward; 206 | normals[2] = Vector3.forward; 207 | normals[3] = Vector3.forward; 208 | mesh.normals = normals; 209 | 210 | var uv = new Vector2[4]; 211 | uv[0] = new Vector2(0, 0); 212 | uv[1] = new Vector2(1, 0); 213 | uv[2] = new Vector2(0, 1); 214 | uv[3] = new Vector2(1, 1); 215 | mesh.uv = uv; 216 | 217 | return mesh; 218 | } 219 | 220 | } 221 | 222 | //custom inspector 223 | #if UNITY_EDITOR 224 | [CustomEditor(typeof(SignedDistanceField))] 225 | public class SignedDisanceFieldEditor : Editor 226 | { 227 | public override void OnInspectorGUI() 228 | { 229 | serializedObject.Update(); 230 | 231 | DrawDefaultInspector(); 232 | 233 | SignedDistanceField field = (SignedDistanceField)target; 234 | if (GUILayout.Button("BF line")) 235 | { 236 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(16, 16); 237 | generator.BFLine(new Vector2(3.5f, 8.5f), new Vector2(12.5f, 8.5f)); 238 | field.m_texture = generator.End(); 239 | } 240 | if (GUILayout.Button("1 BF circle")) 241 | { 242 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(16, 16); 243 | generator.BFCircle(new Vector2(8, 8), 4); 244 | field.m_texture = generator.End(); 245 | } 246 | if (GUILayout.Button("1 BF rectangle")) 247 | { 248 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(16, 16); 249 | generator.BFRect(new Vector2(3, 5), new Vector2(12,10)); 250 | field.m_texture = generator.End(); 251 | } 252 | if (GUILayout.Button("2 BF circles")) 253 | { 254 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(16, 16); 255 | generator.BFCircle(new Vector2(5, 7), 3); 256 | generator.BFCircle(new Vector2(10, 8), 3.5f); 257 | field.m_texture = generator.End(); 258 | } 259 | if (GUILayout.Button("2 close BF rectangles")) 260 | { 261 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(64, 64); 262 | generator.BFRect(new Vector2(4, 4), new Vector2(60, 35)); 263 | generator.BFRect(new Vector2(4, 34), new Vector2(60, 60)); 264 | field.m_texture = generator.End(); 265 | } 266 | 267 | if (GUILayout.Button("1 padded line")) 268 | { 269 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(32, 32); 270 | generator.PLine(new Vector2(8, 15), new Vector2(23, 20), 5); 271 | field.m_texture = generator.End(); 272 | } 273 | if (GUILayout.Button("1 padded circle")) 274 | { 275 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(32, 32); 276 | generator.PCircle(new Vector2(16, 16), 7, 5); 277 | field.m_texture = generator.End(); 278 | } 279 | if (GUILayout.Button("1 padded rectangle")) 280 | { 281 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(32, 32); 282 | generator.PRect(new Vector2(10, 12), new Vector2(20, 18), 5); 283 | field.m_texture = generator.End(); 284 | } 285 | 286 | if (GUILayout.Button("Clear none edge pixels")) 287 | { 288 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(64, 64); 289 | //generator.BFRect(new Vector2(4, 4), new Vector2(60, 35)); 290 | //generator.BFRect(new Vector2(4, 34), new Vector2(60, 60)); 291 | generator.PCircle(new Vector2(20, 28), 12, 5); 292 | generator.PCircle(new Vector2(40, 32), 14, 5); 293 | generator.ClearAndMarkNoneEdgePixels(); 294 | field.m_texture = generator.End(); 295 | } 296 | 297 | if (GUILayout.Button("Sweep close rectangle pixels")) 298 | { 299 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(64, 64); 300 | generator.BFRect(new Vector2(4, 4), new Vector2(60, 35)); 301 | generator.BFRect(new Vector2(4, 34), new Vector2(60, 60)); 302 | generator.Sweep(); 303 | field.m_texture = generator.End(); 304 | } 305 | if (GUILayout.Button("Sweep close circles")) 306 | { 307 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(512, 512); 308 | generator.PCircle(new Vector2(160, 224), 92, 5); 309 | generator.PCircle(new Vector2(340, 256), 103, 5); 310 | generator.EikonalSweep(); 311 | field.m_texture = generator.End(); 312 | } 313 | 314 | if (GUILayout.Button("Load texture")) 315 | { 316 | SignedDistanceFieldGenerator generator = new SignedDistanceFieldGenerator(); 317 | generator.LoadFromTextureAntiAliased(Resources.Load("cathires")); 318 | generator.EikonalSweep(); 319 | generator.Downsample(); 320 | generator.Soften(3); 321 | field.m_texture = generator.End(); 322 | } 323 | 324 | if (GUILayout.Button("Make noise texture")) 325 | { 326 | field.m_noise_texture = new Texture2D(256, 256, TextureFormat.RGBAFloat, false); 327 | Color[] cols = GenerateNoiseGrid(256,256,4,8f,2f,0.5f); 328 | field.m_noise_texture.SetPixels(cols); 329 | field.m_noise_texture.Apply(); 330 | } 331 | 332 | serializedObject.ApplyModifiedProperties(); 333 | } 334 | 335 | Color[] GenerateNoiseGrid(int w, int h, int octaves, float frequency, float lacunarity, float persistance) 336 | { 337 | //calculate scalars for x/y dims 338 | float xscl = 1f / (w - 1); 339 | float yscl = 1f / (h - 1); 340 | 341 | //allocate colour buffer then iterate over x and y 342 | Color[] cols = new Color[w * h]; 343 | for (int x = 0; x < w; x++) 344 | { 345 | for (int y = 0; y < h; y++) 346 | { 347 | //classic multi-octave perlin noise sampler 348 | //ends up with 4 octave noise samples 349 | Vector4 tot = Vector4.zero; 350 | float scl = 1; 351 | float sum = 0; 352 | float f = frequency; 353 | for (int i = 0; i < octaves; i++) 354 | { 355 | for (int c = 0; c < 4; c++) 356 | tot[c] += Mathf.PerlinNoise(c * 64 + f * x * xscl, f * y * yscl) * scl; 357 | sum += scl; 358 | f *= lacunarity; 359 | scl *= persistance; 360 | } 361 | tot /= sum; 362 | 363 | //store noise value in colour 364 | cols[y * w + x] = new Color(tot.x, tot.y, tot.z, tot.w); 365 | } 366 | } 367 | return cols; 368 | } 369 | } 370 | #endif -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/SignedDistanceField.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 870767b862f15444cac06e5f01765980 3 | timeCreated: 1521828937 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: 9 | - m_sdf_shader: {fileID: 4800000, guid: cdbd6469c6f5b354cb754c4a33e8a176, type: 3} 10 | - m_texture: {instanceID: 0} 11 | - m_gradient_texture: {instanceID: 0} 12 | executionOrder: 0 13 | icon: {instanceID: 0} 14 | userData: 15 | assetBundleName: 16 | assetBundleVariant: 17 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/SignedDistanceField.shader: -------------------------------------------------------------------------------- 1 | Shader "SDF/SignedDistanceField" 2 | { 3 | 4 | SubShader 5 | { 6 | Tags { "RenderType"="Opaque" } 7 | LOD 100 8 | 9 | Pass 10 | { 11 | CGPROGRAM 12 | #pragma target 5.0 13 | #pragma vertex vert 14 | #pragma fragment frag 15 | #include "UnityCG.cginc" 16 | 17 | struct appdata 18 | { 19 | float4 vertex : POSITION; 20 | float2 uv : TEXCOORD0; 21 | }; 22 | 23 | struct v2f 24 | { 25 | float2 uv : TEXCOORD0; 26 | float4 vertex : SV_POSITION; 27 | }; 28 | 29 | sampler2D _MainTex; 30 | float4 _MainTex_ST; 31 | float4 _MainTex_TexelSize; 32 | int _Mode; 33 | float _Grid; 34 | float _Offset; 35 | float _BorderWidth; 36 | float4 _Background; 37 | float4 _Fill; 38 | float4 _Border; 39 | float _DistanceVisualisationScale; 40 | sampler2D _ArrowTex; 41 | float _ArrowOpacity; 42 | float _ArrowTiles; 43 | 44 | //basic effect args (blog post 7) 45 | float _NeonBrightness; 46 | float _NeonPower; 47 | sampler2D _EdgeTex; 48 | float _ShadowDist; 49 | float _ShadowBorderWidth; 50 | float _CircleMorphRadius; 51 | float _CircleMorphAmount; 52 | sampler2D _TileTex; 53 | 54 | //gradient effect args (blog post 8) 55 | float _BevelCurvature; 56 | int _EdgeFindSteps; 57 | sampler2D _NoiseTex; 58 | float _NoiseAnimTime; 59 | float _EdgeNoiseA; 60 | float _EdgeNoiseB; 61 | int _EnableEdgeNoise; 62 | int _FixGradient; 63 | 64 | v2f vert (appdata v) 65 | { 66 | v2f o; 67 | v.vertex.y *= _MainTex_TexelSize.x * _MainTex_TexelSize.w; 68 | o.vertex = UnityObjectToClipPos(v.vertex); 69 | o.uv = TRANSFORM_TEX(v.uv, _MainTex); 70 | return o; 71 | } 72 | 73 | //analytic circle function used for morph demo 74 | //returns the field distance and gradient for a circle at 75 | //coordinate uv of a given radius (in texels) 76 | float4 centeredcirclesdf(float2 uv, float radius) 77 | { 78 | //calculate offset from [0.5,0.5] in uv space, then multiply 79 | //by _MainTex_TexelSize.zw to get offset in texels 80 | float2 offset_from_centre = (uv - 0.5) * _MainTex_TexelSize.zw; 81 | 82 | //signed distance for a circle is |offset| - radius 83 | float signeddist = length(offset_from_centre) - radius; 84 | 85 | //build result: [signeddist,0,0,1] 86 | float4 res = 0; 87 | res.x = signeddist; 88 | res.yz = normalize(offset_from_centre); 89 | res.w = 1; 90 | return res; 91 | } 92 | 93 | float4 tiledcircle(float2 uv) 94 | { 95 | uv.x *= 2; 96 | float2 centre = round(uv*10)/10; 97 | return float4(length(uv-centre)<0.04,0,0,1); 98 | } 99 | //samples the animated noise texture 100 | float samplenoise(float2 uv) 101 | { 102 | float t = frac(_NoiseAnimTime)*2.0f*3.1415927f; 103 | float k = 0.5f*3.1415927f; 104 | float4 sc = float4(0,k,2*k,3*k)+t; 105 | float4 sn = (sin(sc)+1)*0.4; 106 | return dot(sn,tex2D(_NoiseTex,uv)); 107 | } 108 | 109 | //cut down version of samplesdf that ignores gradient 110 | float samplesdfnograd(float2 uv) 111 | { 112 | //sample distance field 113 | float4 sdf = tex2D(_MainTex, uv); 114 | 115 | //if we want to do the 'circle morph' effect, lerp from the sampled 116 | //value to a circle value here 117 | if(_CircleMorphAmount > 0) 118 | { 119 | float4 circlesdf = centeredcirclesdf(uv,_CircleMorphRadius); 120 | sdf = lerp(sdf, circlesdf, _CircleMorphAmount); 121 | } 122 | 123 | //if edge based noise is on, adjust distance by sampling noise texture 124 | if(_EnableEdgeNoise) 125 | { 126 | sdf.r += lerp(_EdgeNoiseA,_EdgeNoiseB,samplenoise(uv)); 127 | } 128 | 129 | return sdf; 130 | } 131 | 132 | //helper to perform the sdf sample 133 | float4 samplesdf(float2 uv) 134 | { 135 | //sample distance field 136 | float4 sdf = tex2D(_MainTex, uv); 137 | 138 | //if we want to do the 'circle morph' effect, lerp from the sampled 139 | //value to a circle value here 140 | if(_CircleMorphAmount > 0) 141 | { 142 | float4 circlesdf = centeredcirclesdf(uv,_CircleMorphRadius); 143 | sdf = lerp(sdf, circlesdf, _CircleMorphAmount); 144 | } 145 | 146 | //re-normalize gradient in gb components as bilinear filtering 147 | //and the morph can mess it up 148 | sdf.gb = normalize(sdf.gb); 149 | 150 | //if edge based noise is on, adjust distance by sampling noise texture 151 | if(_EnableEdgeNoise) 152 | { 153 | sdf.r += lerp(_EdgeNoiseA,_EdgeNoiseB,samplenoise(uv)); 154 | } 155 | 156 | 157 | //if requested, overwrite sampled gradient with one calculated live in 158 | //shader that takes into account morphing and noise 159 | if(_FixGradient) 160 | { 161 | float d = sdf.r; 162 | float sign = d > 0 ? 1 : -1; 163 | float x0 = samplesdfnograd(uv+_MainTex_TexelSize.xy*float2(-1,0)); 164 | float x1 = samplesdfnograd(uv+_MainTex_TexelSize.xy*float2(1,0)); 165 | float y0 = samplesdfnograd(uv+_MainTex_TexelSize.xy*float2(0,-1)); 166 | float y1 = samplesdfnograd(uv+_MainTex_TexelSize.xy*float2(0,1)); 167 | 168 | float xgrad = sign*x0 < sign*x1 ? -(x0-d) : (x1-d); 169 | float ygrad = sign*y0 < sign*y1 ? -(y0-d) : (y1-d); 170 | 171 | sdf.gb = float2(xgrad,ygrad); 172 | } 173 | 174 | 175 | return sdf; 176 | } 177 | 178 | //from http://www.chilliant.com/rgb2hsv.html 179 | //gets rgb from a hue, used in gradient visualisation 180 | float3 HUEtoRGB(in float H) 181 | { 182 | float R = abs(H * 6 - 3) - 1; 183 | float G = 2 - abs(H * 6 - 2); 184 | float B = 2 - abs(H * 6 - 4); 185 | return saturate(float3(R,G,B)); 186 | } 187 | 188 | //given an input field sample and uv, moves and resamples closer to the edge 189 | void steptowardsedge(inout float4 edgesdf, inout float2 edgeuv) 190 | { 191 | edgeuv -= edgesdf.gb*edgesdf.r*_MainTex_TexelSize.xy; 192 | edgesdf = samplesdf(edgeuv); 193 | } 194 | bool sampleedge(float4 sdf, float2 uv, out float4 edgesdf, out float2 edgeuv, out int steps) 195 | { 196 | edgesdf = sdf; 197 | edgeuv = uv; 198 | steps = 0; 199 | 200 | [unroll(8)] 201 | for(int i = 0; i < _EdgeFindSteps; i++) 202 | { 203 | if(abs(edgesdf.r) < 0.5) 204 | break; 205 | steptowardsedge(edgesdf,edgeuv); 206 | steps++; 207 | } 208 | 209 | return abs(edgesdf.r) < 0.5; 210 | } 211 | 212 | 213 | //takes a pixel colour from the sdf texture and returns the output colour 214 | //uv arg is source sample pos, added in blog 7 215 | float4 sdffunc(float4 sdf, float2 uv) 216 | { 217 | float4 res = _Background; 218 | 219 | if (_Mode == 1) //Raw 220 | { 221 | return sdf; 222 | } 223 | else if (_Mode == 2) //Distance 224 | { 225 | //render colour for distance for valid pixels 226 | float d = sdf.r*_DistanceVisualisationScale; 227 | res.r = saturate(d); 228 | res.g = saturate(-d); 229 | res.b = 0; 230 | } 231 | else if (_Mode == 3) //Gradient 232 | { 233 | float d = sdf.r; 234 | float2 grad = sdf.gb; 235 | res.rgb = HUEtoRGB((1+atan2(grad.y,grad.x)/3.1415926f)*0.5); 236 | //res.gb = (grad+1)*0.5; res.r = 0; 237 | res.rgb *= 0.5+0.5*saturate(abs(d)); 238 | } 239 | else if (_Mode == 4) //Solid 240 | { 241 | float d = sdf.r + _Offset; 242 | if (d < 0) 243 | res = _Fill; 244 | } 245 | else if (_Mode == 5) //Border 246 | { 247 | float d = sdf.r + _Offset; 248 | if (abs(d) < _BorderWidth) 249 | { 250 | res = _Border; 251 | } 252 | } 253 | else if (_Mode == 6) //SolidWithBorder 254 | { 255 | float d = sdf.r + _Offset; 256 | if (abs(d) < _BorderWidth) 257 | { 258 | res = _Border; 259 | } 260 | else if (d < 0) 261 | { 262 | res = _Fill; 263 | } 264 | } 265 | else if (_Mode == 7) //SoftBorder (Blog post 7) 266 | { 267 | float d = sdf.r + _Offset; 268 | 269 | if (d < -_BorderWidth) 270 | { 271 | //if inside shape by more than _BorderWidth, use pure fill 272 | res = _Fill; 273 | } 274 | else if (d < 0) 275 | { 276 | //if inside shape but within range of border, lerp from fill to border colour 277 | float t = -d / _BorderWidth; 278 | t = t * t; 279 | res = lerp(_Border, _Fill, t); 280 | } 281 | else if (d < _BorderWidth) 282 | { 283 | //if outside shape but within range of border, lerp from border to background colour 284 | float t = d / _BorderWidth; 285 | t = t * t; 286 | res = lerp(_Border, _Background, t); 287 | } 288 | } 289 | else if (_Mode == 8) //Neon (Blog post 7) 290 | { 291 | float d = sdf.r + _Offset; 292 | 293 | //only do something if within range of border 294 | if (d > -_BorderWidth && d < _BorderWidth) 295 | { 296 | //calculate a value of 't' that goes from 0->1->0 297 | //around the edge of the geometry 298 | float t = d / _BorderWidth; //[-1:0:1] 299 | t = 1 - abs(t); //[0:1:0] 300 | 301 | //lerp between background and border using t 302 | res = lerp(_Background, _Border, t); 303 | 304 | //raise t to a high power and add in as white 305 | //to give bloom effect 306 | res.rgb += pow(t, _NeonPower)*_NeonBrightness; 307 | } 308 | } 309 | else if (_Mode == 9) //Edge Texture (Blog post 7) 310 | { 311 | float d = sdf.r + _Offset; 312 | 313 | if (d < -_BorderWidth) 314 | { 315 | //if inside shape by more than _BorderWidth, use pure fill 316 | res = _Fill; 317 | } 318 | else if (d < _BorderWidth) 319 | { 320 | //if inside shape but within range of border, calculate a 321 | //'t' from 0 to 1 322 | float t = d / _BorderWidth; //[-1:0:1] 323 | t = (t+1)*0.5; //[0:1] 324 | 325 | //now use 't' as the 'u' coordinate in sampling _EdgeTex 326 | res = tex2D(_EdgeTex, float2(t,0.5)); 327 | } 328 | } 329 | else if (_Mode == 10) //Drop shadow (Blog post 7) 330 | { 331 | //sample distance as normal 332 | float d = sdf.r + _Offset; 333 | 334 | //take another sample, _ShadowDist texels up/right from the first 335 | float d2 = samplesdf(uv+_ShadowDist*_MainTex_TexelSize.xy).r + _Offset; 336 | 337 | //calculate interpolators (go from 0 to 1 across border) 338 | float fill_t = 1-saturate((d-_BorderWidth)/_BorderWidth); 339 | float shadow_t = 1-saturate((d2-_ShadowBorderWidth)/_ShadowBorderWidth); 340 | 341 | //apply the shadow colour, then over the top apply fill colour 342 | res = lerp(res,_Border,shadow_t); 343 | res = lerp(res,_Fill,fill_t); 344 | } 345 | else if(_Mode == 11) //Bevel 346 | { 347 | //sample distance as normal 348 | float d = sdf.r + _Offset; 349 | 350 | //choose a light direction (just [0.5,0.5]), then dot product 351 | //with the gradient to get a brightness 352 | float2 lightdir = normalize(float2(0.5,0.5)); 353 | float diffuse = saturate(dot(sdf.gb,-lightdir)); 354 | 355 | //by default diffuse is linear (flat edge). combine with border distance 356 | //to fake curvy one if desired 357 | float curvature = pow(saturate(d/_BorderWidth),_BevelCurvature); 358 | diffuse = lerp(1,diffuse,curvature); 359 | 360 | //calculate the border colour (diffuse contributes 75% of 'light') 361 | float4 border_col = _Fill * (diffuse*0.75+0.25); 362 | border_col.a = 1; 363 | 364 | //choose output 365 | if(d < 0) 366 | { 367 | //inside the goemetry, just use fill 368 | res = _Fill; 369 | } 370 | else if(d < _BorderWidth) 371 | { 372 | //inside border, use border_col with tiny lerp across 1 pixel 373 | //to avoid aliasing 374 | res = lerp(_Fill,border_col,saturate(d)); 375 | } 376 | else 377 | { 378 | //outside border, use fill col, with tiny lerp across 1 pixel 379 | //to avoid aliasing 380 | res = lerp(border_col,_Background,saturate(d-_BorderWidth)); 381 | } 382 | 383 | } 384 | else if(_Mode == 12) //EdgeFind 385 | { 386 | //use sampleedge to get the edge field values and uv 387 | float2 edgeuv; 388 | float4 edgesdf; 389 | int edgesteps; 390 | bool success = sampleedge(sdf,uv,edgesdf,edgeuv,edgesteps); 391 | 392 | //visualize number of steps to reach edge (or black if didn't get there') 393 | res.rgb = success ? HUEtoRGB(0.75f*edgesteps/8.0f) : 0; 394 | } 395 | else if(_Mode == 13) //ShowNoiseTexture 396 | { 397 | res = samplenoise(uv); 398 | } 399 | else if(_Mode == 14) //NoiseyEdge 400 | { 401 | //use sampleedge to get the edge field values and uv 402 | float2 edgeuv; 403 | float4 edgesdf; 404 | int edgesteps; 405 | bool success = sampleedge(sdf,uv,edgesdf,edgeuv,edgesteps); 406 | 407 | sdf.r -= (samplenoise(uv)*2-1)*20; 408 | 409 | //res.rg = abs(sin(edgeuv*50)); 410 | //res.b = 0; 411 | 412 | if(sdf.r < 0) 413 | res.rgb = 0; 414 | 415 | //float cells = 20; 416 | //float2 tilecentre = round(uv*cells)/cells; 417 | //float2 tileoffset = (uv-tilecentre)*cells*2; 418 | // 419 | //sdf = samplesdf(tilecentre); 420 | // 421 | //float d = sdf.r + _Offset; 422 | //float2 grad = sdf.gb; 423 | //float2 grad2 = float2(-grad.y,grad.x); 424 | // 425 | //tileoffset -= 0.5; 426 | //tileoffset = grad*tileoffset.x + grad2*tileoffset.y; 427 | //tileoffset += 0.5; 428 | // 429 | //res.rgb = tex2D(_TileTex,tileoffset); 430 | 431 | // 432 | // 433 | // 434 | ////res.r = saturate(edged); 435 | ////res.g = saturate(-edged); 436 | ////res.b = 0; 437 | //// 438 | ////res.rgb = float3(abs(edged),0,0); 439 | // 440 | // 441 | //float tiling = 4; 442 | //float2 samplecentre = round(uv*tiling)/tiling; 443 | //float2 sampleuv = (uv-samplecentre)*tiling; 444 | // 445 | // 446 | // 447 | ////float d = sdf.r + _Offset; 448 | //float2 grad = samplesdf(samplecentre).gb; 449 | //float2 grad2 = float2(-grad.y,grad.x); 450 | // 451 | //sampleuv = sampleuv.x*grad+sampleuv.y*grad2; 452 | // 453 | //res.rgb = tex2D(_TileTex,sampleuv); 454 | 455 | /*float2 weights = abs(grad); 456 | weights = pow(weights,5*(1-saturate(abs(d)*0.2))); 457 | weights /= (weights.x+weights.y); 458 | float tile = 2; 459 | 460 | res = tex2D(_TileTex,uv.xy*tile)*weights.x+tex2D(_TileTex,uv.yx*tile)*weights.y; 461 | */ 462 | //float fill_t = 1-saturate((d-_BorderWidth)/_BorderWidth); 463 | //res.a = fill_t; 464 | 465 | 466 | //float2 suv = grad * uv.x + grad2 * uv.y; 467 | //res = tiledcircle(suv); 468 | ////res = float4(dot(grad,uv),0,0,1); 469 | // 470 | //float val = dot(grad,uv); 471 | //float ruler = frac(abs(val)*10); 472 | //res = float4(ruler,0,0,1); 473 | } 474 | 475 | 476 | 477 | res.rgb *= res.a; 478 | res.a = 1; 479 | 480 | 481 | return res; 482 | } 483 | 484 | fixed4 frag (v2f i) : SV_Target 485 | { 486 | //sample distance field 487 | float4 sdf = samplesdf(i.uv); 488 | 489 | fixed4 res = sdffunc(sdf,i.uv); 490 | 491 | //blend in grid 492 | if (_Grid > 0) 493 | { 494 | float2 gridness = cos(3.1415926 * i.uv * _MainTex_TexelSize.zw); 495 | gridness = abs(gridness); 496 | gridness = pow(gridness,100); 497 | gridness *= _Grid; 498 | res = lerp(res, fixed4(0, 0, 0, 1), max(gridness.x,gridness.y)); 499 | } 500 | 501 | //float contour = cos(3.1415926 * sdf.r * _MainTex_TexelSize.x * 20); 502 | //contour = abs(contour); 503 | //contour = pow(contour,100); 504 | //res = lerp(res, fixed4(0, 0, 1, 1), contour); 505 | 506 | //blend in gradient arrows 507 | if(_ArrowOpacity > 0) 508 | { 509 | //calculate the arrow cell/offset, then sample sdf distance and grad 510 | float cells = _ArrowTiles; 511 | float2 tilecentre = floor(i.uv*cells)/cells+0.5/cells; 512 | float2 tileoffset = (i.uv-tilecentre)*cells*1.75; 513 | float4 arrowsdf = samplesdf(tilecentre); 514 | float d = arrowsdf.r + _Offset; 515 | if(sign(d) == sign(sdf.r)) 516 | { 517 | float2 grad = normalize(arrowsdf.gb); 518 | float2 grad2 = float2(-grad.y,grad.x); 519 | 520 | //rotate the offset using the grad 521 | tileoffset = grad*tileoffset.x - grad2*tileoffset.y; 522 | tileoffset += 0.5; 523 | 524 | //sample arrow texture and update colour 525 | float4 tilecol = tex2D(_ArrowTex,tileoffset); 526 | tilecol.a *= _ArrowOpacity; 527 | res.rgb = lerp(res.rgb, tilecol.rgb, tilecol.a); 528 | } 529 | } 530 | 531 | return res; 532 | } 533 | ENDCG 534 | } 535 | } 536 | } 537 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/SignedDistanceField.shader.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: cdbd6469c6f5b354cb754c4a33e8a176 3 | timeCreated: 1521828940 4 | licenseType: Free 5 | ShaderImporter: 6 | externalObjects: {} 7 | defaultTextures: [] 8 | userData: 9 | assetBundleName: 10 | assetBundleVariant: 11 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/SignedDistanceFieldGenerator.cs.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 37eb650bbd47f7b4ca5ce6b632687673 3 | timeCreated: 1522400284 4 | licenseType: Free 5 | MonoImporter: 6 | externalObjects: {} 7 | serializedVersion: 2 8 | defaultReferences: [] 9 | executionOrder: 0 10 | icon: {instanceID: 0} 11 | userData: 12 | assetBundleName: 13 | assetBundleVariant: 14 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/gradient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/gradient.png -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/gradient.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: bc0a87c628f75384f99874abd35b5a24 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: 1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 0 51 | spriteTessellationDetail: -1 52 | textureType: 0 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 2048 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | - serializedVersion: 2 71 | buildTarget: Standalone 72 | maxTextureSize: 2048 73 | resizeAlgorithm: 0 74 | textureFormat: -1 75 | textureCompression: 1 76 | compressionQuality: 50 77 | crunchedCompression: 0 78 | allowsAlphaSplitting: 0 79 | overridden: 0 80 | androidETC2FallbackOverride: 0 81 | spriteSheet: 82 | serializedVersion: 2 83 | sprites: [] 84 | outline: [] 85 | physicsShape: [] 86 | bones: [] 87 | spriteID: 88 | vertices: [] 89 | indices: 90 | edges: [] 91 | weights: [] 92 | spritePackingTag: 93 | userData: 94 | assetBundleName: 95 | assetBundleVariant: 96 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/gradient2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/gradient2.png -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/gradient2.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: b01d09a02191b5444a3e6e65d75e5a3f 3 | TextureImporter: 4 | fileIDToRecycleName: {} 5 | externalObjects: {} 6 | serializedVersion: 5 7 | mipmaps: 8 | mipMapMode: 0 9 | enableMipMap: 1 10 | sRGBTexture: 1 11 | linearTexture: 0 12 | fadeOut: 0 13 | borderMipMap: 0 14 | mipMapsPreserveCoverage: 0 15 | alphaTestReferenceValue: 0.5 16 | mipMapFadeDistanceStart: 1 17 | mipMapFadeDistanceEnd: 3 18 | bumpmap: 19 | convertToNormalMap: 0 20 | externalNormalMap: 0 21 | heightScale: 0.25 22 | normalMapFilter: 0 23 | isReadable: 0 24 | grayScaleToAlpha: 0 25 | generateCubemap: 6 26 | cubemapConvolution: 0 27 | seamlessCubemap: 0 28 | textureFormat: 1 29 | maxTextureSize: 2048 30 | textureSettings: 31 | serializedVersion: 2 32 | filterMode: -1 33 | aniso: -1 34 | mipBias: -1 35 | wrapU: -1 36 | wrapV: -1 37 | wrapW: -1 38 | nPOTScale: 1 39 | lightmap: 0 40 | compressionQuality: 50 41 | spriteMode: 0 42 | spriteExtrude: 1 43 | spriteMeshType: 1 44 | alignment: 0 45 | spritePivot: {x: 0.5, y: 0.5} 46 | spritePixelsToUnits: 100 47 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 48 | spriteGenerateFallbackPhysicsShape: 1 49 | alphaUsage: 1 50 | alphaIsTransparency: 0 51 | spriteTessellationDetail: -1 52 | textureType: 0 53 | textureShape: 1 54 | singleChannelComponent: 0 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - serializedVersion: 2 60 | buildTarget: DefaultTexturePlatform 61 | maxTextureSize: 2048 62 | resizeAlgorithm: 0 63 | textureFormat: -1 64 | textureCompression: 1 65 | compressionQuality: 50 66 | crunchedCompression: 0 67 | allowsAlphaSplitting: 0 68 | overridden: 0 69 | androidETC2FallbackOverride: 0 70 | spriteSheet: 71 | serializedVersion: 2 72 | sprites: [] 73 | outline: [] 74 | physicsShape: [] 75 | bones: [] 76 | spriteID: 77 | vertices: [] 78 | indices: 79 | edges: [] 80 | weights: [] 81 | spritePackingTag: 82 | userData: 83 | assetBundleName: 84 | assetBundleVariant: 85 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/sdfgradient.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/sdfgradient.psd -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/sdfgradient.psd.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 2006322d2a23eac478b96e66668b656d 3 | timeCreated: 1521828940 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | physicsShape: [] 74 | spritePackingTag: 75 | userData: 76 | assetBundleName: 77 | assetBundleVariant: 78 | -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/tinycircle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/chriscummings100/signeddistancefields/373e5460416f7fc16d8a048b21cf1f3ea89a7abc/Assets/SignedDistanceFields/tinycircle.png -------------------------------------------------------------------------------- /Assets/SignedDistanceFields/tinycircle.png.meta: -------------------------------------------------------------------------------- 1 | fileFormatVersion: 2 2 | guid: 3ef8eaa11129e0044990b55097c19a6f 3 | timeCreated: 1521830857 4 | licenseType: Free 5 | TextureImporter: 6 | fileIDToRecycleName: {} 7 | externalObjects: {} 8 | serializedVersion: 4 9 | mipmaps: 10 | mipMapMode: 0 11 | enableMipMap: 1 12 | sRGBTexture: 1 13 | linearTexture: 0 14 | fadeOut: 0 15 | borderMipMap: 0 16 | mipMapsPreserveCoverage: 0 17 | alphaTestReferenceValue: 0.5 18 | mipMapFadeDistanceStart: 1 19 | mipMapFadeDistanceEnd: 3 20 | bumpmap: 21 | convertToNormalMap: 0 22 | externalNormalMap: 0 23 | heightScale: 0.25 24 | normalMapFilter: 0 25 | isReadable: 0 26 | grayScaleToAlpha: 0 27 | generateCubemap: 6 28 | cubemapConvolution: 0 29 | seamlessCubemap: 0 30 | textureFormat: 1 31 | maxTextureSize: 2048 32 | textureSettings: 33 | serializedVersion: 2 34 | filterMode: -1 35 | aniso: -1 36 | mipBias: -1 37 | wrapU: -1 38 | wrapV: -1 39 | wrapW: -1 40 | nPOTScale: 1 41 | lightmap: 0 42 | compressionQuality: 50 43 | spriteMode: 0 44 | spriteExtrude: 1 45 | spriteMeshType: 1 46 | alignment: 0 47 | spritePivot: {x: 0.5, y: 0.5} 48 | spriteBorder: {x: 0, y: 0, z: 0, w: 0} 49 | spritePixelsToUnits: 100 50 | alphaUsage: 1 51 | alphaIsTransparency: 0 52 | spriteTessellationDetail: -1 53 | textureType: 0 54 | textureShape: 1 55 | maxTextureSizeSet: 0 56 | compressionQualitySet: 0 57 | textureFormatSet: 0 58 | platformSettings: 59 | - buildTarget: DefaultTexturePlatform 60 | maxTextureSize: 2048 61 | resizeAlgorithm: 0 62 | textureFormat: -1 63 | textureCompression: 1 64 | compressionQuality: 50 65 | crunchedCompression: 0 66 | allowsAlphaSplitting: 0 67 | overridden: 0 68 | androidETC2FallbackOverride: 0 69 | spriteSheet: 70 | serializedVersion: 2 71 | sprites: [] 72 | outline: [] 73 | physicsShape: [] 74 | spritePackingTag: 75 | userData: 76 | assetBundleName: 77 | assetBundleVariant: 78 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | } 4 | } 5 | -------------------------------------------------------------------------------- /ProjectSettings/AudioManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!11 &1 4 | AudioManager: 5 | m_ObjectHideFlags: 0 6 | m_Volume: 1 7 | Rolloff Scale: 1 8 | Doppler Factor: 1 9 | Default Speaker Mode: 2 10 | m_SampleRate: 0 11 | m_DSPBufferSize: 0 12 | m_VirtualVoiceCount: 512 13 | m_RealVoiceCount: 32 14 | m_SpatializerPlugin: 15 | m_AmbisonicDecoderPlugin: 16 | m_DisableAudio: 0 17 | m_VirtualizeEffects: 1 18 | -------------------------------------------------------------------------------- /ProjectSettings/ClusterInputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!236 &1 4 | ClusterInputManager: 5 | m_ObjectHideFlags: 0 6 | m_Inputs: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/DynamicsManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!55 &1 4 | PhysicsManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_Gravity: {x: 0, y: -9.81, z: 0} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_BounceThreshold: 2 10 | m_SleepThreshold: 0.005 11 | m_DefaultContactOffset: 0.01 12 | m_DefaultSolverIterations: 6 13 | m_DefaultSolverVelocityIterations: 1 14 | m_QueriesHitBackfaces: 0 15 | m_QueriesHitTriggers: 1 16 | m_EnableAdaptiveForce: 0 17 | m_ClothInterCollisionDistance: 0 18 | m_ClothInterCollisionStiffness: 0 19 | m_ContactsGeneration: 1 20 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 21 | m_AutoSimulation: 1 22 | m_AutoSyncTransforms: 1 23 | m_ClothInterCollisionSettingsToggle: 0 24 | m_ContactPairsMode: 0 25 | m_BroadphaseType: 0 26 | m_WorldBounds: 27 | m_Center: {x: 0, y: 0, z: 0} 28 | m_Extent: {x: 250, y: 250, z: 250} 29 | m_WorldSubdivisions: 8 30 | -------------------------------------------------------------------------------- /ProjectSettings/EditorBuildSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1045 &1 4 | EditorBuildSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Scenes: 8 | - enabled: 1 9 | path: Assets/SignedDistanceFields/SDF.unity 10 | guid: 5df36427dbf910d4bbafeebfa3e13e28 11 | -------------------------------------------------------------------------------- /ProjectSettings/EditorSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!159 &1 4 | EditorSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 7 7 | m_ExternalVersionControlSupport: Hidden Meta Files 8 | m_SerializationMode: 2 9 | m_LineEndingsForNewScripts: 2 10 | m_DefaultBehaviorMode: 0 11 | m_SpritePackerMode: 0 12 | m_SpritePackerPaddingPower: 1 13 | m_EtcTextureCompressorBehavior: 1 14 | m_EtcTextureFastCompressor: 1 15 | m_EtcTextureNormalCompressor: 2 16 | m_EtcTextureBestCompressor: 4 17 | m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp 18 | m_ProjectGenerationRootNamespace: 19 | m_UserGeneratedProjectSuffix: 20 | m_CollabEditorSettings: 21 | inProgressEnabled: 1 22 | -------------------------------------------------------------------------------- /ProjectSettings/GraphicsSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!30 &1 4 | GraphicsSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 12 7 | m_Deferred: 8 | m_Mode: 1 9 | m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} 10 | m_DeferredReflections: 11 | m_Mode: 1 12 | m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} 13 | m_ScreenSpaceShadows: 14 | m_Mode: 1 15 | m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} 16 | m_LegacyDeferred: 17 | m_Mode: 1 18 | m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} 19 | m_DepthNormals: 20 | m_Mode: 1 21 | m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} 22 | m_MotionVectors: 23 | m_Mode: 1 24 | m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} 25 | m_LightHalo: 26 | m_Mode: 1 27 | m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} 28 | m_LensFlare: 29 | m_Mode: 1 30 | m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} 31 | m_AlwaysIncludedShaders: 32 | - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} 33 | - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} 34 | - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} 35 | - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} 36 | - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} 37 | - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} 38 | - {fileID: 17000, guid: 0000000000000000f000000000000000, type: 0} 39 | - {fileID: 16000, guid: 0000000000000000f000000000000000, type: 0} 40 | m_PreloadedShaders: [] 41 | m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, 42 | type: 0} 43 | m_CustomRenderPipeline: {fileID: 0} 44 | m_TransparencySortMode: 0 45 | m_TransparencySortAxis: {x: 0, y: 0, z: 1} 46 | m_DefaultRenderingPath: 1 47 | m_DefaultMobileRenderingPath: 1 48 | m_TierSettings: [] 49 | m_LightmapStripping: 0 50 | m_FogStripping: 0 51 | m_InstancingStripping: 0 52 | m_LightmapKeepPlain: 1 53 | m_LightmapKeepDirCombined: 1 54 | m_LightmapKeepDynamicPlain: 1 55 | m_LightmapKeepDynamicDirCombined: 1 56 | m_LightmapKeepShadowMask: 1 57 | m_LightmapKeepSubtractive: 1 58 | m_FogKeepLinear: 1 59 | m_FogKeepExp: 1 60 | m_FogKeepExp2: 1 61 | m_AlbedoSwatchInfos: [] 62 | m_LightsUseLinearIntensity: 0 63 | m_LightsUseColorTemperature: 0 64 | -------------------------------------------------------------------------------- /ProjectSettings/InputManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!13 &1 4 | InputManager: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | m_Axes: 8 | - serializedVersion: 3 9 | m_Name: Horizontal 10 | descriptiveName: 11 | descriptiveNegativeName: 12 | negativeButton: left 13 | positiveButton: right 14 | altNegativeButton: a 15 | altPositiveButton: d 16 | gravity: 3 17 | dead: 0.001 18 | sensitivity: 3 19 | snap: 1 20 | invert: 0 21 | type: 0 22 | axis: 0 23 | joyNum: 0 24 | - serializedVersion: 3 25 | m_Name: Vertical 26 | descriptiveName: 27 | descriptiveNegativeName: 28 | negativeButton: down 29 | positiveButton: up 30 | altNegativeButton: s 31 | altPositiveButton: w 32 | gravity: 3 33 | dead: 0.001 34 | sensitivity: 3 35 | snap: 1 36 | invert: 0 37 | type: 0 38 | axis: 0 39 | joyNum: 0 40 | - serializedVersion: 3 41 | m_Name: Fire1 42 | descriptiveName: 43 | descriptiveNegativeName: 44 | negativeButton: 45 | positiveButton: left ctrl 46 | altNegativeButton: 47 | altPositiveButton: mouse 0 48 | gravity: 1000 49 | dead: 0.001 50 | sensitivity: 1000 51 | snap: 0 52 | invert: 0 53 | type: 0 54 | axis: 0 55 | joyNum: 0 56 | - serializedVersion: 3 57 | m_Name: Fire2 58 | descriptiveName: 59 | descriptiveNegativeName: 60 | negativeButton: 61 | positiveButton: left alt 62 | altNegativeButton: 63 | altPositiveButton: mouse 1 64 | gravity: 1000 65 | dead: 0.001 66 | sensitivity: 1000 67 | snap: 0 68 | invert: 0 69 | type: 0 70 | axis: 0 71 | joyNum: 0 72 | - serializedVersion: 3 73 | m_Name: Fire3 74 | descriptiveName: 75 | descriptiveNegativeName: 76 | negativeButton: 77 | positiveButton: left shift 78 | altNegativeButton: 79 | altPositiveButton: mouse 2 80 | gravity: 1000 81 | dead: 0.001 82 | sensitivity: 1000 83 | snap: 0 84 | invert: 0 85 | type: 0 86 | axis: 0 87 | joyNum: 0 88 | - serializedVersion: 3 89 | m_Name: Jump 90 | descriptiveName: 91 | descriptiveNegativeName: 92 | negativeButton: 93 | positiveButton: space 94 | altNegativeButton: 95 | altPositiveButton: 96 | gravity: 1000 97 | dead: 0.001 98 | sensitivity: 1000 99 | snap: 0 100 | invert: 0 101 | type: 0 102 | axis: 0 103 | joyNum: 0 104 | - serializedVersion: 3 105 | m_Name: Mouse X 106 | descriptiveName: 107 | descriptiveNegativeName: 108 | negativeButton: 109 | positiveButton: 110 | altNegativeButton: 111 | altPositiveButton: 112 | gravity: 0 113 | dead: 0 114 | sensitivity: 0.1 115 | snap: 0 116 | invert: 0 117 | type: 1 118 | axis: 0 119 | joyNum: 0 120 | - serializedVersion: 3 121 | m_Name: Mouse Y 122 | descriptiveName: 123 | descriptiveNegativeName: 124 | negativeButton: 125 | positiveButton: 126 | altNegativeButton: 127 | altPositiveButton: 128 | gravity: 0 129 | dead: 0 130 | sensitivity: 0.1 131 | snap: 0 132 | invert: 0 133 | type: 1 134 | axis: 1 135 | joyNum: 0 136 | - serializedVersion: 3 137 | m_Name: Mouse ScrollWheel 138 | descriptiveName: 139 | descriptiveNegativeName: 140 | negativeButton: 141 | positiveButton: 142 | altNegativeButton: 143 | altPositiveButton: 144 | gravity: 0 145 | dead: 0 146 | sensitivity: 0.1 147 | snap: 0 148 | invert: 0 149 | type: 1 150 | axis: 2 151 | joyNum: 0 152 | - serializedVersion: 3 153 | m_Name: Horizontal 154 | descriptiveName: 155 | descriptiveNegativeName: 156 | negativeButton: 157 | positiveButton: 158 | altNegativeButton: 159 | altPositiveButton: 160 | gravity: 0 161 | dead: 0.19 162 | sensitivity: 1 163 | snap: 0 164 | invert: 0 165 | type: 2 166 | axis: 0 167 | joyNum: 0 168 | - serializedVersion: 3 169 | m_Name: Vertical 170 | descriptiveName: 171 | descriptiveNegativeName: 172 | negativeButton: 173 | positiveButton: 174 | altNegativeButton: 175 | altPositiveButton: 176 | gravity: 0 177 | dead: 0.19 178 | sensitivity: 1 179 | snap: 0 180 | invert: 1 181 | type: 2 182 | axis: 1 183 | joyNum: 0 184 | - serializedVersion: 3 185 | m_Name: Fire1 186 | descriptiveName: 187 | descriptiveNegativeName: 188 | negativeButton: 189 | positiveButton: joystick button 0 190 | altNegativeButton: 191 | altPositiveButton: 192 | gravity: 1000 193 | dead: 0.001 194 | sensitivity: 1000 195 | snap: 0 196 | invert: 0 197 | type: 0 198 | axis: 0 199 | joyNum: 0 200 | - serializedVersion: 3 201 | m_Name: Fire2 202 | descriptiveName: 203 | descriptiveNegativeName: 204 | negativeButton: 205 | positiveButton: joystick button 1 206 | altNegativeButton: 207 | altPositiveButton: 208 | gravity: 1000 209 | dead: 0.001 210 | sensitivity: 1000 211 | snap: 0 212 | invert: 0 213 | type: 0 214 | axis: 0 215 | joyNum: 0 216 | - serializedVersion: 3 217 | m_Name: Fire3 218 | descriptiveName: 219 | descriptiveNegativeName: 220 | negativeButton: 221 | positiveButton: joystick button 2 222 | altNegativeButton: 223 | altPositiveButton: 224 | gravity: 1000 225 | dead: 0.001 226 | sensitivity: 1000 227 | snap: 0 228 | invert: 0 229 | type: 0 230 | axis: 0 231 | joyNum: 0 232 | - serializedVersion: 3 233 | m_Name: Jump 234 | descriptiveName: 235 | descriptiveNegativeName: 236 | negativeButton: 237 | positiveButton: joystick button 3 238 | altNegativeButton: 239 | altPositiveButton: 240 | gravity: 1000 241 | dead: 0.001 242 | sensitivity: 1000 243 | snap: 0 244 | invert: 0 245 | type: 0 246 | axis: 0 247 | joyNum: 0 248 | - serializedVersion: 3 249 | m_Name: Submit 250 | descriptiveName: 251 | descriptiveNegativeName: 252 | negativeButton: 253 | positiveButton: return 254 | altNegativeButton: 255 | altPositiveButton: joystick button 0 256 | gravity: 1000 257 | dead: 0.001 258 | sensitivity: 1000 259 | snap: 0 260 | invert: 0 261 | type: 0 262 | axis: 0 263 | joyNum: 0 264 | - serializedVersion: 3 265 | m_Name: Submit 266 | descriptiveName: 267 | descriptiveNegativeName: 268 | negativeButton: 269 | positiveButton: enter 270 | altNegativeButton: 271 | altPositiveButton: space 272 | gravity: 1000 273 | dead: 0.001 274 | sensitivity: 1000 275 | snap: 0 276 | invert: 0 277 | type: 0 278 | axis: 0 279 | joyNum: 0 280 | - serializedVersion: 3 281 | m_Name: Cancel 282 | descriptiveName: 283 | descriptiveNegativeName: 284 | negativeButton: 285 | positiveButton: escape 286 | altNegativeButton: 287 | altPositiveButton: joystick button 1 288 | gravity: 1000 289 | dead: 0.001 290 | sensitivity: 1000 291 | snap: 0 292 | invert: 0 293 | type: 0 294 | axis: 0 295 | joyNum: 0 296 | -------------------------------------------------------------------------------- /ProjectSettings/NavMeshAreas.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!126 &1 4 | NavMeshProjectSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 2 7 | areas: 8 | - name: Walkable 9 | cost: 1 10 | - name: Not Walkable 11 | cost: 1 12 | - name: Jump 13 | cost: 2 14 | - name: 15 | cost: 1 16 | - name: 17 | cost: 1 18 | - name: 19 | cost: 1 20 | - name: 21 | cost: 1 22 | - name: 23 | cost: 1 24 | - name: 25 | cost: 1 26 | - name: 27 | cost: 1 28 | - name: 29 | cost: 1 30 | - name: 31 | cost: 1 32 | - name: 33 | cost: 1 34 | - name: 35 | cost: 1 36 | - name: 37 | cost: 1 38 | - name: 39 | cost: 1 40 | - name: 41 | cost: 1 42 | - name: 43 | cost: 1 44 | - name: 45 | cost: 1 46 | - name: 47 | cost: 1 48 | - name: 49 | cost: 1 50 | - name: 51 | cost: 1 52 | - name: 53 | cost: 1 54 | - name: 55 | cost: 1 56 | - name: 57 | cost: 1 58 | - name: 59 | cost: 1 60 | - name: 61 | cost: 1 62 | - name: 63 | cost: 1 64 | - name: 65 | cost: 1 66 | - name: 67 | cost: 1 68 | - name: 69 | cost: 1 70 | - name: 71 | cost: 1 72 | m_LastAgentTypeID: -887442657 73 | m_Settings: 74 | - serializedVersion: 2 75 | agentTypeID: 0 76 | agentRadius: 0.5 77 | agentHeight: 2 78 | agentSlope: 45 79 | agentClimb: 0.75 80 | ledgeDropHeight: 0 81 | maxJumpAcrossDistance: 0 82 | minRegionArea: 2 83 | manualCellSize: 0 84 | cellSize: 0.16666667 85 | manualTileSize: 0 86 | tileSize: 256 87 | accuratePlacement: 0 88 | debug: 89 | m_Flags: 0 90 | m_SettingNames: 91 | - Humanoid 92 | -------------------------------------------------------------------------------- /ProjectSettings/NetworkManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!149 &1 4 | NetworkManager: 5 | m_ObjectHideFlags: 0 6 | m_DebugLevel: 0 7 | m_Sendrate: 15 8 | m_AssetToPrefab: {} 9 | -------------------------------------------------------------------------------- /ProjectSettings/Physics2DSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!19 &1 4 | Physics2DSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 3 7 | m_Gravity: {x: 0, y: -9.81} 8 | m_DefaultMaterial: {fileID: 0} 9 | m_VelocityIterations: 8 10 | m_PositionIterations: 3 11 | m_VelocityThreshold: 1 12 | m_MaxLinearCorrection: 0.2 13 | m_MaxAngularCorrection: 8 14 | m_MaxTranslationSpeed: 100 15 | m_MaxRotationSpeed: 360 16 | m_BaumgarteScale: 0.2 17 | m_BaumgarteTimeOfImpactScale: 0.75 18 | m_TimeToSleep: 0.5 19 | m_LinearSleepTolerance: 0.01 20 | m_AngularSleepTolerance: 2 21 | m_DefaultContactOffset: 0.01 22 | m_AutoSimulation: 1 23 | m_QueriesHitTriggers: 1 24 | m_QueriesStartInColliders: 1 25 | m_ChangeStopsCallbacks: 0 26 | m_CallbacksOnDisable: 1 27 | m_AutoSyncTransforms: 1 28 | m_AlwaysShowColliders: 0 29 | m_ShowColliderSleep: 1 30 | m_ShowColliderContacts: 0 31 | m_ShowColliderAABB: 0 32 | m_ContactArrowScale: 0.2 33 | m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} 34 | m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} 35 | m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} 36 | m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} 37 | m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff 38 | -------------------------------------------------------------------------------- /ProjectSettings/PresetManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!1386491679 &1 4 | PresetManager: 5 | m_ObjectHideFlags: 0 6 | m_DefaultList: [] 7 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!129 &1 4 | PlayerSettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 14 7 | productGUID: 78197e5a0e96fdc4cb8cc63ebe3c10c5 8 | AndroidProfiler: 0 9 | AndroidFilterTouchesWhenObscured: 0 10 | defaultScreenOrientation: 4 11 | targetDevice: 2 12 | useOnDemandResources: 0 13 | accelerometerFrequency: 60 14 | companyName: DefaultCompany 15 | productName: signeddistancefields 16 | defaultCursor: {fileID: 0} 17 | cursorHotspot: {x: 0, y: 0} 18 | m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} 19 | m_ShowUnitySplashScreen: 1 20 | m_ShowUnitySplashLogo: 1 21 | m_SplashScreenOverlayOpacity: 1 22 | m_SplashScreenAnimation: 1 23 | m_SplashScreenLogoStyle: 1 24 | m_SplashScreenDrawMode: 0 25 | m_SplashScreenBackgroundAnimationZoom: 1 26 | m_SplashScreenLogoAnimationZoom: 1 27 | m_SplashScreenBackgroundLandscapeAspect: 1 28 | m_SplashScreenBackgroundPortraitAspect: 1 29 | m_SplashScreenBackgroundLandscapeUvs: 30 | serializedVersion: 2 31 | x: 0 32 | y: 0 33 | width: 1 34 | height: 1 35 | m_SplashScreenBackgroundPortraitUvs: 36 | serializedVersion: 2 37 | x: 0 38 | y: 0 39 | width: 1 40 | height: 1 41 | m_SplashScreenLogos: [] 42 | m_VirtualRealitySplashScreen: {fileID: 0} 43 | m_HolographicTrackingLossScreen: {fileID: 0} 44 | defaultScreenWidth: 1024 45 | defaultScreenHeight: 768 46 | defaultScreenWidthWeb: 960 47 | defaultScreenHeightWeb: 600 48 | m_StereoRenderingPath: 0 49 | m_ActiveColorSpace: 0 50 | m_MTRendering: 1 51 | m_StackTraceTypes: 010000000100000001000000010000000100000001000000 52 | iosShowActivityIndicatorOnLoading: -1 53 | androidShowActivityIndicatorOnLoading: -1 54 | tizenShowActivityIndicatorOnLoading: -1 55 | iosAppInBackgroundBehavior: 0 56 | displayResolutionDialog: 1 57 | iosAllowHTTPDownload: 1 58 | allowedAutorotateToPortrait: 1 59 | allowedAutorotateToPortraitUpsideDown: 1 60 | allowedAutorotateToLandscapeRight: 1 61 | allowedAutorotateToLandscapeLeft: 1 62 | useOSAutorotation: 1 63 | use32BitDisplayBuffer: 1 64 | preserveFramebufferAlpha: 0 65 | disableDepthAndStencilBuffers: 0 66 | androidBlitType: 0 67 | defaultIsFullScreen: 1 68 | defaultIsNativeResolution: 1 69 | macRetinaSupport: 1 70 | runInBackground: 0 71 | captureSingleScreen: 0 72 | muteOtherAudioSources: 0 73 | Prepare IOS For Recording: 0 74 | Force IOS Speakers When Recording: 0 75 | deferSystemGesturesMode: 0 76 | hideHomeButton: 0 77 | submitAnalytics: 1 78 | usePlayerLog: 1 79 | bakeCollisionMeshes: 0 80 | forceSingleInstance: 0 81 | resizableWindow: 1 82 | useMacAppStoreValidation: 0 83 | macAppStoreCategory: public.app-category.games 84 | gpuSkinning: 0 85 | graphicsJobs: 0 86 | xboxPIXTextureCapture: 0 87 | xboxEnableAvatar: 0 88 | xboxEnableKinect: 0 89 | xboxEnableKinectAutoTracking: 0 90 | xboxEnableFitness: 0 91 | visibleInBackground: 1 92 | allowFullscreenSwitch: 1 93 | graphicsJobMode: 0 94 | macFullscreenMode: 2 95 | d3d11FullscreenMode: 1 96 | xboxSpeechDB: 0 97 | xboxEnableHeadOrientation: 0 98 | xboxEnableGuest: 0 99 | xboxEnablePIXSampling: 0 100 | metalFramebufferOnly: 0 101 | n3dsDisableStereoscopicView: 0 102 | n3dsEnableSharedListOpt: 1 103 | n3dsEnableVSync: 0 104 | xboxOneResolution: 0 105 | xboxOneSResolution: 0 106 | xboxOneXResolution: 3 107 | xboxOneMonoLoggingLevel: 0 108 | xboxOneLoggingLevel: 1 109 | xboxOneDisableEsram: 0 110 | xboxOnePresentImmediateThreshold: 0 111 | videoMemoryForVertexBuffers: 0 112 | psp2PowerMode: 0 113 | psp2AcquireBGM: 1 114 | wiiUTVResolution: 0 115 | wiiUGamePadMSAA: 1 116 | wiiUSupportsNunchuk: 0 117 | wiiUSupportsClassicController: 0 118 | wiiUSupportsBalanceBoard: 0 119 | wiiUSupportsMotionPlus: 0 120 | wiiUSupportsProController: 0 121 | wiiUAllowScreenCapture: 1 122 | wiiUControllerCount: 0 123 | m_SupportedAspectRatios: 124 | 4:3: 1 125 | 5:4: 1 126 | 16:10: 1 127 | 16:9: 1 128 | Others: 1 129 | bundleVersion: 1.0 130 | preloadedAssets: [] 131 | metroInputSource: 0 132 | wsaTransparentSwapchain: 0 133 | m_HolographicPauseOnTrackingLoss: 1 134 | xboxOneDisableKinectGpuReservation: 0 135 | xboxOneEnable7thCore: 0 136 | vrSettings: 137 | cardboard: 138 | depthFormat: 0 139 | enableTransitionView: 0 140 | daydream: 141 | depthFormat: 0 142 | useSustainedPerformanceMode: 0 143 | enableVideoLayer: 0 144 | useProtectedVideoMemory: 0 145 | minimumSupportedHeadTracking: 0 146 | maximumSupportedHeadTracking: 1 147 | hololens: 148 | depthFormat: 1 149 | depthBufferSharingEnabled: 0 150 | oculus: 151 | sharedDepthBuffer: 0 152 | dashSupport: 0 153 | protectGraphicsMemory: 0 154 | useHDRDisplay: 0 155 | m_ColorGamuts: 00000000 156 | targetPixelDensity: 30 157 | resolutionScalingMode: 0 158 | androidSupportedAspectRatio: 1 159 | androidMaxAspectRatio: 2.1 160 | applicationIdentifier: {} 161 | buildNumber: {} 162 | AndroidBundleVersionCode: 1 163 | AndroidMinSdkVersion: 16 164 | AndroidTargetSdkVersion: 0 165 | AndroidPreferredInstallLocation: 1 166 | aotOptions: 167 | stripEngineCode: 1 168 | iPhoneStrippingLevel: 0 169 | iPhoneScriptCallOptimization: 0 170 | ForceInternetPermission: 0 171 | ForceSDCardPermission: 0 172 | CreateWallpaper: 0 173 | APKExpansionFiles: 0 174 | keepLoadedShadersAlive: 0 175 | StripUnusedMeshComponents: 0 176 | VertexChannelCompressionMask: 177 | serializedVersion: 2 178 | m_Bits: 238 179 | iPhoneSdkVersion: 988 180 | iOSTargetOSVersionString: 7.0 181 | tvOSSdkVersion: 0 182 | tvOSRequireExtendedGameController: 0 183 | tvOSTargetOSVersionString: 9.0 184 | uIPrerenderedIcon: 0 185 | uIRequiresPersistentWiFi: 0 186 | uIRequiresFullScreen: 1 187 | uIStatusBarHidden: 1 188 | uIExitOnSuspend: 0 189 | uIStatusBarStyle: 0 190 | iPhoneSplashScreen: {fileID: 0} 191 | iPhoneHighResSplashScreen: {fileID: 0} 192 | iPhoneTallHighResSplashScreen: {fileID: 0} 193 | iPhone47inSplashScreen: {fileID: 0} 194 | iPhone55inPortraitSplashScreen: {fileID: 0} 195 | iPhone55inLandscapeSplashScreen: {fileID: 0} 196 | iPhone58inPortraitSplashScreen: {fileID: 0} 197 | iPhone58inLandscapeSplashScreen: {fileID: 0} 198 | iPadPortraitSplashScreen: {fileID: 0} 199 | iPadHighResPortraitSplashScreen: {fileID: 0} 200 | iPadLandscapeSplashScreen: {fileID: 0} 201 | iPadHighResLandscapeSplashScreen: {fileID: 0} 202 | appleTVSplashScreen: {fileID: 0} 203 | appleTVSplashScreen2x: {fileID: 0} 204 | tvOSSmallIconLayers: [] 205 | tvOSSmallIconLayers2x: [] 206 | tvOSLargeIconLayers: [] 207 | tvOSTopShelfImageLayers: [] 208 | tvOSTopShelfImageLayers2x: [] 209 | tvOSTopShelfImageWideLayers: [] 210 | tvOSTopShelfImageWideLayers2x: [] 211 | iOSLaunchScreenType: 0 212 | iOSLaunchScreenPortrait: {fileID: 0} 213 | iOSLaunchScreenLandscape: {fileID: 0} 214 | iOSLaunchScreenBackgroundColor: 215 | serializedVersion: 2 216 | rgba: 0 217 | iOSLaunchScreenFillPct: 100 218 | iOSLaunchScreenSize: 100 219 | iOSLaunchScreenCustomXibPath: 220 | iOSLaunchScreeniPadType: 0 221 | iOSLaunchScreeniPadImage: {fileID: 0} 222 | iOSLaunchScreeniPadBackgroundColor: 223 | serializedVersion: 2 224 | rgba: 0 225 | iOSLaunchScreeniPadFillPct: 100 226 | iOSLaunchScreeniPadSize: 100 227 | iOSLaunchScreeniPadCustomXibPath: 228 | iOSUseLaunchScreenStoryboard: 0 229 | iOSLaunchScreenCustomStoryboardPath: 230 | iOSDeviceRequirements: [] 231 | iOSURLSchemes: [] 232 | iOSBackgroundModes: 0 233 | iOSMetalForceHardShadows: 0 234 | metalEditorSupport: 1 235 | metalAPIValidation: 1 236 | iOSRenderExtraFrameOnPause: 0 237 | appleDeveloperTeamID: 238 | iOSManualSigningProvisioningProfileID: 239 | tvOSManualSigningProvisioningProfileID: 240 | appleEnableAutomaticSigning: 0 241 | clonedFromGUID: 00000000000000000000000000000000 242 | AndroidTargetDevice: 0 243 | AndroidSplashScreenScale: 0 244 | androidSplashScreen: {fileID: 0} 245 | AndroidKeystoreName: 246 | AndroidKeyaliasName: 247 | AndroidTVCompatibility: 1 248 | AndroidIsGame: 1 249 | AndroidEnableTango: 0 250 | androidEnableBanner: 1 251 | androidUseLowAccuracyLocation: 0 252 | m_AndroidBanners: 253 | - width: 320 254 | height: 180 255 | banner: {fileID: 0} 256 | androidGamepadSupportLevel: 0 257 | resolutionDialogBanner: {fileID: 0} 258 | m_BuildTargetIcons: [] 259 | m_BuildTargetBatching: [] 260 | m_BuildTargetGraphicsAPIs: [] 261 | m_BuildTargetVRSettings: [] 262 | m_BuildTargetEnableVuforiaSettings: [] 263 | openGLRequireES31: 0 264 | openGLRequireES31AEP: 0 265 | m_TemplateCustomTags: {} 266 | mobileMTRendering: 267 | Android: 1 268 | iPhone: 1 269 | tvOS: 1 270 | m_BuildTargetGroupLightmapEncodingQuality: [] 271 | wiiUTitleID: 0005000011000000 272 | wiiUGroupID: 00010000 273 | wiiUCommonSaveSize: 4096 274 | wiiUAccountSaveSize: 2048 275 | wiiUOlvAccessKey: 0 276 | wiiUTinCode: 0 277 | wiiUJoinGameId: 0 278 | wiiUJoinGameModeMask: 0000000000000000 279 | wiiUCommonBossSize: 0 280 | wiiUAccountBossSize: 0 281 | wiiUAddOnUniqueIDs: [] 282 | wiiUMainThreadStackSize: 3072 283 | wiiULoaderThreadStackSize: 1024 284 | wiiUSystemHeapSize: 128 285 | wiiUTVStartupScreen: {fileID: 0} 286 | wiiUGamePadStartupScreen: {fileID: 0} 287 | wiiUDrcBufferDisabled: 0 288 | wiiUProfilerLibPath: 289 | playModeTestRunnerEnabled: 0 290 | actionOnDotNetUnhandledException: 1 291 | enableInternalProfiler: 0 292 | logObjCUncaughtExceptions: 1 293 | enableCrashReportAPI: 0 294 | cameraUsageDescription: 295 | locationUsageDescription: 296 | microphoneUsageDescription: 297 | switchNetLibKey: 298 | switchSocketMemoryPoolSize: 6144 299 | switchSocketAllocatorPoolSize: 128 300 | switchSocketConcurrencyLimit: 14 301 | switchScreenResolutionBehavior: 2 302 | switchUseCPUProfiler: 0 303 | switchApplicationID: 0x01004b9000490000 304 | switchNSODependencies: 305 | switchTitleNames_0: 306 | switchTitleNames_1: 307 | switchTitleNames_2: 308 | switchTitleNames_3: 309 | switchTitleNames_4: 310 | switchTitleNames_5: 311 | switchTitleNames_6: 312 | switchTitleNames_7: 313 | switchTitleNames_8: 314 | switchTitleNames_9: 315 | switchTitleNames_10: 316 | switchTitleNames_11: 317 | switchTitleNames_12: 318 | switchTitleNames_13: 319 | switchTitleNames_14: 320 | switchPublisherNames_0: 321 | switchPublisherNames_1: 322 | switchPublisherNames_2: 323 | switchPublisherNames_3: 324 | switchPublisherNames_4: 325 | switchPublisherNames_5: 326 | switchPublisherNames_6: 327 | switchPublisherNames_7: 328 | switchPublisherNames_8: 329 | switchPublisherNames_9: 330 | switchPublisherNames_10: 331 | switchPublisherNames_11: 332 | switchPublisherNames_12: 333 | switchPublisherNames_13: 334 | switchPublisherNames_14: 335 | switchIcons_0: {fileID: 0} 336 | switchIcons_1: {fileID: 0} 337 | switchIcons_2: {fileID: 0} 338 | switchIcons_3: {fileID: 0} 339 | switchIcons_4: {fileID: 0} 340 | switchIcons_5: {fileID: 0} 341 | switchIcons_6: {fileID: 0} 342 | switchIcons_7: {fileID: 0} 343 | switchIcons_8: {fileID: 0} 344 | switchIcons_9: {fileID: 0} 345 | switchIcons_10: {fileID: 0} 346 | switchIcons_11: {fileID: 0} 347 | switchIcons_12: {fileID: 0} 348 | switchIcons_13: {fileID: 0} 349 | switchIcons_14: {fileID: 0} 350 | switchSmallIcons_0: {fileID: 0} 351 | switchSmallIcons_1: {fileID: 0} 352 | switchSmallIcons_2: {fileID: 0} 353 | switchSmallIcons_3: {fileID: 0} 354 | switchSmallIcons_4: {fileID: 0} 355 | switchSmallIcons_5: {fileID: 0} 356 | switchSmallIcons_6: {fileID: 0} 357 | switchSmallIcons_7: {fileID: 0} 358 | switchSmallIcons_8: {fileID: 0} 359 | switchSmallIcons_9: {fileID: 0} 360 | switchSmallIcons_10: {fileID: 0} 361 | switchSmallIcons_11: {fileID: 0} 362 | switchSmallIcons_12: {fileID: 0} 363 | switchSmallIcons_13: {fileID: 0} 364 | switchSmallIcons_14: {fileID: 0} 365 | switchManualHTML: 366 | switchAccessibleURLs: 367 | switchLegalInformation: 368 | switchMainThreadStackSize: 1048576 369 | switchPresenceGroupId: 370 | switchLogoHandling: 0 371 | switchReleaseVersion: 0 372 | switchDisplayVersion: 1.0.0 373 | switchStartupUserAccount: 0 374 | switchTouchScreenUsage: 0 375 | switchSupportedLanguagesMask: 0 376 | switchLogoType: 0 377 | switchApplicationErrorCodeCategory: 378 | switchUserAccountSaveDataSize: 0 379 | switchUserAccountSaveDataJournalSize: 0 380 | switchApplicationAttribute: 0 381 | switchCardSpecSize: -1 382 | switchCardSpecClock: -1 383 | switchRatingsMask: 0 384 | switchRatingsInt_0: 0 385 | switchRatingsInt_1: 0 386 | switchRatingsInt_2: 0 387 | switchRatingsInt_3: 0 388 | switchRatingsInt_4: 0 389 | switchRatingsInt_5: 0 390 | switchRatingsInt_6: 0 391 | switchRatingsInt_7: 0 392 | switchRatingsInt_8: 0 393 | switchRatingsInt_9: 0 394 | switchRatingsInt_10: 0 395 | switchRatingsInt_11: 0 396 | switchLocalCommunicationIds_0: 397 | switchLocalCommunicationIds_1: 398 | switchLocalCommunicationIds_2: 399 | switchLocalCommunicationIds_3: 400 | switchLocalCommunicationIds_4: 401 | switchLocalCommunicationIds_5: 402 | switchLocalCommunicationIds_6: 403 | switchLocalCommunicationIds_7: 404 | switchParentalControl: 0 405 | switchAllowsScreenshot: 1 406 | switchAllowsVideoCapturing: 1 407 | switchAllowsRuntimeAddOnContentInstall: 0 408 | switchDataLossConfirmation: 0 409 | switchSupportedNpadStyles: 3 410 | switchSocketConfigEnabled: 0 411 | switchTcpInitialSendBufferSize: 32 412 | switchTcpInitialReceiveBufferSize: 64 413 | switchTcpAutoSendBufferSizeMax: 256 414 | switchTcpAutoReceiveBufferSizeMax: 256 415 | switchUdpSendBufferSize: 9 416 | switchUdpReceiveBufferSize: 42 417 | switchSocketBufferEfficiency: 4 418 | switchSocketInitializeEnabled: 1 419 | switchNetworkInterfaceManagerInitializeEnabled: 1 420 | switchPlayerConnectionEnabled: 1 421 | ps4NPAgeRating: 12 422 | ps4NPTitleSecret: 423 | ps4NPTrophyPackPath: 424 | ps4ParentalLevel: 11 425 | ps4ContentID: ED1633-NPXX51362_00-0000000000000000 426 | ps4Category: 0 427 | ps4MasterVersion: 01.00 428 | ps4AppVersion: 01.00 429 | ps4AppType: 0 430 | ps4ParamSfxPath: 431 | ps4VideoOutPixelFormat: 0 432 | ps4VideoOutInitialWidth: 1920 433 | ps4VideoOutBaseModeInitialWidth: 1920 434 | ps4VideoOutReprojectionRate: 60 435 | ps4PronunciationXMLPath: 436 | ps4PronunciationSIGPath: 437 | ps4BackgroundImagePath: 438 | ps4StartupImagePath: 439 | ps4StartupImagesFolder: 440 | ps4IconImagesFolder: 441 | ps4SaveDataImagePath: 442 | ps4SdkOverride: 443 | ps4BGMPath: 444 | ps4ShareFilePath: 445 | ps4ShareOverlayImagePath: 446 | ps4PrivacyGuardImagePath: 447 | ps4NPtitleDatPath: 448 | ps4RemotePlayKeyAssignment: -1 449 | ps4RemotePlayKeyMappingDir: 450 | ps4PlayTogetherPlayerCount: 0 451 | ps4EnterButtonAssignment: 1 452 | ps4ApplicationParam1: 0 453 | ps4ApplicationParam2: 0 454 | ps4ApplicationParam3: 0 455 | ps4ApplicationParam4: 0 456 | ps4DownloadDataSize: 0 457 | ps4GarlicHeapSize: 2048 458 | ps4ProGarlicHeapSize: 2560 459 | ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ 460 | ps4pnSessions: 1 461 | ps4pnPresence: 1 462 | ps4pnFriends: 1 463 | ps4pnGameCustomData: 1 464 | playerPrefsSupport: 0 465 | restrictedAudioUsageRights: 0 466 | ps4UseResolutionFallback: 0 467 | ps4ReprojectionSupport: 0 468 | ps4UseAudio3dBackend: 0 469 | ps4SocialScreenEnabled: 0 470 | ps4ScriptOptimizationLevel: 0 471 | ps4Audio3dVirtualSpeakerCount: 14 472 | ps4attribCpuUsage: 0 473 | ps4PatchPkgPath: 474 | ps4PatchLatestPkgPath: 475 | ps4PatchChangeinfoPath: 476 | ps4PatchDayOne: 0 477 | ps4attribUserManagement: 0 478 | ps4attribMoveSupport: 0 479 | ps4attrib3DSupport: 0 480 | ps4attribShareSupport: 0 481 | ps4attribExclusiveVR: 0 482 | ps4disableAutoHideSplash: 0 483 | ps4videoRecordingFeaturesUsed: 0 484 | ps4contentSearchFeaturesUsed: 0 485 | ps4attribEyeToEyeDistanceSettingVR: 0 486 | ps4IncludedModules: [] 487 | monoEnv: 488 | psp2Splashimage: {fileID: 0} 489 | psp2NPTrophyPackPath: 490 | psp2NPSupportGBMorGJP: 0 491 | psp2NPAgeRating: 12 492 | psp2NPTitleDatPath: 493 | psp2NPCommsID: 494 | psp2NPCommunicationsID: 495 | psp2NPCommsPassphrase: 496 | psp2NPCommsSig: 497 | psp2ParamSfxPath: 498 | psp2ManualPath: 499 | psp2LiveAreaGatePath: 500 | psp2LiveAreaBackroundPath: 501 | psp2LiveAreaPath: 502 | psp2LiveAreaTrialPath: 503 | psp2PatchChangeInfoPath: 504 | psp2PatchOriginalPackage: 505 | psp2PackagePassword: F69AzBlax3CF3EDNhm3soLBPh71Yexui 506 | psp2KeystoneFile: 507 | psp2MemoryExpansionMode: 0 508 | psp2DRMType: 0 509 | psp2StorageType: 0 510 | psp2MediaCapacity: 0 511 | psp2DLCConfigPath: 512 | psp2ThumbnailPath: 513 | psp2BackgroundPath: 514 | psp2SoundPath: 515 | psp2TrophyCommId: 516 | psp2TrophyPackagePath: 517 | psp2PackagedResourcesPath: 518 | psp2SaveDataQuota: 10240 519 | psp2ParentalLevel: 1 520 | psp2ShortTitle: Not Set 521 | psp2ContentID: IV0000-ABCD12345_00-0123456789ABCDEF 522 | psp2Category: 0 523 | psp2MasterVersion: 01.00 524 | psp2AppVersion: 01.00 525 | psp2TVBootMode: 0 526 | psp2EnterButtonAssignment: 2 527 | psp2TVDisableEmu: 0 528 | psp2AllowTwitterDialog: 1 529 | psp2Upgradable: 0 530 | psp2HealthWarning: 0 531 | psp2UseLibLocation: 0 532 | psp2InfoBarOnStartup: 0 533 | psp2InfoBarColor: 0 534 | psp2ScriptOptimizationLevel: 0 535 | psmSplashimage: {fileID: 0} 536 | splashScreenBackgroundSourceLandscape: {fileID: 0} 537 | splashScreenBackgroundSourcePortrait: {fileID: 0} 538 | spritePackerPolicy: 539 | webGLMemorySize: 256 540 | webGLExceptionSupport: 1 541 | webGLNameFilesAsHashes: 0 542 | webGLDataCaching: 0 543 | webGLDebugSymbols: 0 544 | webGLEmscriptenArgs: 545 | webGLModulesDirectory: 546 | webGLTemplate: APPLICATION:Default 547 | webGLAnalyzeBuildSize: 0 548 | webGLUseEmbeddedResources: 0 549 | webGLUseWasm: 0 550 | webGLCompressionFormat: 1 551 | scriptingDefineSymbols: {} 552 | platformArchitecture: {} 553 | scriptingBackend: {} 554 | incrementalIl2cppBuild: {} 555 | additionalIl2CppArgs: 556 | scriptingRuntimeVersion: 0 557 | apiCompatibilityLevelPerPlatform: {} 558 | m_RenderingPath: 1 559 | m_MobileRenderingPath: 1 560 | metroPackageName: signeddistancefields 561 | metroPackageVersion: 562 | metroCertificatePath: 563 | metroCertificatePassword: 564 | metroCertificateSubject: 565 | metroCertificateIssuer: 566 | metroCertificateNotAfter: 0000000000000000 567 | metroApplicationDescription: signeddistancefields 568 | wsaImages: {} 569 | metroTileShortName: 570 | metroCommandLineArgsFile: 571 | metroTileShowName: 0 572 | metroMediumTileShowName: 0 573 | metroLargeTileShowName: 0 574 | metroWideTileShowName: 0 575 | metroDefaultTileSize: 1 576 | metroTileForegroundText: 2 577 | metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} 578 | metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, 579 | a: 1} 580 | metroSplashScreenUseBackgroundColor: 0 581 | platformCapabilities: {} 582 | metroFTAName: 583 | metroFTAFileTypes: [] 584 | metroProtocolName: 585 | metroCompilationOverrides: 1 586 | tizenProductDescription: 587 | tizenProductURL: 588 | tizenSigningProfileName: 589 | tizenGPSPermissions: 0 590 | tizenMicrophonePermissions: 0 591 | tizenDeploymentTarget: 592 | tizenDeploymentTargetType: -1 593 | tizenMinOSVersion: 1 594 | n3dsUseExtSaveData: 0 595 | n3dsCompressStaticMem: 1 596 | n3dsExtSaveDataNumber: 0x12345 597 | n3dsStackSize: 131072 598 | n3dsTargetPlatform: 2 599 | n3dsRegion: 7 600 | n3dsMediaSize: 0 601 | n3dsLogoStyle: 3 602 | n3dsTitle: GameName 603 | n3dsProductCode: 604 | n3dsApplicationId: 0xFF3FF 605 | XboxOneProductId: 606 | XboxOneUpdateKey: 607 | XboxOneSandboxId: 608 | XboxOneContentId: 609 | XboxOneTitleId: 610 | XboxOneSCId: 611 | XboxOneGameOsOverridePath: 612 | XboxOnePackagingOverridePath: 613 | XboxOneAppManifestOverridePath: 614 | XboxOnePackageEncryption: 0 615 | XboxOnePackageUpdateGranularity: 2 616 | XboxOneDescription: 617 | XboxOneLanguage: 618 | - enus 619 | XboxOneCapability: [] 620 | XboxOneGameRating: {} 621 | XboxOneIsContentPackage: 0 622 | XboxOneEnableGPUVariability: 0 623 | XboxOneSockets: {} 624 | XboxOneSplashScreen: {fileID: 0} 625 | XboxOneAllowedProductIds: [] 626 | XboxOnePersistentLocalStorageSize: 0 627 | xboxOneScriptCompiler: 0 628 | vrEditorSettings: 629 | daydream: 630 | daydreamIconForeground: {fileID: 0} 631 | daydreamIconBackground: {fileID: 0} 632 | cloudServicesEnabled: {} 633 | facebookSdkVersion: 7.9.4 634 | apiCompatibilityLevel: 2 635 | cloudProjectId: 636 | projectName: 637 | organizationId: 638 | cloudEnabled: 0 639 | enableNativePlatformBackendsForNewInputSystem: 0 640 | disableOldInputManagerSupport: 0 641 | -------------------------------------------------------------------------------- /ProjectSettings/ProjectVersion.txt: -------------------------------------------------------------------------------- 1 | m_EditorVersion: 2018.1.6f1 2 | -------------------------------------------------------------------------------- /ProjectSettings/QualitySettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!47 &1 4 | QualitySettings: 5 | m_ObjectHideFlags: 0 6 | serializedVersion: 5 7 | m_CurrentQuality: 5 8 | m_QualitySettings: 9 | - serializedVersion: 2 10 | name: Very Low 11 | pixelLightCount: 0 12 | shadows: 0 13 | shadowResolution: 0 14 | shadowProjection: 1 15 | shadowCascades: 1 16 | shadowDistance: 15 17 | shadowNearPlaneOffset: 3 18 | shadowCascade2Split: 0.33333334 19 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 20 | shadowmaskMode: 0 21 | blendWeights: 1 22 | textureQuality: 1 23 | anisotropicTextures: 0 24 | antiAliasing: 0 25 | softParticles: 0 26 | softVegetation: 0 27 | realtimeReflectionProbes: 0 28 | billboardsFaceCameraPosition: 0 29 | vSyncCount: 0 30 | lodBias: 0.3 31 | maximumLODLevel: 0 32 | particleRaycastBudget: 4 33 | asyncUploadTimeSlice: 2 34 | asyncUploadBufferSize: 4 35 | resolutionScalingFixedDPIFactor: 1 36 | excludedTargetPlatforms: [] 37 | - serializedVersion: 2 38 | name: Low 39 | pixelLightCount: 0 40 | shadows: 0 41 | shadowResolution: 0 42 | shadowProjection: 1 43 | shadowCascades: 1 44 | shadowDistance: 20 45 | shadowNearPlaneOffset: 3 46 | shadowCascade2Split: 0.33333334 47 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 48 | shadowmaskMode: 0 49 | blendWeights: 2 50 | textureQuality: 0 51 | anisotropicTextures: 0 52 | antiAliasing: 0 53 | softParticles: 0 54 | softVegetation: 0 55 | realtimeReflectionProbes: 0 56 | billboardsFaceCameraPosition: 0 57 | vSyncCount: 0 58 | lodBias: 0.4 59 | maximumLODLevel: 0 60 | particleRaycastBudget: 16 61 | asyncUploadTimeSlice: 2 62 | asyncUploadBufferSize: 4 63 | resolutionScalingFixedDPIFactor: 1 64 | excludedTargetPlatforms: [] 65 | - serializedVersion: 2 66 | name: Medium 67 | pixelLightCount: 1 68 | shadows: 1 69 | shadowResolution: 0 70 | shadowProjection: 1 71 | shadowCascades: 1 72 | shadowDistance: 20 73 | shadowNearPlaneOffset: 3 74 | shadowCascade2Split: 0.33333334 75 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 76 | shadowmaskMode: 0 77 | blendWeights: 2 78 | textureQuality: 0 79 | anisotropicTextures: 1 80 | antiAliasing: 0 81 | softParticles: 0 82 | softVegetation: 0 83 | realtimeReflectionProbes: 0 84 | billboardsFaceCameraPosition: 0 85 | vSyncCount: 1 86 | lodBias: 0.7 87 | maximumLODLevel: 0 88 | particleRaycastBudget: 64 89 | asyncUploadTimeSlice: 2 90 | asyncUploadBufferSize: 4 91 | resolutionScalingFixedDPIFactor: 1 92 | excludedTargetPlatforms: [] 93 | - serializedVersion: 2 94 | name: High 95 | pixelLightCount: 2 96 | shadows: 2 97 | shadowResolution: 1 98 | shadowProjection: 1 99 | shadowCascades: 2 100 | shadowDistance: 40 101 | shadowNearPlaneOffset: 3 102 | shadowCascade2Split: 0.33333334 103 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 104 | shadowmaskMode: 1 105 | blendWeights: 2 106 | textureQuality: 0 107 | anisotropicTextures: 1 108 | antiAliasing: 0 109 | softParticles: 0 110 | softVegetation: 1 111 | realtimeReflectionProbes: 1 112 | billboardsFaceCameraPosition: 1 113 | vSyncCount: 1 114 | lodBias: 1 115 | maximumLODLevel: 0 116 | particleRaycastBudget: 256 117 | asyncUploadTimeSlice: 2 118 | asyncUploadBufferSize: 4 119 | resolutionScalingFixedDPIFactor: 1 120 | excludedTargetPlatforms: [] 121 | - serializedVersion: 2 122 | name: Very High 123 | pixelLightCount: 3 124 | shadows: 2 125 | shadowResolution: 2 126 | shadowProjection: 1 127 | shadowCascades: 2 128 | shadowDistance: 70 129 | shadowNearPlaneOffset: 3 130 | shadowCascade2Split: 0.33333334 131 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 132 | shadowmaskMode: 1 133 | blendWeights: 4 134 | textureQuality: 0 135 | anisotropicTextures: 2 136 | antiAliasing: 2 137 | softParticles: 1 138 | softVegetation: 1 139 | realtimeReflectionProbes: 1 140 | billboardsFaceCameraPosition: 1 141 | vSyncCount: 1 142 | lodBias: 1.5 143 | maximumLODLevel: 0 144 | particleRaycastBudget: 1024 145 | asyncUploadTimeSlice: 2 146 | asyncUploadBufferSize: 4 147 | resolutionScalingFixedDPIFactor: 1 148 | excludedTargetPlatforms: [] 149 | - serializedVersion: 2 150 | name: Ultra 151 | pixelLightCount: 4 152 | shadows: 2 153 | shadowResolution: 2 154 | shadowProjection: 1 155 | shadowCascades: 4 156 | shadowDistance: 150 157 | shadowNearPlaneOffset: 3 158 | shadowCascade2Split: 0.33333334 159 | shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} 160 | shadowmaskMode: 1 161 | blendWeights: 4 162 | textureQuality: 0 163 | anisotropicTextures: 2 164 | antiAliasing: 2 165 | softParticles: 1 166 | softVegetation: 1 167 | realtimeReflectionProbes: 1 168 | billboardsFaceCameraPosition: 1 169 | vSyncCount: 1 170 | lodBias: 2 171 | maximumLODLevel: 0 172 | particleRaycastBudget: 4096 173 | asyncUploadTimeSlice: 2 174 | asyncUploadBufferSize: 4 175 | resolutionScalingFixedDPIFactor: 1 176 | excludedTargetPlatforms: [] 177 | m_PerPlatformDefaultQuality: 178 | Android: 2 179 | Nintendo 3DS: 5 180 | Nintendo Switch: 5 181 | PS4: 5 182 | PSM: 5 183 | PSP2: 2 184 | Standalone: 5 185 | Tizen: 2 186 | WebGL: 3 187 | WiiU: 5 188 | Windows Store Apps: 5 189 | XboxOne: 5 190 | iPhone: 2 191 | tvOS: 2 192 | -------------------------------------------------------------------------------- /ProjectSettings/TagManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!78 &1 4 | TagManager: 5 | serializedVersion: 2 6 | tags: [] 7 | layers: 8 | - Default 9 | - TransparentFX 10 | - Ignore Raycast 11 | - 12 | - Water 13 | - UI 14 | - 15 | - 16 | - 17 | - 18 | - 19 | - 20 | - 21 | - 22 | - 23 | - 24 | - 25 | - 26 | - 27 | - 28 | - 29 | - 30 | - 31 | - 32 | - 33 | - 34 | - 35 | - 36 | - 37 | - 38 | - 39 | - 40 | m_SortingLayers: 41 | - name: Default 42 | uniqueID: 0 43 | locked: 0 44 | -------------------------------------------------------------------------------- /ProjectSettings/TimeManager.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!5 &1 4 | TimeManager: 5 | m_ObjectHideFlags: 0 6 | Fixed Timestep: 0.02 7 | Maximum Allowed Timestep: 0.02 8 | m_TimeScale: 1 9 | Maximum Particle Timestep: 0.03 10 | -------------------------------------------------------------------------------- /ProjectSettings/UnityConnectSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!310 &1 4 | UnityConnectSettings: 5 | m_ObjectHideFlags: 0 6 | m_Enabled: 0 7 | m_TestMode: 0 8 | m_TestEventUrl: 9 | m_TestConfigUrl: 10 | m_TestInitMode: 0 11 | CrashReportingSettings: 12 | m_EventUrl: https://perf-events.cloud.unity3d.com/api/events/crashes 13 | m_NativeEventUrl: https://perf-events.cloud.unity3d.com/symbolicate 14 | m_Enabled: 0 15 | m_CaptureEditorExceptions: 1 16 | UnityPurchasingSettings: 17 | m_Enabled: 0 18 | m_TestMode: 0 19 | UnityAnalyticsSettings: 20 | m_Enabled: 0 21 | m_InitializeOnStartup: 1 22 | m_TestMode: 0 23 | m_TestEventUrl: 24 | m_TestConfigUrl: 25 | UnityAdsSettings: 26 | m_Enabled: 0 27 | m_InitializeOnStartup: 1 28 | m_TestMode: 0 29 | m_IosGameId: 30 | m_AndroidGameId: 31 | m_GameIds: {} 32 | m_GameId: 33 | PerformanceReportingSettings: 34 | m_Enabled: 0 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Signed Distance Fields 2 | 3 | Welcome to the signed distance fields repo. This contains the sample code for the signed distance field series at https://shaderfun.com/. 4 | 5 | Whilst the repo is focussed on the blog, it is designed to be a simple toolkit for generating and rendering signed distance fields. Currently it is focussed on 2D fields, and supports: 6 | - Rendering a field texture on screen using a variety of different demo algorithms 7 | - Generating a distance field from explicit primitives such as circles, lines, rectangles 8 | - Generating a distance field from an image, with simple handling for anti aliased images 9 | - Sweeping a field using either 8PSSDT sweep or a brute force eikonal algorithm 10 | - Downsampling 11 | - Softening 12 | 13 | Effects in the demo so far: 14 | - Simple visualisation of the field 15 | - Creating soft borders to avoid aliasing 16 | - Edging effects such as gradients or neon glows 17 | - Drop shadows 18 | - Morphing between fields 19 | 20 | Enjoy! 21 | -------------------------------------------------------------------------------- /sdf.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 10.0.20506 7 | 2.0 8 | {6E08D934-3946-0993-7C05-06F43593A89C} 9 | Library 10 | Assembly-CSharp 11 | 512 12 | {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 13 | .NETFramework 14 | v3.5 15 | Unity Subset v3.5 16 | 17 | 18 | Game:1 19 | StandaloneWindows64:19 20 | 2018.1.6f1 21 | 22 | 23 | 4 24 | 25 | 26 | pdbonly 27 | false 28 | Temp\UnityVS_bin\Debug\ 29 | Temp\UnityVS_obj\Debug\ 30 | prompt 31 | 4 32 | DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_1_6;UNITY_2018_1;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_PACKMAN;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_2_0_SUBSET;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU 33 | true 34 | 35 | 36 | pdbonly 37 | false 38 | Temp\UnityVS_bin\Release\ 39 | Temp\UnityVS_obj\Release\ 40 | prompt 41 | 4 42 | TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_1_6;UNITY_2018_1;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_PACKMAN;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_2_0_SUBSET;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU 43 | true 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.dll 56 | 57 | 58 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.AIModule.dll 59 | 60 | 61 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.ARModule.dll 62 | 63 | 64 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.AccessibilityModule.dll 65 | 66 | 67 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.AnimationModule.dll 68 | 69 | 70 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.AssetBundleModule.dll 71 | 72 | 73 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.AudioModule.dll 74 | 75 | 76 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.BaselibModule.dll 77 | 78 | 79 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.ClothModule.dll 80 | 81 | 82 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.CloudWebServicesModule.dll 83 | 84 | 85 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.ClusterInputModule.dll 86 | 87 | 88 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll 89 | 90 | 91 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.CoreModule.dll 92 | 93 | 94 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.CrashReportingModule.dll 95 | 96 | 97 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.DirectorModule.dll 98 | 99 | 100 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.FacebookModule.dll 101 | 102 | 103 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.GameCenterModule.dll 104 | 105 | 106 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.GridModule.dll 107 | 108 | 109 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.HotReloadModule.dll 110 | 111 | 112 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.IMGUIModule.dll 113 | 114 | 115 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.ImageConversionModule.dll 116 | 117 | 118 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.InputModule.dll 119 | 120 | 121 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll 122 | 123 | 124 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll 125 | 126 | 127 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.ParticlesLegacyModule.dll 128 | 129 | 130 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll 131 | 132 | 133 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.PhysicsModule.dll 134 | 135 | 136 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.Physics2DModule.dll 137 | 138 | 139 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll 140 | 141 | 142 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll 143 | 144 | 145 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.SpatialTrackingModule.dll 146 | 147 | 148 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll 149 | 150 | 151 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll 152 | 153 | 154 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.StyleSheetsModule.dll 155 | 156 | 157 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.SubstanceModule.dll 158 | 159 | 160 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.TLSModule.dll 161 | 162 | 163 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.TerrainModule.dll 164 | 165 | 166 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll 167 | 168 | 169 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.TextRenderingModule.dll 170 | 171 | 172 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.TilemapModule.dll 173 | 174 | 175 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.TimelineModule.dll 176 | 177 | 178 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.UIModule.dll 179 | 180 | 181 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.UIElementsModule.dll 182 | 183 | 184 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.UNETModule.dll 185 | 186 | 187 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.UmbraModule.dll 188 | 189 | 190 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll 191 | 192 | 193 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityConnectModule.dll 194 | 195 | 196 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll 197 | 198 | 199 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll 200 | 201 | 202 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll 203 | 204 | 205 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll 206 | 207 | 208 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll 209 | 210 | 211 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.VRModule.dll 212 | 213 | 214 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.VehiclesModule.dll 215 | 216 | 217 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.VideoModule.dll 218 | 219 | 220 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.WebModule.dll 221 | 222 | 223 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.WindModule.dll 224 | 225 | 226 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEngine/UnityEngine.XRModule.dll 227 | 228 | 229 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/UnityEditor.dll 230 | 231 | 232 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\Managed/Unity.Locator.dll 233 | 234 | 235 | C:/Program Files/Unity/Hub/Editor/2018.1.6f1/Editor/Data/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll 236 | 237 | 238 | C:/Program Files/Unity/Hub/Editor/2018.1.6f1/Editor/Data/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll 239 | 240 | 241 | C:/Program Files/Unity/Hub/Editor/2018.1.6f1/Editor/Data/UnityExtensions/Unity/Timeline/RuntimeEditor/UnityEngine.Timeline.dll 242 | 243 | 244 | C:/Program Files/Unity/Hub/Editor/2018.1.6f1/Editor/Data/UnityExtensions/Unity/UIAutomation/UnityEngine.UIAutomation.dll 245 | 246 | 247 | C:/Program Files/Unity/Hub/Editor/2018.1.6f1/Editor/Data/UnityExtensions/Unity/UnityGoogleAudioSpatializer/RuntimeEditor/UnityEngine.GoogleAudioSpatializer.dll 248 | 249 | 250 | C:/Program Files/Unity/Hub/Editor/2018.1.6f1/Editor/Data/UnityExtensions/Unity/UnityHoloLens/RuntimeEditor/UnityEngine.HoloLens.dll 251 | 252 | 253 | C:/Program Files/Unity/Hub/Editor/2018.1.6f1/Editor/Data/UnityExtensions/Unity/UnitySpatialTracking/RuntimeEditor/UnityEngine.SpatialTracking.dll 254 | 255 | 256 | C:/Users/chris/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.analytics@2.0.16/UnityEngine.Analytics.dll 257 | 258 | 259 | C:/Users/chris/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.purchasing@2.0.1/UnityEngine.Purchasing.dll 260 | 261 | 262 | C:/Users/chris/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.standardevents@1.0.13/UnityEngine.StandardEvents.dll 263 | 264 | 265 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\mscorlib.dll 266 | 267 | 268 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\System.dll 269 | 270 | 271 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\System.Core.dll 272 | 273 | 274 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\System.Runtime.Serialization.dll 275 | 276 | 277 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\System.Xml.dll 278 | 279 | 280 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\System.Xml.Linq.dll 281 | 282 | 283 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\UnityScript.dll 284 | 285 | 286 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\UnityScript.Lang.dll 287 | 288 | 289 | C:\Program Files\Unity\Hub\Editor\2018.1.6f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\Boo.Lang.dll 290 | 291 | 292 | 293 | 294 | {6800202F-4402-D405-F8CB-03DC7BD78B92} 295 | UnityEditor.StandardEvents 296 | 297 | 298 | {6877705C-FBD9-0C4F-5AFB-6FB431E5D39D} 299 | Unity.PackageManagerUI.Editor 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | -------------------------------------------------------------------------------- /sdf.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2017 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "sdf", "sdf.csproj", "{6E08D934-3946-0993-7C05-06F43593A89C}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.PackageManagerUI.Editor", "Unity.PackageManagerUI.Editor.csproj", "{6877705C-FBD9-0C4F-5AFB-6FB431E5D39D}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityEditor.StandardEvents", "UnityEditor.StandardEvents.csproj", "{6800202F-4402-D405-F8CB-03DC7BD78B92}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | Release|Any CPU = Release|Any CPU 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {6E08D934-3946-0993-7C05-06F43593A89C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {6E08D934-3946-0993-7C05-06F43593A89C}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {6E08D934-3946-0993-7C05-06F43593A89C}.Release|Any CPU.ActiveCfg = Release|Any CPU 19 | {6E08D934-3946-0993-7C05-06F43593A89C}.Release|Any CPU.Build.0 = Release|Any CPU 20 | {6877705C-FBD9-0C4F-5AFB-6FB431E5D39D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 21 | {6877705C-FBD9-0C4F-5AFB-6FB431E5D39D}.Debug|Any CPU.Build.0 = Debug|Any CPU 22 | {6877705C-FBD9-0C4F-5AFB-6FB431E5D39D}.Release|Any CPU.ActiveCfg = Release|Any CPU 23 | {6877705C-FBD9-0C4F-5AFB-6FB431E5D39D}.Release|Any CPU.Build.0 = Release|Any CPU 24 | {6800202F-4402-D405-F8CB-03DC7BD78B92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 25 | {6800202F-4402-D405-F8CB-03DC7BD78B92}.Debug|Any CPU.Build.0 = Debug|Any CPU 26 | {6800202F-4402-D405-F8CB-03DC7BD78B92}.Release|Any CPU.ActiveCfg = Release|Any CPU 27 | {6800202F-4402-D405-F8CB-03DC7BD78B92}.Release|Any CPU.Build.0 = Release|Any CPU 28 | EndGlobalSection 29 | GlobalSection(SolutionProperties) = preSolution 30 | HideSolutionNode = FALSE 31 | EndGlobalSection 32 | EndGlobal 33 | -------------------------------------------------------------------------------- /signeddistancefields.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | AnyCPU 6 | 10.0.20506 7 | 2.0 8 | {AF2DB147-389F-EE50-119C-C544D2650BD7} 9 | Library 10 | Assembly-CSharp 11 | 512 12 | {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 13 | .NETFramework 14 | v3.5 15 | Unity Subset v3.5 16 | 17 | 18 | Game:1 19 | StandaloneWindows64:19 20 | 2018.1.5f1 21 | 22 | 23 | 4 24 | 25 | 26 | pdbonly 27 | false 28 | Temp\UnityVS_bin\Debug\ 29 | Temp\UnityVS_obj\Debug\ 30 | prompt 31 | 4 32 | DEBUG;TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_1_5;UNITY_2018_1;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_PACKMAN;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_2_0_SUBSET;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU 33 | true 34 | 35 | 36 | pdbonly 37 | false 38 | Temp\UnityVS_bin\Release\ 39 | Temp\UnityVS_obj\Release\ 40 | prompt 41 | 4 42 | TRACE;UNITY_5_3_OR_NEWER;UNITY_5_4_OR_NEWER;UNITY_5_5_OR_NEWER;UNITY_5_6_OR_NEWER;UNITY_2017_1_OR_NEWER;UNITY_2017_2_OR_NEWER;UNITY_2017_3_OR_NEWER;UNITY_2018_1_OR_NEWER;UNITY_2018_1_5;UNITY_2018_1;UNITY_2018;PLATFORM_ARCH_64;UNITY_64;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_GRID;ENABLE_TILEMAP;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_DIRECTOR;ENABLE_UNET;ENABLE_LZMA;ENABLE_UNITYEVENTS;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES_COLLAB;ENABLE_CLOUD_SERVICES_COLLAB_SOFTLOCKS;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_USE_WEBREQUEST;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_HUB;ENABLE_EDITOR_HUB_LICENSE;ENABLE_WEBSOCKET_CLIENT;ENABLE_DIRECTOR_AUDIO;ENABLE_DIRECTOR_TEXTURE;ENABLE_TIMELINE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;ENABLE_MANAGED_JOBS;ENABLE_MANAGED_TRANSFORM_JOBS;INCLUDE_DYNAMIC_GI;INCLUDE_GI;ENABLE_MONO_BDWGC;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;INCLUDE_PUBNUB;ENABLE_PLAYMODE_TESTS_RUNNER;ENABLE_VIDEO;ENABLE_PACKMAN;ENABLE_CUSTOM_RENDER_TEXTURE;ENABLE_LOCALIZATION;PLATFORM_STANDALONE_WIN;PLATFORM_STANDALONE;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_UNITYWEBREQUEST;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_CRASH_REPORTING;ENABLE_OUT_OF_PROCESS_CRASH_HANDLER;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_VR;ENABLE_AR;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;NET_2_0_SUBSET;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;ENABLE_UNITY_COLLECTIONS_CHECKS;UNITY_TEAM_LICENSE;ENABLE_VSTU 43 | true 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.dll 56 | 57 | 58 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.AIModule.dll 59 | 60 | 61 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.ARModule.dll 62 | 63 | 64 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.AccessibilityModule.dll 65 | 66 | 67 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.AnimationModule.dll 68 | 69 | 70 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.AssetBundleModule.dll 71 | 72 | 73 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.AudioModule.dll 74 | 75 | 76 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.BaselibModule.dll 77 | 78 | 79 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.ClothModule.dll 80 | 81 | 82 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.CloudWebServicesModule.dll 83 | 84 | 85 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.ClusterInputModule.dll 86 | 87 | 88 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.ClusterRendererModule.dll 89 | 90 | 91 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.CoreModule.dll 92 | 93 | 94 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.CrashReportingModule.dll 95 | 96 | 97 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.DirectorModule.dll 98 | 99 | 100 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.FacebookModule.dll 101 | 102 | 103 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.GameCenterModule.dll 104 | 105 | 106 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.GridModule.dll 107 | 108 | 109 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.HotReloadModule.dll 110 | 111 | 112 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.IMGUIModule.dll 113 | 114 | 115 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.ImageConversionModule.dll 116 | 117 | 118 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.InputModule.dll 119 | 120 | 121 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.JSONSerializeModule.dll 122 | 123 | 124 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.ParticleSystemModule.dll 125 | 126 | 127 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.ParticlesLegacyModule.dll 128 | 129 | 130 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.PerformanceReportingModule.dll 131 | 132 | 133 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.PhysicsModule.dll 134 | 135 | 136 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.Physics2DModule.dll 137 | 138 | 139 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.ScreenCaptureModule.dll 140 | 141 | 142 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.SharedInternalsModule.dll 143 | 144 | 145 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.SpatialTrackingModule.dll 146 | 147 | 148 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.SpriteMaskModule.dll 149 | 150 | 151 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.SpriteShapeModule.dll 152 | 153 | 154 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.StyleSheetsModule.dll 155 | 156 | 157 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.SubstanceModule.dll 158 | 159 | 160 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.TLSModule.dll 161 | 162 | 163 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.TerrainModule.dll 164 | 165 | 166 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.TerrainPhysicsModule.dll 167 | 168 | 169 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.TextRenderingModule.dll 170 | 171 | 172 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.TilemapModule.dll 173 | 174 | 175 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.TimelineModule.dll 176 | 177 | 178 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.UIModule.dll 179 | 180 | 181 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.UIElementsModule.dll 182 | 183 | 184 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.UNETModule.dll 185 | 186 | 187 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.UmbraModule.dll 188 | 189 | 190 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityAnalyticsModule.dll 191 | 192 | 193 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityConnectModule.dll 194 | 195 | 196 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityWebRequestModule.dll 197 | 198 | 199 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityWebRequestAssetBundleModule.dll 200 | 201 | 202 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityWebRequestAudioModule.dll 203 | 204 | 205 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityWebRequestTextureModule.dll 206 | 207 | 208 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.UnityWebRequestWWWModule.dll 209 | 210 | 211 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.VRModule.dll 212 | 213 | 214 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.VehiclesModule.dll 215 | 216 | 217 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.VideoModule.dll 218 | 219 | 220 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.WebModule.dll 221 | 222 | 223 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.WindModule.dll 224 | 225 | 226 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEngine/UnityEngine.XRModule.dll 227 | 228 | 229 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/UnityEditor.dll 230 | 231 | 232 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\Managed/Unity.Locator.dll 233 | 234 | 235 | Library/FacebookSDK/Facebook.Unity.Settings.dll 236 | 237 | 238 | C:/Program Files/Unity/Hub/Editor/2018.1.5f1/Editor/Data/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll 239 | 240 | 241 | C:/Program Files/Unity/Hub/Editor/2018.1.5f1/Editor/Data/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll 242 | 243 | 244 | C:/Program Files/Unity/Hub/Editor/2018.1.5f1/Editor/Data/UnityExtensions/Unity/Timeline/RuntimeEditor/UnityEngine.Timeline.dll 245 | 246 | 247 | C:/Program Files/Unity/Hub/Editor/2018.1.5f1/Editor/Data/UnityExtensions/Unity/UIAutomation/UnityEngine.UIAutomation.dll 248 | 249 | 250 | C:/Program Files/Unity/Hub/Editor/2018.1.5f1/Editor/Data/UnityExtensions/Unity/UnityGoogleAudioSpatializer/RuntimeEditor/UnityEngine.GoogleAudioSpatializer.dll 251 | 252 | 253 | C:/Program Files/Unity/Hub/Editor/2018.1.5f1/Editor/Data/UnityExtensions/Unity/UnityHoloLens/RuntimeEditor/UnityEngine.HoloLens.dll 254 | 255 | 256 | C:/Program Files/Unity/Hub/Editor/2018.1.5f1/Editor/Data/UnityExtensions/Unity/UnitySpatialTracking/RuntimeEditor/UnityEngine.SpatialTracking.dll 257 | 258 | 259 | C:/Users/Chris/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.analytics@2.0.16/UnityEngine.Analytics.dll 260 | 261 | 262 | C:/Users/Chris/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.purchasing@2.0.1/UnityEngine.Purchasing.dll 263 | 264 | 265 | C:/Users/Chris/AppData/Local/Unity/cache/packages/packages.unity.com/com.unity.standardevents@1.0.13/UnityEngine.StandardEvents.dll 266 | 267 | 268 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\mscorlib.dll 269 | 270 | 271 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\System.dll 272 | 273 | 274 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\System.Core.dll 275 | 276 | 277 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\System.Runtime.Serialization.dll 278 | 279 | 280 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\System.Xml.dll 281 | 282 | 283 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\System.Xml.Linq.dll 284 | 285 | 286 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\UnityScript.dll 287 | 288 | 289 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\UnityScript.Lang.dll 290 | 291 | 292 | C:\Program Files\Unity\Hub\Editor\2018.1.5f1\Editor\Data\MonoBleedingEdge\lib\mono\unity\Boo.Lang.dll 293 | 294 | 295 | 296 | 297 | {6800202F-4402-D405-F8CB-03DC7BD78B92} 298 | UnityEditor.StandardEvents 299 | 300 | 301 | {6877705C-FBD9-0C4F-5AFB-6FB431E5D39D} 302 | Unity.PackageManagerUI.Editor 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | -------------------------------------------------------------------------------- /signeddistancefields.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 2017 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "signeddistancefields", "signeddistancefields.csproj", "{AF2DB147-389F-EE50-119C-C544D2650BD7}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Unity.PackageManagerUI.Editor", "Unity.PackageManagerUI.Editor.csproj", "{6877705C-FBD9-0C4F-5AFB-6FB431E5D39D}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityEditor.StandardEvents", "UnityEditor.StandardEvents.csproj", "{6800202F-4402-D405-F8CB-03DC7BD78B92}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | Release|Any CPU = Release|Any CPU 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {AF2DB147-389F-EE50-119C-C544D2650BD7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {AF2DB147-389F-EE50-119C-C544D2650BD7}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {AF2DB147-389F-EE50-119C-C544D2650BD7}.Release|Any CPU.ActiveCfg = Release|Any CPU 19 | {AF2DB147-389F-EE50-119C-C544D2650BD7}.Release|Any CPU.Build.0 = Release|Any CPU 20 | {6877705C-FBD9-0C4F-5AFB-6FB431E5D39D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 21 | {6877705C-FBD9-0C4F-5AFB-6FB431E5D39D}.Debug|Any CPU.Build.0 = Debug|Any CPU 22 | {6877705C-FBD9-0C4F-5AFB-6FB431E5D39D}.Release|Any CPU.ActiveCfg = Release|Any CPU 23 | {6877705C-FBD9-0C4F-5AFB-6FB431E5D39D}.Release|Any CPU.Build.0 = Release|Any CPU 24 | {6800202F-4402-D405-F8CB-03DC7BD78B92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 25 | {6800202F-4402-D405-F8CB-03DC7BD78B92}.Debug|Any CPU.Build.0 = Debug|Any CPU 26 | {6800202F-4402-D405-F8CB-03DC7BD78B92}.Release|Any CPU.ActiveCfg = Release|Any CPU 27 | {6800202F-4402-D405-F8CB-03DC7BD78B92}.Release|Any CPU.Build.0 = Release|Any CPU 28 | EndGlobalSection 29 | GlobalSection(SolutionProperties) = preSolution 30 | HideSolutionNode = FALSE 31 | EndGlobalSection 32 | EndGlobal 33 | --------------------------------------------------------------------------------