YAMO-Unity6_MainProject/Assets/External/MMD4Mecanim/Shaders/MMD4Mecanim-MMDLit-NEXTEdge-Lighting.cginc
2025-06-08 00:39:11 +09:00

35 lines
785 B
HLSL

#include "MMD4Mecanim-MMDLit-Compatible.cginc"
// Not for redistribution without the author's express written permission
half4 _EdgeColor;
float _EdgeSize;
//float _EdgeZOffset;
inline float MMDLit_GetEdgeSize()
{
return _EdgeSize * EDGE_SCALE;
}
inline float4 MMDLit_GetEdgeVertex(float4 vertex, float3 normal)
{
#if 0
float edge_size = MMDLit_GetEdgeSize();
#else
// Adjust edge_size by distance & fovY
float r_proj_y = UNITY_MATRIX_P[1][1];
float edge_size = abs(MMDLit_GetEdgeSize() / r_proj_y);
#endif
return vertex + float4(normal.xyz * edge_size, 0.0);
}
inline float4 MMDLit_TransformEdgeVertex(float4 vertex)
{
#if 1
return _UnityObjectToClipPos(vertex);
#else
vertex = _UnityObjectToClipPos(vertex);
vertex.z += _EdgeZOffset * vertex.w;
return vertex;
#endif
}