diff --git a/.github/workflows/npmpublish.yml b/.github/workflows/npmpublish.yml index 2dfef20..9d54621 100644 --- a/.github/workflows/npmpublish.yml +++ b/.github/workflows/npmpublish.yml @@ -14,18 +14,8 @@ jobs: with: node-version: 12 registry-url: https://registry.npmjs.org/ - - run: npm publish Packages/UnityFx.Outline + - run: | + npm publish Outline.Core/Packages/UnityFx.Outline + npm publish Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing env: NODE_AUTH_TOKEN: ${{secrets.NPM_TOKEN}} - - publish-gpr: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v1 - - uses: actions/setup-node@v1 - with: - node-version: 12 - registry-url: https://npm.pkg.github.com/ - - run: npm publish Packages/UnityFx.Outline - env: - NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}} diff --git a/.gitignore b/.gitignore index 60d4cea..b55632c 100644 --- a/.gitignore +++ b/.gitignore @@ -3,9 +3,6 @@ [Oo]bj/ [Bb]uild/ [Bb]uilds/ -[Pp]roject[Ss]ettings/ - -Assets/AssetStoreTools* # Visual Studio cache directory .vs/ diff --git a/CHANGELOG.md b/CHANGELOG.md index c7d442d..1498997 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/); this project adheres to [Semantic Versioning](http://semver.org/). +## [0.7.2] - 2020.04.08 + +Depth testing support and performance optimizations. + +### Added +- Added support for depth testing when rendering outlines. When enabled, outlines are only rendered around the visible object parts ([#1](https://github.com/Arvtesh/UnityFx.Outline/issues/1)). +- Added a few convenience methods to `OutlineEffect`. +- Added editor tooltips for outline component fileds. + +### Fixed +- Get rid of GC allocatinos during command buffer updates. +- Fixed compiler warning in post-processing compatibility package (0649). +- Fixed `IndexOutOfRangeException` when setting outline width to max value ([#4](https://github.com/Arvtesh/UnityFx.Outline/issues/4)). + +### Removed +- Removed change tracking support in package entities ([#2](https://github.com/Arvtesh/UnityFx.Outline/issues/2)). + ## [0.7.1] - 2020.01.28 Bugfixes and project layout changes. diff --git a/Docs/OutlineBehaviourInspector.png b/Docs/OutlineBehaviourInspector.png index 27c8703..8ec031f 100644 Binary files a/Docs/OutlineBehaviourInspector.png and b/Docs/OutlineBehaviourInspector.png differ diff --git a/Docs/OutlineEffectInspector.png b/Docs/OutlineEffectInspector.png index 3073192..126a14a 100644 Binary files a/Docs/OutlineEffectInspector.png and b/Docs/OutlineEffectInspector.png differ diff --git a/NpmPublish.bat b/NpmPublish.bat index 5ac393f..0fd89a5 100644 --- a/NpmPublish.bat +++ b/NpmPublish.bat @@ -1,2 +1,3 @@ -npm publish Packages\UnityFx.Outline -npm publish Packages\UnityFx.Outline.PostProcessing +npm publish Outline.Core\Packages\UnityFx.Outline +npm publish Outline.PostProcessing\Packages\UnityFx.Outline.PostProcessing +npm publish Outline.HDRP\Packages\UnityFx.Outline.HDRP diff --git a/Assets/Examples.meta b/Outline.Core/Assets/Examples.meta similarity index 100% rename from Assets/Examples.meta rename to Outline.Core/Assets/Examples.meta diff --git a/Assets/Examples/SimplePerCamera.meta b/Outline.Core/Assets/Examples/SimplePerCamera.meta similarity index 100% rename from Assets/Examples/SimplePerCamera.meta rename to Outline.Core/Assets/Examples/SimplePerCamera.meta diff --git a/Assets/Examples/SimplePerCamera/Outline.unity b/Outline.Core/Assets/Examples/SimplePerCamera/Outline.unity similarity index 80% rename from Assets/Examples/SimplePerCamera/Outline.unity rename to Outline.Core/Assets/Examples/SimplePerCamera/Outline.unity index 63a292e..c172ec7 100644 --- a/Assets/Examples/SimplePerCamera/Outline.unity +++ b/Outline.Core/Assets/Examples/SimplePerCamera/Outline.unity @@ -13,7 +13,7 @@ OcclusionCullingSettings: --- !u!104 &2 RenderSettings: m_ObjectHideFlags: 0 - serializedVersion: 8 + serializedVersion: 9 m_Fog: 0 m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} m_FogMode: 3 @@ -39,6 +39,7 @@ RenderSettings: m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} m_IndirectSpecularColor: {r: 0.44657844, g: 0.49641222, b: 0.57481694, a: 1} + m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: m_ObjectHideFlags: 0 @@ -49,16 +50,14 @@ LightmapSettings: m_BounceScale: 1 m_IndirectOutputScale: 1 m_AlbedoBoost: 1 - m_TemporalCoherenceThreshold: 1 m_EnvironmentLightingMode: 0 m_EnableBakedLightmaps: 1 m_EnableRealtimeLightmaps: 1 m_LightmapEditorSettings: - serializedVersion: 9 + serializedVersion: 10 m_Resolution: 2 m_BakeResolution: 40 - m_TextureWidth: 1024 - m_TextureHeight: 1024 + m_AtlasSize: 1024 m_AO: 0 m_AOMaxDistance: 1 m_CompAOExponent: 1 @@ -116,9 +115,10 @@ NavMeshSettings: --- !u!1 &167171210 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 167171212} - component: {fileID: 167171211} @@ -132,8 +132,9 @@ GameObject: --- !u!108 &167171211 Light: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 167171210} m_Enabled: 1 serializedVersion: 8 @@ -159,6 +160,7 @@ Light: serializedVersion: 2 m_Bits: 4294967295 m_Lightmapping: 4 + m_LightShadowCasterMode: 0 m_AreaSize: {x: 1, y: 1} m_BounceIntensity: 1 m_ColorTemperature: 6570 @@ -168,8 +170,9 @@ Light: --- !u!4 &167171212 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 167171210} m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} m_LocalPosition: {x: 0, y: 3, z: 0} @@ -181,9 +184,10 @@ Transform: --- !u!1 &692811812 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 692811816} - component: {fileID: 692811815} @@ -199,13 +203,19 @@ GameObject: --- !u!20 &692811815 Camera: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 692811812} m_Enabled: 1 serializedVersion: 2 m_ClearFlags: 1 m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_GateFitMode: 2 + m_FocalLength: 50 m_NormalizedViewPortRect: serializedVersion: 2 x: 0 @@ -235,8 +245,9 @@ Camera: --- !u!4 &692811816 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 692811812} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 0, y: 1, z: -10} @@ -251,8 +262,9 @@ Transform: --- !u!114 &692811817 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 692811812} m_Enabled: 1 m_EditorHideFlags: 0 @@ -265,8 +277,9 @@ MonoBehaviour: --- !u!114 &692811818 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 692811812} m_Enabled: 1 m_EditorHideFlags: 0 @@ -275,12 +288,14 @@ MonoBehaviour: m_EditorClassIdentifier: _outlineResources: {fileID: 11400000, guid: d28e70f030b1a634db9a6a6d5478ef19, type: 2} _outlineLayers: {fileID: 11400000, guid: 3a6c3b3c5f6e3ad4ab8e09fc219865bd, type: 2} + _cameraEvent: 18 --- !u!1 &748173439 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 748173443} - component: {fileID: 748173442} @@ -296,8 +311,9 @@ GameObject: --- !u!23 &748173440 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 748173439} m_Enabled: 1 m_CastShadows: 1 @@ -306,6 +322,8 @@ MeshRenderer: m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: @@ -330,8 +348,9 @@ MeshRenderer: --- !u!65 &748173441 BoxCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 748173439} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -342,18 +361,20 @@ BoxCollider: --- !u!33 &748173442 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 748173439} m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &748173443 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 748173439} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: -1.51, y: 0, z: 4} + m_LocalPosition: {x: -1, y: 0, z: 5.58} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] m_Father: {fileID: 692811816} @@ -362,9 +383,10 @@ Transform: --- !u!1 &1579373802 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1579373806} - component: {fileID: 1579373805} @@ -380,8 +402,9 @@ GameObject: --- !u!23 &1579373803 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1579373802} m_Enabled: 1 m_CastShadows: 1 @@ -390,6 +413,8 @@ MeshRenderer: m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: @@ -414,8 +439,9 @@ MeshRenderer: --- !u!135 &1579373804 SphereCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1579373802} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -426,15 +452,17 @@ SphereCollider: --- !u!33 &1579373805 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1579373802} m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} --- !u!4 &1579373806 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1579373802} m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} m_LocalPosition: {x: 0, y: 0, z: 4} @@ -446,9 +474,10 @@ Transform: --- !u!1 &1789341920 GameObject: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} - serializedVersion: 5 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 m_Component: - component: {fileID: 1789341921} - component: {fileID: 1789341925} @@ -465,8 +494,9 @@ GameObject: --- !u!4 &1789341921 Transform: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1789341920} m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} m_LocalPosition: {x: 1.5, y: 0, z: 4} @@ -478,8 +508,9 @@ Transform: --- !u!114 &1789341922 MonoBehaviour: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1789341920} m_Enabled: 1 m_EditorHideFlags: 0 @@ -493,11 +524,13 @@ MonoBehaviour: _outlineWidth: 15 _outlineIntensity: 2 _outlineMode: 1 + _depthTestEnabled: 0 --- !u!23 &1789341923 MeshRenderer: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1789341920} m_Enabled: 1 m_CastShadows: 1 @@ -506,6 +539,8 @@ MeshRenderer: m_MotionVectors: 1 m_LightProbeUsage: 1 m_ReflectionProbeUsage: 1 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 m_Materials: - {fileID: 10303, guid: 0000000000000000f000000000000000, type: 0} m_StaticBatchInfo: @@ -530,8 +565,9 @@ MeshRenderer: --- !u!136 &1789341924 CapsuleCollider: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1789341920} m_Material: {fileID: 0} m_IsTrigger: 0 @@ -543,7 +579,8 @@ CapsuleCollider: --- !u!33 &1789341925 MeshFilter: m_ObjectHideFlags: 0 - m_PrefabParentObject: {fileID: 0} - m_PrefabInternal: {fileID: 0} + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 1789341920} m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Assets/Examples/SimplePerCamera/Outline.unity.meta b/Outline.Core/Assets/Examples/SimplePerCamera/Outline.unity.meta similarity index 100% rename from Assets/Examples/SimplePerCamera/Outline.unity.meta rename to Outline.Core/Assets/Examples/SimplePerCamera/Outline.unity.meta diff --git a/Assets/Examples/SimplePerCamera/OutlineEffectBuilder.cs b/Outline.Core/Assets/Examples/SimplePerCamera/OutlineEffectBuilder.cs similarity index 100% rename from Assets/Examples/SimplePerCamera/OutlineEffectBuilder.cs rename to Outline.Core/Assets/Examples/SimplePerCamera/OutlineEffectBuilder.cs diff --git a/Assets/Examples/SimplePerCamera/OutlineEffectBuilder.cs.meta b/Outline.Core/Assets/Examples/SimplePerCamera/OutlineEffectBuilder.cs.meta similarity index 100% rename from Assets/Examples/SimplePerCamera/OutlineEffectBuilder.cs.meta rename to Outline.Core/Assets/Examples/SimplePerCamera/OutlineEffectBuilder.cs.meta diff --git a/Assets/Examples/SimplePerCamera/TestOutlineLayers.asset b/Outline.Core/Assets/Examples/SimplePerCamera/TestOutlineLayers.asset similarity index 100% rename from Assets/Examples/SimplePerCamera/TestOutlineLayers.asset rename to Outline.Core/Assets/Examples/SimplePerCamera/TestOutlineLayers.asset diff --git a/Assets/Examples/SimplePerCamera/TestOutlineLayers.asset.meta b/Outline.Core/Assets/Examples/SimplePerCamera/TestOutlineLayers.asset.meta similarity index 100% rename from Assets/Examples/SimplePerCamera/TestOutlineLayers.asset.meta rename to Outline.Core/Assets/Examples/SimplePerCamera/TestOutlineLayers.asset.meta diff --git a/Assets/Examples/SimplePerObject.meta b/Outline.Core/Assets/Examples/SimplePerObject.meta similarity index 100% rename from Assets/Examples/SimplePerObject.meta rename to Outline.Core/Assets/Examples/SimplePerObject.meta diff --git a/Assets/Examples/SimplePerObject/TestOutlineSettings.asset b/Outline.Core/Assets/Examples/SimplePerObject/TestOutlineSettings.asset similarity index 95% rename from Assets/Examples/SimplePerObject/TestOutlineSettings.asset rename to Outline.Core/Assets/Examples/SimplePerObject/TestOutlineSettings.asset index d94ff6a..a32e433 100644 --- a/Assets/Examples/SimplePerObject/TestOutlineSettings.asset +++ b/Outline.Core/Assets/Examples/SimplePerObject/TestOutlineSettings.asset @@ -14,5 +14,5 @@ MonoBehaviour: m_EditorClassIdentifier: _outlineColor: {r: 1, g: 0, b: 0, a: 1} _outlineWidth: 5 - _outlineIntensity: 2 + _outlineIntensity: 1 _outlineMode: 0 diff --git a/Assets/Examples/SimplePerObject/TestOutlineSettings.asset.meta b/Outline.Core/Assets/Examples/SimplePerObject/TestOutlineSettings.asset.meta similarity index 100% rename from Assets/Examples/SimplePerObject/TestOutlineSettings.asset.meta rename to Outline.Core/Assets/Examples/SimplePerObject/TestOutlineSettings.asset.meta diff --git a/Packages/UnityFx.Outline/Tests.meta b/Outline.Core/Assets/Tests.meta similarity index 100% rename from Packages/UnityFx.Outline/Tests.meta rename to Outline.Core/Assets/Tests.meta diff --git a/Packages/UnityFx.Outline/Tests/Editor.meta b/Outline.Core/Assets/Tests/Editor.meta similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor.meta rename to Outline.Core/Assets/Tests/Editor.meta diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts.meta b/Outline.Core/Assets/Tests/Editor/Scripts.meta similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts.meta rename to Outline.Core/Assets/Tests/Editor/Scripts.meta diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers.meta b/Outline.Core/Assets/Tests/Editor/Scripts/Helpers.meta similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers.meta rename to Outline.Core/Assets/Tests/Editor/Scripts/Helpers.meta diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers/IOutlineSettingsExTests.cs b/Outline.Core/Assets/Tests/Editor/Scripts/Helpers/IOutlineSettingsExTests.cs similarity index 98% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers/IOutlineSettingsExTests.cs rename to Outline.Core/Assets/Tests/Editor/Scripts/Helpers/IOutlineSettingsExTests.cs index b2b32d1..af05396 100644 --- a/Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers/IOutlineSettingsExTests.cs +++ b/Outline.Core/Assets/Tests/Editor/Scripts/Helpers/IOutlineSettingsExTests.cs @@ -86,7 +86,7 @@ public void OutlineSettings_MakesOtherSettersThrow() Assert.Throws(() => _settings.OutlineColor = Color.blue); Assert.Throws(() => _settings.OutlineWidth = 12); - Assert.Throws(() => _settings.OutlineMode = OutlineMode.Blurred); + Assert.Throws(() => _settings.OutlineRenderMode = OutlineRenderFlags.Blurred); Assert.Throws(() => _settings.OutlineIntensity = 17); } finally diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers/IOutlineSettingsExTests.cs.meta b/Outline.Core/Assets/Tests/Editor/Scripts/Helpers/IOutlineSettingsExTests.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers/IOutlineSettingsExTests.cs.meta rename to Outline.Core/Assets/Tests/Editor/Scripts/Helpers/IOutlineSettingsExTests.cs.meta diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers/IOutlineSettingsTests.cs b/Outline.Core/Assets/Tests/Editor/Scripts/Helpers/IOutlineSettingsTests.cs similarity index 91% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers/IOutlineSettingsTests.cs rename to Outline.Core/Assets/Tests/Editor/Scripts/Helpers/IOutlineSettingsTests.cs index a93b909..55a2687 100644 --- a/Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers/IOutlineSettingsTests.cs +++ b/Outline.Core/Assets/Tests/Editor/Scripts/Helpers/IOutlineSettingsTests.cs @@ -108,11 +108,11 @@ public void OutlineWidth_DoesNotSetsChangedOnSameValue() [Test] public void OutlineMode_SetsValue() { - _settings.OutlineMode = OutlineMode.Blurred; - Assert.AreEqual(OutlineMode.Blurred, _settings.OutlineMode); + _settings.OutlineRenderMode = OutlineRenderFlags.Blurred; + Assert.AreEqual(OutlineRenderFlags.Blurred, _settings.OutlineRenderMode); - _settings.OutlineMode = OutlineMode.Solid; - Assert.AreEqual(OutlineMode.Solid, _settings.OutlineMode); + _settings.OutlineRenderMode = OutlineRenderFlags.Solid; + Assert.AreEqual(OutlineRenderFlags.Solid, _settings.OutlineRenderMode); } [Test] @@ -121,7 +121,7 @@ public void OutlineMode_SetsChanged() if (_changeTracking != null) { _changeTracking.AcceptChanges(); - _settings.OutlineMode = OutlineMode.Blurred; + _settings.OutlineRenderMode = OutlineRenderFlags.Blurred; Assert.IsTrue(_changeTracking.IsChanged); } @@ -133,7 +133,7 @@ public void OutlineMode_DoesNotSetsChangedOnSameValue() if (_changeTracking != null) { _changeTracking.AcceptChanges(); - _settings.OutlineMode = _settings.OutlineMode; + _settings.OutlineRenderMode = _settings.OutlineRenderMode; Assert.IsFalse(_changeTracking.IsChanged); } diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers/IOutlineSettingsTests.cs.meta b/Outline.Core/Assets/Tests/Editor/Scripts/Helpers/IOutlineSettingsTests.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/Helpers/IOutlineSettingsTests.cs.meta rename to Outline.Core/Assets/Tests/Editor/Scripts/Helpers/IOutlineSettingsTests.cs.meta diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineBehaviourTests.cs b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineBehaviourTests.cs similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineBehaviourTests.cs rename to Outline.Core/Assets/Tests/Editor/Scripts/OutlineBehaviourTests.cs diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineBehaviourTests.cs.meta b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineBehaviourTests.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineBehaviourTests.cs.meta rename to Outline.Core/Assets/Tests/Editor/Scripts/OutlineBehaviourTests.cs.meta diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineLayerCollectionTests.cs b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineLayerCollectionTests.cs similarity index 55% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineLayerCollectionTests.cs rename to Outline.Core/Assets/Tests/Editor/Scripts/OutlineLayerCollectionTests.cs index 8e46e4f..fc19adb 100644 --- a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineLayerCollectionTests.cs +++ b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineLayerCollectionTests.cs @@ -30,7 +30,6 @@ public void Dispose() [Test] public void DefaultStateIsValid() { - Assert.IsTrue(_layerCollection.IsChanged); Assert.IsFalse(_layerCollection.IsReadOnly); Assert.IsEmpty(_layerCollection); Assert.Zero(_layerCollection.Count); @@ -59,22 +58,6 @@ public void Add_ThrowsIfLayerBelongsToAnotherCollection() } } - [Test] - public void Add_DoesNotSetChangedOnError() - { - _layerCollection.AcceptChanges(); - - try - { - _layerCollection.Add(null); - } - catch - { - } - - Assert.IsFalse(_layerCollection.IsChanged); - } - [Test] public void Add_SetsCount() { @@ -83,15 +66,6 @@ public void Add_SetsCount() Assert.AreEqual(1, _layerCollection.Count); } - [Test] - public void Add_SetsChanged() - { - _layerCollection.AcceptChanges(); - _layerCollection.Add(new OutlineLayer()); - - Assert.IsTrue(_layerCollection.IsChanged); - } - [Test] public void Insert_ThrowsIfArgumentIsNull() { @@ -115,22 +89,6 @@ public void Insert_ThrowsIfLayerBelongsToAnotherCollection() } } - [Test] - public void Insert_DoesNotSetChangedOnError() - { - _layerCollection.AcceptChanges(); - - try - { - _layerCollection.Insert(0, null); - } - catch - { - } - - Assert.IsFalse(_layerCollection.IsChanged); - } - [Test] public void Insert_SetsCount() { @@ -139,51 +97,12 @@ public void Insert_SetsCount() Assert.AreEqual(1, _layerCollection.Count); } - [Test] - public void Insert_SetsChanged() - { - _layerCollection.AcceptChanges(); - _layerCollection.Insert(0, new OutlineLayer()); - - Assert.IsTrue(_layerCollection.IsChanged); - } - [Test] public void Remove_DoesNotThrowOnNullArgument() { Assert.DoesNotThrow(() => _layerCollection.Remove(null)); } - [Test] - public void Remove_DoesNotSetChangedOnError() - { - _layerCollection.AcceptChanges(); - _layerCollection.Remove(null); - - Assert.IsFalse(_layerCollection.IsChanged); - } - - [Test] - public void Remove_DoesNotSetChangedIfNotfound() - { - _layerCollection.AcceptChanges(); - _layerCollection.Remove(new OutlineLayer()); - - Assert.IsFalse(_layerCollection.IsChanged); - } - - [Test] - public void Remove_SetsChanged() - { - var layer = new OutlineLayer(); - - _layerCollection.Add(layer); - _layerCollection.AcceptChanges(); - _layerCollection.Remove(layer); - - Assert.IsTrue(_layerCollection.IsChanged); - } - [Test] public void Remove_SetsCount() { @@ -204,47 +123,12 @@ public void Clear_ResetsCount() Assert.Zero(_layerCollection.Count); } - [Test] - public void Clear_SetsChanged() - { - _layerCollection.Add(new OutlineLayer()); - _layerCollection.AcceptChanges(); - _layerCollection.Clear(); - - Assert.IsTrue(_layerCollection.IsChanged); - } - - [Test] - public void Clear_DoesNotSetChangedIfEmpty() - { - _layerCollection.AcceptChanges(); - _layerCollection.Clear(); - - Assert.IsFalse(_layerCollection.IsChanged); - } - [Test] public void Contains_DoesNotThrowIfArgumentIsNull() { _layerCollection.Contains(null); } - [Test] - public void Contains_DoesNotSetChangedOnError() - { - _layerCollection.AcceptChanges(); - - try - { - _layerCollection.Contains(null); - } - catch - { - } - - Assert.IsFalse(_layerCollection.IsChanged); - } - [Test] public void Contains_SearchesArgument() { @@ -257,45 +141,6 @@ public void Contains_SearchesArgument() Assert.IsTrue(_layerCollection.Contains(layer)); } - [Test] - public void Contains_DoesNotSetChanged() - { - var layer = new OutlineLayer(); - - _layerCollection.AcceptChanges(); - _layerCollection.Contains(layer); - - Assert.IsFalse(_layerCollection.IsChanged); - - _layerCollection.Add(layer); - _layerCollection.AcceptChanges(); - _layerCollection.Contains(layer); - - Assert.IsFalse(_layerCollection.IsChanged); - } - - [Test] - public void IsChanged_TracksLayerChanges() - { - var layer = new OutlineLayer(); - - _layerCollection.Add(layer); - _layerCollection.AcceptChanges(); - - layer.OutlineWidth = 17; - - Assert.IsTrue(_layerCollection.IsChanged); - } - - [Test] - public void AcceptChanges_ResetsChanged() - { - _layerCollection.Add(new OutlineLayer()); - _layerCollection.AcceptChanges(); - - Assert.IsFalse(_layerCollection.IsChanged); - } - [Test] public void SortedLayers_IsSortedByPriority() { diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineLayerCollectionTests.cs.meta b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineLayerCollectionTests.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineLayerCollectionTests.cs.meta rename to Outline.Core/Assets/Tests/Editor/Scripts/OutlineLayerCollectionTests.cs.meta diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineLayerTests.cs b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineLayerTests.cs similarity index 56% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineLayerTests.cs rename to Outline.Core/Assets/Tests/Editor/Scripts/OutlineLayerTests.cs index 58c202e..df639c6 100644 --- a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineLayerTests.cs +++ b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineLayerTests.cs @@ -30,7 +30,6 @@ public void Dispose() [Test] public void DefaultStateIsValid() { - Assert.IsTrue(_layer.IsChanged); Assert.IsFalse(_layer.IsReadOnly); Assert.IsEmpty(_layer); Assert.Zero(_layer.Count); @@ -44,22 +43,6 @@ public void Add_ThrowsIfArgumentIsNull() Assert.Throws(() => _layer.Add(null)); } - [Test] - public void Add_DoesNotSetChangedOnError() - { - _layer.AcceptChanges(); - - try - { - _layer.Add(null); - } - catch - { - } - - Assert.IsFalse(_layer.IsChanged); - } - [Test] public void Add_SetsCount() { @@ -68,15 +51,6 @@ public void Add_SetsCount() Assert.AreEqual(1, _layer.Count); } - [Test] - public void Add_SetsChanged() - { - _layer.AcceptChanges(); - _layer.Add(new GameObject()); - - Assert.IsTrue(_layer.IsChanged); - } - [Test] public void Add_FiltersRenderesByLayer() { @@ -102,36 +76,6 @@ public void Remove_DoesNotThrowOnNullArgument() Assert.DoesNotThrow(() => _layer.Remove(null)); } - [Test] - public void Remove_DoesNotSetChangedOnError() - { - _layer.AcceptChanges(); - _layer.Remove(null); - - Assert.IsFalse(_layer.IsChanged); - } - - [Test] - public void Remove_DoesNotSetChangedIfNotfound() - { - _layer.AcceptChanges(); - _layer.Remove(new GameObject()); - - Assert.IsFalse(_layer.IsChanged); - } - - [Test] - public void Remove_SetsChanged() - { - var go = new GameObject(); - - _layer.Add(go); - _layer.AcceptChanges(); - _layer.Remove(go); - - Assert.IsTrue(_layer.IsChanged); - } - [Test] public void Remove_SetsCount() { @@ -152,47 +96,12 @@ public void Clear_ResetsCount() Assert.Zero(_layer.Count); } - [Test] - public void Clear_SetsChanged() - { - _layer.Add(new GameObject()); - _layer.AcceptChanges(); - _layer.Clear(); - - Assert.IsTrue(_layer.IsChanged); - } - - [Test] - public void Clear_DoesNotSetChangedIfEmpty() - { - _layer.AcceptChanges(); - _layer.Clear(); - - Assert.IsFalse(_layer.IsChanged); - } - [Test] public void Contains_DoesNotThrowIfArgumentIsNull() { _layer.Contains(null); } - [Test] - public void Contains_DoesNotSetChangedOnError() - { - _layer.AcceptChanges(); - - try - { - _layer.Contains(null); - } - catch - { - } - - Assert.IsFalse(_layer.IsChanged); - } - [Test] public void Contains_SearchesArgument() { @@ -204,30 +113,5 @@ public void Contains_SearchesArgument() Assert.IsTrue(_layer.Contains(go)); } - - [Test] - public void Contains_DoesNotSetChanged() - { - var go = new GameObject(); - - _layer.AcceptChanges(); - _layer.Contains(go); - - Assert.IsFalse(_layer.IsChanged); - - _layer.Add(go); - _layer.AcceptChanges(); - _layer.Contains(go); - - Assert.IsFalse(_layer.IsChanged); - } - - [Test] - public void AcceptChanges_ResetsChanged() - { - _layer.AcceptChanges(); - - Assert.IsFalse(_layer.IsChanged); - } } } diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineLayerTests.cs.meta b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineLayerTests.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineLayerTests.cs.meta rename to Outline.Core/Assets/Tests/Editor/Scripts/OutlineLayerTests.cs.meta diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineRendererTests.cs b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineRendererTests.cs similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineRendererTests.cs rename to Outline.Core/Assets/Tests/Editor/Scripts/OutlineRendererTests.cs diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineRendererTests.cs.meta b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineRendererTests.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineRendererTests.cs.meta rename to Outline.Core/Assets/Tests/Editor/Scripts/OutlineRendererTests.cs.meta diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineSettingsTests.cs b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineSettingsTests.cs similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineSettingsTests.cs rename to Outline.Core/Assets/Tests/Editor/Scripts/OutlineSettingsTests.cs diff --git a/Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineSettingsTests.cs.meta b/Outline.Core/Assets/Tests/Editor/Scripts/OutlineSettingsTests.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Tests/Editor/Scripts/OutlineSettingsTests.cs.meta rename to Outline.Core/Assets/Tests/Editor/Scripts/OutlineSettingsTests.cs.meta diff --git a/Packages/UnityFx.Outline/CHANGELOG.md b/Outline.Core/Packages/UnityFx.Outline/CHANGELOG.md similarity index 83% rename from Packages/UnityFx.Outline/CHANGELOG.md rename to Outline.Core/Packages/UnityFx.Outline/CHANGELOG.md index c7d442d..d148afd 100644 --- a/Packages/UnityFx.Outline/CHANGELOG.md +++ b/Outline.Core/Packages/UnityFx.Outline/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/); this project adheres to [Semantic Versioning](http://semver.org/). +## [0.7.2] - 2020.04.08 + +Depth testing support and performance optimizations. + +### Added +- Added support for depth testing when rendering outlines. When enabled, outlines are only rendered around the visible object parts ([#1](https://github.com/Arvtesh/UnityFx.Outline/issues/1)). +- Added a few convenience methods to `OutlineEffect`. +- Added editor tooltips for outline component fileds. + +### Fixed +- Get rid of GC allocatinos during command buffer updates. +- Fixed `IndexOutOfRangeException` when setting outline width to max value ([#4](https://github.com/Arvtesh/UnityFx.Outline/issues/4)). + +### Removed +- Removed change tracking support in package entities ([#2](https://github.com/Arvtesh/UnityFx.Outline/issues/2)). + ## [0.7.1] - 2020.01.28 Bugfixes and project layout changes. diff --git a/Packages/UnityFx.Outline/CHANGELOG.md.meta b/Outline.Core/Packages/UnityFx.Outline/CHANGELOG.md.meta similarity index 100% rename from Packages/UnityFx.Outline/CHANGELOG.md.meta rename to Outline.Core/Packages/UnityFx.Outline/CHANGELOG.md.meta diff --git a/Packages/UnityFx.Outline/Editor.meta b/Outline.Core/Packages/UnityFx.Outline/Editor.meta similarity index 100% rename from Packages/UnityFx.Outline/Editor.meta rename to Outline.Core/Packages/UnityFx.Outline/Editor.meta diff --git a/Packages/UnityFx.Outline/Editor/Scripts.meta b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts.meta similarity index 100% rename from Packages/UnityFx.Outline/Editor/Scripts.meta rename to Outline.Core/Packages/UnityFx.Outline/Editor/Scripts.meta diff --git a/Packages/UnityFx.Outline/Editor/Scripts/OutlineBehaviourEditor.cs b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineBehaviourEditor.cs similarity index 84% rename from Packages/UnityFx.Outline/Editor/Scripts/OutlineBehaviourEditor.cs rename to Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineBehaviourEditor.cs index 459340c..492498a 100644 --- a/Packages/UnityFx.Outline/Editor/Scripts/OutlineBehaviourEditor.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineBehaviourEditor.cs @@ -79,18 +79,6 @@ public override void OnInspectorGUI() EditorGUI.indentLevel -= 1; EditorGUI.EndDisabledGroup(); } - - // 4) Debug info. - _debugOpened = EditorGUILayout.Foldout(_debugOpened, "Debug", true); - - if (_debugOpened) - { - EditorGUI.BeginDisabledGroup(true); - EditorGUI.indentLevel += 1; - EditorGUILayout.IntField("Command buffer updates", _effect.NumberOfCommandBufferUpdates); - EditorGUI.indentLevel -= 1; - EditorGUI.EndDisabledGroup(); - } } } } diff --git a/Packages/UnityFx.Outline/Editor/Scripts/OutlineBehaviourEditor.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineBehaviourEditor.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Editor/Scripts/OutlineBehaviourEditor.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineBehaviourEditor.cs.meta diff --git a/Packages/UnityFx.Outline/Editor/Scripts/OutlineEditorUtility.cs b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineEditorUtility.cs similarity index 79% rename from Packages/UnityFx.Outline/Editor/Scripts/OutlineEditorUtility.cs rename to Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineEditorUtility.cs index ff0934c..3f82a55 100644 --- a/Packages/UnityFx.Outline/Editor/Scripts/OutlineEditorUtility.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineEditorUtility.cs @@ -71,7 +71,8 @@ public static void Render(IOutlineSettings settings, UnityEngine.Object undoCont settings.OutlineWidth = width; } - var blurred = EditorGUILayout.Toggle("Blurred", settings.OutlineMode == OutlineMode.Blurred); + var prevBlurred = (settings.OutlineRenderMode & OutlineRenderFlags.Blurred) != 0; + var blurred = EditorGUILayout.Toggle("Blurred", prevBlurred); if (blurred) { @@ -88,10 +89,35 @@ public static void Render(IOutlineSettings settings, UnityEngine.Object undoCont EditorGUI.indentLevel -= 1; } - if (blurred != (settings.OutlineMode == OutlineMode.Blurred)) + if (blurred != prevBlurred) { Undo.RecordObject(undoContext, "Blur"); - settings.OutlineMode = blurred ? OutlineMode.Blurred : OutlineMode.Solid; + + if (blurred) + { + settings.OutlineRenderMode |= OutlineRenderFlags.Blurred; + } + else + { + settings.OutlineRenderMode &= ~OutlineRenderFlags.Blurred; + } + } + + var prevDepthTestEnabled = (settings.OutlineRenderMode & OutlineRenderFlags.EnableDepthTesting) != 0; + var depthTestEnabled = EditorGUILayout.Toggle("Depth Test", prevDepthTestEnabled); + + if (depthTestEnabled != prevDepthTestEnabled) + { + Undo.RecordObject(undoContext, "Depth Test"); + + if (depthTestEnabled) + { + settings.OutlineRenderMode |= OutlineRenderFlags.EnableDepthTesting; + } + else + { + settings.OutlineRenderMode &= ~OutlineRenderFlags.EnableDepthTesting; + } } } @@ -108,7 +134,7 @@ public static void RenderPreview(OutlineLayer layer, int layerIndex, bool showOb if (layer.Enabled) { - EditorGUILayout.LabelField(layer.OutlineMode == OutlineMode.Solid ? layer.OutlineMode.ToString() : string.Format("Blurred ({0})", layer.OutlineIntensity), GUILayout.MaxWidth(70)); + EditorGUILayout.LabelField(layer.OutlineRenderMode == OutlineRenderFlags.Solid ? layer.OutlineRenderMode.ToString() : string.Format("Blurred ({0})", layer.OutlineIntensity), GUILayout.MaxWidth(70)); EditorGUILayout.IntField(layer.OutlineWidth, GUILayout.MaxWidth(100)); EditorGUILayout.ColorField(layer.OutlineColor, GUILayout.MinWidth(100)); } diff --git a/Packages/UnityFx.Outline/Editor/Scripts/OutlineEditorUtility.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineEditorUtility.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Editor/Scripts/OutlineEditorUtility.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineEditorUtility.cs.meta diff --git a/Packages/UnityFx.Outline/Editor/Scripts/OutlineEffectEditor.cs b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineEffectEditor.cs similarity index 80% rename from Packages/UnityFx.Outline/Editor/Scripts/OutlineEffectEditor.cs rename to Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineEffectEditor.cs index bd8c508..fd4c904 100644 --- a/Packages/UnityFx.Outline/Editor/Scripts/OutlineEffectEditor.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineEffectEditor.cs @@ -54,17 +54,6 @@ public override void OnInspectorGUI() OutlineEditorUtility.RenderPreview(_effect.OutlineLayers, true); } } - - _debugOpened = EditorGUILayout.Foldout(_debugOpened, "Debug", true); - - if (_debugOpened) - { - EditorGUI.BeginDisabledGroup(true); - EditorGUI.indentLevel += 1; - EditorGUILayout.IntField("Command buffer updates", _effect.NumberOfCommandBufferUpdates); - EditorGUI.indentLevel -= 1; - EditorGUI.EndDisabledGroup(); - } } } } diff --git a/Packages/UnityFx.Outline/Editor/Scripts/OutlineEffectEditor.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineEffectEditor.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Editor/Scripts/OutlineEffectEditor.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineEffectEditor.cs.meta diff --git a/Packages/UnityFx.Outline/Editor/Scripts/OutlineLayerCollectionEditor.cs b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineLayerCollectionEditor.cs similarity index 100% rename from Packages/UnityFx.Outline/Editor/Scripts/OutlineLayerCollectionEditor.cs rename to Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineLayerCollectionEditor.cs diff --git a/Packages/UnityFx.Outline/Editor/Scripts/OutlineLayerCollectionEditor.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineLayerCollectionEditor.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Editor/Scripts/OutlineLayerCollectionEditor.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineLayerCollectionEditor.cs.meta diff --git a/Packages/UnityFx.Outline/Editor/Scripts/OutlineSettingsEditor.cs b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineSettingsEditor.cs similarity index 100% rename from Packages/UnityFx.Outline/Editor/Scripts/OutlineSettingsEditor.cs rename to Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineSettingsEditor.cs diff --git a/Packages/UnityFx.Outline/Editor/Scripts/OutlineSettingsEditor.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineSettingsEditor.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Editor/Scripts/OutlineSettingsEditor.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Editor/Scripts/OutlineSettingsEditor.cs.meta diff --git a/Packages/UnityFx.Outline/Editor/UnityFx.Outline.Editor.asmdef b/Outline.Core/Packages/UnityFx.Outline/Editor/UnityFx.Outline.Editor.asmdef similarity index 100% rename from Packages/UnityFx.Outline/Editor/UnityFx.Outline.Editor.asmdef rename to Outline.Core/Packages/UnityFx.Outline/Editor/UnityFx.Outline.Editor.asmdef diff --git a/Packages/UnityFx.Outline/Editor/UnityFx.Outline.Editor.asmdef.meta b/Outline.Core/Packages/UnityFx.Outline/Editor/UnityFx.Outline.Editor.asmdef.meta similarity index 100% rename from Packages/UnityFx.Outline/Editor/UnityFx.Outline.Editor.asmdef.meta rename to Outline.Core/Packages/UnityFx.Outline/Editor/UnityFx.Outline.Editor.asmdef.meta diff --git a/Packages/UnityFx.Outline/README.md b/Outline.Core/Packages/UnityFx.Outline/README.md similarity index 90% rename from Packages/UnityFx.Outline/README.md rename to Outline.Core/Packages/UnityFx.Outline/README.md index 2bb00b7..ab04468 100644 --- a/Packages/UnityFx.Outline/README.md +++ b/Outline.Core/Packages/UnityFx.Outline/README.md @@ -1,7 +1,7 @@ # UnityFx.Outline ## SUMMARY -Screen-space outline effects for Unity. +Screen-space outline effect for Unity. ## USEFUL LINKS * [Github project](https://github.com/Arvtesh/UnityFx.Outline) diff --git a/Packages/UnityFx.Outline/README.md.meta b/Outline.Core/Packages/UnityFx.Outline/README.md.meta similarity index 100% rename from Packages/UnityFx.Outline/README.md.meta rename to Outline.Core/Packages/UnityFx.Outline/README.md.meta diff --git a/Packages/UnityFx.Outline/Runtime.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime.meta diff --git a/Packages/UnityFx.Outline/Runtime/Prefabs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Prefabs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Prefabs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Prefabs.meta diff --git a/Packages/UnityFx.Outline/Runtime/Prefabs/OutlineResources.asset b/Outline.Core/Packages/UnityFx.Outline/Runtime/Prefabs/OutlineResources.asset similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Prefabs/OutlineResources.asset rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Prefabs/OutlineResources.asset diff --git a/Packages/UnityFx.Outline/Runtime/Prefabs/OutlineResources.asset.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Prefabs/OutlineResources.asset.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Prefabs/OutlineResources.asset.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Prefabs/OutlineResources.asset.meta diff --git a/Packages/UnityFx.Outline/Runtime/Scripts.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts.meta diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettings.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettings.cs similarity index 67% rename from Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettings.cs rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettings.cs index cef4b6c..c822837 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettings.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettings.cs @@ -7,7 +7,7 @@ namespace UnityFx.Outline { /// - /// Defines outline settings. + /// Generic outline settings. /// public interface IOutlineSettings : IEquatable { @@ -15,26 +15,31 @@ public interface IOutlineSettings : IEquatable /// Gets or sets outline color. /// /// - /// + /// Color OutlineColor { get; set; } /// /// Gets or sets outline width in pixels. Allowed range is [, ]. /// /// - /// + /// int OutlineWidth { get; set; } /// /// Gets or sets outline intensity value. Allowed range is [, ]. + /// This is used for blurred oulines only (i.e. is set to ). /// + /// + /// + /// float OutlineIntensity { get; set; } /// - /// Gets or sets outline mode. + /// Gets or sets outline render mode. /// /// /// - OutlineMode OutlineMode { get; set; } + /// + OutlineRenderFlags OutlineRenderMode { get; set; } } } diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettings.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettings.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettings.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettings.cs.meta diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettingsEx.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettingsEx.cs similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettingsEx.cs rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettingsEx.cs diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettingsEx.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettingsEx.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettingsEx.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/IOutlineSettingsEx.cs.meta diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.cs similarity index 75% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.cs rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.cs index 9c6249f..325b329 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.cs @@ -15,50 +15,31 @@ namespace UnityFx.Outline /// [ExecuteInEditMode] [DisallowMultipleComponent] - public sealed partial class OutlineBehaviour : MonoBehaviour, IOutlineSettingsEx + public sealed class OutlineBehaviour : MonoBehaviour, IOutlineSettingsEx { #region data #pragma warning disable 0649 - [SerializeField] + [SerializeField, Tooltip("Sets outline resources to use. Do not change the defaults unless you know what you're doing.")] private OutlineResources _outlineResources; [SerializeField, HideInInspector] private OutlineSettingsInstance _outlineSettings; + [SerializeField, Tooltip("If set, list of object renderers is updated on each frame. Enable if the object has child renderers which are enabled/disabled frequently.")] + private bool _updateRenderers; #pragma warning restore 0649 - private RendererCollection _renderers; + private OutlineRendererCollection _renderers; private CommandBuffer _commandBuffer; private Dictionary _cameraMap = new Dictionary(); private float _cameraMapUpdateTimer; -#if UNITY_EDITOR - - private int _commandBufferUpdateCounter; - -#endif - #endregion #region interface -#if UNITY_EDITOR - - /// - /// Gets number of the command buffer updates since its creation. Only available in editor. - /// - public int NumberOfCommandBufferUpdates - { - get - { - return _commandBufferUpdateCounter; - } - } - -#endif - /// /// Gets or sets resources used by the effect implementation. /// @@ -81,7 +62,7 @@ public OutlineResources OutlineResources CreateSettingsIfNeeded(); _outlineResources = value; - _outlineSettings.SetResources(_outlineResources); + _outlineSettings.OutlineResources = _outlineResources; } } } @@ -109,17 +90,6 @@ public ICollection Cameras } } - /// - /// Detects changes in nested assets and updates outline if needed. The actual update might not be invoked until the next frame. - /// - public void UpdateChanged() - { - if (_outlineSettings != null) - { - _outlineSettings.UpdateChanged(); - } - } - #endregion #region MonoBehaviour @@ -129,24 +99,27 @@ private void Awake() CreateRenderersIfNeeded(); CreateSettingsIfNeeded(); - _outlineSettings.SetResources(_outlineResources); + _outlineSettings.OutlineResources = _outlineResources; } private void OnDestroy() { if (_outlineSettings != null) { - _outlineSettings.SetResources(null); + _outlineSettings.OutlineResources = null; } } private void OnEnable() { CreateCommandBufferIfNeeded(); + Camera.onPreRender += OnCameraPreRender; } private void OnDisable() { + Camera.onPreRender -= OnCameraPreRender; + foreach (var kvp in _cameraMap) { if (kvp.Key) @@ -174,44 +147,18 @@ private void Update() _cameraMapUpdateTimer = 0; } -#if UNITY_EDITOR - - UpdateChanged(); - -#endif - - if (_outlineResources != null && _renderers != null && (_outlineSettings.IsChanged || _commandBuffer.sizeInBytes == 0)) + if (_outlineResources != null && _renderers != null) { - _commandBuffer.Clear(); - - using (var renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget)) + if (_updateRenderers) { - renderer.Render(_renderers, _outlineSettings.OutlineResources, _outlineSettings); + _renderers.Reset(false); } - _outlineSettings.AcceptChanges(); - -#if UNITY_EDITOR - - _commandBufferUpdateCounter++; - -#endif - } - } - - private void OnWillRenderObject() - { - if (gameObject.activeInHierarchy && enabled) - { - var camera = Camera.current; + _commandBuffer.Clear(); - if (camera) + using (var renderer = new OutlineRenderer(_commandBuffer, BuiltinRenderTextureType.CameraTarget)) { - if (!_cameraMap.ContainsKey(camera)) - { - camera.AddCommandBuffer(OutlineRenderer.RenderEvent, _commandBuffer); - _cameraMap.Add(camera, _commandBuffer); - } + renderer.Render(_renderers.GetList(), _outlineSettings.OutlineResources, _outlineSettings); } } } @@ -224,19 +171,19 @@ private void OnValidate() CreateCommandBufferIfNeeded(); CreateSettingsIfNeeded(); - _outlineSettings.SetResources(_outlineResources); + _outlineSettings.OutlineResources = _outlineResources; } private void Reset() { if (_outlineSettings != null) { - _outlineSettings.SetResources(_outlineResources); + _outlineSettings.OutlineResources = _outlineResources; } if (_renderers != null) { - _renderers.Reset(); + _renderers.Reset(true); } } @@ -321,17 +268,17 @@ public float OutlineIntensity } /// - public OutlineMode OutlineMode + public OutlineRenderFlags OutlineRenderMode { get { CreateSettingsIfNeeded(); - return _outlineSettings.OutlineMode; + return _outlineSettings.OutlineRenderMode; } set { CreateSettingsIfNeeded(); - _outlineSettings.OutlineMode = value; + _outlineSettings.OutlineRenderMode = value; } } @@ -349,6 +296,23 @@ public bool Equals(IOutlineSettings other) #region implementation + private void OnCameraPreRender(Camera camera) + { + if (camera) + { + if (_outlineSettings.RequiresCameraDepth) + { + camera.depthTextureMode |= DepthTextureMode.Depth; + } + + if (!_cameraMap.ContainsKey(camera)) + { + camera.AddCommandBuffer(OutlineRenderer.RenderEvent, _commandBuffer); + _cameraMap.Add(camera, _commandBuffer); + } + } + } + private void RemoveDestroyedCameras() { List camerasToRemove = null; @@ -383,12 +347,6 @@ private void CreateCommandBufferIfNeeded() { _commandBuffer = new CommandBuffer(); _commandBuffer.name = string.Format("{0} - {1}", GetType().Name, name); - -#if UNITY_EDITOR - - _commandBufferUpdateCounter = 0; - -#endif } } @@ -400,6 +358,15 @@ private void CreateSettingsIfNeeded() } } + private void CreateRenderersIfNeeded() + { + if (_renderers == null) + { + _renderers = new OutlineRendererCollection(gameObject); + _renderers.Reset(true); + } + } + #endregion } } diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.cs.meta diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineEffect.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineEffect.cs similarity index 70% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineEffect.cs rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineEffect.cs index cab15bf..a4bacb8 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineEffect.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineEffect.cs @@ -2,7 +2,7 @@ // See the LICENSE.md file in the project root for more information. using System; -using System.Runtime.CompilerServices; +using System.Collections.Generic; using UnityEngine; using UnityEngine.Rendering; @@ -14,48 +14,26 @@ namespace UnityFx.Outline /// /// /// - /// + /// [DisallowMultipleComponent] [RequireComponent(typeof(Camera))] public sealed partial class OutlineEffect : MonoBehaviour { #region data - [SerializeField] + [SerializeField, Tooltip("Sets outline resources to use. Do not change the defaults unless you know what you're doing.")] private OutlineResources _outlineResources; - [SerializeField] + [SerializeField, Tooltip("Collection of outline layers to use. This can be used to share outline settings between multiple cameras.")] private OutlineLayerCollection _outlineLayers; [SerializeField, HideInInspector] private CameraEvent _cameraEvent = OutlineRenderer.RenderEvent; private CommandBuffer _commandBuffer; - private bool _changed; - -#if UNITY_EDITOR - - private int _commandBufferUpdateCounter; - -#endif #endregion #region interface -#if UNITY_EDITOR - - /// - /// Gets number of the command buffer updates since its creation. Only available in editor. - /// - public int NumberOfCommandBufferUpdates - { - get - { - return _commandBufferUpdateCounter; - } - } - -#endif - /// /// Gets or sets resources used by the effect implementation. /// @@ -68,44 +46,26 @@ public OutlineResources OutlineResources } set { - if (value == null) + if (ReferenceEquals(value, null)) { throw new ArgumentNullException("OutlineResources"); } - if (_outlineResources != value) - { - _outlineResources = value; - _changed = true; - } + _outlineResources = value; } } /// - /// Gets or sets outline layers. + /// Gets collection of outline layers. /// - /// Thrown if setter argument is . /// - public OutlineLayerCollection OutlineLayers + public IList OutlineLayers { get { CreateLayersIfNeeded(); return _outlineLayers; } - set - { - if (value == null) - { - throw new ArgumentNullException("OutlineLayers"); - } - - if (_outlineLayers != value) - { - _outlineLayers = value; - _changed = true; - } - } } /// @@ -138,29 +98,48 @@ public CameraEvent RenderEvent } /// - /// Shares with another instance. + /// Adds the passed to the first outline layer. Creates the layer if needed. /// - /// Effect to share with. - /// - public void ShareLayersWith(OutlineEffect other) + /// The to add and render outline for. + /// + public void AddGameObject(GameObject go) { - if (other) + AddGameObject(go, 0); + } + + /// + /// Adds the passed to the specified outline layer. Creates the layer if needed. + /// + /// The to add and render outline for. + /// + public void AddGameObject(GameObject go, int layerIndex) + { + if (layerIndex < 0) { - CreateLayersIfNeeded(); + throw new ArgumentOutOfRangeException("layerIndex"); + } - other._outlineLayers = _outlineLayers; - other._changed = true; + CreateLayersIfNeeded(); + + while (_outlineLayers.Count <= layerIndex) + { + _outlineLayers.Add(new OutlineLayer()); } + + _outlineLayers[layerIndex].Add(go); } /// - /// Detects changes in nested assets and updates outline if needed. The actual update might not be invoked until the next frame. + /// Shares with another instance. /// - public void UpdateChanged() + /// Effect to share with. + /// + public void ShareLayersWith(OutlineEffect other) { - if (_outlineLayers) + if (other) { - _outlineLayers.UpdateChanged(); + CreateLayersIfNeeded(); + other._outlineLayers = _outlineLayers; } } @@ -183,14 +162,7 @@ private void OnEnable() name = string.Format("{0} - {1}", GetType().Name, name) }; - _changed = true; - -#if UNITY_EDITOR - - _commandBufferUpdateCounter = 0; - -#endif - + camera.depthTextureMode |= DepthTextureMode.Depth; camera.AddCommandBuffer(_cameraEvent, _commandBuffer); } } @@ -213,24 +185,9 @@ private void OnDisable() private void Update() { -#if UNITY_EDITOR - - UpdateChanged(); - -#endif - - if (_outlineLayers && (_changed || _outlineLayers.IsChanged)) - { - FillCommandBuffer(); - } - } - - private void LateUpdate() - { - // TODO: Find a way to do this once per OutlineLayerCollection instance. if (_outlineLayers) { - _outlineLayers.AcceptChanges(); + FillCommandBuffer(); } } @@ -245,15 +202,9 @@ private void OnDestroy() #if UNITY_EDITOR - private void OnValidate() - { - _changed = true; - } - private void Reset() { _outlineLayers = null; - _changed = true; } #endif @@ -273,14 +224,6 @@ private void FillCommandBuffer() _outlineLayers.Render(renderer, _outlineResources); } } - - _changed = false; - -#if UNITY_EDITOR - - _commandBufferUpdateCounter++; - -#endif } private void CreateLayersIfNeeded() diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineEffect.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineEffect.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineEffect.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineEffect.cs.meta diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.cs similarity index 86% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.cs rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.cs index a31b3dd..eac4774 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.cs @@ -4,7 +4,6 @@ using System; using System.Collections; using System.Collections.Generic; -using System.ComponentModel; using System.Text; using UnityEngine; @@ -17,7 +16,7 @@ namespace UnityFx.Outline /// /// [Serializable] - public sealed partial class OutlineLayer : ICollection, IOutlineSettingsEx, IChangeTracking + public sealed partial class OutlineLayer : ICollection, IOutlineSettingsEx { #region data @@ -31,8 +30,7 @@ public sealed partial class OutlineLayer : ICollection, IOutlineSett private bool _enabled = true; private OutlineLayerCollection _parentCollection; - private Dictionary _outlineObjects = new Dictionary(); - private bool _changed; + private Dictionary _outlineObjects = new Dictionary(); #endregion @@ -66,11 +64,7 @@ public bool Enabled } set { - if (_enabled != value) - { - _enabled = value; - _changed = true; - } + _enabled = value; } } @@ -95,7 +89,6 @@ public int Priority } _zOrder = value; - _changed = true; } } } @@ -137,7 +130,7 @@ public OutlineLayer(string name) /// Thrown if is . public OutlineLayer(OutlineSettings settings) { - if (settings == null) + if (ReferenceEquals(settings, null)) { throw new ArgumentNullException("settings"); } @@ -151,7 +144,7 @@ public OutlineLayer(OutlineSettings settings) /// Thrown if is . public OutlineLayer(string name, OutlineSettings settings) { - if (settings == null) + if (ReferenceEquals(settings, null)) { throw new ArgumentNullException("settings"); } @@ -166,15 +159,16 @@ public OutlineLayer(string name, OutlineSettings settings) /// Thrown if is . public void Add(GameObject go, int ignoreLayerMask) { - if (go == null) + if (ReferenceEquals(go, null)) { throw new ArgumentNullException("go"); } if (!_outlineObjects.ContainsKey(go)) { - _outlineObjects.Add(go, new RendererCollection(go, ignoreLayerMask)); - _changed = true; + var renderers = new OutlineRendererCollection(go); + renderers.Reset(false, ignoreLayerMask); + _outlineObjects.Add(go, renderers); } } @@ -193,12 +187,12 @@ public void Add(GameObject go, string ignoreLayer) /// Thrown if is . public bool TryGetRenderers(GameObject go, out ICollection renderers) { - if (go == null) + if (ReferenceEquals(go, null)) { throw new ArgumentNullException("go"); } - RendererCollection result; + OutlineRendererCollection result; if (_outlineObjects.TryGetValue(go, out result)) { @@ -217,13 +211,13 @@ public void Render(OutlineRenderer renderer, OutlineResources resources) { if (_enabled) { - _settings.SetResources(resources); + _settings.OutlineResources = resources; foreach (var kvp in _outlineObjects) { if (kvp.Key && kvp.Key.activeInHierarchy) { - renderer.Render(kvp.Value, _settings.OutlineResources, _settings); + renderer.Render(kvp.Value.GetList(), resources, _settings); } } } @@ -255,15 +249,10 @@ internal OutlineLayerCollection ParentCollection internal void Reset() { - _settings.SetResources(null); + _settings.OutlineResources = null; _outlineObjects.Clear(); } - internal void UpdateChanged() - { - _settings.UpdateChanged(); - } - internal void SetCollection(OutlineLayerCollection collection) { if (_parentCollection == null || collection == null || _parentCollection == collection) @@ -339,15 +328,15 @@ public float OutlineIntensity } /// - public OutlineMode OutlineMode + public OutlineRenderFlags OutlineRenderMode { get { - return _settings.OutlineMode; + return _settings.OutlineRenderMode; } set { - _settings.OutlineMode = value; + _settings.OutlineRenderMode = value; } } @@ -382,10 +371,9 @@ public void Add(GameObject go) /// public bool Remove(GameObject go) { - if (go != null && _outlineObjects.Remove(go)) + if (!ReferenceEquals(go, null)) { - _changed = true; - return true; + return _outlineObjects.Remove(go); } return false; @@ -405,11 +393,7 @@ public bool Contains(GameObject go) /// public void Clear() { - if (_outlineObjects.Count > 0) - { - _outlineObjects.Clear(); - _changed = true; - } + _outlineObjects.Clear(); } /// @@ -435,26 +419,6 @@ IEnumerator IEnumerable.GetEnumerator() #endregion - #region IChangeTracking - - /// - public bool IsChanged - { - get - { - return _changed || _settings.IsChanged; - } - } - - /// - public void AcceptChanges() - { - _settings.AcceptChanges(); - _changed = false; - } - - #endregion - #region IEquatable /// diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.cs.meta diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayerCollection.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayerCollection.cs similarity index 86% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayerCollection.cs rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayerCollection.cs index 84895ed..d28f982 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayerCollection.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayerCollection.cs @@ -4,7 +4,6 @@ using System; using System.Collections; using System.Collections.Generic; -using System.ComponentModel; using UnityEngine; namespace UnityFx.Outline @@ -16,7 +15,7 @@ namespace UnityFx.Outline /// /// [CreateAssetMenu(fileName = "OutlineLayerCollection", menuName = "UnityFx/Outline/Outline Layer Collection")] - public sealed class OutlineLayerCollection : ScriptableObject, IList, IChangeTracking + public sealed class OutlineLayerCollection : ScriptableObject, IList { #region data @@ -34,7 +33,6 @@ public int Compare(OutlineLayer x, OutlineLayer y) private List _sortedLayers = new List(); private OutlineLayerComparer _sortComparer = new OutlineLayerComparer(); private bool _orderChanged = true; - private bool _changed = true; #endregion @@ -72,7 +70,6 @@ public void Render(OutlineRenderer renderer, OutlineResources resources) internal void SetOrderChanged() { _orderChanged = true; - _changed = true; } internal void Reset() @@ -83,14 +80,6 @@ internal void Reset() } } - internal void UpdateChanged() - { - foreach (var layer in _layers) - { - layer.UpdateChanged(); - } - } - #endregion #region ScriptableObject @@ -136,7 +125,6 @@ public OutlineLayer this[int layerIndex] _layers[layerIndex] = value; _orderChanged = true; - _changed = true; } } } @@ -167,7 +155,6 @@ public void Insert(int index, OutlineLayer layer) _layers.Insert(index, layer); _orderChanged = true; - _changed = true; } } @@ -180,7 +167,6 @@ public void RemoveAt(int index) _layers.RemoveAt(index); _orderChanged = true; - _changed = true; } } @@ -219,9 +205,7 @@ public void Add(OutlineLayer layer) layer.SetCollection(this); _layers.Add(layer); - _orderChanged = true; - _changed = true; } } @@ -233,7 +217,6 @@ public bool Remove(OutlineLayer layer) layer.SetCollection(null); _sortedLayers.Remove(layer); - _changed = true; return true; } @@ -253,7 +236,6 @@ public void Clear() _layers.Clear(); _sortedLayers.Clear(); - _changed = true; } } @@ -291,43 +273,6 @@ IEnumerator IEnumerable.GetEnumerator() #endregion - #region IChangeTracking - - /// - public bool IsChanged - { - get - { - if (_changed) - { - return true; - } - - foreach (var layer in _layers) - { - if (layer.IsChanged) - { - return true; - } - } - - return false; - } - } - - /// - public void AcceptChanges() - { - foreach (var layer in _layers) - { - layer.AcceptChanges(); - } - - _changed = false; - } - - #endregion - #region implementation private void UpdateSortedLayersIfNeeded() diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayerCollection.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayerCollection.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayerCollection.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayerCollection.cs.meta diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineMode.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderFlags.cs similarity index 56% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineMode.cs rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderFlags.cs index b628af7..c911c0d 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineMode.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderFlags.cs @@ -6,18 +6,24 @@ namespace UnityFx.Outline { /// - /// Enumerates outline modes. + /// Enumerates outline render modes. /// - public enum OutlineMode + [Flags] + public enum OutlineRenderFlags { /// /// Outline frame is a solid line. /// - Solid, + Solid = 0, /// /// Outline frame is blurred. /// - Blurred + Blurred = 1, + + /// + /// Enabled depth testing when rendering object outlines. Only visible parts of objects are outlined. + /// + EnableDepthTesting = 0x100 } } diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineMode.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderFlags.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineMode.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderFlags.cs.meta diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderer.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderer.cs similarity index 69% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderer.cs rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderer.cs index 2d33e1b..3569cf7 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderer.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderer.cs @@ -125,7 +125,7 @@ public struct OutlineRenderer : IDisposable /// Render target. /// Thrown if is . public OutlineRenderer(CommandBuffer commandBuffer, BuiltinRenderTextureType rt) - : this(commandBuffer, rt, rt) + : this(commandBuffer, rt, rt, Vector2Int.zero) { } @@ -136,7 +136,7 @@ public OutlineRenderer(CommandBuffer commandBuffer, BuiltinRenderTextureType rt) /// Render target. /// Thrown if is . public OutlineRenderer(CommandBuffer commandBuffer, RenderTargetIdentifier rt) - : this(commandBuffer, rt, rt) + : this(commandBuffer, rt, rt, Vector2Int.zero) { } @@ -148,19 +148,35 @@ public OutlineRenderer(CommandBuffer commandBuffer, RenderTargetIdentifier rt) /// Render target. /// Thrown if is . public OutlineRenderer(CommandBuffer commandBuffer, RenderTargetIdentifier src, RenderTargetIdentifier dst) + : this(commandBuffer, src, dst, Vector2Int.zero) + { + } + + /// + /// Initializes a new instance of the struct. + /// + /// A to render the effect to. It should be cleared manually (if needed) before passing to this method. + /// Source image. Can be the same as . + /// Render target. + /// Size of the temporaty render textures. + /// Thrown if is . + public OutlineRenderer(CommandBuffer commandBuffer, RenderTargetIdentifier src, RenderTargetIdentifier dst, Vector2Int rtSize) { if (commandBuffer == null) { throw new ArgumentNullException("commandBuffer"); } + var cx = rtSize.x > 0 ? rtSize.x : -1; + var cy = rtSize.y > 0 ? rtSize.y : -1; + _source = src; _destination = dst; _commandBuffer = commandBuffer; _commandBuffer.BeginSample(EffectName); - _commandBuffer.GetTemporaryRT(_maskRtId, -1, -1, 0, FilterMode.Bilinear, RenderTextureFormat.R8); - _commandBuffer.GetTemporaryRT(_hPassRtId, -1, -1, 0, FilterMode.Bilinear, RenderTextureFormat.R8); + _commandBuffer.GetTemporaryRT(_maskRtId, cx, cy, 0, FilterMode.Bilinear, RenderTextureFormat.R8); + _commandBuffer.GetTemporaryRT(_hPassRtId, cx, cy, 0, FilterMode.Bilinear, RenderTextureFormat.R8); // Need to copy src content into dst if they are not the same. For instance this is the case when rendering // the outline effect as part of Unity Post Processing stack. @@ -182,6 +198,38 @@ public OutlineRenderer(CommandBuffer commandBuffer, RenderTargetIdentifier src, } } + /// + /// Renders outline around a single object. This version allows enumeration of with no GC allocations. + /// + /// One or more renderers representing a single object to be outlined. + /// Outline resources. + /// Outline settings. + /// Thrown if any of the arguments is . + /// + /// + public void Render(IList renderers, OutlineResources resources, IOutlineSettings settings) + { + if (renderers == null) + { + throw new ArgumentNullException("renderers"); + } + + if (resources == null) + { + throw new ArgumentNullException("resources"); + } + + if (settings == null) + { + throw new ArgumentNullException("settings"); + } + + Init(resources, settings); + RenderObject(resources, settings, renderers); + RenderHPass(resources, settings); + RenderVPassBlend(resources, settings); + } + /// /// Renders outline around a single object. /// @@ -189,6 +237,8 @@ public OutlineRenderer(CommandBuffer commandBuffer, RenderTargetIdentifier src, /// Outline resources. /// Outline settings. /// Thrown if any of the arguments is . + /// + /// public void Render(IEnumerable renderers, OutlineResources resources, IOutlineSettings settings) { if (renderers == null) @@ -207,7 +257,7 @@ public void Render(IEnumerable renderers, OutlineResources resources, } Init(resources, settings); - RenderObject(renderers, resources.RenderMaterial); + RenderObject(resources, settings, renderers); RenderHPass(resources, settings); RenderVPassBlend(resources, settings); } @@ -219,6 +269,8 @@ public void Render(IEnumerable renderers, OutlineResources resources, /// Outline resources. /// Outline settings. /// Thrown if any of the arguments is . + /// + /// public void Render(Renderer renderer, OutlineResources resources, IOutlineSettings settings) { if (renderer == null) @@ -237,7 +289,7 @@ public void Render(Renderer renderer, OutlineResources resources, IOutlineSettin } Init(resources, settings); - RenderObject(renderer, resources.RenderMaterial); + RenderObject(resources, settings, renderer); RenderHPass(resources, settings); RenderVPassBlend(resources, settings); } @@ -302,41 +354,85 @@ private void Init(OutlineResources resources, IOutlineSettings settings) _commandBuffer.SetGlobalFloatArray(resources.GaussSamplesId, resources.GetGaussSamples(settings.OutlineWidth)); } - private void RenderObject(IEnumerable renderers, Material mat) + private void RenderObjectClear(bool depthTestEnabled) { + if (depthTestEnabled) + { + // NOTE: Use the camera depth buffer when rendering the mask. Shader only reads from the depth buffer (ZWrite Off). #if UNITY_2018_2_OR_NEWER - _commandBuffer.SetRenderTarget(_maskRtId, RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store); + _commandBuffer.SetRenderTarget(_maskRtId, RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store, BuiltinRenderTextureType.Depth, RenderBufferLoadAction.Load, RenderBufferStoreAction.DontCare); #else - _commandBuffer.SetRenderTarget(_maskRtId); + _commandBuffer.SetRenderTarget(_maskRtId, BuiltinRenderTextureType.Depth); #endif + } + else + { +#if UNITY_2018_2_OR_NEWER + _commandBuffer.SetRenderTarget(_maskRtId, RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store); +#else + _commandBuffer.SetRenderTarget(_maskRtId); +#endif + } + _commandBuffer.ClearRenderTarget(false, true, Color.clear); + } + + private void RenderObject(OutlineResources resources, IOutlineSettings settings, IList renderers) + { + RenderObjectClear((settings.OutlineRenderMode & OutlineRenderFlags.EnableDepthTesting) != 0); + + for (var i = 0; i < renderers.Count; ++i) + { + var r = renderers[i]; + + if (r && r.enabled && r.gameObject.activeInHierarchy) + { + // NOTE: Accessing Renderer.sharedMaterials triggers GC.Alloc. That's why we use a temporary + // list of materials, cached with the outline resources. + r.GetSharedMaterials(resources.TmpMaterials); + for (var j = 0; j < resources.TmpMaterials.Count; ++j) + { + _commandBuffer.DrawRenderer(r, resources.RenderMaterial, j); + } + } + } + } + + private void RenderObject(OutlineResources resources, IOutlineSettings settings, IEnumerable renderers) + { + RenderObjectClear((settings.OutlineRenderMode & OutlineRenderFlags.EnableDepthTesting) != 0); + + // NOTE: Calling IEnumerable.GetEnumerator() triggers GC.Alloc. foreach (var r in renderers) { if (r && r.enabled && r.gameObject.activeInHierarchy) { - for (var j = 0; j < r.sharedMaterials.Length; ++j) + // NOTE: Accessing Renderer.sharedMaterials triggers GC.Alloc. That's why we use a temporary + // list of materials, cached with the outline resources. + r.GetSharedMaterials(resources.TmpMaterials); + + for (var j = 0; j < resources.TmpMaterials.Count; ++j) { - _commandBuffer.DrawRenderer(r, mat, j); + _commandBuffer.DrawRenderer(r, resources.RenderMaterial, j); } } } } - private void RenderObject(Renderer renderer, Material mat) + private void RenderObject(OutlineResources resources, IOutlineSettings settings, Renderer renderer) { -#if UNITY_2018_2_OR_NEWER - _commandBuffer.SetRenderTarget(_maskRtId, RenderBufferLoadAction.DontCare, RenderBufferStoreAction.Store); -#else - _commandBuffer.SetRenderTarget(_maskRtId); -#endif - _commandBuffer.ClearRenderTarget(false, true, Color.clear); + RenderObjectClear((settings.OutlineRenderMode & OutlineRenderFlags.EnableDepthTesting) != 0); if (renderer && renderer.gameObject.activeInHierarchy && renderer.enabled) { - for (var i = 0; i < renderer.sharedMaterials.Length; ++i) + // NOTE: Accessing Renderer.sharedMaterials triggers GC.Alloc. That's why we use a temporary + // list of materials, cached with the outline resources. + renderer.GetSharedMaterials(resources.TmpMaterials); + + for (var i = 0; i < resources.TmpMaterials.Count; ++i) { - _commandBuffer.DrawRenderer(renderer, mat, i); + _commandBuffer.DrawRenderer(renderer, resources.RenderMaterial, i); } } } @@ -369,13 +465,13 @@ private void RenderVPassBlend(OutlineResources resources, IOutlineSettings setti props.SetFloat(resources.WidthId, settings.OutlineWidth); props.SetColor(resources.ColorId, settings.OutlineColor); - if (settings.OutlineMode == OutlineMode.Solid) + if ((settings.OutlineRenderMode & OutlineRenderFlags.Blurred) != 0) { - props.SetFloat(resources.IntensityId, SolidIntensity); + props.SetFloat(resources.IntensityId, settings.OutlineIntensity); } else { - props.SetFloat(resources.IntensityId, settings.OutlineIntensity); + props.SetFloat(resources.IntensityId, SolidIntensity); } // Set source texture as _MainTex to match Blit behavior. diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderer.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderer.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderer.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRenderer.cs.meta diff --git a/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRendererCollection.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRendererCollection.cs new file mode 100644 index 0000000..730e6dd --- /dev/null +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRendererCollection.cs @@ -0,0 +1,146 @@ +// Copyright (C) 2019-2020 Alexander Bogarsukov. All rights reserved. +// See the LICENSE.md file in the project root for more information. + +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace UnityFx.Outline +{ + internal class OutlineRendererCollection : ICollection + { + #region data + + private readonly List _renderers = new List(); + private readonly GameObject _go; + + #endregion + + #region interface + + internal OutlineRendererCollection(GameObject go) + { + Debug.Assert(go); + _go = go; + } + + internal List GetList() + { + return _renderers; + } + + internal void Reset(bool includeInactive) + { + _go.GetComponentsInChildren(includeInactive, _renderers); + } + + internal void Reset(bool includeInactive, int ignoreLayerMask) + { + _renderers.Clear(); + + var renderers = _go.GetComponentsInChildren(includeInactive); + + if (renderers != null) + { + if (ignoreLayerMask != 0) + { + foreach (var renderer in renderers) + { + if (((1 << renderer.gameObject.layer) & ignoreLayerMask) == 0) + { + _renderers.Add(renderer); + } + } + } + else + { + foreach (var renderer in renderers) + { + _renderers.Add(renderer); + } + } + } + } + + #endregion + + #region ICollection + + public int Count + { + get + { + return _renderers.Count; + } + } + + public bool IsReadOnly + { + get + { + return false; + } + } + + public void Add(Renderer renderer) + { + Validate(renderer); + + _renderers.Add(renderer); + } + + public bool Remove(Renderer renderer) + { + return _renderers.Remove(renderer); + } + + public void Clear() + { + _renderers.Clear(); + } + + public bool Contains(Renderer renderer) + { + return _renderers.Contains(renderer); + } + + public void CopyTo(Renderer[] array, int arrayIndex) + { + _renderers.CopyTo(array, arrayIndex); + } + + #endregion + + #region IEnumerable + + public IEnumerator GetEnumerator() + { + return _renderers.GetEnumerator(); + } + + IEnumerator IEnumerable.GetEnumerator() + { + return _renderers.GetEnumerator(); + } + + #endregion + + #region implementation + + private void Validate(Renderer renderer) + { + if (renderer == null) + { + throw new ArgumentNullException("renderer"); + } + + if (!renderer.transform.IsChildOf(_go.transform)) + { + throw new ArgumentException(string.Format("Only children of the {0} are allowed.", _go.name), "renderer"); + } + } + + #endregion + } +} diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.Renderers.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRendererCollection.cs.meta similarity index 83% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.Renderers.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRendererCollection.cs.meta index 02f6567..f582b73 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.Renderers.cs.meta +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineRendererCollection.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: e24c24bdabda57c45a4a803464696afc +guid: 89621a3cc73c4e6498a00b2d180ed462 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineResources.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineResources.cs similarity index 90% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineResources.cs rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineResources.cs index 945e013..8d8f169 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineResources.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineResources.cs @@ -2,6 +2,7 @@ // See the LICENSE.md file in the project root for more information. using System; +using System.Collections.Generic; using UnityEngine; namespace UnityFx.Outline @@ -21,7 +22,7 @@ public sealed class OutlineResources : ScriptableObject private MaterialPropertyBlock _hPassProperties; private MaterialPropertyBlock _vPassProperties; private Mesh _fullscreenTriangleMesh; - private float[][] _gaussSmples; + private float[][] _gaussSamples; #endregion @@ -47,6 +48,11 @@ public sealed class OutlineResources : ScriptableObject /// public readonly int GaussSamplesId = Shader.PropertyToID("_GaussSamples"); + /// + /// Temp materials list. Used by to avoid GC allocations. + /// + public readonly List TmpMaterials = new List(); + /// /// Gets or sets a that renders objects outlined with a solid while color. /// @@ -198,17 +204,19 @@ public bool IsValid /// public float[] GetGaussSamples(int width) { - if (_gaussSmples == null) + var index = Mathf.Clamp(width, 1, OutlineRenderer.MaxWidth) - 1; + + if (_gaussSamples == null) { - _gaussSmples = new float[OutlineRenderer.MaxWidth][]; + _gaussSamples = new float[OutlineRenderer.MaxWidth][]; } - if (_gaussSmples[width] == null) + if (_gaussSamples[index] == null) { - _gaussSmples[width] = OutlineRenderer.GetGaussSamples(width, null); + _gaussSamples[index] = OutlineRenderer.GetGaussSamples(width, null); } - return _gaussSmples[width]; + return _gaussSamples[index]; } /// diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineResources.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineResources.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineResources.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineResources.cs.meta diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettings.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettings.cs similarity index 94% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettings.cs rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettings.cs index be81f4a..2535031 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettings.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettings.cs @@ -22,7 +22,7 @@ public sealed class OutlineSettings : ScriptableObject, IOutlineSettings [SerializeField, HideInInspector] private float _outlineIntensity = 2; [SerializeField, HideInInspector] - private OutlineMode _outlineMode; + private OutlineRenderFlags _outlineMode; #endregion @@ -37,7 +37,7 @@ public static bool Equals(IOutlineSettings lhs, IOutlineSettings rhs) return lhs.OutlineColor == rhs.OutlineColor && lhs.OutlineWidth == rhs.OutlineWidth && - lhs.OutlineMode == rhs.OutlineMode && + lhs.OutlineRenderMode == rhs.OutlineRenderMode && Mathf.Approximately(lhs.OutlineIntensity, rhs.OutlineIntensity); } @@ -85,7 +85,7 @@ public float OutlineIntensity } /// - public OutlineMode OutlineMode + public OutlineRenderFlags OutlineRenderMode { get { diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettings.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettings.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettings.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettings.cs.meta diff --git a/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettingsInstance.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettingsInstance.cs new file mode 100644 index 0000000..a39ef7e --- /dev/null +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettingsInstance.cs @@ -0,0 +1,178 @@ +// Copyright (C) 2019-2020 Alexander Bogarsukov. All rights reserved. +// See the LICENSE.md file in the project root for more information. + +using System; +using UnityEngine; + +namespace UnityFx.Outline +{ + [Serializable] + internal class OutlineSettingsInstance : IOutlineSettingsEx + { + #region data + +#pragma warning disable 0649 + + // NOTE: There are custom editors for public components, so no need to show these in default inspector. + [SerializeField, HideInInspector] + private OutlineSettings _outlineSettings; + [SerializeField, HideInInspector] + private Color _outlineColor = Color.red; + [SerializeField, HideInInspector] + private int _outlineWidth = 4; + [SerializeField, HideInInspector] + private float _outlineIntensity = 2; + [SerializeField, HideInInspector] + private OutlineRenderFlags _outlineMode; + +#pragma warning restore 0649 + + private OutlineResources _resources; + + #endregion + + #region interface + + public OutlineResources OutlineResources + { + get + { + return _resources; + } + set + { + _resources = value; + } + } + + public bool RequiresCameraDepth + { + get + { + var renderMode = _outlineMode; + + if (!ReferenceEquals(_outlineSettings, null)) + { + renderMode = _outlineSettings.OutlineRenderMode; + } + + return (renderMode & OutlineRenderFlags.EnableDepthTesting) != 0; + } + } + + internal OutlineSettingsInstance() + { + } + + internal OutlineSettingsInstance(OutlineResources resources) + { + _resources = resources; + } + + #endregion + + #region IOutlineSettingsEx + + public OutlineSettings OutlineSettings + { + get + { + return _outlineSettings; + } + set + { + _outlineSettings = value; + } + } + + #endregion + + #region IOutlineSettings + + /// + public Color OutlineColor + { + get + { + if (!ReferenceEquals(_outlineSettings, null)) + { + return _outlineSettings.OutlineColor; + } + + return _outlineColor; + } + set + { + _outlineColor = value; + } + } + + /// + public int OutlineWidth + { + get + { + if (!ReferenceEquals(_outlineSettings, null)) + { + return _outlineSettings.OutlineWidth; + } + + return _outlineWidth; + } + set + { + _outlineWidth = Mathf.Clamp(value, OutlineRenderer.MinWidth, OutlineRenderer.MaxWidth); + } + } + + /// + public float OutlineIntensity + { + get + { + if (!ReferenceEquals(_outlineSettings, null)) + { + return _outlineSettings.OutlineIntensity; + } + + return _outlineIntensity; + } + set + { + _outlineIntensity = Mathf.Clamp(value, OutlineRenderer.MinIntensity, OutlineRenderer.MaxIntensity); + } + } + + /// + public OutlineRenderFlags OutlineRenderMode + { + get + { + if (!ReferenceEquals(_outlineSettings, null)) + { + return _outlineSettings.OutlineRenderMode; + } + + return _outlineMode; + } + set + { + _outlineMode = value; + } + } + + #endregion + + #region IEquatable + + public bool Equals(IOutlineSettings other) + { + return OutlineSettings.Equals(this, other); + } + + #endregion + + #region implementation + #endregion + } +} diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettingsInstance.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettingsInstance.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettingsInstance.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettingsInstance.cs.meta diff --git a/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/Properties.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/Properties.meta new file mode 100644 index 0000000..708e1e7 --- /dev/null +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/Properties.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7bd10545b6de6654b864faecdec920cd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/AssemblyInfo.cs b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/Properties/AssemblyInfo.cs similarity index 88% rename from Packages/UnityFx.Outline/Runtime/Scripts/AssemblyInfo.cs rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/Properties/AssemblyInfo.cs index 4e069a1..d7b9f2c 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/AssemblyInfo.cs +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/Properties/AssemblyInfo.cs @@ -17,7 +17,7 @@ [assembly: AssemblyConfiguration("Release")] #endif [assembly: AssemblyCompany("")] -[assembly: AssemblyCopyright("Copyright © Alexander Bogarsukov 2019")] +[assembly: AssemblyCopyright("Copyright © Alexander Bogarsukov 2019-2020")] [assembly: AssemblyCulture("")] // Setting ComVisible to false makes the types in this assembly not visible @@ -25,8 +25,5 @@ // COM, set the ComVisible attribute to true on that type. [assembly: ComVisible(false)] -// The following GUID is for the ID of the typelib if this project is exposed to COM. -[assembly: Guid("1ace8625-97c5-4d37-a649-03975d187542")] - // Make internals visible to the editor assembly. [assembly: InternalsVisibleTo("UnityFx.Outline.Editor")] diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/AssemblyInfo.cs.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/Properties/AssemblyInfo.cs.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Scripts/AssemblyInfo.cs.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Scripts/Properties/AssemblyInfo.cs.meta diff --git a/Packages/UnityFx.Outline/Runtime/Shaders.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Shaders.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders.meta diff --git a/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass1.shader b/Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass1.shader similarity index 95% rename from Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass1.shader rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass1.shader index 8c3b7a4..2febb62 100644 --- a/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass1.shader +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass1.shader @@ -25,9 +25,12 @@ Shader "UnityFx/Outline/HPass" #pragma fragment Frag #include "UnityCG.cginc" + CBUFFER_START(UnityPerMaterial) + int _Width; + CBUFFER_END + UNITY_DECLARE_TEX2D(_MaskTex); float2 _MaskTex_TexelSize; - int _Width; float _GaussSamples[32]; struct v2f diff --git a/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass1.shader.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass1.shader.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass1.shader.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass1.shader.meta diff --git a/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass2.shader b/Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass2.shader similarity index 94% rename from Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass2.shader rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass2.shader index c8be4b7..dbf1a18 100644 --- a/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass2.shader +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass2.shader @@ -29,13 +29,16 @@ Shader "UnityFx/Outline/VPassBlend" #pragma fragment Frag #include "UnityCG.cginc" + CBUFFER_START(UnityPerMaterial) + float _Intensity; + int _Width; + float4 _Color; + CBUFFER_END + UNITY_DECLARE_TEX2D(_MaskTex); float2 _MaskTex_TexelSize; UNITY_DECLARE_TEX2D(_HPassTex); float2 _HPassTex_TexelSize; - float4 _Color; - float _Intensity; - int _Width; float _GaussSamples[32]; struct v2f diff --git a/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass2.shader.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass2.shader.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass2.shader.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlinePass2.shader.meta diff --git a/Packages/UnityFx.Outline/Runtime/Shaders/OutlineRenderColor.shader b/Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlineRenderColor.shader similarity index 98% rename from Packages/UnityFx.Outline/Runtime/Shaders/OutlineRenderColor.shader rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlineRenderColor.shader index ab3f9a6..bf53276 100644 --- a/Packages/UnityFx.Outline/Runtime/Shaders/OutlineRenderColor.shader +++ b/Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlineRenderColor.shader @@ -9,7 +9,7 @@ Shader "UnityFx/Outline/RenderColor" { Cull Off ZWrite Off - ZTest Always + ZTest LEqual Lighting Off Pass diff --git a/Packages/UnityFx.Outline/Runtime/Shaders/OutlineRenderColor.shader.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlineRenderColor.shader.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/Shaders/OutlineRenderColor.shader.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/Shaders/OutlineRenderColor.shader.meta diff --git a/Packages/UnityFx.Outline/Runtime/UnityFx.Outline.asmdef b/Outline.Core/Packages/UnityFx.Outline/Runtime/UnityFx.Outline.asmdef similarity index 100% rename from Packages/UnityFx.Outline/Runtime/UnityFx.Outline.asmdef rename to Outline.Core/Packages/UnityFx.Outline/Runtime/UnityFx.Outline.asmdef diff --git a/Packages/UnityFx.Outline/Runtime/UnityFx.Outline.asmdef.meta b/Outline.Core/Packages/UnityFx.Outline/Runtime/UnityFx.Outline.asmdef.meta similarity index 100% rename from Packages/UnityFx.Outline/Runtime/UnityFx.Outline.asmdef.meta rename to Outline.Core/Packages/UnityFx.Outline/Runtime/UnityFx.Outline.asmdef.meta diff --git a/Packages/UnityFx.Outline/package.json b/Outline.Core/Packages/UnityFx.Outline/package.json similarity index 76% rename from Packages/UnityFx.Outline/package.json rename to Outline.Core/Packages/UnityFx.Outline/package.json index 1a5ff20..b41e8a4 100644 --- a/Packages/UnityFx.Outline/package.json +++ b/Outline.Core/Packages/UnityFx.Outline/package.json @@ -1,8 +1,8 @@ { "name": "com.unityfx.outline", - "version": "0.7.1", + "version": "0.7.2", "displayName": "Screen-space outline", - "description": "Configurable per-object and per-camera outlines. Both solid and blurred outline modes are supported (Gauss blur). The outlines can be easily customized either through scripts or with Unity editor (both in edit-time or runtime).", + "description": "Configurable per-object and per-camera outline effect implementation for built-in render pipeline. Both solid and blurred outline modes are supported (Gauss blur). Scriptable render pipeline is not supported.", "unity": "2017.2", "keywords": [ "UnityFx", diff --git a/Packages/UnityFx.Outline/package.json.meta b/Outline.Core/Packages/UnityFx.Outline/package.json.meta similarity index 100% rename from Packages/UnityFx.Outline/package.json.meta rename to Outline.Core/Packages/UnityFx.Outline/package.json.meta diff --git a/Packages/manifest.json b/Outline.Core/Packages/manifest.json similarity index 86% rename from Packages/manifest.json rename to Outline.Core/Packages/manifest.json index 2fb6ccc..2ca7506 100644 --- a/Packages/manifest.json +++ b/Outline.Core/Packages/manifest.json @@ -1,12 +1,6 @@ { "dependencies": { - "com.unity.ads": "2.0.8", - "com.unity.analytics": "3.2.2", - "com.unity.collab-proxy": "1.2.15", "com.unity.package-manager-ui": "2.0.8", - "com.unity.postprocessing": "2.2.2", - "com.unity.purchasing": "2.0.3", - "com.unity.textmeshpro": "1.4.1", "com.unity.modules.ai": "1.0.0", "com.unity.modules.animation": "1.0.0", "com.unity.modules.assetbundle": "1.0.0", diff --git a/Outline.Core/ProjectSettings/AudioManager.asset b/Outline.Core/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..27287fe --- /dev/null +++ b/Outline.Core/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/Outline.Core/ProjectSettings/ClusterInputManager.asset b/Outline.Core/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/Outline.Core/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/Outline.Core/ProjectSettings/DynamicsManager.asset b/Outline.Core/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..8db40ea --- /dev/null +++ b/Outline.Core/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 10 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0 + m_ClothInterCollisionStiffness: 0 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 0 + m_ClothInterCollisionSettingsToggle: 0 + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 diff --git a/Outline.Core/ProjectSettings/EditorBuildSettings.asset b/Outline.Core/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..0147887 --- /dev/null +++ b/Outline.Core/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: [] + m_configObjects: {} diff --git a/Outline.Core/ProjectSettings/EditorSettings.asset b/Outline.Core/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..fb66ccf --- /dev/null +++ b/Outline.Core/ProjectSettings/EditorSettings.asset @@ -0,0 +1,23 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 7 + m_ExternalVersionControlSupport: Hidden Meta Files + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 2 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerPaddingPower: 1 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;rsp + m_ProjectGenerationRootNamespace: + m_CollabEditorSettings: + inProgressEnabled: 1 + m_EnableTextureStreamingInPlayMode: 1 diff --git a/Outline.Core/ProjectSettings/GraphicsSettings.asset b/Outline.Core/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..b23b253 --- /dev/null +++ b/Outline.Core/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,63 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 12 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, + type: 0} + m_CustomRenderPipeline: {fileID: 0} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_LightsUseLinearIntensity: 0 + m_LightsUseColorTemperature: 0 + m_LogWhenShaderIsCompiled: 0 diff --git a/Outline.Core/ProjectSettings/InputManager.asset b/Outline.Core/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..17c8f53 --- /dev/null +++ b/Outline.Core/ProjectSettings/InputManager.asset @@ -0,0 +1,295 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 diff --git a/Outline.Core/ProjectSettings/NavMeshAreas.asset b/Outline.Core/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..3b0b7c3 --- /dev/null +++ b/Outline.Core/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/Outline.Core/ProjectSettings/Physics2DSettings.asset b/Outline.Core/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..6c5cf8a --- /dev/null +++ b/Outline.Core/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_AutoSimulation: 1 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 0 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/Outline.Core/ProjectSettings/PresetManager.asset b/Outline.Core/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..636a595 --- /dev/null +++ b/Outline.Core/ProjectSettings/PresetManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + m_DefaultList: [] diff --git a/Outline.Core/ProjectSettings/ProjectSettings.asset b/Outline.Core/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..f23af1f --- /dev/null +++ b/Outline.Core/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,598 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 18 + productGUID: b364a1e52fff61f4dba1069ff72e90f9 + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Outline.Core + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1024 + defaultScreenHeight: 768 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + m_MTRendering: 1 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + displayResolutionDialog: 1 + iosUseCustomAppBackgroundBehavior: 0 + iosAllowHTTPDownload: 1 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 0 + androidBlitType: 0 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 0 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + graphicsJobs: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + graphicsJobMode: 0 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + vulkanEnableSetSRGBWrite: 0 + m_SupportedAspectRatios: + 4:3: 1 + 5:4: 1 + 16:10: 1 + 16:9: 1 + Others: 1 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 0 + xboxOneEnable7thCore: 1 + isWsaHolographicRemotingEnabled: 0 + vrSettings: + cardboard: + depthFormat: 0 + enableTransitionView: 0 + daydream: + depthFormat: 0 + useSustainedPerformanceMode: 0 + enableVideoLayer: 0 + useProtectedVideoMemory: 0 + minimumSupportedHeadTracking: 0 + maximumSupportedHeadTracking: 1 + hololens: + depthFormat: 1 + depthBufferSharingEnabled: 1 + oculus: + sharedDepthBuffer: 1 + dashSupport: 1 + lowOverheadMode: 0 + protectedContext: 0 + v2Signing: 0 + enable360StereoCapture: 0 + protectGraphicsMemory: 0 + enableFrameTimingStats: 0 + useHDRDisplay: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + applicationIdentifier: {} + buildNumber: {} + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 16 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSTargetOSVersionString: 9.0 + tvOSSdkVersion: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 9.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + iPhoneSplashScreen: {fileID: 0} + iPhoneHighResSplashScreen: {fileID: 0} + iPhoneTallHighResSplashScreen: {fileID: 0} + iPhone47inSplashScreen: {fileID: 0} + iPhone55inPortraitSplashScreen: {fileID: 0} + iPhone55inLandscapeSplashScreen: {fileID: 0} + iPhone58inPortraitSplashScreen: {fileID: 0} + iPhone58inLandscapeSplashScreen: {fileID: 0} + iPadPortraitSplashScreen: {fileID: 0} + iPadHighResPortraitSplashScreen: {fileID: 0} + iPadLandscapeSplashScreen: {fileID: 0} + iPadHighResLandscapeSplashScreen: {fileID: 0} + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSUseLaunchScreenStoryboard: 0 + iOSLaunchScreenCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + iOSRenderExtraFrameOnPause: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + clonedFromGUID: 00000000000000000000000000000000 + templatePackageId: + templateDefaultScene: + AndroidTargetArchitectures: 1 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + resolutionDialogBanner: {fileID: 0} + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: [] + m_BuildTargetGraphicsAPIs: [] + m_BuildTargetVRSettings: [] + m_BuildTargetEnableVuforiaSettings: [] + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchTouchScreenUsage: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 6 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchPlayerConnectionEnabled: 1 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + spritePackerPolicy: + webGLMemorySize: 256 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + scriptingDefineSymbols: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + allowUnsafeCode: 0 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Outline.Core + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Outline.Core + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, + a: 1} + metroSplashScreenUseBackgroundColor: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + metroCompilationOverrides: 1 + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + xboxOneScriptCompiler: 0 + XboxOneOverrideIdentityName: + vrEditorSettings: + daydream: + daydreamIconForeground: {fileID: 0} + daydreamIconBackground: {fileID: 0} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_PrivateKeyPath: + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + facebookSdkVersion: + facebookAppId: + facebookCookies: 1 + facebookLogging: 1 + facebookStatus: 1 + facebookXfbml: 0 + facebookFrictionlessRequests: 1 + apiCompatibilityLevel: 6 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + projectName: + organizationId: + cloudEnabled: 0 + enableNativePlatformBackendsForNewInputSystem: 0 + disableOldInputManagerSupport: 0 + legacyClampBlendShapeWeights: 0 diff --git a/Outline.Core/ProjectSettings/ProjectVersion.txt b/Outline.Core/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..31a1862 --- /dev/null +++ b/Outline.Core/ProjectSettings/ProjectVersion.txt @@ -0,0 +1 @@ +m_EditorVersion: 2018.4.11f1 diff --git a/Outline.Core/ProjectSettings/QualitySettings.asset b/Outline.Core/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..92c2a3c --- /dev/null +++ b/Outline.Core/ProjectSettings/QualitySettings.asset @@ -0,0 +1,229 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 2 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 1 + textureQuality: 1 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.3 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.4 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 1 + lodBias: 0.7 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1.5 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + blendWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 2 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: + Android: 2 + Lumin: 5 + Nintendo Switch: 5 + PS4: 5 + Standalone: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/Outline.Core/ProjectSettings/TagManager.asset b/Outline.Core/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..1c92a78 --- /dev/null +++ b/Outline.Core/ProjectSettings/TagManager.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/Outline.Core/ProjectSettings/TimeManager.asset b/Outline.Core/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/Outline.Core/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/Outline.Core/ProjectSettings/UnityConnectSettings.asset b/Outline.Core/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..fa0b146 --- /dev/null +++ b/Outline.Core/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,34 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/Outline.Core/ProjectSettings/VFXManager.asset b/Outline.Core/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..6e0eaca --- /dev/null +++ b/Outline.Core/ProjectSettings/VFXManager.asset @@ -0,0 +1,11 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 diff --git a/Outline.HDRP/Assets/Example.meta b/Outline.HDRP/Assets/Example.meta new file mode 100644 index 0000000..192853a --- /dev/null +++ b/Outline.HDRP/Assets/Example.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e3460f9c82b74f04094738b4630a3156 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Assets/Example/OutlineLayerCollection.asset b/Outline.HDRP/Assets/Example/OutlineLayerCollection.asset new file mode 100644 index 0000000..c96e20d --- /dev/null +++ b/Outline.HDRP/Assets/Example/OutlineLayerCollection.asset @@ -0,0 +1,33 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 57d0c11168277cf4eb3b4b89706e6aa5, type: 3} + m_Name: OutlineLayerCollection + m_EditorClassIdentifier: + _layers: + - _settings: + _outlineSettings: {fileID: 0} + _outlineColor: {r: 1, g: 0, b: 0, a: 1} + _outlineWidth: 4 + _outlineIntensity: 2 + _outlineMode: 0 + _name: + _zOrder: 0 + _enabled: 1 + - _settings: + _outlineSettings: {fileID: 0} + _outlineColor: {r: 0, g: 1, b: 0.060156345, a: 1} + _outlineWidth: 7 + _outlineIntensity: 2 + _outlineMode: 1 + _name: + _zOrder: 0 + _enabled: 1 diff --git a/Outline.HDRP/Assets/Example/OutlineLayerCollection.asset.meta b/Outline.HDRP/Assets/Example/OutlineLayerCollection.asset.meta new file mode 100644 index 0000000..699e31e --- /dev/null +++ b/Outline.HDRP/Assets/Example/OutlineLayerCollection.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 65159dc68f867cd4f90261bae63e29a7 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Assets/Example/OutlineTest.cs b/Outline.HDRP/Assets/Example/OutlineTest.cs new file mode 100644 index 0000000..0253a66 --- /dev/null +++ b/Outline.HDRP/Assets/Example/OutlineTest.cs @@ -0,0 +1,31 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityFx.Outline; + +public class OutlineTest : MonoBehaviour +{ +#pragma warning disable 0649 + + [SerializeField] + private GameObject[] _layer0; + [SerializeField] + private GameObject[] _layer1; + [SerializeField] + private OutlineLayerCollection _layers; + +#pragma warning restore 0649 + + void Start() + { + foreach (var go in _layer0) + { + _layers[0].Add(go); + } + + foreach (var go in _layer1) + { + _layers[1].Add(go); + } + } +} diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.Renderers.cs.meta b/Outline.HDRP/Assets/Example/OutlineTest.cs.meta similarity index 83% rename from Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.Renderers.cs.meta rename to Outline.HDRP/Assets/Example/OutlineTest.cs.meta index a2ecbf0..426a24e 100644 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.Renderers.cs.meta +++ b/Outline.HDRP/Assets/Example/OutlineTest.cs.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f98c44e515873c54180f1d3b1037f999 +guid: 22d06c15672ad2440afbe792e641c411 MonoImporter: externalObjects: {} serializedVersion: 2 diff --git a/Outline.HDRP/Assets/Example/Test.unity b/Outline.HDRP/Assets/Example/Test.unity new file mode 100644 index 0000000..4d65fc6 --- /dev/null +++ b/Outline.HDRP/Assets/Example/Test.unity @@ -0,0 +1,633 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 0 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} + m_UseRadianceAmbientProbe: 0 +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 11 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 1 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 12 + m_Resolution: 2 + m_BakeResolution: 40 + m_AtlasSize: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_ExtractAmbientOcclusion: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 2 + m_BakeBackend: 1 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 512 + m_PVRBounces: 2 + m_PVREnvironmentSampleCount: 256 + m_PVREnvironmentReferencePointCount: 2048 + m_PVRFilteringMode: 1 + m_PVRDenoiserTypeDirect: 1 + m_PVRDenoiserTypeIndirect: 1 + m_PVRDenoiserTypeAO: 1 + m_PVRFilterTypeDirect: 0 + m_PVRFilterTypeIndirect: 0 + m_PVRFilterTypeAO: 0 + m_PVREnvironmentMIS: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousPositionSigmaDirect: 0.5 + m_PVRFilteringAtrousPositionSigmaIndirect: 2 + m_PVRFilteringAtrousPositionSigmaAO: 1 + m_ExportTrainingData: 0 + m_TrainingDataDestination: TrainingData + m_LightProbeSampleCountMultiplier: 4 + m_LightingDataAsset: {fileID: 0} + m_UseShadowmask: 1 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &646807773 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 646807774} + - component: {fileID: 646807777} + - component: {fileID: 646807776} + - component: {fileID: 646807775} + m_Layer: 0 + m_Name: Cylinder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &646807774 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646807773} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0.52, y: -0.31, z: 4.31} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1130691891} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!136 &646807775 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646807773} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} +--- !u!23 &646807776 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646807773} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &646807777 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 646807773} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &750107942 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 750107943} + - component: {fileID: 750107946} + - component: {fileID: 750107945} + - component: {fileID: 750107944} + m_Layer: 0 + m_Name: Cube + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &750107943 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 750107942} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 1.5699999, y: -0.30999994, z: 6.1} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1130691891} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!65 &750107944 +BoxCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 750107942} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Size: {x: 1, y: 1, z: 1} + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &750107945 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 750107942} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &750107946 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 750107942} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1001 &1130691890 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 4264326293830219037, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_LocalPosition.x + value: -2.4961035 + objectReference: {fileID: 0} + - target: {fileID: 4264326293830219037, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_LocalPosition.y + value: 3.0931349 + objectReference: {fileID: 0} + - target: {fileID: 4264326293830219037, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_LocalPosition.z + value: -3.8995318 + objectReference: {fileID: 0} + - target: {fileID: 4264326293830219037, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4264326293830219037, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4264326293830219037, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4264326293830219037, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 4264326293830219037, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_RootOrder + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4264326293830219037, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4264326293830219037, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4264326293830219037, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4819242101474771701, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_AllowDynamicResolution + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 4893056312182120781, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_Name + value: DefaultSceneRoot + objectReference: {fileID: 0} + - target: {fileID: 4949957087466332343, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_Version + value: 7 + objectReference: {fileID: 0} + - target: {fileID: 4949957087466332343, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_RenderingPathCustomFrameSettings.bitDatas.data1 + value: 734440390720 + objectReference: {fileID: 0} + - target: {fileID: 5131575625094108011, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_Version + value: 9 + objectReference: {fileID: 0} + - target: {fileID: 5131575625094108011, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_MinFilterSize + value: 0.01 + objectReference: {fileID: 0} + - target: {fileID: 5131575625094108011, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: m_ShadowResolution.m_Level + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 8708978604625570628, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + propertyPath: sharedProfile + value: + objectReference: {fileID: 11400000, guid: aab0876a9ec74194fb766183257d02c9, + type: 2} + m_RemovedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: de1884a706667b84cbf9c4195ee402ca, type: 3} +--- !u!4 &1130691891 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 4958332782299279292, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + m_PrefabInstance: {fileID: 1130691890} + m_PrefabAsset: {fileID: 0} +--- !u!1 &1130691892 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 4613009710449648096, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + m_PrefabInstance: {fileID: 1130691890} + m_PrefabAsset: {fileID: 0} +--- !u!114 &1130691893 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1130691892} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 22d06c15672ad2440afbe792e641c411, type: 3} + m_Name: + m_EditorClassIdentifier: + _layer0: + - {fileID: 1202059779} + - {fileID: 1822928728} + _layer1: + - {fileID: 646807773} + - {fileID: 750107942} + _layers: {fileID: 11400000, guid: 65159dc68f867cd4f90261bae63e29a7, type: 2} +--- !u!1 &1202059779 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1202059780} + - component: {fileID: 1202059783} + - component: {fileID: 1202059782} + - component: {fileID: 1202059781} + m_Layer: 0 + m_Name: Sphere + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1202059780 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1202059779} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -2.28, y: -0.30999994, z: 5.32} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1130691891} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!135 &1202059781 +SphereCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1202059779} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + serializedVersion: 2 + m_Radius: 0.5 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1202059782 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1202059779} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1202059783 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1202059779} + m_Mesh: {fileID: 10207, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &1822928728 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1822928729} + - component: {fileID: 1822928732} + - component: {fileID: 1822928731} + - component: {fileID: 1822928730} + m_Layer: 0 + m_Name: Capsule + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1822928729 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822928728} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.7100003, y: -0.30999994, z: 4.7999997} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 1130691891} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!136 &1822928730 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822928728} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0, y: 0, z: 0} +--- !u!23 &1822928731 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822928728} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: 73c176f402d2c2f4d929aa5da7585d17, type: 2} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 +--- !u!33 &1822928732 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1822928728} + m_Mesh: {fileID: 10208, guid: 0000000000000000e000000000000000, type: 0} diff --git a/Outline.HDRP/Assets/Example/Test.unity.meta b/Outline.HDRP/Assets/Example/Test.unity.meta new file mode 100644 index 0000000..3853e3d --- /dev/null +++ b/Outline.HDRP/Assets/Example/Test.unity.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 4e135944522226a4f865fc46db4f82b9 +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Assets/HDRPDefaultResources.meta b/Outline.HDRP/Assets/HDRPDefaultResources.meta new file mode 100644 index 0000000..4e90464 --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8f3d33c32408aac48b821ee51ce221cd +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/DefaultSceneRoot.prefab b/Outline.HDRP/Assets/HDRPDefaultResources/DefaultSceneRoot.prefab new file mode 100644 index 0000000..7c473fc --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/DefaultSceneRoot.prefab @@ -0,0 +1,494 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1727821257471780564 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 78747437022727650} + - component: {fileID: 3939057304150759544} + m_Layer: 0 + m_Name: Sky and Fog Volume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &78747437022727650 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1727821257471780564} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.4211643, y: -3.172676, z: 9.714802} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4264326293830219037} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &3939057304150759544 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1727821257471780564} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + isGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: a817123acc6c86946bd0d80b00908e31, type: 2} +--- !u!1 &2131112742624884157 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6534824466647122371} + - component: {fileID: 4089861365231966854} + - component: {fileID: 5131575625094108011} + m_Layer: 0 + m_Name: Directional Light + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6534824466647122371 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2131112742624884157} + m_LocalRotation: {x: 0.40821788, y: -0.23456968, z: 0.10938163, w: 0.8754261} + m_LocalPosition: {x: 2.4961035, y: -0.09313488, z: 3.8995318} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4264326293830219037} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!108 &4089861365231966854 +Light: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2131112742624884157} + m_Enabled: 1 + serializedVersion: 10 + m_Type: 1 + m_Shape: 0 + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_Intensity: 10000 + m_Range: 10 + m_SpotAngle: 30 + m_InnerSpotAngle: 21.80208 + m_CookieSize: 10 + m_Shadows: + m_Type: 2 + m_Resolution: -1 + m_CustomResolution: -1 + m_Strength: 1 + m_Bias: 0.05 + m_NormalBias: 0.4 + m_NearPlane: 0.2 + m_CullingMatrixOverride: + e00: 1 + e01: 0 + e02: 0 + e03: 0 + e10: 0 + e11: 1 + e12: 0 + e13: 0 + e20: 0 + e21: 0 + e22: 1 + e23: 0 + e30: 0 + e31: 0 + e32: 0 + e33: 1 + m_UseCullingMatrixOverride: 0 + m_Cookie: {fileID: 0} + m_DrawHalo: 0 + m_Flare: {fileID: 0} + m_RenderMode: 0 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingLayerMask: 1 + m_Lightmapping: 4 + m_LightShadowCasterMode: 2 + m_AreaSize: {x: 1, y: 1} + m_BounceIntensity: 1 + m_ColorTemperature: 5500 + m_UseColorTemperature: 1 + m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0} + m_UseBoundingSphereOverride: 0 + m_ShadowRadius: 0 + m_ShadowAngle: 0 +--- !u!114 &5131575625094108011 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2131112742624884157} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7a68c43fe1f2a47cfa234b5eeaa98012, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 5 + directionalIntensity: 3.1415927 + punctualIntensity: 600 + areaIntensity: 200 + lightLayers: 1 + m_Intensity: 10000 + m_EnableSpotReflector: 0 + m_LuxAtDistance: 1 + m_InnerSpotPercent: 0 + m_LightDimmer: 1 + m_VolumetricDimmer: 1 + m_LightUnit: 2 + m_FadeDistance: 10000 + m_AffectDiffuse: 1 + m_AffectSpecular: 1 + m_NonLightmappedOnly: 0 + m_LightTypeExtent: 0 + m_SpotLightShape: 0 + m_ShapeWidth: 0.5 + m_ShapeHeight: 0.5 + m_AspectRatio: 1 + m_ShapeRadius: 0 + m_UseCustomSpotLightShadowCone: 0 + m_CustomSpotLightShadowCone: 30 + m_MaxSmoothness: 0.99 + m_ApplyRangeAttenuation: 1 + m_DisplayAreaLightEmissiveMesh: 0 + m_AreaLightCookie: {fileID: 0} + m_AreaLightShadowCone: 120 + m_UseScreenSpaceShadows: 0 + m_InteractsWithSky: 1 + m_AngularDiameter: 0 + m_Distance: 150000000 + m_EvsmExponent: 15 + m_EvsmLightLeakBias: 0 + m_EvsmVarianceBias: 0.00001 + m_EvsmBlurPasses: 0 + m_LightlayersMask: 1 + m_LinkShadowLayers: 1 + m_ShadowNearPlane: 0.1 + m_ShadowSoftness: 0.5 + m_BlockerSampleCount: 24 + m_FilterSampleCount: 16 + m_MinFilterSize: 0.00001 + m_KernelSize: 5 + m_LightAngle: 1 + m_MaxDepthBias: 0.001 + m_ShadowResolutionTier: 1 + m_UseShadowQualitySettings: 0 + m_CustomShadowResolution: 512 + m_ShadowDimmer: 1 + m_VolumetricShadowDimmer: 1 + m_ShadowFadeDistance: 10000 + m_ContactShadows: 0 + m_ShadowTint: {r: 0, g: 0, b: 0, a: 1} + m_NormalBias: 0.75 + m_ConstantBias: 0.15 + m_ShadowUpdateMode: 0 + m_ShadowCascadeRatios: + - 0.05 + - 0.2 + - 0.3 + m_ShadowCascadeBorders: + - 0.2 + - 0.2 + - 0.2 + - 0.2 + m_ShadowAlgorithm: 0 + m_ShadowVariant: 0 + m_ShadowPrecision: 0 + useOldInspector: 0 + useVolumetric: 1 + featuresFoldout: 1 + showAdditionalSettings: 0 +--- !u!1 &4385301687372491650 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1779374894981780732} + - component: {fileID: 8708978604625570628} + m_Layer: 0 + m_Name: Scene PostProcess + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1779374894981780732 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4385301687372491650} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -1.4158418, y: 7.2329626, z: 6.6463027} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4264326293830219037} + m_RootOrder: 3 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8708978604625570628 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4385301687372491650} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 172515602e62fb746b5d573b38a5fe58, type: 3} + m_Name: + m_EditorClassIdentifier: + isGlobal: 1 + priority: 0 + blendDistance: 0 + weight: 1 + sharedProfile: {fileID: 11400000, guid: afc2e9b608c304f468d0c1818eba58d5, type: 2} +--- !u!1 &4613009710449648096 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4958332782299279292} + - component: {fileID: 4819242101474771701} + - component: {fileID: 5890402723748121877} + - component: {fileID: 4949957087466332343} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4958332782299279292 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4613009710449648096} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 2.4961035, y: -2.0931349, z: -6.100468} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 4264326293830219037} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!20 &4819242101474771701 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4613009710449648096} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 0 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 0 + m_AllowMSAA: 0 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!81 &5890402723748121877 +AudioListener: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4613009710449648096} + m_Enabled: 1 +--- !u!114 &4949957087466332343 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4613009710449648096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 23c1ce4fb46143f46bc5cb5224c934f6, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Version: 6 + m_ObsoleteRenderingPath: 0 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + clearColorMode: 0 + backgroundColorHDR: {r: 0.025, g: 0.07, b: 0.19, a: 0} + clearDepth: 1 + volumeLayerMask: + serializedVersion: 2 + m_Bits: 1 + volumeAnchorOverride: {fileID: 0} + antialiasing: 0 + SMAAQuality: 2 + dithering: 0 + stopNaNs: 0 + physicalParameters: + m_Iso: 200 + m_ShutterSpeed: 0.005 + m_Aperture: 16 + m_BladeCount: 5 + m_Curvature: {x: 2, y: 11} + m_BarrelClipping: 0.25 + m_Anamorphism: 0 + flipYMode: 0 + fullscreenPassthrough: 0 + allowDynamicResolution: 0 + customRenderingSettings: 0 + invertFaceCulling: 0 + probeLayerMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPathCustomFrameSettings: + bitDatas: + data1: 184684576768 + data2: 536805376 + lodBias: 1 + lodBiasMode: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + renderingPathCustomFrameSettingsOverrideMask: + mask: + data1: 0 + data2: 0 + defaultFrameSettings: 0 +--- !u!1 &4893056312182120781 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4264326293830219037} + m_Layer: 0 + m_Name: DefaultSceneRoot + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4264326293830219037 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4893056312182120781} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -2.4961035, y: 3.0931349, z: -3.8995318} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: + - {fileID: 4958332782299279292} + - {fileID: 6534824466647122371} + - {fileID: 78747437022727650} + - {fileID: 1779374894981780732} + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/DefaultSceneRoot.prefab.meta b/Outline.HDRP/Assets/HDRPDefaultResources/DefaultSceneRoot.prefab.meta new file mode 100644 index 0000000..a4ef7ab --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/DefaultSceneRoot.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: de1884a706667b84cbf9c4195ee402ca +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/Foliage Diffusion Profile.asset b/Outline.HDRP/Assets/HDRPDefaultResources/Foliage Diffusion Profile.asset new file mode 100644 index 0000000..1e0cf48 --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/Foliage Diffusion Profile.asset @@ -0,0 +1,26 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b2686e09ec7aef44bad2843e4416f057, type: 3} + m_Name: Foliage Diffusion Profile + m_EditorClassIdentifier: + profile: + name: Foliage + scatteringDistance: {r: 0.7568628, g: 0.7019608, b: 0.24313727, a: 1} + transmissionTint: {r: 1, g: 1, b: 1, a: 1} + texturingMode: 0 + transmissionMode: 1 + thicknessRemap: {x: 0, y: 0.2873168} + worldScale: 1 + ior: 1.4 + hash: 1081692787 + m_Version: 1 + profiles: [] diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/Foliage Diffusion Profile.asset.meta b/Outline.HDRP/Assets/HDRPDefaultResources/Foliage Diffusion Profile.asset.meta new file mode 100644 index 0000000..2811ef7 --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/Foliage Diffusion Profile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 343dd26a4b998f943bd55742e4e98058 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/HDRenderPipelineAsset.asset b/Outline.HDRP/Assets/HDRPDefaultResources/HDRenderPipelineAsset.asset new file mode 100644 index 0000000..d72ce7c --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/HDRenderPipelineAsset.asset @@ -0,0 +1,350 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0cf1dab834d4ec34195b920ea7bbf9ec, type: 3} + m_Name: HDRenderPipelineAsset + m_EditorClassIdentifier: + m_Version: 12 + m_ObsoleteFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteBakedOrCustomReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_ObsoleteRealtimeReflectionFrameSettings: + overrides: 0 + enableShadow: 0 + enableContactShadows: 0 + enableShadowMask: 0 + enableSSR: 0 + enableSSAO: 0 + enableSubsurfaceScattering: 0 + enableTransmission: 0 + enableAtmosphericScattering: 0 + enableVolumetrics: 0 + enableReprojectionForVolumetrics: 0 + enableLightLayers: 0 + enableExposureControl: 1 + diffuseGlobalDimmer: 0 + specularGlobalDimmer: 0 + shaderLitMode: 0 + enableDepthPrepassWithDeferredRendering: 0 + enableTransparentPrepass: 0 + enableMotionVectors: 0 + enableObjectMotionVectors: 0 + enableDecals: 0 + enableRoughRefraction: 0 + enableTransparentPostpass: 0 + enableDistortion: 0 + enablePostprocess: 0 + enableOpaqueObjects: 0 + enableTransparentObjects: 0 + enableRealtimePlanarReflection: 0 + enableMSAA: 0 + enableAsyncCompute: 0 + runLightListAsync: 0 + runSSRAsync: 0 + runSSAOAsync: 0 + runContactShadowsAsync: 0 + runVolumeVoxelizationAsync: 0 + lightLoopSettings: + overrides: 0 + enableDeferredTileAndCluster: 0 + enableComputeLightEvaluation: 0 + enableComputeLightVariants: 0 + enableComputeMaterialVariants: 0 + enableFptlForForwardOpaque: 0 + enableBigTilePrepass: 0 + isFptlEnabled: 0 + m_RenderPipelineResources: {fileID: 11400000, guid: 3ce144cff5783da45aa5d4fdc2da14b7, + type: 2} + m_RenderPipelineRayTracingResources: {fileID: 0} + m_DefaultVolumeProfile: {fileID: 11400000, guid: 3043edc9d9a47704fad99f10fea80a08, + type: 2} + m_DefaultLookDevProfile: {fileID: 0} + m_RenderingPathDefaultCameraFrameSettings: + bitDatas: + data1: 70280697347917 + data2: 4539628424926265344 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + materialQuality: 0 + m_RenderingPathDefaultBakedOrCustomReflectionFrameSettings: + bitDatas: + data1: 64942043591501 + data2: 4539628424389459968 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + materialQuality: 0 + m_RenderingPathDefaultRealtimeReflectionFrameSettings: + bitDatas: + data1: 69692120112973 + data2: 4539628424657895424 + lodBias: 1 + lodBiasMode: 0 + lodBiasQualityLevel: 0 + maximumLODLevel: 0 + maximumLODLevelMode: 0 + maximumLODLevelQualityLevel: 0 + materialQuality: 0 + m_RenderPipelineSettings: + supportShadowMask: 1 + supportSSR: 0 + supportSSAO: 1 + supportSubsurfaceScattering: 1 + increaseSssSampleCount: 0 + supportVolumetrics: 1 + increaseResolutionOfVolumetrics: 0 + supportLightLayers: 0 + lightLayerName0: Light Layer default + lightLayerName1: Light Layer 1 + lightLayerName2: Light Layer 2 + lightLayerName3: Light Layer 3 + lightLayerName4: Light Layer 4 + lightLayerName5: Light Layer 5 + lightLayerName6: Light Layer 6 + lightLayerName7: Light Layer 7 + supportDistortion: 1 + supportTransparentBackface: 1 + supportTransparentDepthPrepass: 1 + supportTransparentDepthPostpass: 1 + colorBufferFormat: 74 + supportCustomPass: 1 + customBufferFormat: 12 + supportedLitShaderMode: 2 + supportDecals: 1 + msaaSampleCount: 1 + supportMotionVectors: 1 + supportRuntimeDebugDisplay: 1 + supportDitheringCrossFade: 1 + supportTerrainHole: 0 + supportRayTracing: 0 + supportedRaytracingTier: 2 + lightLoopSettings: + cookieSize: 128 + cookieTexArraySize: 16 + pointCookieSize: 128 + cubeCookieTexArraySize: 16 + planarReflectionProbeCacheSize: 2 + planarReflectionTextureSize: 1024 + reflectionProbeCacheSize: 64 + reflectionCubemapSize: 256 + reflectionCacheCompressed: 0 + planarReflectionCacheCompressed: 0 + skyReflectionSize: 256 + skyLightingOverrideLayerMask: + serializedVersion: 2 + m_Bits: 0 + supportFabricConvolution: 0 + maxDirectionalLightsOnScreen: 16 + maxPunctualLightsOnScreen: 512 + maxAreaLightsOnScreen: 64 + maxEnvLightsOnScreen: 64 + maxDecalsOnScreen: 512 + hdShadowInitParams: + maxShadowRequests: 128 + directionalShadowsDepthBits: 32 + shadowFilteringQuality: 1 + punctualLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 32 + useDynamicViewportRescale: 1 + areaLightShadowAtlas: + shadowAtlasResolution: 4096 + shadowAtlasDepthBits: 32 + useDynamicViewportRescale: 1 + shadowResolutionDirectional: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionPunctual: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + shadowResolutionArea: + m_Values: 00010000000200000004000000080000 + m_SchemaId: + m_Id: With4Levels + maxDirectionalShadowMapResolution: 2048 + maxPunctualShadowMapResolution: 2048 + maxAreaShadowMapResolution: 2048 + supportScreenSpaceShadows: 0 + maxScreenSpaceShadows: 2 + decalSettings: + drawDistance: 1000 + atlasWidth: 4096 + atlasHeight: 4096 + perChannelMask: 0 + postProcessSettings: + m_LutSize: 32 + lutFormat: 48 + dynamicResolutionSettings: + enabled: 0 + maxPercentage: 100 + minPercentage: 100 + dynResType: 1 + upsampleFilter: 1 + forceResolution: 0 + forcedPercentage: 100 + lowresTransparentSettings: + enabled: 1 + checkerboardDepthBuffer: 1 + upsampleType: 1 + xrSettings: + singlePass: 1 + occlusionMesh: 1 + postProcessQualitySettings: + NearBlurSampleCount: 030000000500000008000000 + NearBlurMaxRadius: + - 2 + - 4 + - 7 + FarBlurSampleCount: 04000000070000000e000000 + FarBlurMaxRadius: + - 5 + - 8 + - 13 + DoFResolution: 040000000200000001000000 + DoFHighQualityFiltering: 000101 + MotionBlurSampleCount: 04000000080000000c000000 + BloomRes: 040000000200000002000000 + BloomHighQualityFiltering: 000101 + ChromaticAberrationMaxSamples: 03000000060000000c000000 + lightSettings: + useContactShadow: + m_Values: + m_SchemaId: + m_Id: + maximumLODLevel: + m_Values: 000000000000000000000000 + m_SchemaId: + m_Id: With3Levels + lodBias: + m_Values: + - 1 + - 1 + - 1 + m_SchemaId: + m_Id: With3Levels + lightingQualitySettings: + AOStepCount: 040000000600000010000000 + AOFullRes: 000001 + AOMaximumRadiusPixels: 200000002800000050000000 + AOBilateralUpsample: 000101 + AODirectionCount: 010000000200000004000000 + ContactShadowSampleCount: 060000000a00000010000000 + SSRMaxRaySteps: 100000002000000040000000 + allowShaderVariantStripping: 1 + enableSRPBatcher: 1 + shaderVariantLogLevel: 0 + availableMaterialQualityLevels: -1 + m_DefaultMaterialQualityLevel: 4 + diffusionProfileSettings: {fileID: 0} + diffusionProfileSettingsList: + - {fileID: 11400000, guid: f2b3cca394e674d4e8b508f6db8af781, type: 2} + - {fileID: 11400000, guid: 343dd26a4b998f943bd55742e4e98058, type: 2} + beforeTransparentCustomPostProcesses: [] + beforePostProcessCustomPostProcesses: + - UnityFx.Outline.HDRP.Outline, UnityFx.Outline.HDRP, Version=0.0.0.0, Culture=neutral, + PublicKeyToken=null + afterPostProcessCustomPostProcesses: [] diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/HDRenderPipelineAsset.asset.meta b/Outline.HDRP/Assets/HDRPDefaultResources/HDRenderPipelineAsset.asset.meta new file mode 100644 index 0000000..be941cb --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/HDRenderPipelineAsset.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 63e769e3f0d41094da311c3c96418947 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/Scene PostProcess Profile.asset b/Outline.HDRP/Assets/HDRPDefaultResources/Scene PostProcess Profile.asset new file mode 100644 index 0000000..1271df7 --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/Scene PostProcess Profile.asset @@ -0,0 +1,110 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-6655779379860192965 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2d08ce26990eb1a4a9177b860541e702, type: 3} + m_Name: Exposure + m_EditorClassIdentifier: + active: 1 + m_AdvancedMode: 0 + mode: + m_OverrideState: 1 + m_Value: 1 + meteringMode: + m_OverrideState: 0 + m_Value: 2 + luminanceSource: + m_OverrideState: 0 + m_Value: 1 + fixedExposure: + m_OverrideState: 0 + m_Value: 0 + compensation: + m_OverrideState: 0 + m_Value: 0 + limitMin: + m_OverrideState: 0 + m_Value: -10 + limitMax: + m_OverrideState: 1 + m_Value: 10 + curveMap: + m_OverrideState: 0 + m_Value: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: -10 + value: -10 + inSlope: 0 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 20 + value: 20 + inSlope: 1 + outSlope: 0 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + adaptationMode: + m_OverrideState: 0 + m_Value: 1 + adaptationSpeedDarkToLight: + m_OverrideState: 0 + m_Value: 3 + min: 0.001 + adaptationSpeedLightToDark: + m_OverrideState: 0 + m_Value: 1 + min: 0.001 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: Scene PostProcess Profile + m_EditorClassIdentifier: + components: + - {fileID: -6655779379860192965} + - {fileID: 3674710015500977404} +--- !u!114 &3674710015500977404 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: dcdde7b7f13f9c745ae31e38f089fdf8, type: 3} + m_Name: Outline + m_EditorClassIdentifier: + active: 1 + m_AdvancedMode: 0 + _defaultResources: {fileID: 11400000, guid: d28e70f030b1a634db9a6a6d5478ef19, type: 2} + _resources: + m_OverrideState: 0 + m_Value: {fileID: 11400000, guid: d28e70f030b1a634db9a6a6d5478ef19, type: 2} + _layers: + m_OverrideState: 1 + m_Value: {fileID: 11400000, guid: 65159dc68f867cd4f90261bae63e29a7, type: 2} diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/Scene PostProcess Profile.asset.meta b/Outline.HDRP/Assets/HDRPDefaultResources/Scene PostProcess Profile.asset.meta new file mode 100644 index 0000000..08f3907 --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/Scene PostProcess Profile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: aab0876a9ec74194fb766183257d02c9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/Skin Diffusion Profile.asset b/Outline.HDRP/Assets/HDRPDefaultResources/Skin Diffusion Profile.asset new file mode 100644 index 0000000..295a25c --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/Skin Diffusion Profile.asset @@ -0,0 +1,26 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: b2686e09ec7aef44bad2843e4416f057, type: 3} + m_Name: Skin Diffusion Profile + m_EditorClassIdentifier: + profile: + name: Skin + scatteringDistance: {r: 0.7568628, g: 0.32156864, b: 0.20000002, a: 1} + transmissionTint: {r: 0.7568628, g: 0.32156864, b: 0.20000002, a: 1} + texturingMode: 0 + transmissionMode: 0 + thicknessRemap: {x: 0, y: 8.152544} + worldScale: 1 + ior: 1.4 + hash: 1075477546 + m_Version: 1 + profiles: [] diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/Skin Diffusion Profile.asset.meta b/Outline.HDRP/Assets/HDRPDefaultResources/Skin Diffusion Profile.asset.meta new file mode 100644 index 0000000..6f73be7 --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/Skin Diffusion Profile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f2b3cca394e674d4e8b508f6db8af781 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/Sky and Fog Settings Profile.asset b/Outline.HDRP/Assets/HDRPDefaultResources/Sky and Fog Settings Profile.asset new file mode 100644 index 0000000..f2ce19f --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/Sky and Fog Settings Profile.asset @@ -0,0 +1,162 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-3305224281371206947 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 953beb541740ddc499d005ee80c9ff29, type: 3} + m_Name: + m_EditorClassIdentifier: + active: 1 + m_AdvancedMode: 0 + enabled: + m_OverrideState: 1 + m_Value: 1 + colorMode: + m_OverrideState: 0 + m_Value: 1 + color: + m_OverrideState: 0 + m_Value: {r: 0.5, g: 0.5, b: 0.5, a: 1} + hdr: 1 + showAlpha: 0 + showEyeDropper: 1 + maxFogDistance: + m_OverrideState: 0 + m_Value: 5000 + min: 0 + mipFogMaxMip: + m_OverrideState: 0 + m_Value: 0.5 + min: 0 + max: 1 + mipFogNear: + m_OverrideState: 0 + m_Value: 0 + min: 0 + mipFogFar: + m_OverrideState: 0 + m_Value: 1000 + min: 0 + baseHeight: + m_OverrideState: 0 + m_Value: 0 + maximumHeight: + m_OverrideState: 0 + m_Value: 50 + albedo: + m_OverrideState: 0 + m_Value: {r: 1, g: 1, b: 1, a: 1} + hdr: 0 + showAlpha: 1 + showEyeDropper: 1 + meanFreePath: + m_OverrideState: 1 + m_Value: 200 + min: 1 + enableVolumetricFog: + m_OverrideState: 1 + m_Value: 1 + anisotropy: + m_OverrideState: 1 + m_Value: 0.65 + min: -1 + max: 1 + globalLightProbeDimmer: + m_OverrideState: 0 + m_Value: 1 + min: 0 + max: 1 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d7fd9488000d3734a9e00ee676215985, type: 3} + m_Name: Sky and Fog Settings Profile + m_EditorClassIdentifier: + components: + - {fileID: 6775376097864012941} + - {fileID: 7488742677745068149} + - {fileID: -3305224281371206947} +--- !u!114 &6775376097864012941 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 0d7593b3a9277ac4696b20006c21dde2, type: 3} + m_Name: + m_EditorClassIdentifier: + active: 1 + m_AdvancedMode: 0 + skyType: + m_OverrideState: 1 + m_Value: 1 + skyAmbientMode: + m_OverrideState: 0 + m_Value: 0 + fogType: + m_OverrideState: 1 + m_Value: 3 +--- !u!114 &7488742677745068149 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 59b6606ef2548734bb6d11b9d160bc7e, type: 3} + m_Name: HDRISky + m_EditorClassIdentifier: + active: 1 + m_AdvancedMode: 0 + rotation: + m_OverrideState: 0 + m_Value: 0 + min: 0 + max: 360 + skyIntensityMode: + m_OverrideState: 0 + m_Value: 0 + exposure: + m_OverrideState: 1 + m_Value: 10 + multiplier: + m_OverrideState: 0 + m_Value: 1 + min: 0 + upperHemisphereLuxValue: + m_OverrideState: 0 + m_Value: 0.46608552 + min: 0 + desiredLuxValue: + m_OverrideState: 0 + m_Value: 20000 + updateMode: + m_OverrideState: 0 + m_Value: 0 + updatePeriod: + m_OverrideState: 0 + m_Value: 0 + min: 0 + includeSunInBaking: + m_OverrideState: 0 + m_Value: 0 + hdriSky: + m_OverrideState: 1 + m_Value: {fileID: 8900000, guid: 8253d41e6e8b11a4cbe77a4f8f82934d, type: 3} diff --git a/Outline.HDRP/Assets/HDRPDefaultResources/Sky and Fog Settings Profile.asset.meta b/Outline.HDRP/Assets/HDRPDefaultResources/Sky and Fog Settings Profile.asset.meta new file mode 100644 index 0000000..ff38726 --- /dev/null +++ b/Outline.HDRP/Assets/HDRPDefaultResources/Sky and Fog Settings Profile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f7fdecfb0943ec9438e95d4c4e13123f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Packages/UnityFx.Outline.HDRP/CHANGELOG.md b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/CHANGELOG.md new file mode 100644 index 0000000..1cf7420 --- /dev/null +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/CHANGELOG.md @@ -0,0 +1,9 @@ +# UnityFx.Outline.HDRP changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](http://keepachangelog.com/); this project adheres to [Semantic Versioning](http://semver.org/). + +## [0.1.0] - unreleased + +### Added +- Initial release. diff --git a/Outline.HDRP/Packages/UnityFx.Outline.HDRP/CHANGELOG.md.meta b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/CHANGELOG.md.meta new file mode 100644 index 0000000..f3ea157 --- /dev/null +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/CHANGELOG.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: d2731cfdae865ee439fd0fef782fa994 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Packages/UnityFx.Outline.HDRP/README.md b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/README.md new file mode 100644 index 0000000..7149507 --- /dev/null +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/README.md @@ -0,0 +1,11 @@ +# UnityFx.Outline.HDRP + +## SUMMARY +Screen-space outline effects for HDRP. + +## USEFUL LINKS +* [Github project](https://github.com/Arvtesh/UnityFx.Outline) +* [npm package](https://www.npmjs.com/package/com.unityfx.outline.hdrp) +* [Documentation](https://github.com/Arvtesh/UnityFx.Outline/blob/master/README.md) +* [License](https://github.com/Arvtesh/UnityFx.Outline/blob/master/LICENSE.md) +* [Support](mailto:arvtesh@gmail.com) diff --git a/Outline.HDRP/Packages/UnityFx.Outline.HDRP/README.md.meta b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/README.md.meta new file mode 100644 index 0000000..39c522c --- /dev/null +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/README.md.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 3db1fff9dd9ae804888eebc4382e1fb8 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime.meta b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime.meta new file mode 100644 index 0000000..5ef6e3e --- /dev/null +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 58d8c6c8330ffc042ade41ba15f8da23 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/Scripts.meta b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/Scripts.meta new file mode 100644 index 0000000..100ae09 --- /dev/null +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 85518f862b075044bbd76d57354f8f3e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/Scripts/Outline.cs b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/Scripts/Outline.cs new file mode 100644 index 0000000..0293025 --- /dev/null +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/Scripts/Outline.cs @@ -0,0 +1,131 @@ +// Copyright (C) 2019-2020 Alexander Bogarsukov. All rights reserved. +// See the LICENSE.md file in the project root for more information. + +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Rendering; +using UnityEngine.Rendering.HighDefinition; + +namespace UnityFx.Outline.HDRP +{ + [Serializable] + [VolumeComponentMenu("Post-processing/UnityFx/Outline")] + public sealed class Outline : CustomPostProcessVolumeComponent, IPostProcessComponent + { + #region data + +#pragma warning disable 0649 + + [Serializable] + private class OutlineResourcesParameter : VolumeParameter + { + } + + [Serializable] + private class OutlineLayersParameter : VolumeParameter + { + } + + [SerializeField, HideInInspector] + private OutlineResources _defaultResources; + [SerializeField] + private OutlineResourcesParameter _resources = new OutlineResourcesParameter(); + [SerializeField] + private OutlineLayersParameter _layers = new OutlineLayersParameter(); + +#pragma warning restore 0649 + + #endregion + + #region interface + + public IList OutlineLayers + { + get + { + return _layers.value; + } + } + + #endregion + + #region CustomPostProcessVolumeComponent + + public override CustomPostProcessInjectionPoint injectionPoint + { + get + { + return CustomPostProcessInjectionPoint.BeforePostProcess; + } + } + + public override void Setup() + { + base.Setup(); + } + + public override void Render(CommandBuffer cmd, HDCamera camera, RTHandle source, RTHandle destination) + { + using (var renderer = new OutlineRenderer(cmd, source, destination, source.referenceSize)) + { + _layers.value.Render(renderer, _resources.value); + } + } + + public override void Cleanup() + { + base.Cleanup(); + } + + #endregion + + #region ScriptableObject + + protected override void OnEnable() + { + // NOTE: This should go before base.OnEnable(). + if (!_resources.value) + { + _resources.value = _defaultResources; + } + + base.OnEnable(); + } + + #endregion + + #region IPostProcessComponent + + public bool IsActive() + { + if (!Application.isPlaying) + { + return false; + } + + if (_resources == null || _layers == null) + { + return false; + } + + var r = _resources.value; + + if (r == null || !r.IsValid) + { + return false; + } + + var l = _layers.value; + + if (l == null || l.Count == 0) + { + return false; + } + + return true; + } + + #endregion + } +} diff --git a/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/Scripts/Outline.cs.meta b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/Scripts/Outline.cs.meta new file mode 100644 index 0000000..fd81fd9 --- /dev/null +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/Scripts/Outline.cs.meta @@ -0,0 +1,13 @@ +fileFormatVersion: 2 +guid: dcdde7b7f13f9c745ae31e38f089fdf8 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: + - _defaultResources: {fileID: 11400000, guid: d28e70f030b1a634db9a6a6d5478ef19, + type: 2} + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/UnityFx.Outline.HDRP.asmdef b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/UnityFx.Outline.HDRP.asmdef new file mode 100644 index 0000000..3017f1e --- /dev/null +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/UnityFx.Outline.HDRP.asmdef @@ -0,0 +1,17 @@ +{ + "name": "UnityFx.Outline.HDRP", + "references": [ + "Unity.RenderPipelines.Core.Runtime", + "Unity.RenderPipelines.HighDefinition.Runtime", + "UnityFx.Outline" + ], + "includePlatforms": [], + "excludePlatforms": [], + "allowUnsafeCode": false, + "overrideReferences": false, + "precompiledReferences": [], + "autoReferenced": true, + "defineConstraints": [], + "versionDefines": [], + "noEngineReferences": false +} \ No newline at end of file diff --git a/Packages/UnityFx.Outline/Tests/Editor/UnityFx.Outline.Editor.Tests.asmdef.meta b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/UnityFx.Outline.HDRP.asmdef.meta similarity index 76% rename from Packages/UnityFx.Outline/Tests/Editor/UnityFx.Outline.Editor.Tests.asmdef.meta rename to Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/UnityFx.Outline.HDRP.asmdef.meta index 5b4009a..418ae3e 100644 --- a/Packages/UnityFx.Outline/Tests/Editor/UnityFx.Outline.Editor.Tests.asmdef.meta +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/Runtime/UnityFx.Outline.HDRP.asmdef.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 10ef01f813866564b87fc5ff13123c77 +guid: 8130e23c3199afb43ae1c34b3e328d00 AssemblyDefinitionImporter: externalObjects: {} userData: diff --git a/Outline.HDRP/Packages/UnityFx.Outline.HDRP/package.json b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/package.json new file mode 100644 index 0000000..7c29a0a --- /dev/null +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/package.json @@ -0,0 +1,33 @@ +{ + "name": "com.unityfx.outline.hdrp", + "version": "0.1.0", + "displayName": "Screen-space outline (HDRP)", + "description": "Configurable outline for HDRP.", + "unity": "2019.3", + "dependencies": { + "com.unityfx.outline": "0.8.0", + "com.unity.render-pipelines.high-definition": "7.0.0" + }, + "keywords": [ + "UnityFx", + "UnityFx.Outline", + "UnityFx.Outline.HDRP", + "Outline", + "Post-processing", + "HDRP" + ], + "category": "UnityFx", + "author": { + "name": "Arvtesh", + "email": "arvtesh@gmail.com" + }, + "license": "MIT", + "homepage": "https://github.com/Arvtesh/UnityFx.Outline", + "repository": { + "type": "git", + "url": "https://github.com/Arvtesh/UnityFx.Outline.git" + }, + "bugs": { + "url": "https://github.com/Arvtesh/UnityFx.Outline/issues" + } +} diff --git a/Outline.HDRP/Packages/UnityFx.Outline.HDRP/package.json.meta b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/package.json.meta new file mode 100644 index 0000000..3132f4f --- /dev/null +++ b/Outline.HDRP/Packages/UnityFx.Outline.HDRP/package.json.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 761dcd9f6f741bd4b9a86aa1fc1f11b7 +TextScriptImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Outline.HDRP/Packages/manifest.json b/Outline.HDRP/Packages/manifest.json new file mode 100644 index 0000000..1acdf96 --- /dev/null +++ b/Outline.HDRP/Packages/manifest.json @@ -0,0 +1,36 @@ +{ + "dependencies": { + "com.unityfx.outline": "file:../../Outline.Core/Packages/UnityFx.Outline", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.androidjni": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/Outline.HDRP/ProjectSettings/AudioManager.asset b/Outline.HDRP/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..27287fe --- /dev/null +++ b/Outline.HDRP/ProjectSettings/AudioManager.asset @@ -0,0 +1,19 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!11 &1 +AudioManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Volume: 1 + Rolloff Scale: 1 + Doppler Factor: 1 + Default Speaker Mode: 2 + m_SampleRate: 0 + m_DSPBufferSize: 1024 + m_VirtualVoiceCount: 512 + m_RealVoiceCount: 32 + m_SpatializerPlugin: + m_AmbisonicDecoderPlugin: + m_DisableAudio: 0 + m_VirtualizeEffects: 1 + m_RequestedDSPBufferSize: 0 diff --git a/Outline.HDRP/ProjectSettings/ClusterInputManager.asset b/Outline.HDRP/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..e7886b2 --- /dev/null +++ b/Outline.HDRP/ProjectSettings/ClusterInputManager.asset @@ -0,0 +1,6 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!236 &1 +ClusterInputManager: + m_ObjectHideFlags: 0 + m_Inputs: [] diff --git a/Outline.HDRP/ProjectSettings/DynamicsManager.asset b/Outline.HDRP/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..1596c42 --- /dev/null +++ b/Outline.HDRP/ProjectSettings/DynamicsManager.asset @@ -0,0 +1,36 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!55 &1 +PhysicsManager: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Gravity: {x: 0, y: -9.81, z: 0} + m_DefaultMaterial: {fileID: 0} + m_BounceThreshold: 2 + m_SleepThreshold: 0.005 + m_DefaultContactOffset: 0.01 + m_DefaultSolverIterations: 6 + m_DefaultSolverVelocityIterations: 1 + m_QueriesHitBackfaces: 0 + m_QueriesHitTriggers: 1 + m_EnableAdaptiveForce: 0 + m_ClothInterCollisionDistance: 0.1 + m_ClothInterCollisionStiffness: 0.2 + m_ContactsGeneration: 1 + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + m_AutoSimulation: 1 + m_AutoSyncTransforms: 0 + m_ReuseCollisionCallbacks: 0 + m_ClothInterCollisionSettingsToggle: 0 + m_ClothGravity: {x: 0, y: -9.81, z: 0} + m_ContactPairsMode: 0 + m_BroadphaseType: 0 + m_WorldBounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 250, y: 250, z: 250} + m_WorldSubdivisions: 8 + m_FrictionType: 0 + m_EnableEnhancedDeterminism: 0 + m_EnableUnifiedHeightmaps: 1 + m_SolverType: 0 + m_DefaultMaxAngularSpeed: 50 diff --git a/Outline.HDRP/ProjectSettings/EditorBuildSettings.asset b/Outline.HDRP/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..0147887 --- /dev/null +++ b/Outline.HDRP/ProjectSettings/EditorBuildSettings.asset @@ -0,0 +1,8 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1045 &1 +EditorBuildSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Scenes: [] + m_configObjects: {} diff --git a/Outline.HDRP/ProjectSettings/EditorSettings.asset b/Outline.HDRP/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..c8da44e --- /dev/null +++ b/Outline.HDRP/ProjectSettings/EditorSettings.asset @@ -0,0 +1,35 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!159 &1 +EditorSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_ExternalVersionControlSupport: Visible Meta Files + m_SerializationMode: 2 + m_LineEndingsForNewScripts: 2 + m_DefaultBehaviorMode: 0 + m_PrefabRegularEnvironment: {fileID: 0} + m_PrefabUIEnvironment: {fileID: 0} + m_SpritePackerMode: 0 + m_SpritePackerPaddingPower: 1 + m_EtcTextureCompressorBehavior: 1 + m_EtcTextureFastCompressor: 1 + m_EtcTextureNormalCompressor: 2 + m_EtcTextureBestCompressor: 4 + m_ProjectGenerationIncludedExtensions: txt;xml;fnt;cd;asmdef;asmref;rsp + m_ProjectGenerationRootNamespace: + m_CollabEditorSettings: + inProgressEnabled: 1 + m_EnableTextureStreamingInEditMode: 1 + m_EnableTextureStreamingInPlayMode: 1 + m_AsyncShaderCompilation: 1 + m_EnterPlayModeOptionsEnabled: 0 + m_EnterPlayModeOptions: 3 + m_ShowLightmapResolutionOverlay: 1 + m_UseLegacyProbeSampleCount: 0 + m_AssetPipelineMode: 1 + m_CacheServerMode: 0 + m_CacheServerEndpoint: + m_CacheServerNamespacePrefix: default + m_CacheServerEnableDownload: 1 + m_CacheServerEnableUpload: 1 diff --git a/Outline.HDRP/ProjectSettings/GraphicsSettings.asset b/Outline.HDRP/ProjectSettings/GraphicsSettings.asset new file mode 100644 index 0000000..8fbc9f6 --- /dev/null +++ b/Outline.HDRP/ProjectSettings/GraphicsSettings.asset @@ -0,0 +1,65 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!30 &1 +GraphicsSettings: + m_ObjectHideFlags: 0 + serializedVersion: 13 + m_Deferred: + m_Mode: 1 + m_Shader: {fileID: 69, guid: 0000000000000000f000000000000000, type: 0} + m_DeferredReflections: + m_Mode: 1 + m_Shader: {fileID: 74, guid: 0000000000000000f000000000000000, type: 0} + m_ScreenSpaceShadows: + m_Mode: 1 + m_Shader: {fileID: 64, guid: 0000000000000000f000000000000000, type: 0} + m_LegacyDeferred: + m_Mode: 1 + m_Shader: {fileID: 63, guid: 0000000000000000f000000000000000, type: 0} + m_DepthNormals: + m_Mode: 1 + m_Shader: {fileID: 62, guid: 0000000000000000f000000000000000, type: 0} + m_MotionVectors: + m_Mode: 1 + m_Shader: {fileID: 75, guid: 0000000000000000f000000000000000, type: 0} + m_LightHalo: + m_Mode: 1 + m_Shader: {fileID: 105, guid: 0000000000000000f000000000000000, type: 0} + m_LensFlare: + m_Mode: 1 + m_Shader: {fileID: 102, guid: 0000000000000000f000000000000000, type: 0} + m_AlwaysIncludedShaders: + - {fileID: 7, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15104, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15105, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 15106, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10753, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10770, guid: 0000000000000000f000000000000000, type: 0} + - {fileID: 10783, guid: 0000000000000000f000000000000000, type: 0} + m_PreloadedShaders: [] + m_SpritesDefaultMaterial: {fileID: 10754, guid: 0000000000000000f000000000000000, + type: 0} + m_CustomRenderPipeline: {fileID: 11400000, guid: 63e769e3f0d41094da311c3c96418947, + type: 2} + m_TransparencySortMode: 0 + m_TransparencySortAxis: {x: 0, y: 0, z: 1} + m_DefaultRenderingPath: 1 + m_DefaultMobileRenderingPath: 1 + m_TierSettings: [] + m_LightmapStripping: 0 + m_FogStripping: 0 + m_InstancingStripping: 0 + m_LightmapKeepPlain: 1 + m_LightmapKeepDirCombined: 1 + m_LightmapKeepDynamicPlain: 1 + m_LightmapKeepDynamicDirCombined: 1 + m_LightmapKeepShadowMask: 1 + m_LightmapKeepSubtractive: 1 + m_FogKeepLinear: 1 + m_FogKeepExp: 1 + m_FogKeepExp2: 1 + m_AlbedoSwatchInfos: [] + m_LightsUseLinearIntensity: 1 + m_LightsUseColorTemperature: 1 + m_LogWhenShaderIsCompiled: 0 + m_AllowEnlightenSupportForUpgradedProject: 0 diff --git a/Outline.HDRP/ProjectSettings/HDRPProjectSettings.asset b/Outline.HDRP/ProjectSettings/HDRPProjectSettings.asset new file mode 100644 index 0000000..349631c --- /dev/null +++ b/Outline.HDRP/ProjectSettings/HDRPProjectSettings.asset @@ -0,0 +1,22 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &1 +MonoBehaviour: + m_ObjectHideFlags: 61 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 63a2978a97e4fc04cb9d905947216f3d, type: 3} + m_Name: + m_EditorClassIdentifier: + version: 1 + m_DefaultScenePrefabSaved: {fileID: 4893056312182120781, guid: de1884a706667b84cbf9c4195ee402ca, + type: 3} + m_DefaultDXRScenePrefabSaved: {fileID: 0} + m_ProjectSettingFolderPath: HDRPDefaultResources + m_WizardPopupAtStart: 0 + m_WizardActiveTab: 0 + m_PackageVersionForMaterials: 7.1.8 diff --git a/Outline.HDRP/ProjectSettings/InputManager.asset b/Outline.HDRP/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..b16147e --- /dev/null +++ b/Outline.HDRP/ProjectSettings/InputManager.asset @@ -0,0 +1,487 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!13 &1 +InputManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Axes: + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: a + altPositiveButton: d + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: s + altPositiveButton: w + gravity: 3 + dead: 0.001 + sensitivity: 3 + snap: 1 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: mouse 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: mouse 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: mouse 2 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: space + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse X + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse Y + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Mouse ScrollWheel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0 + sensitivity: 0.1 + snap: 0 + invert: 0 + type: 1 + axis: 2 + joyNum: 0 + - serializedVersion: 3 + m_Name: Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 0 + type: 2 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: + altNegativeButton: + altPositiveButton: + gravity: 0 + dead: 0.19 + sensitivity: 1 + snap: 0 + invert: 1 + type: 2 + axis: 1 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 0 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 1 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Fire3 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 2 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Jump + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: joystick button 3 + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Submit + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: enter + altNegativeButton: + altPositiveButton: space + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Cancel + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: escape + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 1 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left ctrl + altNegativeButton: + altPositiveButton: joystick button 8 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Enable Debug Button 2 + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: backspace + altNegativeButton: + altPositiveButton: joystick button 9 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Reset + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left alt + altNegativeButton: + altPositiveButton: joystick button 1 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Next + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page down + altNegativeButton: + altPositiveButton: joystick button 5 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Previous + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: page up + altNegativeButton: + altPositiveButton: joystick button 4 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Validate + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: return + altNegativeButton: + altPositiveButton: joystick button 0 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Persistent + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: right shift + altNegativeButton: + altPositiveButton: joystick button 2 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Multiplier + descriptiveName: + descriptiveNegativeName: + negativeButton: + positiveButton: left shift + altNegativeButton: + altPositiveButton: joystick button 3 + gravity: 0 + dead: 0 + sensitivity: 0 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 0 + axis: 0 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Vertical + descriptiveName: + descriptiveNegativeName: + negativeButton: down + positiveButton: up + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 6 + joyNum: 0 + - serializedVersion: 3 + m_Name: Debug Horizontal + descriptiveName: + descriptiveNegativeName: + negativeButton: left + positiveButton: right + altNegativeButton: + altPositiveButton: + gravity: 1000 + dead: 0.001 + sensitivity: 1000 + snap: 0 + invert: 0 + type: 2 + axis: 5 + joyNum: 0 diff --git a/Outline.HDRP/ProjectSettings/NavMeshAreas.asset b/Outline.HDRP/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..3b0b7c3 --- /dev/null +++ b/Outline.HDRP/ProjectSettings/NavMeshAreas.asset @@ -0,0 +1,91 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!126 &1 +NavMeshProjectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + areas: + - name: Walkable + cost: 1 + - name: Not Walkable + cost: 1 + - name: Jump + cost: 2 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + - name: + cost: 1 + m_LastAgentTypeID: -887442657 + m_Settings: + - serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.75 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + debug: + m_Flags: 0 + m_SettingNames: + - Humanoid diff --git a/Outline.HDRP/ProjectSettings/Physics2DSettings.asset b/Outline.HDRP/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..6c5cf8a --- /dev/null +++ b/Outline.HDRP/ProjectSettings/Physics2DSettings.asset @@ -0,0 +1,56 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!19 &1 +Physics2DSettings: + m_ObjectHideFlags: 0 + serializedVersion: 4 + m_Gravity: {x: 0, y: -9.81} + m_DefaultMaterial: {fileID: 0} + m_VelocityIterations: 8 + m_PositionIterations: 3 + m_VelocityThreshold: 1 + m_MaxLinearCorrection: 0.2 + m_MaxAngularCorrection: 8 + m_MaxTranslationSpeed: 100 + m_MaxRotationSpeed: 360 + m_BaumgarteScale: 0.2 + m_BaumgarteTimeOfImpactScale: 0.75 + m_TimeToSleep: 0.5 + m_LinearSleepTolerance: 0.01 + m_AngularSleepTolerance: 2 + m_DefaultContactOffset: 0.01 + m_JobOptions: + serializedVersion: 2 + useMultithreading: 0 + useConsistencySorting: 0 + m_InterpolationPosesPerJob: 100 + m_NewContactsPerJob: 30 + m_CollideContactsPerJob: 100 + m_ClearFlagsPerJob: 200 + m_ClearBodyForcesPerJob: 200 + m_SyncDiscreteFixturesPerJob: 50 + m_SyncContinuousFixturesPerJob: 50 + m_FindNearestContactsPerJob: 100 + m_UpdateTriggerContactsPerJob: 100 + m_IslandSolverCostThreshold: 100 + m_IslandSolverBodyCostScale: 1 + m_IslandSolverContactCostScale: 10 + m_IslandSolverJointCostScale: 10 + m_IslandSolverBodiesPerJob: 50 + m_IslandSolverContactsPerJob: 50 + m_AutoSimulation: 1 + m_QueriesHitTriggers: 1 + m_QueriesStartInColliders: 1 + m_CallbacksOnDisable: 1 + m_ReuseCollisionCallbacks: 0 + m_AutoSyncTransforms: 0 + m_AlwaysShowColliders: 0 + m_ShowColliderSleep: 1 + m_ShowColliderContacts: 0 + m_ShowColliderAABB: 0 + m_ContactArrowScale: 0.2 + m_ColliderAwakeColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.7529412} + m_ColliderAsleepColor: {r: 0.5686275, g: 0.95686275, b: 0.54509807, a: 0.36078432} + m_ColliderContactColor: {r: 1, g: 0, b: 1, a: 0.6862745} + m_ColliderAABBColor: {r: 1, g: 1, b: 0, a: 0.2509804} + m_LayerCollisionMatrix: ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff diff --git a/Outline.HDRP/ProjectSettings/PresetManager.asset b/Outline.HDRP/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..67a94da --- /dev/null +++ b/Outline.HDRP/ProjectSettings/PresetManager.asset @@ -0,0 +1,7 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1386491679 &1 +PresetManager: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_DefaultPresets: {} diff --git a/Outline.HDRP/ProjectSettings/ProjectSettings.asset b/Outline.HDRP/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..d0a9eca --- /dev/null +++ b/Outline.HDRP/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,618 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 20 + productGUID: 7510e5ff91f1dd44e98faa701473f4c5 + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Outline.HDRP + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1024 + defaultScreenHeight: 768 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 1 + m_MTRendering: 1 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + iosUseCustomAppBackgroundBehavior: 0 + iosAllowHTTPDownload: 1 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 1 + androidUseSwappy: 0 + androidBlitType: 0 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 0 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + useFlipModelSwapchain: 1 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + vulkanNumSwapchainBuffers: 3 + vulkanEnableSetSRGBWrite: 0 + m_SupportedAspectRatios: + 4:3: 1 + 5:4: 1 + 16:10: 1 + 16:9: 1 + Others: 1 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 1 + xboxOneEnable7thCore: 1 + vrSettings: + cardboard: + depthFormat: 0 + enableTransitionView: 0 + daydream: + depthFormat: 0 + useSustainedPerformanceMode: 0 + enableVideoLayer: 0 + useProtectedVideoMemory: 0 + minimumSupportedHeadTracking: 0 + maximumSupportedHeadTracking: 1 + hololens: + depthFormat: 1 + depthBufferSharingEnabled: 1 + lumin: + depthFormat: 0 + frameTiming: 2 + enableGLCache: 0 + glCacheMaxBlobSize: 524288 + glCacheMaxFileSize: 8388608 + oculus: + sharedDepthBuffer: 1 + dashSupport: 1 + lowOverheadMode: 0 + protectedContext: 0 + v2Signing: 1 + enable360StereoCapture: 0 + isWsaHolographicRemotingEnabled: 0 + enableFrameTimingStats: 0 + useHDRDisplay: 0 + D3DHDRBitDepth: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + applicationIdentifier: {} + buildNumber: {} + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 19 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSTargetOSVersionString: 10.0 + tvOSSdkVersion: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 10.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + iPhoneSplashScreen: {fileID: 0} + iPhoneHighResSplashScreen: {fileID: 0} + iPhoneTallHighResSplashScreen: {fileID: 0} + iPhone47inSplashScreen: {fileID: 0} + iPhone55inPortraitSplashScreen: {fileID: 0} + iPhone55inLandscapeSplashScreen: {fileID: 0} + iPhone58inPortraitSplashScreen: {fileID: 0} + iPhone58inLandscapeSplashScreen: {fileID: 0} + iPadPortraitSplashScreen: {fileID: 0} + iPadHighResPortraitSplashScreen: {fileID: 0} + iPadLandscapeSplashScreen: {fileID: 0} + iPadHighResLandscapeSplashScreen: {fileID: 0} + iPhone65inPortraitSplashScreen: {fileID: 0} + iPhone65inLandscapeSplashScreen: {fileID: 0} + iPhone61inPortraitSplashScreen: {fileID: 0} + iPhone61inLandscapeSplashScreen: {fileID: 0} + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSUseLaunchScreenStoryboard: 0 + iOSLaunchScreenCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + iOSRenderExtraFrameOnPause: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + clonedFromGUID: 00000000000000000000000000000000 + templatePackageId: + templateDefaultScene: + AndroidTargetArchitectures: 1 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + androidUseCustomKeystore: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + AndroidValidateAppBundleSize: 1 + AndroidAppBundleSizeToValidate: 150 + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: [] + m_BuildTargetGraphicsJobs: [] + m_BuildTargetGraphicsJobMode: [] + m_BuildTargetGraphicsAPIs: [] + m_BuildTargetVRSettings: [] + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + openGLRequireES32: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: + - m_BuildTarget: Standalone + m_EncodingQuality: 2 + - m_BuildTarget: Android + m_EncodingQuality: 2 + - m_BuildTarget: Lumin + m_EncodingQuality: 2 + - m_BuildTarget: Windows Store Apps + m_EncodingQuality: 2 + m_BuildTargetGroupLightmapSettings: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchTouchScreenUsage: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchRatingsInt_12: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 22 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchPlayerConnectionEnabled: 1 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + playerPrefsMaxSize: 32768 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + ps4attribVROutputEnabled: 0 + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + blurSplashScreenBackground: 1 + spritePackerPolicy: + webGLMemorySize: 32 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 0 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + webGLWasmStreaming: 0 + scriptingDefineSymbols: {} + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + allowUnsafeCode: 0 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + gcIncremental: 0 + gcWBarrierValidation: 0 + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Outline.HDRP + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Outline.HDRP + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, + a: 1} + metroSplashScreenUseBackgroundColor: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + XboxOneOverrideIdentityName: + vrEditorSettings: + daydream: + daydreamIconForeground: {fileID: 0} + daydreamIconBackground: {fileID: 0} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_SignPackage: 1 + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + apiCompatibilityLevel: 6 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + projectName: + organizationId: + cloudEnabled: 0 + enableNativePlatformBackendsForNewInputSystem: 0 + disableOldInputManagerSupport: 0 + legacyClampBlendShapeWeights: 0 diff --git a/Outline.HDRP/ProjectSettings/ProjectVersion.txt b/Outline.HDRP/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..e1506f9 --- /dev/null +++ b/Outline.HDRP/ProjectSettings/ProjectVersion.txt @@ -0,0 +1,2 @@ +m_EditorVersion: 2019.3.1f1 +m_EditorVersionWithRevision: 2019.3.1f1 (89d6087839c2) diff --git a/Outline.HDRP/ProjectSettings/QualitySettings.asset b/Outline.HDRP/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..d24eb10 --- /dev/null +++ b/Outline.HDRP/ProjectSettings/QualitySettings.asset @@ -0,0 +1,236 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!47 &1 +QualitySettings: + m_ObjectHideFlags: 0 + serializedVersion: 5 + m_CurrentQuality: 5 + m_QualitySettings: + - serializedVersion: 2 + name: Very Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 15 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 1 + textureQuality: 1 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.3 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Low + pixelLightCount: 0 + shadows: 0 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 0 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 0 + lodBias: 0.4 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 16 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Medium + pixelLightCount: 1 + shadows: 1 + shadowResolution: 0 + shadowProjection: 1 + shadowCascades: 1 + shadowDistance: 20 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 0 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 0 + realtimeReflectionProbes: 0 + billboardsFaceCameraPosition: 0 + vSyncCount: 1 + lodBias: 0.7 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 64 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: High + pixelLightCount: 2 + shadows: 2 + shadowResolution: 1 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 40 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 2 + textureQuality: 0 + anisotropicTextures: 1 + antiAliasing: 0 + softParticles: 0 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 256 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Very High + pixelLightCount: 3 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 2 + shadowDistance: 70 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 4 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 1.5 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 1024 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + - serializedVersion: 2 + name: Ultra + pixelLightCount: 4 + shadows: 2 + shadowResolution: 2 + shadowProjection: 1 + shadowCascades: 4 + shadowDistance: 150 + shadowNearPlaneOffset: 3 + shadowCascade2Split: 0.33333334 + shadowCascade4Split: {x: 0.06666667, y: 0.2, z: 0.46666667} + shadowmaskMode: 1 + skinWeights: 255 + textureQuality: 0 + anisotropicTextures: 2 + antiAliasing: 2 + softParticles: 1 + softVegetation: 1 + realtimeReflectionProbes: 1 + billboardsFaceCameraPosition: 1 + vSyncCount: 1 + lodBias: 2 + maximumLODLevel: 0 + streamingMipmapsActive: 0 + streamingMipmapsAddAllCameras: 1 + streamingMipmapsMemoryBudget: 512 + streamingMipmapsRenderersPerFrame: 512 + streamingMipmapsMaxLevelReduction: 2 + streamingMipmapsMaxFileIORequests: 1024 + particleRaycastBudget: 4096 + asyncUploadTimeSlice: 2 + asyncUploadBufferSize: 16 + asyncUploadPersistentBuffer: 1 + resolutionScalingFixedDPIFactor: 1 + customRenderPipeline: {fileID: 0} + excludedTargetPlatforms: [] + m_PerPlatformDefaultQuality: + Android: 2 + Lumin: 5 + Nintendo Switch: 5 + PS4: 5 + Stadia: 5 + Standalone: 5 + WebGL: 3 + Windows Store Apps: 5 + XboxOne: 5 + iPhone: 2 + tvOS: 2 diff --git a/Outline.HDRP/ProjectSettings/TagManager.asset b/Outline.HDRP/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..1c92a78 --- /dev/null +++ b/Outline.HDRP/ProjectSettings/TagManager.asset @@ -0,0 +1,43 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!78 &1 +TagManager: + serializedVersion: 2 + tags: [] + layers: + - Default + - TransparentFX + - Ignore Raycast + - + - Water + - UI + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + m_SortingLayers: + - name: Default + uniqueID: 0 + locked: 0 diff --git a/Outline.HDRP/ProjectSettings/TimeManager.asset b/Outline.HDRP/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..558a017 --- /dev/null +++ b/Outline.HDRP/ProjectSettings/TimeManager.asset @@ -0,0 +1,9 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!5 &1 +TimeManager: + m_ObjectHideFlags: 0 + Fixed Timestep: 0.02 + Maximum Allowed Timestep: 0.33333334 + m_TimeScale: 1 + Maximum Particle Timestep: 0.03 diff --git a/Outline.HDRP/ProjectSettings/UnityConnectSettings.asset b/Outline.HDRP/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..fa0b146 --- /dev/null +++ b/Outline.HDRP/ProjectSettings/UnityConnectSettings.asset @@ -0,0 +1,34 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!310 &1 +UnityConnectSettings: + m_ObjectHideFlags: 0 + serializedVersion: 1 + m_Enabled: 0 + m_TestMode: 0 + m_EventOldUrl: https://api.uca.cloud.unity3d.com/v1/events + m_EventUrl: https://cdp.cloud.unity3d.com/v1/events + m_ConfigUrl: https://config.uca.cloud.unity3d.com + m_TestInitMode: 0 + CrashReportingSettings: + m_EventUrl: https://perf-events.cloud.unity3d.com + m_Enabled: 0 + m_LogBufferSize: 10 + m_CaptureEditorExceptions: 1 + UnityPurchasingSettings: + m_Enabled: 0 + m_TestMode: 0 + UnityAnalyticsSettings: + m_Enabled: 0 + m_TestMode: 0 + m_InitializeOnStartup: 1 + UnityAdsSettings: + m_Enabled: 0 + m_InitializeOnStartup: 1 + m_TestMode: 0 + m_IosGameId: + m_AndroidGameId: + m_GameIds: {} + m_GameId: + PerformanceReportingSettings: + m_Enabled: 0 diff --git a/Outline.HDRP/ProjectSettings/VFXManager.asset b/Outline.HDRP/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..3a95c98 --- /dev/null +++ b/Outline.HDRP/ProjectSettings/VFXManager.asset @@ -0,0 +1,12 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!937362698 &1 +VFXManager: + m_ObjectHideFlags: 0 + m_IndirectShader: {fileID: 0} + m_CopyBufferShader: {fileID: 0} + m_SortShader: {fileID: 0} + m_StripUpdateShader: {fileID: 0} + m_RenderPipeSettingsPath: + m_FixedTimeStep: 0.016666668 + m_MaxDeltaTime: 0.05 diff --git a/Outline.HDRP/ProjectSettings/XRSettings.asset b/Outline.HDRP/ProjectSettings/XRSettings.asset new file mode 100644 index 0000000..482590c --- /dev/null +++ b/Outline.HDRP/ProjectSettings/XRSettings.asset @@ -0,0 +1,10 @@ +{ + "m_SettingKeys": [ + "VR Device Disabled", + "VR Device User Alert" + ], + "m_SettingValues": [ + "False", + "False" + ] +} \ No newline at end of file diff --git a/Outline.PostProcessing/Assets/Examples.meta b/Outline.PostProcessing/Assets/Examples.meta new file mode 100644 index 0000000..6594ef3 --- /dev/null +++ b/Outline.PostProcessing/Assets/Examples.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a810a4ae77829ce4d90d97e71431392f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Examples/PostProcessing.meta b/Outline.PostProcessing/Assets/Examples/PostProcessing.meta similarity index 100% rename from Assets/Examples/PostProcessing.meta rename to Outline.PostProcessing/Assets/Examples/PostProcessing.meta diff --git a/Assets/Examples/PostProcessing/PostProcessingProfile.asset b/Outline.PostProcessing/Assets/Examples/PostProcessing/PostProcessingProfile.asset similarity index 100% rename from Assets/Examples/PostProcessing/PostProcessingProfile.asset rename to Outline.PostProcessing/Assets/Examples/PostProcessing/PostProcessingProfile.asset diff --git a/Assets/Examples/PostProcessing/PostProcessingProfile.asset.meta b/Outline.PostProcessing/Assets/Examples/PostProcessing/PostProcessingProfile.asset.meta similarity index 100% rename from Assets/Examples/PostProcessing/PostProcessingProfile.asset.meta rename to Outline.PostProcessing/Assets/Examples/PostProcessing/PostProcessingProfile.asset.meta diff --git a/Assets/Examples/PostProcessing/PostProcessingSample.unity b/Outline.PostProcessing/Assets/Examples/PostProcessing/PostProcessingSample.unity similarity index 100% rename from Assets/Examples/PostProcessing/PostProcessingSample.unity rename to Outline.PostProcessing/Assets/Examples/PostProcessing/PostProcessingSample.unity diff --git a/Assets/Examples/PostProcessing/PostProcessingSample.unity.meta b/Outline.PostProcessing/Assets/Examples/PostProcessing/PostProcessingSample.unity.meta similarity index 100% rename from Assets/Examples/PostProcessing/PostProcessingSample.unity.meta rename to Outline.PostProcessing/Assets/Examples/PostProcessing/PostProcessingSample.unity.meta diff --git a/Packages/UnityFx.Outline.PostProcessing/CHANGELOG.md b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/CHANGELOG.md similarity index 92% rename from Packages/UnityFx.Outline.PostProcessing/CHANGELOG.md rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/CHANGELOG.md index 3a73de8..ae04922 100644 --- a/Packages/UnityFx.Outline.PostProcessing/CHANGELOG.md +++ b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/CHANGELOG.md @@ -3,7 +3,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/); this project adheres to [Semantic Versioning](http://semver.org/). -## [0.1.0] - unreleased +## [0.1.0] - 2020.04.08 ### Added - Initial release. diff --git a/Packages/UnityFx.Outline.PostProcessing/CHANGELOG.md.meta b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/CHANGELOG.md.meta similarity index 100% rename from Packages/UnityFx.Outline.PostProcessing/CHANGELOG.md.meta rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/CHANGELOG.md.meta diff --git a/Packages/UnityFx.Outline.PostProcessing/README.md b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/README.md similarity index 86% rename from Packages/UnityFx.Outline.PostProcessing/README.md rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/README.md index 1fc72d2..bf83293 100644 --- a/Packages/UnityFx.Outline.PostProcessing/README.md +++ b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/README.md @@ -1,7 +1,7 @@ # UnityFx.Outline.PostProcessing ## SUMMARY -Screen-space outline effects for Unity Post-processing Stack v2. +Screen-space outline effect for Unity Post-processing Stack v2. ## USEFUL LINKS * [Github project](https://github.com/Arvtesh/UnityFx.Outline) diff --git a/Packages/UnityFx.Outline.PostProcessing/README.md.meta b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/README.md.meta similarity index 100% rename from Packages/UnityFx.Outline.PostProcessing/README.md.meta rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/README.md.meta diff --git a/Packages/UnityFx.Outline.PostProcessing/Runtime.meta b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime.meta similarity index 100% rename from Packages/UnityFx.Outline.PostProcessing/Runtime.meta rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime.meta diff --git a/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts.meta b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts.meta similarity index 100% rename from Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts.meta rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts.meta diff --git a/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/Outline.cs b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/Outline.cs similarity index 96% rename from Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/Outline.cs rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/Outline.cs index b8cbd52..e7ef71d 100644 --- a/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/Outline.cs +++ b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/Outline.cs @@ -11,9 +11,13 @@ namespace UnityFx.Outline.PostProcessing [PostProcess(typeof(OutlineEffectRenderer), PostProcessEvent.BeforeStack, "UnityFx/Outline", false)] public sealed class Outline : PostProcessEffectSettings { +#pragma warning disable 0649 + [SerializeField] private OutlineResources _defaultResources; +#pragma warning restore 0649 + [Serializable] public class OutlineResourcesParameter : ParameterOverride { diff --git a/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/Outline.cs.meta b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/Outline.cs.meta similarity index 100% rename from Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/Outline.cs.meta rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/Outline.cs.meta diff --git a/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/OutlineEffectRenderer.cs b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/OutlineEffectRenderer.cs similarity index 100% rename from Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/OutlineEffectRenderer.cs rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/OutlineEffectRenderer.cs diff --git a/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/OutlineEffectRenderer.cs.meta b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/OutlineEffectRenderer.cs.meta similarity index 100% rename from Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/OutlineEffectRenderer.cs.meta rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/Scripts/OutlineEffectRenderer.cs.meta diff --git a/Packages/UnityFx.Outline.PostProcessing/Runtime/UnityFx.Outline.PostProcessing.asmdef b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/UnityFx.Outline.PostProcessing.asmdef similarity index 100% rename from Packages/UnityFx.Outline.PostProcessing/Runtime/UnityFx.Outline.PostProcessing.asmdef rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/UnityFx.Outline.PostProcessing.asmdef diff --git a/Packages/UnityFx.Outline.PostProcessing/Runtime/UnityFx.Outline.PostProcessing.asmdef.meta b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/UnityFx.Outline.PostProcessing.asmdef.meta similarity index 100% rename from Packages/UnityFx.Outline.PostProcessing/Runtime/UnityFx.Outline.PostProcessing.asmdef.meta rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/Runtime/UnityFx.Outline.PostProcessing.asmdef.meta diff --git a/Packages/UnityFx.Outline.PostProcessing/package.json b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/package.json similarity index 75% rename from Packages/UnityFx.Outline.PostProcessing/package.json rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/package.json index 2da098a..6c5b92f 100644 --- a/Packages/UnityFx.Outline.PostProcessing/package.json +++ b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/package.json @@ -2,10 +2,10 @@ "name": "com.unityfx.outline.postprocessing", "version": "0.1.0", "displayName": "Screen-space outline (Post-processing v2)", - "description": "Configurable outline for Unity post-processing stack (v2). Both solid and blurred modes supported (Gauss blur).", - "unity": "2018.1", + "description": "Configurable outline implementation for Unity post-processing stack (v2). Both solid and blurred modes supported (Gauss blur). Scriptable render pipeline is not supported.", + "unity": "2018.4", "dependencies": { - "com.unityfx.outline": "0.7.1", + "com.unityfx.outline": "0.7.2", "com.unity.postprocessing": "2.2.2" }, "keywords": [ diff --git a/Packages/UnityFx.Outline.PostProcessing/package.json.meta b/Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/package.json.meta similarity index 100% rename from Packages/UnityFx.Outline.PostProcessing/package.json.meta rename to Outline.PostProcessing/Packages/UnityFx.Outline.PostProcessing/package.json.meta diff --git a/Outline.PostProcessing/Packages/manifest.json b/Outline.PostProcessing/Packages/manifest.json new file mode 100644 index 0000000..215c50c --- /dev/null +++ b/Outline.PostProcessing/Packages/manifest.json @@ -0,0 +1,45 @@ +{ + "scopedRegistries": [ + { + "name": "Arvtesh", + "url": "https://registry.npmjs.org/", + "scopes": [ + "com.unityfx" + ] + } + ], + "dependencies": { + "com.unity.package-manager-ui": "2.0.8", + "com.unityfx.outline": "0.7.1", + "com.unity.modules.ai": "1.0.0", + "com.unity.modules.animation": "1.0.0", + "com.unity.modules.assetbundle": "1.0.0", + "com.unity.modules.audio": "1.0.0", + "com.unity.modules.cloth": "1.0.0", + "com.unity.modules.director": "1.0.0", + "com.unity.modules.imageconversion": "1.0.0", + "com.unity.modules.imgui": "1.0.0", + "com.unity.modules.jsonserialize": "1.0.0", + "com.unity.modules.particlesystem": "1.0.0", + "com.unity.modules.physics": "1.0.0", + "com.unity.modules.physics2d": "1.0.0", + "com.unity.modules.screencapture": "1.0.0", + "com.unity.modules.terrain": "1.0.0", + "com.unity.modules.terrainphysics": "1.0.0", + "com.unity.modules.tilemap": "1.0.0", + "com.unity.modules.ui": "1.0.0", + "com.unity.modules.uielements": "1.0.0", + "com.unity.modules.umbra": "1.0.0", + "com.unity.modules.unityanalytics": "1.0.0", + "com.unity.modules.unitywebrequest": "1.0.0", + "com.unity.modules.unitywebrequestassetbundle": "1.0.0", + "com.unity.modules.unitywebrequestaudio": "1.0.0", + "com.unity.modules.unitywebrequesttexture": "1.0.0", + "com.unity.modules.unitywebrequestwww": "1.0.0", + "com.unity.modules.vehicles": "1.0.0", + "com.unity.modules.video": "1.0.0", + "com.unity.modules.vr": "1.0.0", + "com.unity.modules.wind": "1.0.0", + "com.unity.modules.xr": "1.0.0" + } +} diff --git a/Outline.PostProcessing/ProjectSettings/AudioManager.asset b/Outline.PostProcessing/ProjectSettings/AudioManager.asset new file mode 100644 index 0000000..5c93837 Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/AudioManager.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/ClusterInputManager.asset b/Outline.PostProcessing/ProjectSettings/ClusterInputManager.asset new file mode 100644 index 0000000..25f8389 Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/ClusterInputManager.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/DynamicsManager.asset b/Outline.PostProcessing/ProjectSettings/DynamicsManager.asset new file mode 100644 index 0000000..04d457b Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/DynamicsManager.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/EditorBuildSettings.asset b/Outline.PostProcessing/ProjectSettings/EditorBuildSettings.asset new file mode 100644 index 0000000..c168a5b Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/EditorBuildSettings.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/EditorSettings.asset b/Outline.PostProcessing/ProjectSettings/EditorSettings.asset new file mode 100644 index 0000000..51a5136 Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/EditorSettings.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/InputManager.asset b/Outline.PostProcessing/ProjectSettings/InputManager.asset new file mode 100644 index 0000000..3f9c9da Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/InputManager.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/NavMeshAreas.asset b/Outline.PostProcessing/ProjectSettings/NavMeshAreas.asset new file mode 100644 index 0000000..6e823e5 Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/NavMeshAreas.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/Physics2DSettings.asset b/Outline.PostProcessing/ProjectSettings/Physics2DSettings.asset new file mode 100644 index 0000000..bf33cda Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/Physics2DSettings.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/PresetManager.asset b/Outline.PostProcessing/ProjectSettings/PresetManager.asset new file mode 100644 index 0000000..de7e261 Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/PresetManager.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/ProjectSettings.asset b/Outline.PostProcessing/ProjectSettings/ProjectSettings.asset new file mode 100644 index 0000000..c7ccd06 --- /dev/null +++ b/Outline.PostProcessing/ProjectSettings/ProjectSettings.asset @@ -0,0 +1,607 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!129 &1 +PlayerSettings: + m_ObjectHideFlags: 0 + serializedVersion: 18 + productGUID: 80c46c34b35de234b8ff59cb435fdc78 + AndroidProfiler: 0 + AndroidFilterTouchesWhenObscured: 0 + AndroidEnableSustainedPerformanceMode: 0 + defaultScreenOrientation: 4 + targetDevice: 2 + useOnDemandResources: 0 + accelerometerFrequency: 60 + companyName: DefaultCompany + productName: Outline.PostProcessing + defaultCursor: {fileID: 0} + cursorHotspot: {x: 0, y: 0} + m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b: 0.1254902, a: 1} + m_ShowUnitySplashScreen: 1 + m_ShowUnitySplashLogo: 1 + m_SplashScreenOverlayOpacity: 1 + m_SplashScreenAnimation: 1 + m_SplashScreenLogoStyle: 1 + m_SplashScreenDrawMode: 0 + m_SplashScreenBackgroundAnimationZoom: 1 + m_SplashScreenLogoAnimationZoom: 1 + m_SplashScreenBackgroundLandscapeAspect: 1 + m_SplashScreenBackgroundPortraitAspect: 1 + m_SplashScreenBackgroundLandscapeUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenBackgroundPortraitUvs: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + m_SplashScreenLogos: [] + m_VirtualRealitySplashScreen: {fileID: 0} + m_HolographicTrackingLossScreen: {fileID: 0} + defaultScreenWidth: 1024 + defaultScreenHeight: 768 + defaultScreenWidthWeb: 960 + defaultScreenHeightWeb: 600 + m_StereoRenderingPath: 0 + m_ActiveColorSpace: 0 + m_MTRendering: 1 + m_StackTraceTypes: 010000000100000001000000010000000100000001000000 + iosShowActivityIndicatorOnLoading: -1 + androidShowActivityIndicatorOnLoading: -1 + displayResolutionDialog: 1 + iosUseCustomAppBackgroundBehavior: 0 + iosAllowHTTPDownload: 1 + allowedAutorotateToPortrait: 1 + allowedAutorotateToPortraitUpsideDown: 1 + allowedAutorotateToLandscapeRight: 1 + allowedAutorotateToLandscapeLeft: 1 + useOSAutorotation: 1 + use32BitDisplayBuffer: 1 + preserveFramebufferAlpha: 0 + disableDepthAndStencilBuffers: 0 + androidStartInFullscreen: 1 + androidRenderOutsideSafeArea: 0 + androidBlitType: 0 + defaultIsNativeResolution: 1 + macRetinaSupport: 1 + runInBackground: 0 + captureSingleScreen: 0 + muteOtherAudioSources: 0 + Prepare IOS For Recording: 0 + Force IOS Speakers When Recording: 0 + deferSystemGesturesMode: 0 + hideHomeButton: 0 + submitAnalytics: 1 + usePlayerLog: 1 + bakeCollisionMeshes: 0 + forceSingleInstance: 0 + resizableWindow: 0 + useMacAppStoreValidation: 0 + macAppStoreCategory: public.app-category.games + gpuSkinning: 0 + graphicsJobs: 0 + xboxPIXTextureCapture: 0 + xboxEnableAvatar: 0 + xboxEnableKinect: 0 + xboxEnableKinectAutoTracking: 0 + xboxEnableFitness: 0 + visibleInBackground: 1 + allowFullscreenSwitch: 1 + graphicsJobMode: 0 + fullscreenMode: 1 + xboxSpeechDB: 0 + xboxEnableHeadOrientation: 0 + xboxEnableGuest: 0 + xboxEnablePIXSampling: 0 + metalFramebufferOnly: 0 + xboxOneResolution: 0 + xboxOneSResolution: 0 + xboxOneXResolution: 3 + xboxOneMonoLoggingLevel: 0 + xboxOneLoggingLevel: 1 + xboxOneDisableEsram: 0 + xboxOnePresentImmediateThreshold: 0 + switchQueueCommandMemory: 1048576 + switchQueueControlMemory: 16384 + switchQueueComputeMemory: 262144 + switchNVNShaderPoolsGranularity: 33554432 + switchNVNDefaultPoolsGranularity: 16777216 + switchNVNOtherPoolsGranularity: 16777216 + vulkanEnableSetSRGBWrite: 0 + m_SupportedAspectRatios: + 4:3: 1 + 5:4: 1 + 16:10: 1 + 16:9: 1 + Others: 1 + bundleVersion: 1.0 + preloadedAssets: [] + metroInputSource: 0 + wsaTransparentSwapchain: 0 + m_HolographicPauseOnTrackingLoss: 1 + xboxOneDisableKinectGpuReservation: 0 + xboxOneEnable7thCore: 1 + isWsaHolographicRemotingEnabled: 0 + vrSettings: + cardboard: + depthFormat: 0 + enableTransitionView: 0 + daydream: + depthFormat: 0 + useSustainedPerformanceMode: 0 + enableVideoLayer: 0 + useProtectedVideoMemory: 0 + minimumSupportedHeadTracking: 0 + maximumSupportedHeadTracking: 1 + hololens: + depthFormat: 1 + depthBufferSharingEnabled: 1 + oculus: + sharedDepthBuffer: 1 + dashSupport: 1 + lowOverheadMode: 0 + protectedContext: 0 + v2Signing: 0 + enable360StereoCapture: 0 + protectGraphicsMemory: 0 + enableFrameTimingStats: 0 + useHDRDisplay: 0 + m_ColorGamuts: 00000000 + targetPixelDensity: 30 + resolutionScalingMode: 0 + androidSupportedAspectRatio: 1 + androidMaxAspectRatio: 2.1 + applicationIdentifier: {} + buildNumber: {} + AndroidBundleVersionCode: 1 + AndroidMinSdkVersion: 16 + AndroidTargetSdkVersion: 0 + AndroidPreferredInstallLocation: 1 + aotOptions: + stripEngineCode: 1 + iPhoneStrippingLevel: 0 + iPhoneScriptCallOptimization: 0 + ForceInternetPermission: 0 + ForceSDCardPermission: 0 + CreateWallpaper: 0 + APKExpansionFiles: 0 + keepLoadedShadersAlive: 0 + StripUnusedMeshComponents: 0 + VertexChannelCompressionMask: 4054 + iPhoneSdkVersion: 988 + iOSTargetOSVersionString: 9.0 + tvOSSdkVersion: 0 + tvOSRequireExtendedGameController: 0 + tvOSTargetOSVersionString: 9.0 + uIPrerenderedIcon: 0 + uIRequiresPersistentWiFi: 0 + uIRequiresFullScreen: 1 + uIStatusBarHidden: 1 + uIExitOnSuspend: 0 + uIStatusBarStyle: 0 + iPhoneSplashScreen: {fileID: 0} + iPhoneHighResSplashScreen: {fileID: 0} + iPhoneTallHighResSplashScreen: {fileID: 0} + iPhone47inSplashScreen: {fileID: 0} + iPhone55inPortraitSplashScreen: {fileID: 0} + iPhone55inLandscapeSplashScreen: {fileID: 0} + iPhone58inPortraitSplashScreen: {fileID: 0} + iPhone58inLandscapeSplashScreen: {fileID: 0} + iPadPortraitSplashScreen: {fileID: 0} + iPadHighResPortraitSplashScreen: {fileID: 0} + iPadLandscapeSplashScreen: {fileID: 0} + iPadHighResLandscapeSplashScreen: {fileID: 0} + appleTVSplashScreen: {fileID: 0} + appleTVSplashScreen2x: {fileID: 0} + tvOSSmallIconLayers: [] + tvOSSmallIconLayers2x: [] + tvOSLargeIconLayers: [] + tvOSLargeIconLayers2x: [] + tvOSTopShelfImageLayers: [] + tvOSTopShelfImageLayers2x: [] + tvOSTopShelfImageWideLayers: [] + tvOSTopShelfImageWideLayers2x: [] + iOSLaunchScreenType: 0 + iOSLaunchScreenPortrait: {fileID: 0} + iOSLaunchScreenLandscape: {fileID: 0} + iOSLaunchScreenBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreenFillPct: 100 + iOSLaunchScreenSize: 100 + iOSLaunchScreenCustomXibPath: + iOSLaunchScreeniPadType: 0 + iOSLaunchScreeniPadImage: {fileID: 0} + iOSLaunchScreeniPadBackgroundColor: + serializedVersion: 2 + rgba: 0 + iOSLaunchScreeniPadFillPct: 100 + iOSLaunchScreeniPadSize: 100 + iOSLaunchScreeniPadCustomXibPath: + iOSUseLaunchScreenStoryboard: 0 + iOSLaunchScreenCustomStoryboardPath: + iOSDeviceRequirements: [] + iOSURLSchemes: [] + iOSBackgroundModes: 0 + iOSMetalForceHardShadows: 0 + metalEditorSupport: 1 + metalAPIValidation: 1 + iOSRenderExtraFrameOnPause: 0 + appleDeveloperTeamID: + iOSManualSigningProvisioningProfileID: + tvOSManualSigningProvisioningProfileID: + iOSManualSigningProvisioningProfileType: 0 + tvOSManualSigningProvisioningProfileType: 0 + appleEnableAutomaticSigning: 0 + iOSRequireARKit: 0 + iOSAutomaticallyDetectAndAddCapabilities: 1 + appleEnableProMotion: 0 + clonedFromGUID: 00000000000000000000000000000000 + templatePackageId: + templateDefaultScene: + AndroidTargetArchitectures: 1 + AndroidSplashScreenScale: 0 + androidSplashScreen: {fileID: 0} + AndroidKeystoreName: + AndroidKeyaliasName: + AndroidBuildApkPerCpuArchitecture: 0 + AndroidTVCompatibility: 0 + AndroidIsGame: 1 + AndroidEnableTango: 0 + androidEnableBanner: 1 + androidUseLowAccuracyLocation: 0 + m_AndroidBanners: + - width: 320 + height: 180 + banner: {fileID: 0} + androidGamepadSupportLevel: 0 + resolutionDialogBanner: {fileID: 0} + m_BuildTargetIcons: [] + m_BuildTargetPlatformIcons: [] + m_BuildTargetBatching: [] + m_BuildTargetGraphicsAPIs: [] + m_BuildTargetVRSettings: [] + m_BuildTargetEnableVuforiaSettings: [] + openGLRequireES31: 0 + openGLRequireES31AEP: 0 + m_TemplateCustomTags: {} + mobileMTRendering: + Android: 1 + iPhone: 1 + tvOS: 1 + m_BuildTargetGroupLightmapEncodingQuality: [] + m_BuildTargetGroupLightmapSettings: [] + playModeTestRunnerEnabled: 0 + runPlayModeTestAsEditModeTest: 0 + actionOnDotNetUnhandledException: 1 + enableInternalProfiler: 0 + logObjCUncaughtExceptions: 1 + enableCrashReportAPI: 0 + cameraUsageDescription: + locationUsageDescription: + microphoneUsageDescription: + switchNetLibKey: + switchSocketMemoryPoolSize: 6144 + switchSocketAllocatorPoolSize: 128 + switchSocketConcurrencyLimit: 14 + switchScreenResolutionBehavior: 2 + switchUseCPUProfiler: 0 + switchApplicationID: 0x01004b9000490000 + switchNSODependencies: + switchTitleNames_0: + switchTitleNames_1: + switchTitleNames_2: + switchTitleNames_3: + switchTitleNames_4: + switchTitleNames_5: + switchTitleNames_6: + switchTitleNames_7: + switchTitleNames_8: + switchTitleNames_9: + switchTitleNames_10: + switchTitleNames_11: + switchTitleNames_12: + switchTitleNames_13: + switchTitleNames_14: + switchPublisherNames_0: + switchPublisherNames_1: + switchPublisherNames_2: + switchPublisherNames_3: + switchPublisherNames_4: + switchPublisherNames_5: + switchPublisherNames_6: + switchPublisherNames_7: + switchPublisherNames_8: + switchPublisherNames_9: + switchPublisherNames_10: + switchPublisherNames_11: + switchPublisherNames_12: + switchPublisherNames_13: + switchPublisherNames_14: + switchIcons_0: {fileID: 0} + switchIcons_1: {fileID: 0} + switchIcons_2: {fileID: 0} + switchIcons_3: {fileID: 0} + switchIcons_4: {fileID: 0} + switchIcons_5: {fileID: 0} + switchIcons_6: {fileID: 0} + switchIcons_7: {fileID: 0} + switchIcons_8: {fileID: 0} + switchIcons_9: {fileID: 0} + switchIcons_10: {fileID: 0} + switchIcons_11: {fileID: 0} + switchIcons_12: {fileID: 0} + switchIcons_13: {fileID: 0} + switchIcons_14: {fileID: 0} + switchSmallIcons_0: {fileID: 0} + switchSmallIcons_1: {fileID: 0} + switchSmallIcons_2: {fileID: 0} + switchSmallIcons_3: {fileID: 0} + switchSmallIcons_4: {fileID: 0} + switchSmallIcons_5: {fileID: 0} + switchSmallIcons_6: {fileID: 0} + switchSmallIcons_7: {fileID: 0} + switchSmallIcons_8: {fileID: 0} + switchSmallIcons_9: {fileID: 0} + switchSmallIcons_10: {fileID: 0} + switchSmallIcons_11: {fileID: 0} + switchSmallIcons_12: {fileID: 0} + switchSmallIcons_13: {fileID: 0} + switchSmallIcons_14: {fileID: 0} + switchManualHTML: + switchAccessibleURLs: + switchLegalInformation: + switchMainThreadStackSize: 1048576 + switchPresenceGroupId: + switchLogoHandling: 0 + switchReleaseVersion: 0 + switchDisplayVersion: 1.0.0 + switchStartupUserAccount: 0 + switchTouchScreenUsage: 0 + switchSupportedLanguagesMask: 0 + switchLogoType: 0 + switchApplicationErrorCodeCategory: + switchUserAccountSaveDataSize: 0 + switchUserAccountSaveDataJournalSize: 0 + switchApplicationAttribute: 0 + switchCardSpecSize: -1 + switchCardSpecClock: -1 + switchRatingsMask: 0 + switchRatingsInt_0: 0 + switchRatingsInt_1: 0 + switchRatingsInt_2: 0 + switchRatingsInt_3: 0 + switchRatingsInt_4: 0 + switchRatingsInt_5: 0 + switchRatingsInt_6: 0 + switchRatingsInt_7: 0 + switchRatingsInt_8: 0 + switchRatingsInt_9: 0 + switchRatingsInt_10: 0 + switchRatingsInt_11: 0 + switchLocalCommunicationIds_0: + switchLocalCommunicationIds_1: + switchLocalCommunicationIds_2: + switchLocalCommunicationIds_3: + switchLocalCommunicationIds_4: + switchLocalCommunicationIds_5: + switchLocalCommunicationIds_6: + switchLocalCommunicationIds_7: + switchParentalControl: 0 + switchAllowsScreenshot: 1 + switchAllowsVideoCapturing: 1 + switchAllowsRuntimeAddOnContentInstall: 0 + switchDataLossConfirmation: 0 + switchUserAccountLockEnabled: 0 + switchSystemResourceMemory: 16777216 + switchSupportedNpadStyles: 6 + switchNativeFsCacheSize: 32 + switchIsHoldTypeHorizontal: 0 + switchSupportedNpadCount: 8 + switchSocketConfigEnabled: 0 + switchTcpInitialSendBufferSize: 32 + switchTcpInitialReceiveBufferSize: 64 + switchTcpAutoSendBufferSizeMax: 256 + switchTcpAutoReceiveBufferSizeMax: 256 + switchUdpSendBufferSize: 9 + switchUdpReceiveBufferSize: 42 + switchSocketBufferEfficiency: 4 + switchSocketInitializeEnabled: 1 + switchNetworkInterfaceManagerInitializeEnabled: 1 + switchPlayerConnectionEnabled: 1 + ps4NPAgeRating: 12 + ps4NPTitleSecret: + ps4NPTrophyPackPath: + ps4ParentalLevel: 11 + ps4ContentID: ED1633-NPXX51362_00-0000000000000000 + ps4Category: 0 + ps4MasterVersion: 01.00 + ps4AppVersion: 01.00 + ps4AppType: 0 + ps4ParamSfxPath: + ps4VideoOutPixelFormat: 0 + ps4VideoOutInitialWidth: 1920 + ps4VideoOutBaseModeInitialWidth: 1920 + ps4VideoOutReprojectionRate: 60 + ps4PronunciationXMLPath: + ps4PronunciationSIGPath: + ps4BackgroundImagePath: + ps4StartupImagePath: + ps4StartupImagesFolder: + ps4IconImagesFolder: + ps4SaveDataImagePath: + ps4SdkOverride: + ps4BGMPath: + ps4ShareFilePath: + ps4ShareOverlayImagePath: + ps4PrivacyGuardImagePath: + ps4NPtitleDatPath: + ps4RemotePlayKeyAssignment: -1 + ps4RemotePlayKeyMappingDir: + ps4PlayTogetherPlayerCount: 0 + ps4EnterButtonAssignment: 2 + ps4ApplicationParam1: 0 + ps4ApplicationParam2: 0 + ps4ApplicationParam3: 0 + ps4ApplicationParam4: 0 + ps4DownloadDataSize: 0 + ps4GarlicHeapSize: 2048 + ps4ProGarlicHeapSize: 2560 + ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ + ps4pnSessions: 1 + ps4pnPresence: 1 + ps4pnFriends: 1 + ps4pnGameCustomData: 1 + playerPrefsSupport: 0 + enableApplicationExit: 0 + resetTempFolder: 1 + restrictedAudioUsageRights: 0 + ps4UseResolutionFallback: 0 + ps4ReprojectionSupport: 0 + ps4UseAudio3dBackend: 0 + ps4SocialScreenEnabled: 0 + ps4ScriptOptimizationLevel: 2 + ps4Audio3dVirtualSpeakerCount: 14 + ps4attribCpuUsage: 0 + ps4PatchPkgPath: + ps4PatchLatestPkgPath: + ps4PatchChangeinfoPath: + ps4PatchDayOne: 0 + ps4attribUserManagement: 0 + ps4attribMoveSupport: 0 + ps4attrib3DSupport: 0 + ps4attribShareSupport: 0 + ps4attribExclusiveVR: 0 + ps4disableAutoHideSplash: 0 + ps4videoRecordingFeaturesUsed: 0 + ps4contentSearchFeaturesUsed: 0 + ps4attribEyeToEyeDistanceSettingVR: 0 + ps4IncludedModules: [] + monoEnv: + splashScreenBackgroundSourceLandscape: {fileID: 0} + splashScreenBackgroundSourcePortrait: {fileID: 0} + spritePackerPolicy: + webGLMemorySize: 256 + webGLExceptionSupport: 1 + webGLNameFilesAsHashes: 0 + webGLDataCaching: 1 + webGLDebugSymbols: 0 + webGLEmscriptenArgs: + webGLModulesDirectory: + webGLTemplate: APPLICATION:Default + webGLAnalyzeBuildSize: 0 + webGLUseEmbeddedResources: 0 + webGLCompressionFormat: 1 + webGLLinkerTarget: 1 + webGLThreadsSupport: 0 + scriptingDefineSymbols: + 1: UNITY_POST_PROCESSING_STACK_V2 + 7: UNITY_POST_PROCESSING_STACK_V2 + 13: UNITY_POST_PROCESSING_STACK_V2 + 19: UNITY_POST_PROCESSING_STACK_V2 + 21: UNITY_POST_PROCESSING_STACK_V2 + 25: UNITY_POST_PROCESSING_STACK_V2 + 26: UNITY_POST_PROCESSING_STACK_V2 + 27: UNITY_POST_PROCESSING_STACK_V2 + 28: UNITY_POST_PROCESSING_STACK_V2 + platformArchitecture: {} + scriptingBackend: {} + il2cppCompilerConfiguration: {} + managedStrippingLevel: {} + incrementalIl2cppBuild: {} + allowUnsafeCode: 0 + additionalIl2CppArgs: + scriptingRuntimeVersion: 1 + apiCompatibilityLevelPerPlatform: {} + m_RenderingPath: 1 + m_MobileRenderingPath: 1 + metroPackageName: Outline.PostProcessing + metroPackageVersion: + metroCertificatePath: + metroCertificatePassword: + metroCertificateSubject: + metroCertificateIssuer: + metroCertificateNotAfter: 0000000000000000 + metroApplicationDescription: Outline.PostProcessing + wsaImages: {} + metroTileShortName: + metroTileShowName: 0 + metroMediumTileShowName: 0 + metroLargeTileShowName: 0 + metroWideTileShowName: 0 + metroSupportStreamingInstall: 0 + metroLastRequiredScene: 0 + metroDefaultTileSize: 1 + metroTileForegroundText: 2 + metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628, a: 0} + metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902, b: 0.21568628, + a: 1} + metroSplashScreenUseBackgroundColor: 0 + platformCapabilities: {} + metroTargetDeviceFamilies: {} + metroFTAName: + metroFTAFileTypes: [] + metroProtocolName: + metroCompilationOverrides: 1 + XboxOneProductId: + XboxOneUpdateKey: + XboxOneSandboxId: + XboxOneContentId: + XboxOneTitleId: + XboxOneSCId: + XboxOneGameOsOverridePath: + XboxOnePackagingOverridePath: + XboxOneAppManifestOverridePath: + XboxOneVersion: 1.0.0.0 + XboxOnePackageEncryption: 0 + XboxOnePackageUpdateGranularity: 2 + XboxOneDescription: + XboxOneLanguage: + - enus + XboxOneCapability: [] + XboxOneGameRating: {} + XboxOneIsContentPackage: 0 + XboxOneEnableGPUVariability: 1 + XboxOneSockets: {} + XboxOneSplashScreen: {fileID: 0} + XboxOneAllowedProductIds: [] + XboxOnePersistentLocalStorageSize: 0 + XboxOneXTitleMemory: 8 + xboxOneScriptCompiler: 0 + XboxOneOverrideIdentityName: + vrEditorSettings: + daydream: + daydreamIconForeground: {fileID: 0} + daydreamIconBackground: {fileID: 0} + cloudServicesEnabled: {} + luminIcon: + m_Name: + m_ModelFolderPath: + m_PortalFolderPath: + luminCert: + m_CertPath: + m_PrivateKeyPath: + luminIsChannelApp: 0 + luminVersion: + m_VersionCode: 1 + m_VersionName: + facebookSdkVersion: + facebookAppId: + facebookCookies: 1 + facebookLogging: 1 + facebookStatus: 1 + facebookXfbml: 0 + facebookFrictionlessRequests: 1 + apiCompatibilityLevel: 6 + cloudProjectId: + framebufferDepthMemorylessMode: 0 + projectName: + organizationId: + cloudEnabled: 0 + enableNativePlatformBackendsForNewInputSystem: 0 + disableOldInputManagerSupport: 0 + legacyClampBlendShapeWeights: 0 diff --git a/Outline.PostProcessing/ProjectSettings/ProjectVersion.txt b/Outline.PostProcessing/ProjectSettings/ProjectVersion.txt new file mode 100644 index 0000000..31a1862 --- /dev/null +++ b/Outline.PostProcessing/ProjectSettings/ProjectVersion.txt @@ -0,0 +1 @@ +m_EditorVersion: 2018.4.11f1 diff --git a/Outline.PostProcessing/ProjectSettings/QualitySettings.asset b/Outline.PostProcessing/ProjectSettings/QualitySettings.asset new file mode 100644 index 0000000..b999b0d Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/QualitySettings.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/TagManager.asset b/Outline.PostProcessing/ProjectSettings/TagManager.asset new file mode 100644 index 0000000..041082d Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/TagManager.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/TimeManager.asset b/Outline.PostProcessing/ProjectSettings/TimeManager.asset new file mode 100644 index 0000000..5ea094c Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/TimeManager.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/UnityConnectSettings.asset b/Outline.PostProcessing/ProjectSettings/UnityConnectSettings.asset new file mode 100644 index 0000000..2a59366 Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/UnityConnectSettings.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/VFXManager.asset b/Outline.PostProcessing/ProjectSettings/VFXManager.asset new file mode 100644 index 0000000..4951a05 Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/VFXManager.asset differ diff --git a/Outline.PostProcessing/ProjectSettings/graphicssettings.asset b/Outline.PostProcessing/ProjectSettings/graphicssettings.asset new file mode 100644 index 0000000..88a203f Binary files /dev/null and b/Outline.PostProcessing/ProjectSettings/graphicssettings.asset differ diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.Renderers.cs b/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.Renderers.cs deleted file mode 100644 index 553e553..0000000 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineBehaviour.Renderers.cs +++ /dev/null @@ -1,206 +0,0 @@ -// Copyright (C) 2019-2020 Alexander Bogarsukov. All rights reserved. -// See the LICENSE.md file in the project root for more information. - -using System; -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -namespace UnityFx.Outline -{ - partial class OutlineBehaviour - { - #region interface - #endregion - - #region implementation - - [ExecuteInEditMode] - [DisallowMultipleComponent] - private class OutlineRendererHelper : MonoBehaviour - { - private OutlineBehaviour _parent; - - public void SetParent(OutlineBehaviour parent) - { - _parent = parent; - } - - private void OnWillRenderObject() - { - if (isActiveAndEnabled && _parent) - { - _parent.OnWillRenderObject(); - } - } - } - - private sealed class RendererCollection : ICollection - { - #region data - - private readonly List _renderers = new List(); - private readonly OutlineBehaviour _parent; - private readonly GameObject _go; - - #endregion - - #region interface - - internal RendererCollection(OutlineBehaviour parent) - { - Debug.Assert(parent); - - _parent = parent; - _go = parent.gameObject; - } - - public void Reset() - { - foreach (var r in _renderers) - { - Release(r); - } - - _renderers.Clear(); - _parent.GetComponentsInChildren(true, _renderers); - - foreach (var r in _renderers) - { - Init(r); - } - } - - #endregion - - #region ICollection - - public int Count - { - get - { - return _renderers.Count; - } - } - - public bool IsReadOnly - { - get - { - return false; - } - } - - public void Add(Renderer renderer) - { - Validate(renderer); - Init(renderer); - - _renderers.Add(renderer); - } - - public bool Remove(Renderer renderer) - { - if (_renderers.Remove(renderer)) - { - Release(renderer); - return true; - } - - return false; - } - - public void Clear() - { - foreach (var r in _renderers) - { - Release(r); - } - - _renderers.Clear(); - } - - public bool Contains(Renderer renderer) - { - return _renderers.Contains(renderer); - } - - public void CopyTo(Renderer[] array, int arrayIndex) - { - _renderers.CopyTo(array, arrayIndex); - } - - #endregion - - #region IEnumerable - - public IEnumerator GetEnumerator() - { - return _renderers.GetEnumerator(); - } - - IEnumerator IEnumerable.GetEnumerator() - { - return _renderers.GetEnumerator(); - } - - #endregion - - #region implementation - - private void Validate(Renderer renderer) - { - if (renderer == null) - { - throw new ArgumentNullException("renderer"); - } - - if (!renderer.transform.IsChildOf(_go.transform)) - { - throw new ArgumentException(string.Format("Only children of the {0} are allowed.", _go.name), "renderer"); - } - } - - private void Init(Renderer r) - { - if (r && r.gameObject != _go) - { - var c = r.GetComponent(); - - if (c == null) - { - c = r.gameObject.AddComponent(); - } - - c.SetParent(_parent); - } - } - - private void Release(Renderer r) - { - if (r) - { - var c = r.GetComponent(); - - if (c) - { - DestroyImmediate(c); - } - } - } - - #endregion - } - - private void CreateRenderersIfNeeded() - { - if (_renderers == null) - { - _renderers = new RendererCollection(this); - _renderers.Reset(); - } - } - - #endregion - } -} diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.Renderers.cs b/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.Renderers.cs deleted file mode 100644 index 881ce33..0000000 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineLayer.Renderers.cs +++ /dev/null @@ -1,155 +0,0 @@ -// Copyright (C) 2019-2020 Alexander Bogarsukov. All rights reserved. -// See the LICENSE.md file in the project root for more information. - -using System; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; -using UnityEngine; - -namespace UnityFx.Outline -{ - partial class OutlineLayer - { - #region interface - #endregion - - #region implementation - - private sealed class RendererCollection : ICollection - { - #region data - - private readonly List _renderers = new List(); - private readonly GameObject _go; - - #endregion - - #region interface - - internal RendererCollection(GameObject parent) - { - Debug.Assert(parent); - _go = parent; - } - - internal RendererCollection(GameObject parent, int ignoreMask) - { - Debug.Assert(parent); - - _go = parent; - Reset(ignoreMask); - } - - public void Reset(int ignoreLayerMask) - { - _renderers.Clear(); - - var renderers = _go.GetComponentsInChildren(); - - if (renderers != null) - { - if (ignoreLayerMask != 0) - { - foreach (var renderer in renderers) - { - if (((1 << renderer.gameObject.layer) & ignoreLayerMask) == 0) - { - _renderers.Add(renderer); - } - } - } - else - { - foreach (var renderer in renderers) - { - _renderers.Add(renderer); - } - } - } - } - - #endregion - - #region ICollection - - public int Count - { - get - { - return _renderers.Count; - } - } - - public bool IsReadOnly - { - get - { - return false; - } - } - - public void Add(Renderer renderer) - { - Validate(renderer); - - _renderers.Add(renderer); - } - - public bool Remove(Renderer renderer) - { - return _renderers.Remove(renderer); - } - - public void Clear() - { - _renderers.Clear(); - } - - public bool Contains(Renderer renderer) - { - return _renderers.Contains(renderer); - } - - public void CopyTo(Renderer[] array, int arrayIndex) - { - _renderers.CopyTo(array, arrayIndex); - } - - #endregion - - #region IEnumerable - - public IEnumerator GetEnumerator() - { - return _renderers.GetEnumerator(); - } - - IEnumerator IEnumerable.GetEnumerator() - { - return _renderers.GetEnumerator(); - } - - #endregion - - #region implementation - - private void Validate(Renderer renderer) - { - if (renderer == null) - { - throw new ArgumentNullException("renderer"); - } - - if (!renderer.transform.IsChildOf(_go.transform)) - { - throw new ArgumentException(string.Format("Only children of the {0} are allowed.", _go.name), "renderer"); - } - } - - #endregion - } - - #endregion - } -} diff --git a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettingsInstance.cs b/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettingsInstance.cs deleted file mode 100644 index b581145..0000000 --- a/Packages/UnityFx.Outline/Runtime/Scripts/OutlineSettingsInstance.cs +++ /dev/null @@ -1,236 +0,0 @@ -// Copyright (C) 2019-2020 Alexander Bogarsukov. All rights reserved. -// See the LICENSE.md file in the project root for more information. - -using System; -using System.ComponentModel; -using UnityEngine; - -namespace UnityFx.Outline -{ - [Serializable] - internal class OutlineSettingsInstance : IOutlineSettingsEx, IChangeTracking - { - #region data - -#pragma warning disable 0649 - - // NOTE: There are custom editors for public components, so no need to show these in default inspector. - [SerializeField, HideInInspector] - private OutlineSettings _outlineSettings; - [SerializeField, HideInInspector] - private Color _outlineColor = Color.red; - [SerializeField, HideInInspector] - private int _outlineWidth = 4; - [SerializeField, HideInInspector] - private float _outlineIntensity = 2; - [SerializeField, HideInInspector] - private OutlineMode _outlineMode; - -#pragma warning restore 0649 - - private OutlineResources _resources; - private bool _changed = true; - - #endregion - - #region interface - - public OutlineResources OutlineResources - { - get - { - return _resources; - } - } - - internal OutlineSettingsInstance() - { - } - - internal OutlineSettingsInstance(OutlineResources resources) - { - _resources = resources; - } - - internal void SetResources(OutlineResources resources) - { - if (resources != _resources) - { - _resources = resources; - _changed = true; - } - } - - internal void UpdateChanged() - { - if (_outlineSettings != null) - { - if (_outlineColor != _outlineSettings.OutlineColor || - _outlineWidth != _outlineSettings.OutlineWidth || - _outlineIntensity != _outlineSettings.OutlineIntensity || - _outlineMode != _outlineSettings.OutlineMode) - { - _outlineColor = _outlineSettings.OutlineColor; - _outlineWidth = _outlineSettings.OutlineWidth; - _outlineIntensity = _outlineSettings.OutlineIntensity; - _outlineMode = _outlineSettings.OutlineMode; - _changed = true; - } - } - } - - #endregion - - #region IOutlineSettingsEx - - public OutlineSettings OutlineSettings - { - get - { - return _outlineSettings; - } - set - { - if (_outlineSettings != value) - { - _outlineSettings = value; - - if (_outlineSettings != null) - { - _outlineColor = _outlineSettings.OutlineColor; - _outlineWidth = _outlineSettings.OutlineWidth; - _outlineIntensity = _outlineSettings.OutlineIntensity; - _outlineMode = _outlineSettings.OutlineMode; - _changed = true; - } - } - } - } - - #endregion - - #region IOutlineSettings - - /// - public Color OutlineColor - { - get - { - return _outlineColor; - } - set - { - ThrowIfSettingsAssigned(); - - if (_outlineColor != value) - { - _outlineColor = value; - _changed = true; - } - } - } - - /// - public int OutlineWidth - { - get - { - return _outlineWidth; - } - set - { - ThrowIfSettingsAssigned(); - - value = Mathf.Clamp(value, OutlineRenderer.MinWidth, OutlineRenderer.MaxWidth); - - if (_outlineWidth != value) - { - _outlineWidth = value; - _changed = true; - } - } - } - - /// - public float OutlineIntensity - { - get - { - return _outlineIntensity; - } - set - { - ThrowIfSettingsAssigned(); - - value = Mathf.Clamp(value, OutlineRenderer.MinIntensity, OutlineRenderer.MaxIntensity); - - if (_outlineIntensity != value) - { - _outlineIntensity = value; - _changed = true; - } - } - } - - /// - public OutlineMode OutlineMode - { - get - { - return _outlineMode; - } - set - { - ThrowIfSettingsAssigned(); - - if (_outlineMode != value) - { - _outlineMode = value; - _changed = true; - } - } - } - - #endregion - - #region IChangeTracking - - /// - public bool IsChanged - { - get - { - return _changed; - } - } - - /// - public void AcceptChanges() - { - _changed = false; - } - - #endregion - - #region IEquatable - - public bool Equals(IOutlineSettings other) - { - return OutlineSettings.Equals(this, other); - } - - #endregion - - #region implementation - - private void ThrowIfSettingsAssigned() - { - if (_outlineSettings) - { - throw new InvalidOperationException("The outline parameters cannot be altered when OutlineSettings is set."); - } - } - - #endregion - } -} diff --git a/Packages/UnityFx.Outline/Tests/Editor/UnityFx.Outline.Editor.Tests.asmdef b/Packages/UnityFx.Outline/Tests/Editor/UnityFx.Outline.Editor.Tests.asmdef deleted file mode 100644 index f715ffe..0000000 --- a/Packages/UnityFx.Outline/Tests/Editor/UnityFx.Outline.Editor.Tests.asmdef +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "UnityFx.Outline.Editor.Tests", - "references": [ - "UnityFx.Outline", - "UnityFx.Outline.Editor" - ], - "optionalUnityReferences": [ - "TestAssemblies" - ], - "includePlatforms": [ - "Editor" - ], - "excludePlatforms": [], - "allowUnsafeCode": false, - "overrideReferences": false, - "precompiledReferences": [], - "autoReferenced": true, - "defineConstraints": [] -} \ No newline at end of file diff --git a/README.md b/README.md index 15725b4..bd34d56 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,14 @@ Channel | UnityFx.Outline | ---------|---------------| Github | [![GitHub release](https://img.shields.io/github/release/Arvtesh/UnityFx.Outline.svg?logo=github)](https://github.com/Arvtesh/UnityFx.Outline/releases) -Npm | [![Npm release](https://img.shields.io/npm/v/com.unityfx.outline.svg)](https://www.npmjs.com/package/com.unityfx.outline) ![npm](https://img.shields.io/npm/dt/com.unityfx.outline) +Npm (core + built-in RP) | [![Npm release](https://img.shields.io/npm/v/com.unityfx.outline.svg)](https://www.npmjs.com/package/com.unityfx.outline) ![npm](https://img.shields.io/npm/dt/com.unityfx.outline) +Npm (Post-processing v2) | [![Npm release](https://img.shields.io/npm/v/com.unityfx.outline.postprocessing.svg)](https://www.npmjs.com/package/com.unityfx.outline.postprocessing) ![npm](https://img.shields.io/npm/dt/com.unityfx.outline.postprocessing) **Requires Unity 2017 or higher.**
**Compatible with [Unity Post-processing Stack v2](https://github.com/Unity-Technologies/PostProcessing/tree/v2).** +**Please ask any questions and leave feedback at the [Unity forums](https://forum.unity.com/threads/screen-space-outline-effect-for-unity-free.836908/).** + ## Synopsis ![Outline demo](Docs/OutlineSamples.png "Outline demo") ![Outline demo](Docs/MotusOutline.png "Outline demo") @@ -40,10 +43,11 @@ You can get the code by cloning the github repository using your preffered git c git clone https://github.com/Arvtesh/UnityFx.Outline.git ``` -### Npm package -[![NPM](https://nodei.co/npm/com.unityfx.outline.png)](https://www.npmjs.com/package/com.unityfx.outline) +### Npm packages +[![NPM](https://nodei.co/npm/com.unityfx.outline.png)](https://www.npmjs.com/package/com.unityfx.outline)
+[![NPM](https://nodei.co/npm/com.unityfx.outline.postprocessing.png)](https://www.npmjs.com/package/com.unityfx.outline.postprocessing)
-Npm package is available at [npmjs.com](https://www.npmjs.com/package/com.unityfx.outline). To use it, add the following line to dependencies section of your `manifest.json`. Unity should download and link the package automatically: +Npm core package is available at [npmjs.com](https://www.npmjs.com/package/com.unityfx.outline). There are dedicated packages for [Post-processing Stack v2](https://github.com/Unity-Technologies/PostProcessing/tree/v2), [Universal Render Pipeline](https://docs.unity3d.com/Packages/com.unity.render-pipelines.universal@8.0/manual/index.html) and [High Definition Render Pipeline](https://docs.unity3d.com/Packages/com.unity.render-pipelines.high-definition@8.0/manual/index.html). To use the packages, add the following line to dependencies section of your `manifest.json`. Unity should download and link the package automatically: ```json { "scopedRegistries": [ @@ -56,7 +60,8 @@ Npm package is available at [npmjs.com](https://www.npmjs.com/package/com.unityf } ], "dependencies": { - "com.unityfx.outline": "0.7.0" + "com.unityfx.outline": "0.7.2", + "com.unityfx.outline.postprocessing": "0.1.0" } } ``` @@ -67,7 +72,7 @@ Install the package and import the namespace: using UnityFx.Outline; ``` -### Per-camera outlines +### Per-camera outlines (built-in RP) ![Outline demo](Docs/OutlineEffectInspector.png "OutlineEffect Inspector") Add `OutlineEffect` script to a camera that should render outlines. Then add and configure as many layers as you need: @@ -77,11 +82,26 @@ var layer = new OutlineLayer("MyOutlines"); layer.OutlineColor = Color.red; layer.OutlineWidth = 7; -layer.OutlineMode = OutlineMode.Blurred; +layer.OutlineRenderMode = OutlineRenderFlags.Blurred; layer.Add(myGo); outlineEffect.OutlineLayers.Add(layer); ``` +or +```csharp +var outlineEffect = Camera.main.GetComponent(); + +// This adds layer 0 (if it is not there) and then adds myGo. +outlineEffect.AddGameObject(myGo); + +// Now setup the layer. +var layer = outlineEffect[0]; + +layer.OutlineColor = Color.red; +layer.OutlineWidth = 7; +layer.OutlineRenderMode = OutlineRenderFlags.Blurred; +layer.Add(myGo); +``` This can be done at runtime or while editing a scene. If you choose to assign the script in runtime make sure `OutlineEffect.OutlineResources` is initialized. Disabling `OutlineEffect` script disables outlining for the camera (and frees all resources used). @@ -95,7 +115,7 @@ var effect2 = camera2.GetComponent(); effect1.ShareLayersWith(effect2); ``` -### Per-object outlines +### Per-object outlines (built-in RP) ![Outline demo](Docs/OutlineBehaviourInspector.png "OutlineBehaviour Inspector") Add `OutlineBehaviour` script to objects that should be outlined (in edit mode or in runtime). Make sure `OutlineBehaviour.OutlineResources` is initialized. You can customize outline settings either via Unity inspector or via script. Objects with `OutlineBehaviour` assigned render outlines in all cameras. @@ -111,6 +131,16 @@ outlineBehaviour.OutlineWidth = 2; outlineBehaviour.OutlineIntensity = 10; ``` +### Depth testing +By default depth testing is disabled when rendering outlines. This behaviour can be overriden by setting `OutlineRenderFlags.EnableDepthTesting` flag of `OutlineRenderMode` or settings the corresponding checkbox in editor. +```csharp +var outlineSettings = GetComponent(); + +outlineSettings.OutlineColor = Color.green; +outlineSettings.OutlineWidth = 2; +outlineSettings.OutlineRenderMode = OutlineRenderFlags.Blurred | OutlineRenderFlags.EnableDepthTesting; +``` + ### Extensibility There are a number of helper classes that can be used for writing highly customized outline implementations (if neither `OutlineBehaviour` nor `OutlineEffect` does not suit your needs). All outline implementations use following helpers: @@ -141,6 +171,7 @@ myCamera.AddCommandBuffer(OutlineRenderer.RenderEvent, commandBuffer); ``` ### Integration with Unity post-processing. +[![NPM](https://nodei.co/npm/com.unityfx.outline.postprocessing.png)](https://www.npmjs.com/package/com.unityfx.outline.postprocessing) The outline effect can easily be added to [Post-processing Stack v2](https://github.com/Unity-Technologies/PostProcessing/tree/v2). A minimal integration example is shown below: ```csharp @@ -172,12 +203,22 @@ For the sake of simplicity the sample does not include any kind of error checkin More info on writing custom post processing effects can be found [here](https://docs.unity3d.com/Packages/com.unity.postprocessing@2.2/manual/Writing-Custom-Effects.html). +### Integration with Universal Render Pipeline (URP). +[![NPM](https://nodei.co/npm/com.unityfx.outline.urp.png)](https://www.npmjs.com/package/com.unityfx.outline.urp) + +TODO + +### Integration with High Definition Render Pipeline (HDRP). +[![NPM](https://nodei.co/npm/com.unityfx.outline.hdrp.png)](https://www.npmjs.com/package/com.unityfx.outline.hdrp) + +TODO + ## Motivation The project was initially created to help author with his [Unity3d](https://unity3d.com) projects. There are not many reusable open-source examples of it, so here it is. Hope it will be useful for someone. ## Documentation Please see the links below for extended information on the product: -- [Unity forums](https://forum.unity.com/threads/TODO/). +- [Unity forums](https://forum.unity.com/threads/screen-space-outline-effect-for-unity-free.836908/). - [CHANGELOG](CHANGELOG.md). - [SUPPORT](.github/SUPPORT.md).