YAMO-Unity6_MainProject/Assets/External/MMD4Mecanim/Shaders/MMD4Mecanim-MMDLit-Edge.shader
2025-06-08 00:39:11 +09:00

121 lines
3.4 KiB
Plaintext

// Not for redistribution without the author's express written permission
Shader "MMD4Mecanim/MMDLit-Edge"
{
Properties
{
_Color("Diffuse", Color) = (1,1,1,1)
_Specular("Specular", Color) = (1,1,1) // Memo: Postfix from material.(Revision>=0)
_Ambient("Ambient", Color) = (1,1,1)
_Shininess("Shininess", Float) = 0
_ShadowLum("ShadowLum", Range(0,10)) = 1.5
_AmbientToDiffuse("AmbientToDiffuse", Float) = 5
_EdgeColor("EdgeColor", Color) = (0,0,0,1)
_EdgeScale("EdgeScale", Range(0,2)) = 0 // Memo: Postfix from material.(Revision>=0)
_EdgeSize("EdgeSize", float) = 0 // Memo: Postfix from material.(Revision>=0)
_MainTex("MainTex", 2D) = "white" {}
_ToonTex("ToonTex", 2D) = "white" {}
_SphereCube("SphereCube", Cube) = "white" {} // Memo: Postfix from material.(Revision>=0)
_Emissive("Emissive", Color) = (0,0,0,0)
_ALPower("ALPower", Float) = 0
_AddLightToonCen("AddLightToonCen", Float) = -0.1
_AddLightToonMin("AddLightToonMin", Float) = 0.5
_ToonTone("ToonTone", Vector) = (1.0, 0.5, 0.5, 0.0) // ToonTone, ToonTone / 2, ToonToneAdd, Unused
_NoShadowCasting("__NoShadowCasting", Float) = 0.0
_TessEdgeLength("Tess Edge length", Range(2,50)) = 5
_TessPhongStrength("Tess Phong Strengh", Range(0,1)) = 0.5
_TessExtrusionAmount("TessExtrusionAmount", Float) = 0.0
_Revision("Revision",Float) = -1.0 // Memo: Shader setting trigger.(Reset to 0<=)
}
SubShader
{
Tags { "Queue" = "Geometry+1" "RenderType" = "Opaque" }
LOD 200
UsePass "MMD4Mecanim/MMDLit/FORWARD"
UsePass "MMD4Mecanim/MMDLit/FORWARD_DELTA"
Pass {
Name "ShadowCaster"
Tags { "LightMode" = "ShadowCaster" }
Fog {Mode Off}
ZWrite On ZTest LEqual Cull Off
Offset 1, 1
CGPROGRAM
#pragma target 2.0
#pragma exclude_renderers flash
#pragma vertex vert_surf
#pragma fragment frag_fast
#pragma fragmentoption ARB_precision_hint_fastest
#pragma multi_compile_shadowcaster
#include "MMD4Mecanim-MMDLit-Surface-ShadowCaster.cginc"
ENDCG
}
Pass {
Name "ShadowCollector"
Tags { "LightMode" = "ShadowCollector" }
Fog {Mode Off}
ZWrite On ZTest LEqual
CGPROGRAM
#pragma target 2.0
#pragma exclude_renderers flash
#pragma vertex vert_surf
#pragma fragment frag_fast
#pragma fragmentoption ARB_precision_hint_fastest
#pragma multi_compile_shadowcollector
#include "MMD4Mecanim-MMDLit-Surface-ShadowCollector.cginc"
ENDCG
}
Cull Front
ZWrite On
ZTest Less
Blend SrcAlpha OneMinusSrcAlpha
ColorMask RGB
Offset 0.1, 1 // Edge to far
Pass {
Name "FORWARD_EDGE"
Tags { "LightMode" = "ForwardBase" }
CGPROGRAM
#pragma target 2.0
#pragma exclude_renderers flash
#pragma vertex vert_surf
#pragma fragment frag_surf
#pragma fragmentoption ARB_precision_hint_fastest
#pragma multi_compile_fwdbase nolightmap nodirlightmap novertexlight
#pragma multi_compile _ AMB2DIFF_ON
#include "MMD4Mecanim-MMDLit-SurfaceEdge-ForwardBase.cginc"
ENDCG
}
Pass {
Name "FORWARD_EDGE_DELTA"
Tags { "LightMode" = "ForwardAdd" }
ZWrite Off Blend One One Fog { Color (0,0,0,0) }
CGPROGRAM
#pragma target 2.0
#pragma exclude_renderers flash
#pragma vertex vert_surf
#pragma fragment frag_surf
#pragma fragmentoption ARB_precision_hint_fastest
#pragma multi_compile_fwdadd
#include "MMD4Mecanim-MMDLit-SurfaceEdge-ForwardAdd.cginc"
ENDCG
}
}
Fallback Off
CustomEditor "MMD4MecanimMaterialInspector"
}