Есть шейдер от Spine, там есть определенный кусок кода, который меня интересует. Можете подсказать, пожалуйста, что в нем происходит и как его перевести в shader graph?) Спасибо!
Синтаксис:
Используется csharp
Properties {
[NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {}
[NoScaleOffset] _MaskTex("Mask", 2D) = "white" {}
[Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0
[HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Compare", Float) = 0.0 // Disabled stencil test by default
}
........
struct Varyings
{
float4 positionCS : SV_POSITION;
float4 color : COLOR;
float2 uv : TEXCOORD0;
};
float4 UnlitFragment(Varyings i) : SV_Target
{
half4 tex = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv);
half4 main;
//интересует эта часть
#if defined(_STRAIGHT_ALPHA_INPUT)
main.rgb = tex.rgb * i.color.rgb * tex.a;
#else
main.rgb = tex.rgb * i.color.rgb;
#endif
main.a = tex.a * i.color.a;
return main;
}
[NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {}
[NoScaleOffset] _MaskTex("Mask", 2D) = "white" {}
[Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0
[HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0
[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Compare", Float) = 0.0 // Disabled stencil test by default
}
........
struct Varyings
{
float4 positionCS : SV_POSITION;
float4 color : COLOR;
float2 uv : TEXCOORD0;
};
float4 UnlitFragment(Varyings i) : SV_Target
{
half4 tex = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv);
half4 main;
//интересует эта часть
#if defined(_STRAIGHT_ALPHA_INPUT)
main.rgb = tex.rgb * i.color.rgb * tex.a;
#else
main.rgb = tex.rgb * i.color.rgb;
#endif
main.a = tex.a * i.color.a;
return main;
}