From 8cb4a84deb26fc62c1fef50c204757ca0a88c57f Mon Sep 17 00:00:00 2001 From: BlueRose <378100977@qq.com> Date: Tue, 8 Oct 2024 20:03:36 +0800 Subject: [PATCH] vault backup: 2024-10-08 20:03:36 --- .../Unity-Chan Toon Shader PixelShader.md | 42 ++++++++++++++++++- .../Unity Shader入门精要[u3dnotes.com].pdf | 3 ++ 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 08-Assets/Others/Unity Shader入门精要[u3dnotes.com].pdf diff --git a/07-Other/Unity/Unity-Chan Toon Shader PixelShader.md b/07-Other/Unity/Unity-Chan Toon Shader PixelShader.md index 7f3c0b7..93aa62b 100644 --- a/07-Other/Unity/Unity-Chan Toon Shader PixelShader.md +++ b/07-Other/Unity/Unity-Chan Toon Shader PixelShader.md @@ -750,4 +750,44 @@ float4 fragShadingGradeMap(VertexOutput i, fixed facing : VFACE) : SV_TARGET } -``` \ No newline at end of file +``` + + +```c++ +else if (stencilMode == _UTS_StencilMode.StencilMask) +{ + material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.AlphaTest - 1; +} +else if (stencilMode == _UTS_StencilMode.StencilOut) +{ + material.renderQueue = (int)UnityEngine.Rendering.RenderQueue.AlphaTest; +} + + void ApplyStencilMode(Material material) +{ + _UTS_StencilMode mode = (_UTS_StencilMode)(material.GetInt(ShaderPropStencilMode)); + switch (mode) + { + case _UTS_StencilMode.Off: + // material.SetInt(ShaderPropStencilNo,0); + material.SetInt(ShaderPropStencilComp, (int)_StencilCompFunction.Disabled); + material.SetInt(ShaderPropStencilOpPass, (int)_StencilOperation.Keep); + material.SetInt(ShaderPropStencilOpFail, (int)_StencilOperation.Keep); + break; + case _UTS_StencilMode.StencilMask: + // material.SetInt(ShaderPropStencilNo,0); + material.SetInt(ShaderPropStencilComp, (int)_StencilCompFunction.Always); + material.SetInt(ShaderPropStencilOpPass, (int)_StencilOperation.Replace); + material.SetInt(ShaderPropStencilOpFail, (int)_StencilOperation.Replace); + break; + case _UTS_StencilMode.StencilOut: + // material.SetInt(ShaderPropStencilNo,0); + material.SetInt(ShaderPropStencilComp, (int)_StencilCompFunction.NotEqual); + material.SetInt(ShaderPropStencilOpPass, (int)_StencilOperation.Keep); + material.SetInt(ShaderPropStencilOpFail, (int)_StencilOperation.Keep); + + break; + } +} +``` +![](https://github.com/unity3d-jp/UnityChanToonShaderVer2_Project/raw/release/urp/2.3.0/Documentation~/Images_jpg/URP_image036.jpg) \ No newline at end of file diff --git a/08-Assets/Others/Unity Shader入门精要[u3dnotes.com].pdf b/08-Assets/Others/Unity Shader入门精要[u3dnotes.com].pdf new file mode 100644 index 0000000..a3251a7 --- /dev/null +++ b/08-Assets/Others/Unity Shader入门精要[u3dnotes.com].pdf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b577f961a1196ad85bdd1504a66bb9ad760594cbfed27b539c65dc1450b36297 +size 85792577