From e0d561af37dc7a38ee959b3b4a3d06f3293b30b6 Mon Sep 17 00:00:00 2001 From: Masataka SUMI Date: Wed, 23 Jun 2021 20:32:07 +0900 Subject: [PATCH 1/5] Don't use multi_compile_local (because 2019.1 or later function...) --- .../VRM10/vrmc_materials_mtoon.shader | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader b/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader index beae6a3c5..931d0c00e 100644 --- a/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader +++ b/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader @@ -88,11 +88,11 @@ Shader "Hidden/VRM10/vrmc_materials_mtoon" #pragma multi_compile_fog #pragma multi_compile_instancing - #pragma multi_compile_local __ _ALPHATEST_ON _ALPHABLEND_ON - #pragma multi_compile_local __ _NORMALMAP - #pragma multi_compile_local __ _MTOON_EMISSIVEMAP - #pragma multi_compile_local __ _MTOON_RIMMAP - #pragma multi_compile_local __ _MTOON_PARAMETERMAP + #pragma multi_compile __ _ALPHATEST_ON _ALPHABLEND_ON + #pragma multi_compile __ _NORMALMAP + #pragma multi_compile __ _MTOON_EMISSIVEMAP + #pragma multi_compile __ _MTOON_RIMMAP + #pragma multi_compile __ _MTOON_PARAMETERMAP #pragma vertex MToonVertex #pragma fragment MToonFragment @@ -123,18 +123,18 @@ Shader "Hidden/VRM10/vrmc_materials_mtoon" #pragma multi_compile_fog #pragma multi_compile_instancing - #pragma multi_compile_local __ _ALPHATEST_ON _ALPHABLEND_ON - #pragma multi_compile_local __ _NORMALMAP - #pragma multi_compile_local __ _MTOON_EMISSIVEMAP - #pragma multi_compile_local __ _MTOON_RIMMAP - #pragma multi_compile_local __ _MTOON_PARAMETERMAP - #pragma multi_compile_local __ _MTOON_OUTLINE_WORLD _MTOON_OUTLINE_SCREEN - - #define MTOON_PASS_OUTLINE + #pragma multi_compile __ _ALPHATEST_ON _ALPHABLEND_ON + #pragma multi_compile __ _NORMALMAP + #pragma multi_compile __ _MTOON_EMISSIVEMAP + #pragma multi_compile __ _MTOON_RIMMAP + #pragma multi_compile __ _MTOON_PARAMETERMAP + #pragma multi_compile __ _MTOON_OUTLINE_WORLD _MTOON_OUTLINE_SCREEN #pragma vertex MToonVertex #pragma fragment MToonFragment + #define MTOON_PASS_OUTLINE + #include "./vrmc_materials_mtoon_forward_vertex.hlsl" #include "./vrmc_materials_mtoon_forward_fragment.hlsl" ENDHLSL @@ -161,11 +161,11 @@ Shader "Hidden/VRM10/vrmc_materials_mtoon" #pragma multi_compile_fog #pragma multi_compile_instancing - #pragma multi_compile_local __ _ALPHATEST_ON _ALPHABLEND_ON - #pragma multi_compile_local __ _NORMALMAP - #pragma multi_compile_local __ _MTOON_EMISSIVEMAP - #pragma multi_compile_local __ _MTOON_RIMMAP - #pragma multi_compile_local __ _MTOON_PARAMETERMAP + #pragma multi_compile __ _ALPHATEST_ON _ALPHABLEND_ON + #pragma multi_compile __ _NORMALMAP + #pragma multi_compile __ _MTOON_EMISSIVEMAP + #pragma multi_compile __ _MTOON_RIMMAP + #pragma multi_compile __ _MTOON_PARAMETERMAP #pragma vertex MToonVertex #pragma fragment MToonFragment @@ -192,7 +192,7 @@ Shader "Hidden/VRM10/vrmc_materials_mtoon" #pragma multi_compile_shadowcaster nolightmap nodynlightmap nodirlightmap novertexlight #pragma multi_compile_instancing - #pragma multi_compile_local __ _ALPHATEST_ON _ALPHABLEND_ON + #pragma multi_compile __ _ALPHATEST_ON _ALPHABLEND_ON // Use unity standard shadow implementation. // internal usage: From 61843ccadda29f3a075ccbfe874b4cb30b81e23e Mon Sep 17 00:00:00 2001 From: Masataka SUMI Date: Wed, 23 Jun 2021 20:38:40 +0900 Subject: [PATCH 2/5] Apply emissionColor if emissionMap was none. --- .../VRM10/vrmc_materials_mtoon_lighting_mtoon.hlsl | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon_lighting_mtoon.hlsl b/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon_lighting_mtoon.hlsl index 1fce9955f..bee7da2dd 100644 --- a/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon_lighting_mtoon.hlsl +++ b/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon_lighting_mtoon.hlsl @@ -87,9 +87,16 @@ inline half3 GetMToonLighting_GlobalIllumination(const UnityLighting unityLight, inline half3 GetMToonLighting_Emissive(const MToonInput input) { - if (MToon_IsForwardBasePass() && MToon_IsEmissiveMapOn()) + if (MToon_IsForwardBasePass()) { - return UNITY_SAMPLE_TEX2D(_EmissionMap, input.uv).rgb * _EmissionColor.rgb; + if (MToon_IsEmissiveMapOn()) + { + return UNITY_SAMPLE_TEX2D(_EmissionMap, input.uv).rgb * _EmissionColor.rgb; + } + else + { + return _EmissionColor.rgb; + } } else { From 8472a20cdf106193a9597e925bdbc8f3a2520660 Mon Sep 17 00:00:00 2001 From: Masataka SUMI Date: Wed, 23 Jun 2021 21:07:44 +0900 Subject: [PATCH 3/5] define variable name clearly --- Assets/VRM10/Runtime/Migration/MigrationMToon.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Assets/VRM10/Runtime/Migration/MigrationMToon.cs b/Assets/VRM10/Runtime/Migration/MigrationMToon.cs index 74e0f77ee..8788d7fca 100644 --- a/Assets/VRM10/Runtime/Migration/MigrationMToon.cs +++ b/Assets/VRM10/Runtime/Migration/MigrationMToon.cs @@ -515,6 +515,7 @@ namespace UniVRM10 // Outline const float centimeterToMeter = 0.01f; + const float oneHundredth = 0.01f; switch (mtoon.Definition.Outline.OutlineWidthMode) { case OutlineWidthMode.None: @@ -527,7 +528,7 @@ namespace UniVRM10 break; case OutlineWidthMode.ScreenCoordinates: dst.OutlineWidthMode = UniGLTF.Extensions.VRMC_materials_mtoon.OutlineWidthMode.screenCoordinates; - dst.OutlineWidthFactor = mtoon.Definition.Outline.OutlineWidthValue * centimeterToMeter; + dst.OutlineWidthFactor = mtoon.Definition.Outline.OutlineWidthValue * oneHundredth; break; default: throw new ArgumentOutOfRangeException($"OutlineWidthMode: {(int)mtoon.Definition.Outline.OutlineWidthMode}"); From 186609639a16101a86225c634bc9d50fa03cb896 Mon Sep 17 00:00:00 2001 From: Masataka SUMI Date: Wed, 23 Jun 2021 21:57:02 +0900 Subject: [PATCH 4/5] fix a bug. Outline Width Texture doesn't reference uv correctly. --- .../VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader | 1 + .../Resources/VRM10/vrmc_materials_mtoon_forward_vertex.hlsl | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader b/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader index 931d0c00e..efa1da286 100644 --- a/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader +++ b/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader @@ -112,6 +112,7 @@ Shader "Hidden/VRM10/vrmc_materials_mtoon" Blend [_M_SrcBlend] [_M_DstBlend] ZWrite [_M_ZWrite] ZTest LEqual + Offset 1, 1 BlendOp Add, Max AlphaToMask [_M_AlphaToMask] diff --git a/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon_forward_vertex.hlsl b/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon_forward_vertex.hlsl index bc4365acc..f7a74039e 100644 --- a/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon_forward_vertex.hlsl +++ b/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon_forward_vertex.hlsl @@ -17,6 +17,8 @@ Varyings MToonVertex(const Attributes v) // v is UnityCG macro specified name. UNITY_TRANSFER_INSTANCE_ID(v, output); UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); + output.uv = TRANSFORM_TEX(v.texcoord0, _MainTex); + if (MToon_IsOutlinePass()) { const VertexPositionInfo position = MToon_GetOutlineVertex(v.vertex.xyz, normalize(v.normalOS), output.uv); @@ -31,7 +33,6 @@ Varyings MToonVertex(const Attributes v) // v is UnityCG macro specified name. } output.normalWS = UnityObjectToWorldNormal(v.normalOS); - output.uv = TRANSFORM_TEX(v.texcoord0, _MainTex); output.viewDirWS = MToon_GetWorldSpaceNormalizedViewDir(output.positionWS); #if defined(_NORMALMAP) From 8833925d71515147a43a908c0b1a5aeca69148fe Mon Sep 17 00:00:00 2001 From: Masataka SUMI Date: Wed, 23 Jun 2021 21:57:49 +0900 Subject: [PATCH 5/5] Remove unused define --- .../VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader | 2 -- 1 file changed, 2 deletions(-) diff --git a/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader b/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader index efa1da286..9b9e53978 100644 --- a/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader +++ b/Assets/VRMShaders/VRM10/MToon10/Resources/VRM10/vrmc_materials_mtoon.shader @@ -20,8 +20,6 @@ Shader "Hidden/VRM10/vrmc_materials_mtoon" _ShadingShiftTex ("mtoon.shadingShiftTexture", 2D) = "black" {} // channel R _ShadingShiftTexScale ("mtoon.shadingShiftTexture.scale", Float) = 1 _ShadingToonyFactor ("mtoon.shadingToonyFactor", Range(0, 1)) = 0.9 -// _ShadingToonyTex ("mtoon.shadingToonyTexture", 2D) = "black" {} // parameter texture // need? -// _ShadingToonyTexScale ("mtoon.shadingToonyTexture.scale", Float) = 1 // need? // GI _GiEqualization ("mtoon.giEqualizationFactor", Range(0, 1)) = 0.9