diff --git a/CHANGELOG.md b/CHANGELOG.md
index f20a363..22d01da 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,8 @@
# Changelog
+## [0.19.0] - 2022-04-08
+- Added experimental spherical shadow coordinate correction.
+
## [0.18.3] - 2022-04-08
- Lightweighted logic for normal correction.
diff --git a/Documents/documents.html b/Documents/documents.html
index f1e1279..503101f 100644
--- a/Documents/documents.html
+++ b/Documents/documents.html
@@ -231,6 +231,36 @@
マテリアルプロパティ
_NormalCorrectOrigin
+
+ Shadow Correction (Experimental) |
+ Spherical Shadow Correct |
+
+ 球面影座標補正の割合を指定します。主にReceiveShadowが有効な時に顔に変なセルフシャドーが入るのを防ぎます。
+ |
+
+ _ShadowCorrect
+ |
+
+
+ |
+ Spherical Shadow Correct Origin |
+
+ 球面影座標補正のオブジェクト座標の中心点を指定します。
+ |
+
+ _ShadowCorrectOrigin
+ |
+
+
+ |
+ Spherical Shadow Correct Radius |
+
+ 球面影座標補正のオブジェクト座標の中心点からどの位の半径離れた位置を影座標とみなすかを指定します。
+ |
+
+ _ShadowCorrectRadius
+ |
+
Physical Property |
Metallic |
diff --git a/Editor/ShaderGUI/LitShader.cs b/Editor/ShaderGUI/LitShader.cs
index 6bc6ee0..658e128 100644
--- a/Editor/ShaderGUI/LitShader.cs
+++ b/Editor/ShaderGUI/LitShader.cs
@@ -12,6 +12,7 @@ class LitShader : ShaderGUI
SavedBool fo_workflow;
SavedBool fo_baseColor;
SavedBool fo_shading;
+ SavedBool fo_shadowCorrection;
SavedBool fo_physicalProperty;
SavedBool fo_surface;
SavedBool fo_detail;
@@ -25,6 +26,7 @@ void OnOpenGUI()
fo_workflow = new SavedBool($"{prefix}.Workflow", true);
fo_baseColor = new SavedBool($"{prefix}.BaseColor", true);
fo_shading = new SavedBool($"{prefix}.Shading", true);
+ fo_shadowCorrection = new SavedBool($"{prefix}.ShadowCorrection", true);
fo_physicalProperty = new SavedBool($"{prefix}.PhysicalProperty", true);
fo_surface = new SavedBool($"{prefix}.Surface", true);
fo_detail = new SavedBool($"{prefix}.Detail", true);
@@ -46,8 +48,15 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro
var changed = false;
var blendModeChanged = false;
+ if (EditorGUILayout.LinkButton("Documents"))
+ {
+ System.Diagnostics.Process.Start("https://yoship1639.github.io/UniToon/Documents/documents.html");
+ }
+
+ EditorGUILayout.Space();
+
// version
- GUILayout.Label("UniToon ver 0.18.3-alpha");
+ GUILayout.Label("UniToon ver 0.19.0-alpha");
EditorGUILayout.Space();
changed = MaterialGUI.Enum("Version", FindProperty("_UniToonVer", properties));
@@ -107,6 +116,15 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro
}
changed |= EndSection();
+ // shadow correction
+ if (BeginSection("Shadow Correction (Experimental)", fo_shadowCorrection))
+ {
+ changed |= MaterialGUI.Slider("Spherical Shadow Correct", FindProperty("_ShadowCorrect", properties), 0.0f, 1.0f);
+ changed |= MaterialGUI.Vector3("Spherical Shadow Correct Origin", FindProperty("_ShadowCorrectOrigin", properties));
+ changed |= MaterialGUI.Slider("Spherical Shadow Correct Radius", FindProperty("_ShadowCorrectRadius", properties), 0.0f, 2.0f);
+ }
+ changed |= EndSection();
+
// physical property
if (BeginSection("Physical Property", fo_physicalProperty))
{
@@ -142,8 +160,8 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro
}
changed |= EndSection();
- // outline (experimental)
- if (BeginSection("Outline (Experimental)", fo_outline))
+ // outline
+ if (BeginSection("Outline", fo_outline))
{
materialEditor.TexturePropertySingleLine(new GUIContent("Outline Mask"), FindProperty("_OutlineMask", properties));
changed |= MaterialGUI.Slider("Outline Saturation", FindProperty("_OutlineSaturation", properties), 0.0f, 4.0f);
@@ -153,7 +171,7 @@ public override void OnGUI(MaterialEditor materialEditor, MaterialProperty[] pro
changed |= MaterialGUI.Slider("Outline Strength", FindProperty("_OutlineStrength", properties), 0.0f, 1.0f);
changed |= MaterialGUI.Slider("Outline Smoothness", FindProperty("_OutlineSmoothness", properties), 0.0f, 1.0f);
- EditorGUILayout.HelpBox("Outline (Experimental) requires that the camera depth texture is enabled", MessageType.Info);
+ EditorGUILayout.HelpBox("Outline requires that the camera depth texture is enabled", MessageType.Info);
}
changed |= EndSection();
diff --git a/README.md b/README.md
index 5171059..5953697 100644
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
# UniToon
-ver 0.18.3-alpha
+ver 0.19.0-alpha
Physically-based Toon Shader for game applications. Compliant with Unity standard rendering functions. It is not targeted to be multifunctional in order to keep performance, but to be universally usable.
diff --git a/Shaders/URP_2020_2/LitURP2020_2.shader b/Shaders/URP_2020_2/LitURP2020_2.shader
index ff8b234..89b4197 100644
--- a/Shaders/URP_2020_2/LitURP2020_2.shader
+++ b/Shaders/URP_2020_2/LitURP2020_2.shader
@@ -7,6 +7,9 @@ Shader "UniToon/URP_2020_2/Lit"
_ToonyFactor("Toony Factor", Range(0.001, 1.0)) = 0.1
_NormalCorrect("Normal Correct", Range(0.0, 1.0)) = 0.0
_NormalCorrectOrigin("Normal Correct Origin", Vector) = (0, 0, 0)
+ _ShadowCorrect("Shadow Correct", Range(0.0, 1.0)) = 0.0
+ _ShadowCorrectOrigin("Shadow Correct Origin", Vector) = (0, 0, 0)
+ _ShadowCorrectRadius("Shadow Correct Radius", Range(0.0, 2.0)) = 0.2
[MainTexture] _BaseMap("Albedo", 2D) = "white" {}
[MainColor] _BaseColor("Color", Color) = (1,1,1,1)
diff --git a/Shaders/URP_2020_3/LitURP2020_3.shader b/Shaders/URP_2020_3/LitURP2020_3.shader
index a6a90f5..faf9680 100644
--- a/Shaders/URP_2020_3/LitURP2020_3.shader
+++ b/Shaders/URP_2020_3/LitURP2020_3.shader
@@ -7,6 +7,9 @@ Shader "UniToon/URP_2020_3/Lit"
_ToonyFactor("Toony Factor", Range(0.001, 1.0)) = 0.1
_NormalCorrect("Normal Correct", Range(0.0, 1.0)) = 0.0
_NormalCorrectOrigin("Normal Correct Origin", Vector) = (0, 0, 0)
+ _ShadowCorrect("Shadow Correct", Range(0.0, 1.0)) = 0.0
+ _ShadowCorrectOrigin("Shadow Correct Origin", Vector) = (0, 0, 0)
+ _ShadowCorrectRadius("Shadow Correct Radius", Range(0.0, 2.0)) = 0.2
[MainTexture] _BaseMap("Albedo", 2D) = "white" {}
[MainColor] _BaseColor("Color", Color) = (1,1,1,1)
diff --git a/Shaders/URP_2021_1/LitForwardPass.hlsl b/Shaders/URP_2021_1/LitForwardPass.hlsl
index cd8782d..45c682a 100644
--- a/Shaders/URP_2021_1/LitForwardPass.hlsl
+++ b/Shaders/URP_2021_1/LitForwardPass.hlsl
@@ -52,6 +52,7 @@ struct Varyings
float4 screenPos : TEXCOORD9;
float3 normalCorrectWS : TEXCOORD10;
+ float3 shadowCorrectWS : TEXCOORD11;
float4 positionCS : SV_POSITION;
UNITY_VERTEX_INPUT_INSTANCE_ID
@@ -81,7 +82,7 @@ void InitializeInputData(Varyings input, half3 normalTS, out InputData inputData
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
inputData.shadowCoord = input.shadowCoord;
#elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
- inputData.shadowCoord = TransformWorldToShadowCoord(inputData.positionWS);
+ inputData.shadowCoord = TransformWorldToShadowCoord(inputData.shadowCorrectWS);
#else
inputData.shadowCoord = float4(0, 0, 0, 0);
#endif
@@ -145,7 +146,20 @@ Varyings LitPassVertex(Attributes input)
#endif
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
- output.shadowCoord = GetShadowCoord(vertexInput);
+
+ float3 shadowCorrectDir = (input.positionOS.xyz - _ShadowCorrectOrigin);
+ shadowCorrectDir = SafeNormalize(shadowCorrectDir);
+ float3 shadowCorrectOS = _ShadowCorrectOrigin + shadowCorrectDir * _ShadowCorrectRadius;
+ VertexPositionInputs shadowVertexInput = GetVertexPositionInputs(lerp(input.positionOS.xyz, shadowCorrectOS, _ShadowCorrect));
+ output.shadowCoord = GetShadowCoord(shadowVertexInput);
+
+#elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
+
+ float3 shadowCorrectDir = (input.positionOS.xyz - _ShadowCorrectOrigin);
+ shadowCorrectDir = SafeNormalize(shadowCorrectDir);
+ float3 shadowCorrectOS = _ShadowCorrectOrigin + shadowCorrectDir * _ShadowCorrectRadius;
+ output.shadowCorrectWS = TransformObjectToWorld(lerp(input.positionOS.xyz, shadowCorrectOS, _ShadowCorrect));
+
#endif
output.positionCS = vertexInput.positionCS;
diff --git a/Shaders/URP_2021_1/LitInput.hlsl b/Shaders/URP_2021_1/LitInput.hlsl
index 24af7a6..031a005 100644
--- a/Shaders/URP_2021_1/LitInput.hlsl
+++ b/Shaders/URP_2021_1/LitInput.hlsl
@@ -15,6 +15,9 @@ CBUFFER_START(UnityPerMaterial)
half _ToonyFactor;
half _NormalCorrect;
half3 _NormalCorrectOrigin;
+half _ShadowCorrect;
+half3 _ShadowCorrectOrigin;
+half _ShadowCorrectRadius;
float4 _ShadeMap_ST;
half4 _ShadeColor;
half _ShadeHue;
@@ -59,7 +62,10 @@ CBUFFER_END
UNITY_DOTS_INSTANCING_START(MaterialPropertyMetadata)
UNITY_DOTS_INSTANCED_PROP(float, _ToonyFactor)
UNITY_DOTS_INSTANCED_PROP(float, _NormalCorrect)
- UNITY_DOTS_INSTANCED_PROP(float, _NormalCorrectOrigin)
+ UNITY_DOTS_INSTANCED_PROP(float3, _NormalCorrectOrigin)
+ UNITY_DOTS_INSTANCED_PROP(float, _ShadowCorrect)
+ UNITY_DOTS_INSTANCED_PROP(float3, _ShadowCorrectOrigin)
+ UNITY_DOTS_INSTANCED_PROP(float, _ShadowCorrectRadius)
UNITY_DOTS_INSTANCED_PROP(float4, _ShadeColor)
UNITY_DOTS_INSTANCED_PROP(float, _ShadeHue)
UNITY_DOTS_INSTANCED_PROP(float, _ShadeSaturation)
@@ -93,13 +99,16 @@ UNITY_DOTS_INSTANCING_START(MaterialPropertyMetadata)
UNITY_DOTS_INSTANCED_PROP(float , _AdditionalLightHiCut)
UNITY_DOTS_INSTANCING_END(MaterialPropertyMetadata)
-#define _ToonyFactor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_ToonyFactor)
-#define _NormalCorrect UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_NormalCorrect)
-#define _NormalCorrectOrigin UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_NormalCorrectOrigin)
+#define _ToonyFactor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ToonyFactor)
+#define _NormalCorrect UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_NormalCorrect)
+#define _NormalCorrectOrigin UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float3 , Metadata_NormalCorrectOrigin)
+#define _ShadowCorrect UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ShadowCorrect)
+#define _ShadowCorrectOrigin UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float3 , Metadata_ShadowCorrectOrigin)
+#define _ShadowCorrectRadius UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ShadowCorrectRadius)
#define _ShadeColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_ShadeColor)
-#define _ShadeHue UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_ShadeHue)
-#define _ShadeSaturation UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_ShadeSaturation)
-#define _ShadeBrightness UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_ShadeBrightness)
+#define _ShadeHue UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ShadeHue)
+#define _ShadeSaturation UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ShadeSaturation)
+#define _ShadeBrightness UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ShadeBrightness)
#define _BaseColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_BaseColor)
#define _SpecColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_SpecColor)
#define _EmissionColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_EmissionColor)
diff --git a/Shaders/URP_2021_1/LitURP2021_1.shader b/Shaders/URP_2021_1/LitURP2021_1.shader
index 1df3d7b..d2a9097 100644
--- a/Shaders/URP_2021_1/LitURP2021_1.shader
+++ b/Shaders/URP_2021_1/LitURP2021_1.shader
@@ -7,6 +7,9 @@ Shader "UniToon/URP_2021_1/Lit"
_ToonyFactor("Toony Factor", Range(0.001, 1.0)) = 0.1
_NormalCorrect("Normal Correct", Range(0.0, 1.0)) = 0.0
_NormalCorrectOrigin("Normal Correct Origin", Vector) = (0, 0, 0)
+ _ShadowCorrect("Shadow Correct", Range(0.0, 1.0)) = 0.0
+ _ShadowCorrectOrigin("Shadow Correct Origin", Vector) = (0, 0, 0)
+ _ShadowCorrectRadius("Shadow Correct Radius", Range(0.0, 2.0)) = 0.2
[MainTexture] _BaseMap("Albedo", 2D) = "white" {}
[MainColor] _BaseColor("Color", Color) = (1,1,1,1)
diff --git a/Shaders/URP_2021_2/LitForwardPass.hlsl b/Shaders/URP_2021_2/LitForwardPass.hlsl
index e686295..71ec011 100644
--- a/Shaders/URP_2021_2/LitForwardPass.hlsl
+++ b/Shaders/URP_2021_2/LitForwardPass.hlsl
@@ -61,6 +61,7 @@ struct Varyings
float4 screenPos : TEXCOORD10;
float3 normalCorrectWS : TEXCOORD11;
+ float3 shadowCorrectWS : TEXCOORD12;
float4 positionCS : SV_POSITION;
UNITY_VERTEX_INPUT_INSTANCE_ID
@@ -95,7 +96,7 @@ void InitializeInputData(Varyings input, half3 normalTS, out InputData inputData
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
inputData.shadowCoord = input.shadowCoord;
#elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
- inputData.shadowCoord = TransformWorldToShadowCoord(inputData.positionWS);
+ inputData.shadowCoord = TransformWorldToShadowCoord(input.shadowCorrectWS);
#else
inputData.shadowCoord = float4(0, 0, 0, 0);
#endif
@@ -184,7 +185,20 @@ Varyings LitPassVertex(Attributes input)
#endif
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
- output.shadowCoord = GetShadowCoord(vertexInput);
+
+ float3 shadowCorrectDir = (input.positionOS.xyz - _ShadowCorrectOrigin);
+ shadowCorrectDir = SafeNormalize(shadowCorrectDir);
+ float3 shadowCorrectOS = _ShadowCorrectOrigin + shadowCorrectDir * _ShadowCorrectRadius;
+ VertexPositionInputs shadowVertexInput = GetVertexPositionInputs(lerp(input.positionOS.xyz, shadowCorrectOS, _ShadowCorrect));
+ output.shadowCoord = GetShadowCoord(shadowVertexInput);
+
+#elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
+
+ float3 shadowCorrectDir = (input.positionOS.xyz - _ShadowCorrectOrigin);
+ shadowCorrectDir = SafeNormalize(shadowCorrectDir);
+ float3 shadowCorrectOS = _ShadowCorrectOrigin + shadowCorrectDir * _ShadowCorrectRadius;
+ output.shadowCorrectWS = TransformObjectToWorld(lerp(input.positionOS.xyz, shadowCorrectOS, _ShadowCorrect));
+
#endif
output.positionCS = vertexInput.positionCS;
diff --git a/Shaders/URP_2021_2/LitInput.hlsl b/Shaders/URP_2021_2/LitInput.hlsl
index 93d5f4a..7884a05 100644
--- a/Shaders/URP_2021_2/LitInput.hlsl
+++ b/Shaders/URP_2021_2/LitInput.hlsl
@@ -16,6 +16,9 @@ CBUFFER_START(UnityPerMaterial)
half _ToonyFactor;
half _NormalCorrect;
half3 _NormalCorrectOrigin;
+half _ShadowCorrect;
+half3 _ShadowCorrectOrigin;
+half _ShadowCorrectRadius;
float4 _ShadeMap_ST;
half4 _ShadeColor;
half _ShadeHue;
@@ -59,7 +62,10 @@ CBUFFER_END
UNITY_DOTS_INSTANCING_START(MaterialPropertyMetadata)
UNITY_DOTS_INSTANCED_PROP(float, _ToonyFactor)
UNITY_DOTS_INSTANCED_PROP(float, _NormalCorrect)
- UNITY_DOTS_INSTANCED_PROP(float, _NormalCorrectOrigin)
+ UNITY_DOTS_INSTANCED_PROP(float3, _NormalCorrectOrigin)
+ UNITY_DOTS_INSTANCED_PROP(float, _ShadowCorrect)
+ UNITY_DOTS_INSTANCED_PROP(float3, _ShadowCorrectOrigin)
+ UNITY_DOTS_INSTANCED_PROP(float, _ShadowCorrectRadius)
UNITY_DOTS_INSTANCED_PROP(float4, _ShadeColor)
UNITY_DOTS_INSTANCED_PROP(float, _ShadeHue)
UNITY_DOTS_INSTANCED_PROP(float, _ShadeSaturation)
@@ -92,13 +98,16 @@ UNITY_DOTS_INSTANCING_START(MaterialPropertyMetadata)
UNITY_DOTS_INSTANCED_PROP(float , _AdditionalLightHiCut)
UNITY_DOTS_INSTANCING_END(MaterialPropertyMetadata)
-#define _ToonyFactor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_ToonyFactor)
-#define _NormalCorrect UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_NormalCorrect)
-#define _NormalCorrectOrigin UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_NormalCorrectOrigin)
+#define _ToonyFactor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ToonyFactor)
+#define _NormalCorrect UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_NormalCorrect)
+#define _NormalCorrectOrigin UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float3 , Metadata_NormalCorrectOrigin)
+#define _ShadowCorrect UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ShadowCorrect)
+#define _ShadowCorrectOrigin UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float3 , Metadata_ShadowCorrectOrigin)
+#define _ShadowCorrectRadius UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ShadowCorrectRadius)
#define _ShadeColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_ShadeColor)
-#define _ShadeHue UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_ShadeHue)
-#define _ShadeSaturation UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_ShadeSaturation)
-#define _ShadeBrightness UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_ShadeBrightness)
+#define _ShadeHue UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ShadeHue)
+#define _ShadeSaturation UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ShadeSaturation)
+#define _ShadeBrightness UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float , Metadata_ShadeBrightness)
#define _BaseColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_BaseColor)
#define _SpecColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_SpecColor)
#define _EmissionColor UNITY_ACCESS_DOTS_INSTANCED_PROP_FROM_MACRO(float4 , Metadata_EmissionColor)
diff --git a/Shaders/URP_2021_2/LitURP2021_2.shader b/Shaders/URP_2021_2/LitURP2021_2.shader
index e01c599..2a7f723 100644
--- a/Shaders/URP_2021_2/LitURP2021_2.shader
+++ b/Shaders/URP_2021_2/LitURP2021_2.shader
@@ -7,6 +7,9 @@ Shader "UniToon/URP_2021_2/Lit"
_ToonyFactor("Toony Factor", Range(0.001, 1.0)) = 0.1
_NormalCorrect("Normal Correct", Range(0.0, 1.0)) = 0.0
_NormalCorrectOrigin("Normal Correct Origin", Vector) = (0, 0, 0)
+ _ShadowCorrect("Shadow Correct", Range(0.0, 1.0)) = 0.0
+ _ShadowCorrectOrigin("Shadow Correct Origin", Vector) = (0, 0, 0)
+ _ShadowCorrectRadius("Shadow Correct Radius", Range(0.0, 2.0)) = 0.2
[MainTexture] _BaseMap("Albedo", 2D) = "white" {}
[MainColor] _BaseColor("Color", Color) = (1,1,1,1)
diff --git a/package.json b/package.json
index 2e7cd4b..f736ec1 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "com.yoship1639.unitoon",
- "version": "0.18.3",
+ "version": "0.19.0",
"displayName": "UniToon",
"description": "A universally usable toon shader. compliant with Unity standard rendering functions, aiming to create a shader that can withstand avatar use across platforms, such as VRM, which is expected to grow in the future",
"unity": "2020.2",