Files
tools/Unity C++脚本/熊猫超级shader/PandaShaderSamPleURPV1.1/PandaShaderSampleURPV1.1.shader
T

10200 lines
303 KiB
GLSL

// Made with Amplify Shader Editor v1.9.1.8
// Available at the Unity Asset Store - http://u3d.as/y3X
Shader "VFX/PandaShaderSampleURPV1.1"
{
Properties
{
[HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
[HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
[Enum(UnityEngine.Rendering.BlendMode)]_Scr("Scr", Float) = 5
[Enum(UnityEngine.Rendering.BlendMode)]_Dst("Dst", Float) = 10
[Enum(UnityEngine.Rendering.CullMode)]_CullMode("CullMode", Float) = 0
_MainTex("MainTex", 2D) = "white" {}
_VTOTex("VTOTex", 2D) = "black" {}
[Toggle]_VTOTexAR("VTOTexAR", Float) = 1
[Toggle]_MainTexVMirror("MainTexVMirror", Float) = 0
[Toggle]_RefactionMaskTexVMirror("RefactionMaskTexVMirror", Float) = 0
[Toggle]_RefactionTexVMirror("RefactionTexVMirror", Float) = 0
[Toggle]_DistortTexVMirror("DistortTexVMirror", Float) = 0
[Toggle]_MaskTexVMirror("MaskTexVMirror", Float) = 0
[Toggle]_DissolvePlusTexVMirror("DissolvePlusTexVMirror", Float) = 0
[Toggle]_VTOTexVMirror("VTOTexVMirror", Float) = 0
[Toggle]_DissolveTexVMirror("DissolveTexVMirror", Float) = 0
[Toggle]_MainTexVClamp("MainTexVClamp", Float) = 0
[Toggle]_DissolveTexVClamp("DissolveTexVClamp", Float) = 0
[Toggle]_MaskTexVClamp("MaskTexVClamp", Float) = 0
[Toggle]_DissolvePlusTexVClamp("DissolvePlusTexVClamp", Float) = 0
[Toggle]_VTOTexVClamp("VTOTexVClamp", Float) = 0
[Toggle]_MainTexUClamp("MainTexUClamp", Float) = 0
[Toggle]_VTOTexUMirror("VTOTexUMirror", Float) = 0
[Toggle]_DissolvePlusTexUMirror("DissolvePlusTexUMirror", Float) = 0
[Toggle]_DissolveTexUMirror("DissolveTexUMirror", Float) = 0
[Toggle]_MaskTexUMirror("MaskTexUMirror", Float) = 0
[Toggle]_RefactionTexUMirror("RefactionTexUMirror", Float) = 0
[Toggle]_RefactionMaskTexUMirror("RefactionMaskTexUMirror", Float) = 0
[Toggle]_DistortTexUMirror("DistortTexUMirror", Float) = 0
[Toggle]_MainTexUMirror("MainTexUMirror", Float) = 0
[Toggle]_MaskTexUClamp("MaskTexUClamp", Float) = 0
[Toggle]_VTOTexUClamp("VTOTexUClamp", Float) = 0
[Toggle]_DissolvePlusTexUClamp("DissolvePlusTexUClamp", Float) = 0
[Toggle]_DissolveTexUClamp("DissolveTexUClamp", Float) = 0
[Toggle]_MainTexAR("MainTexAR", Float) = 0
[Toggle]_MainTexUVClip("MainTexUVClip", Float) = 1
[Toggle]_DissolveTexUVClip("DissolveTexUVClip", Float) = 1
[Toggle]_DissolvePlusTexUVClip("DissolvePlusTexUVClip", Float) = 1
[Toggle]_VTOTexUVClip("VTOTexUVClip", Float) = 1
[Toggle]_MaskTexUVClip("MaskTexUVClip", Float) = 1
[HDR]_MainColor("MainColor", Color) = (1,1,1,1)
_VTOTexUSpeed("VTOTexUSpeed", Float) = 0
_MainTexDesaturate("MainTexDesaturate", Range( 0 , 1)) = 0
_DissolvePlusTexRotator("DissolvePlusTexRotator", Range( 0 , 1)) = 0
_VTOTexRotator("VTOTexRotator", Range( 0 , 1)) = 0
_DissolveTexRotator("DissolveTexRotator", Range( 0 , 1)) = 0
_MaskTexRotator("MaskTexRotator", Range( 0 , 1)) = 0
_RefactionFactor("RefactionFactor", Range( 0 , 1)) = 0
_DistortTexRotator("DistortTexRotator", Range( 0 , 1)) = 0
_RefactionMaskTexRotator("RefactionMaskTexRotator", Range( 0 , 1)) = 0
_RefactionTexRotator("RefactionTexRotator", Range( 0 , 1)) = 0
_MainTexCAFator("MainTexCAFator", Range( 0 , 0.1)) = 0
_MainTexRotator("MainTexRotator", Range( 0 , 1)) = 0
_MainTexUSpeed("MainTexUSpeed", Float) = 0
_MainTexVSpeed("MainTexVSpeed", Float) = 0
_VTOTexVSpeed("VTOTexVSpeed", Float) = 0
[Toggle]_CustomMainTexUOffset("CustomMainTexUOffset", Float) = 0
[Toggle]_CustomMainTexVOffset("CustomMainTexVOffset", Float) = 0
[Toggle(_FMASKTEX_ON)] _FMaskTex("FMaskTex", Float) = 0
_MaskTex("MaskTex", 2D) = "white" {}
[Toggle]_MaskTexAR("MaskTexAR", Float) = 1
_MaskTexUSpeed("MaskTexUSpeed", Float) = 0
_MaskTexVSpeed("MaskTexVSpeed", Float) = 0
[Toggle(_FDISTORTTEX_ON)] _FDistortTex("FDistortTex", Float) = 0
_DistortTex("DistortTex", 2D) = "white" {}
_RefactionTex("RefactionTex", 2D) = "white" {}
_RefactionMaskTex("RefactionMaskTex", 2D) = "white" {}
[Toggle]_RefactionMaskTexAR("RefactionMaskTexAR", Float) = 1
[Toggle]_RefactionTexAR("RefactionTexAR", Float) = 1
[Toggle]_DistortTexAR("DistortTexAR", Float) = 1
_DistortFactor("DistortFactor", Range( 0 , 1)) = 0
_DistortTexUSpeed("DistortTexUSpeed", Float) = 0
_RefactionMaskTexUSpeed("RefactionMaskTexUSpeed", Float) = 0
_RefactionTexUSpeed("RefactionTexUSpeed", Float) = 0
_DistortTexVSpeed("DistortTexVSpeed", Float) = 0
_RefactionTexVSpeed("RefactionTexVSpeed", Float) = 0
_RefactionMaskTexVSpeed("RefactionMaskTexVSpeed", Float) = 0
[Toggle]_DistortMainTex("DistortMainTex", Float) = 0
[Toggle]_DistortMaskTex("DistortMaskTex", Float) = 0
[Toggle]_DistortDissolveTex("DistortDissolveTex", Float) = 0
[Toggle(_FDISSOLVETEX_ON)] _FDissolveTex("FDissolveTex", Float) = 0
_DissolvePlusTex("DissolvePlusTex", 2D) = "black" {}
_DissolveTex("DissolveTex", 2D) = "white" {}
[Toggle]_DissolveTexAR("DissolveTexAR", Float) = 1
[Toggle]_DissolvePlusTexAR("DissolvePlusTexAR", Float) = 1
[HDR]_DissolveColor("DissolveColor", Color) = (1,1,1,1)
[Toggle]_CustomDissolve("CustomDissolve", Float) = 0
_DissolveFactor("DissolveFactor", Range( 0 , 1)) = 0
_DissolveSoft("DissolveSoft", Range( 0 , 1)) = 0.1
_DissolveWide("DissolveWide", Range( 0 , 1)) = 0.05
_DissolvePlusTexUSpeed("DissolvePlusTexUSpeed", Float) = 0
_DissolveTexUSpeed("DissolveTexUSpeed", Float) = 0
_DissolvePlusTexVSpeed("DissolvePlusTexVSpeed", Float) = 0
_DissolveTexVSpeed("DissolveTexVSpeed", Float) = 0
_MainAlpha("MainAlpha", Range( 0 , 10)) = 1
[Toggle(_FFNL_ON)] _FFnl("FFnl", Float) = 0
[HDR]_FnlColor("FnlColor", Color) = (1,1,1,1)
_FnlScale("FnlScale", Range( 0 , 2)) = 0
[Toggle(_FDEPTH_ON)] _FDepth("FDepth", Float) = 0
_FnlPower("FnlPower", Range( 1 , 10)) = 1
[Toggle]_ReFnl("ReFnl", Float) = 0
[Enum(Alpha,0,Add,1)]_BlendMode("BlendMode", Float) = 0
[Enum(UnityEngine.Rendering.CompareFunction)]_ZTest("ZTest", Float) = 4
_DepthFade("DepthFade", Range( 0 , 10)) = 1
[Toggle(_IFVTO_ON)] _IfVTO("IfVTO", Float) = 0
[Toggle]_CustomVTO("CustomVTO", Float) = 0
_VTOScale("VTOScale", Float) = 1
[Toggle(_FDISSOLVEPLUSTEX_ON)] _FDissolvePlusTex("FDissolvePlusTex", Float) = 0
_DissolvePlusIntensity("DissolvePlusIntensity", Range( 0 , 1)) = 0.5
[IntRange]_DissolveTexUOffsetC("DissolveTexUOffsetC", Range( 1 , 8)) = 1
[IntRange]_DissolvePlusTexUOffsetC("DissolvePlusTexUOffsetC", Range( 1 , 8)) = 1
[IntRange]_DissolveTexVOffsetC("DissolveTexVOffsetC", Range( 1 , 8)) = 1
[IntRange]_DissolvePlusTexVOffsetC("DissolvePlusTexVOffsetC", Range( 1 , 8)) = 1
[IntRange]_MaskTexUOffsetC("MaskTexUOffsetC", Range( 1 , 8)) = 1
[IntRange][Enum(none,0,Custom1x,1,Custom1y,2,Custom1z,3,Custom1w,4,Custom2x,5,Custom2y,6,Custom2z,7,Custom2w,8)]_MainTexUOffsetC("MainTexUOffsetC", Range( 1 , 8)) = 1
[IntRange][Enum(none,0,Custom1x,1,Custom1y,2,Custom1z,3,Custom1w,4,Custom2x,5,Custom2y,6,Custom2z,7,Custom2w,8)]_MainTexVOffsetC("MainTexVOffsetC", Range( 1 , 8)) = 1
[IntRange][Enum(none,0,Custom1x,1,Custom1y,2,Custom1z,3,Custom1w,4,Custom2x,5,Custom2y,6,Custom2z,7,Custom2w,8)]_VTOScaleC("VTOScaleC", Range( 1 , 8)) = 1
[IntRange][Enum(none,0,Custom1x,1,Custom1y,2,Custom1z,3,Custom1w,4,Custom2x,5,Custom2y,6,Custom2z,7,Custom2w,8)]_DissolveFactorC("DissolveFactorC", Range( 1 , 8)) = 1
[IntRange][Enum(none,0,Custom1x,1,Custom1y,2,Custom1z,3,Custom1w,4,Custom2x,5,Custom2y,6,Custom2z,7,Custom2w,8)]_DistortFactorC("DistortFactorC", Range( 1 , 8)) = 1
[IntRange][Enum(none,0,Custom1x,1,Custom1y,2,Custom1z,3,Custom1w,4,Custom2x,5,Custom2y,6,Custom2z,7,Custom2w,8)]_RefactionFactorC("RefactionFactorC", Range( 1 , 8)) = 1
[Toggle]_CustomDissolveTexUOffset("CustomDissolveTexUOffset", Float) = 0
[Toggle]_CustomDissolvePlusTexUOffset("CustomDissolvePlusTexUOffset", Float) = 0
[Toggle]_CustomMaskTexUOffset("CustomMaskTexUOffset", Float) = 0
[Toggle]_CustomDissolveTexVOffset("CustomDissolveTexVOffset", Float) = 0
[Toggle]_CustomDissolvePlusTexVOffset("CustomDissolvePlusTexVOffset", Float) = 0
[Toggle]_CustomMaskTexVOffset("CustomMaskTexVOffset", Float) = 0
[IntRange]_MaskTexVOffsetC("MaskTexVOffsetC", Range( 1 , 8)) = 1
[Toggle]_CustomRefactionFactor("CustomRefactionFactor", Float) = 0
[Toggle]_CustomDistortFactor("CustomDistortFactor", Float) = 0
[Toggle]_DistortUIntensity("DistortUIntensity", Float) = 1
[Toggle]_DistortVIntensity("DistortVIntensity", Float) = 1
[Toggle]_RefactionRemap("RefactionRemap", Float) = 0
[Toggle]_DistortRemap("DistortRemap", Float) = 0
_MainTexRefine("MainTexRefine", Vector) = (1,1,1,0)
[Toggle]_MainTexDetail("MainTexDetail", Float) = 0
[Toggle]_RefactionTexDetail("RefactionTexDetail", Float) = 0
[Toggle]_RefactionMaskTexDetail("RefactionMaskTexDetail", Float) = 0
[Toggle]_MaskTexDetail("MaskTexDetail", Float) = 0
[Toggle]_DissolveTexDetail("DissolveTexDetail", Float) = 0
[Toggle]_DistortTexDetail("DistortTexDetail", Float) = 0
[Toggle]_DissolvePlusTexDetail("DissolvePlusTexDetail", Float) = 0
[Toggle(_IFREFACTIONMASK_ON)] _IfRefactionMask("IfRefactionMask", Float) = 0
[Toggle]_VTOTexDetail("VTOTexDetail", Float) = 0
[Toggle(_IFREFACTION_ON)] _IfRefaction("IfRefaction", Float) = 0
[Toggle]_RefactionMaskTexVClamp("RefactionMaskTexVClamp", Float) = 0
[Toggle]_RefactionMaskTexUClamp("RefactionMaskTexUClamp", Float) = 0
[Toggle]_RefactionMaskTexUVClip("RefactionMaskTexUVClip", Float) = 0
_SB("SB", Float) = 0
[Enum(Off,0,Mask,8,Clip,3)]_SBCompare("SBCompare", Float) = 0
_AlphaClip("AlphaClip", Range( 0 , 1)) = 0
[ASEEnd][Enum(RGBA,14,A,0)]_MainRGBA("MainRGBA", Float) = 14
//_TessPhongStrength( "Tess Phong Strength", Range( 0, 1 ) ) = 0.5
//_TessValue( "Tess Max Tessellation", Range( 1, 32 ) ) = 16
//_TessMin( "Tess Min Distance", Float ) = 10
//_TessMax( "Tess Max Distance", Float ) = 25
//_TessEdgeLength ( "Tess Edge length", Range( 2, 50 ) ) = 16
//_TessMaxDisp( "Tess Max Displacement", Float ) = 25
[HideInInspector] _QueueOffset("_QueueOffset", Float) = 0
[HideInInspector] _QueueControl("_QueueControl", Float) = -1
[HideInInspector][NoScaleOffset] unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
[HideInInspector][NoScaleOffset] unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
[HideInInspector][NoScaleOffset] unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
}
SubShader
{
LOD 0
Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Transparent" "Queue"="Transparent" "UniversalMaterialType"="Unlit" }
Cull [_CullMode]
AlphaToMask Off
Stencil
{
Ref [_SB]
CompFront [_SBCompare]
PassFront Replace
FailFront Keep
ZFailFront Keep
CompBack [_SBCompare]
PassBack Replace
FailBack Keep
ZFailBack Keep
}
HLSLINCLUDE
#pragma target 3.5
#pragma prefer_hlslcc gles
// ensure rendering platforms toggle list is visible
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Common.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Filtering.hlsl"
#ifndef ASE_TESS_FUNCS
#define ASE_TESS_FUNCS
float4 FixedTess( float tessValue )
{
return tessValue;
}
float CalcDistanceTessFactor (float4 vertex, float minDist, float maxDist, float tess, float4x4 o2w, float3 cameraPos )
{
float3 wpos = mul(o2w,vertex).xyz;
float dist = distance (wpos, cameraPos);
float f = clamp(1.0 - (dist - minDist) / (maxDist - minDist), 0.01, 1.0) * tess;
return f;
}
float4 CalcTriEdgeTessFactors (float3 triVertexFactors)
{
float4 tess;
tess.x = 0.5 * (triVertexFactors.y + triVertexFactors.z);
tess.y = 0.5 * (triVertexFactors.x + triVertexFactors.z);
tess.z = 0.5 * (triVertexFactors.x + triVertexFactors.y);
tess.w = (triVertexFactors.x + triVertexFactors.y + triVertexFactors.z) / 3.0f;
return tess;
}
float CalcEdgeTessFactor (float3 wpos0, float3 wpos1, float edgeLen, float3 cameraPos, float4 scParams )
{
float dist = distance (0.5 * (wpos0+wpos1), cameraPos);
float len = distance(wpos0, wpos1);
float f = max(len * scParams.y / (edgeLen * dist), 1.0);
return f;
}
float DistanceFromPlane (float3 pos, float4 plane)
{
float d = dot (float4(pos,1.0f), plane);
return d;
}
bool WorldViewFrustumCull (float3 wpos0, float3 wpos1, float3 wpos2, float cullEps, float4 planes[6] )
{
float4 planeTest;
planeTest.x = (( DistanceFromPlane(wpos0, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
(( DistanceFromPlane(wpos1, planes[0]) > -cullEps) ? 1.0f : 0.0f ) +
(( DistanceFromPlane(wpos2, planes[0]) > -cullEps) ? 1.0f : 0.0f );
planeTest.y = (( DistanceFromPlane(wpos0, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
(( DistanceFromPlane(wpos1, planes[1]) > -cullEps) ? 1.0f : 0.0f ) +
(( DistanceFromPlane(wpos2, planes[1]) > -cullEps) ? 1.0f : 0.0f );
planeTest.z = (( DistanceFromPlane(wpos0, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
(( DistanceFromPlane(wpos1, planes[2]) > -cullEps) ? 1.0f : 0.0f ) +
(( DistanceFromPlane(wpos2, planes[2]) > -cullEps) ? 1.0f : 0.0f );
planeTest.w = (( DistanceFromPlane(wpos0, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
(( DistanceFromPlane(wpos1, planes[3]) > -cullEps) ? 1.0f : 0.0f ) +
(( DistanceFromPlane(wpos2, planes[3]) > -cullEps) ? 1.0f : 0.0f );
return !all (planeTest);
}
float4 DistanceBasedTess( float4 v0, float4 v1, float4 v2, float tess, float minDist, float maxDist, float4x4 o2w, float3 cameraPos )
{
float3 f;
f.x = CalcDistanceTessFactor (v0,minDist,maxDist,tess,o2w,cameraPos);
f.y = CalcDistanceTessFactor (v1,minDist,maxDist,tess,o2w,cameraPos);
f.z = CalcDistanceTessFactor (v2,minDist,maxDist,tess,o2w,cameraPos);
return CalcTriEdgeTessFactors (f);
}
float4 EdgeLengthBasedTess( float4 v0, float4 v1, float4 v2, float edgeLength, float4x4 o2w, float3 cameraPos, float4 scParams )
{
float3 pos0 = mul(o2w,v0).xyz;
float3 pos1 = mul(o2w,v1).xyz;
float3 pos2 = mul(o2w,v2).xyz;
float4 tess;
tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
tess.w = (tess.x + tess.y + tess.z) / 3.0f;
return tess;
}
float4 EdgeLengthBasedTessCull( float4 v0, float4 v1, float4 v2, float edgeLength, float maxDisplacement, float4x4 o2w, float3 cameraPos, float4 scParams, float4 planes[6] )
{
float3 pos0 = mul(o2w,v0).xyz;
float3 pos1 = mul(o2w,v1).xyz;
float3 pos2 = mul(o2w,v2).xyz;
float4 tess;
if (WorldViewFrustumCull(pos0, pos1, pos2, maxDisplacement, planes))
{
tess = 0.0f;
}
else
{
tess.x = CalcEdgeTessFactor (pos1, pos2, edgeLength, cameraPos, scParams);
tess.y = CalcEdgeTessFactor (pos2, pos0, edgeLength, cameraPos, scParams);
tess.z = CalcEdgeTessFactor (pos0, pos1, edgeLength, cameraPos, scParams);
tess.w = (tess.x + tess.y + tess.z) / 3.0f;
}
return tess;
}
#endif //ASE_TESS_FUNCS
ENDHLSL
Pass
{
Name "Refaction"
Tags { "LightMode"="PandaPass" "Queue"="Overlay" }
Blend [_Scr] [_Dst]
Cull [_CullMode]
ZWrite Off
ZTest [_ZTest]
Offset 0 , 0
ColorMask RGBA
HLSLPROGRAM
#define _RECEIVE_SHADOWS_OFF 1
#define _SURFACE_TYPE_TRANSPARENT 1
#define _ALPHATEST_ON 1
#define ASE_SRP_VERSION 120107
#pragma vertex vert
#pragma fragment frag
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/UnityInstancing.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#pragma shader_feature_local _IFREFACTION_ON
#pragma shader_feature_local _IFREFACTIONMASK_ON
struct VertexInput
{
float4 vertex : POSITION;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VertexOutput
{
float4 clipPos : SV_POSITION;
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
float3 worldPos : TEXCOORD0;
#endif
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
float4 shadowCoord : TEXCOORD1;
#endif
#ifdef ASE_FOG
float fogFactor : TEXCOORD2;
#endif
float4 ase_texcoord3 : TEXCOORD3;
float4 ase_texcoord4 : TEXCOORD4;
float4 ase_texcoord5 : TEXCOORD5;
float4 ase_texcoord6 : TEXCOORD6;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
CBUFFER_START(UnityPerMaterial)
float4 _RefactionTex_ST;
float4 _MainTexRefine;
float4 _RefactionMaskTex_ST;
float4 _VTOTex_ST;
float4 _DistortTex_ST;
half4 _MainColor;
float4 _DissolvePlusTex_ST;
float4 _MaskTex_ST;
half4 _DissolveColor;
half4 _FnlColor;
float4 _DissolveTex_ST;
float4 _MainTex_ST;
half _DissolveTexVMirror;
half _DissolveTexUSpeed;
float _CustomDissolveTexUOffset;
half _DistortDissolveTex;
float _DissolveTexUOffsetC;
float _CustomDissolveTexVOffset;
float _DissolveTexVOffsetC;
half _DissolveTexVSpeed;
half _CullMode;
half _DissolveTexVClamp;
half _DissolveTexRotator;
half _DissolveTexUClamp;
half _DissolveTexUVClip;
half _DissolveSoft;
half _DissolveWide;
float _DissolveFactorC;
half _DissolveFactor;
float _CustomDissolve;
half _MainTexDesaturate;
float _MainTexCAFator;
half _MainTexRotator;
float _MainTexVOffsetC;
float _CustomMainTexVOffset;
float _MainTexUOffsetC;
half _DissolveTexUMirror;
half _DissolveTexAR;
half _DissolvePlusTexVClamp;
half _DissolvePlusTexUClamp;
half _MaskTexAR;
half _MaskTexRotator;
float _MaskTexVOffsetC;
float _CustomMaskTexVOffset;
float _MaskTexUOffsetC;
float _CustomMaskTexUOffset;
half _DistortMaskTex;
half _MaskTexVSpeed;
half _MaskTexUSpeed;
half _MaskTexVMirror;
half _MaskTexUMirror;
half _MaskTexVClamp;
half _MaskTexUClamp;
half _MaskTexUVClip;
half _MainTexAR;
half _FnlPower;
half _FnlScale;
float _CustomMainTexUOffset;
half _DissolvePlusTexUMirror;
half _DissolvePlusTexVMirror;
half _DissolvePlusTexUSpeed;
half _DissolvePlusTexVSpeed;
float _CustomDissolvePlusTexUOffset;
half _DissolvePlusTexUVClip;
float _DissolvePlusTexUOffsetC;
float _DissolvePlusTexVOffsetC;
half _DissolvePlusTexRotator;
half _DissolvePlusTexAR;
float _DissolvePlusIntensity;
float _MainAlpha;
half _ReFnl;
float _CustomDissolvePlusTexVOffset;
float _DistortVIntensity;
float _CustomDistortFactor;
float _DistortFactorC;
half _RefactionMaskTexVMirror;
half _RefactionMaskTexUMirror;
float _RefactionMaskTexVClamp;
float _RefactionMaskTexUClamp;
float _RefactionMaskTexUVClip;
float _RefactionFactorC;
half _RefactionFactor;
float _CustomRefactionFactor;
half _RefactionTexAR;
half _RefactionTexRotator;
half _RefactionTexVSpeed;
half _RefactionTexUSpeed;
half _RefactionTexVMirror;
half _RefactionTexUMirror;
float _RefactionRemap;
float _MainRGBA;
float _SBCompare;
float _SB;
half _ZTest;
float _RefactionMaskTexDetail;
float _RefactionTexDetail;
float _MainTexDetail;
float _VTOTexDetail;
float _DissolvePlusTexDetail;
float _DissolveTexDetail;
float _DistortTexDetail;
float _MaskTexDetail;
half _Dst;
half _BlendMode;
half _RefactionMaskTexUSpeed;
half _RefactionMaskTexVSpeed;
half _RefactionMaskTexRotator;
half _RefactionMaskTexAR;
half _DistortFactor;
float _DepthFade;
half _DistortTexAR;
half _DistortTexRotator;
half _DistortTexVSpeed;
half _DistortTexUSpeed;
half _DistortTexVMirror;
half _DistortTexUMirror;
float _DistortRemap;
half _DistortMainTex;
half _MainTexVSpeed;
half _MainTexUSpeed;
half _MainTexVMirror;
half _MainTexUMirror;
float _DistortUIntensity;
half _MainTexVClamp;
half _MainTexUVClip;
half _Scr;
float _VTOScaleC;
float _VTOScale;
float _CustomVTO;
half _VTOTexAR;
half _VTOTexRotator;
half _VTOTexVSpeed;
half _VTOTexUSpeed;
half _VTOTexVMirror;
half _VTOTexUMirror;
half _VTOTexVClamp;
half _VTOTexUClamp;
half _VTOTexUVClip;
half _MainTexUClamp;
float _AlphaClip;
#ifdef ASE_TESSELLATION
float _TessPhongStrength;
float _TessValue;
float _TessMin;
float _TessMax;
float _TessEdgeLength;
float _TessMaxDisp;
#endif
CBUFFER_END
sampler2D _PandaGrabTex;
sampler2D _RefactionTex;
sampler2D _RefactionMaskTex;
inline float4 ASE_ComputeGrabScreenPos( float4 pos )
{
#if UNITY_UV_STARTS_AT_TOP
float scale = -1.0;
#else
float scale = 1.0;
#endif
float4 o = pos;
o.y = pos.w * 0.5f;
o.y = ( pos.y - o.y ) * _ProjectionParams.x * scale + o.y;
return o;
}
float UVClamp21_g149( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g148( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g150( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
VertexOutput VertexFunction( VertexInput v )
{
VertexOutput o = (VertexOutput)0;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
float4 ase_clipPos = TransformObjectToHClip((v.vertex).xyz);
float4 screenPos = ComputeScreenPos(ase_clipPos);
o.ase_texcoord3 = screenPos;
o.ase_texcoord4 = v.ase_texcoord;
o.ase_texcoord5 = v.ase_texcoord1;
o.ase_texcoord6 = v.ase_texcoord2;
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = v.vertex.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
float3 vertexValue = defaultVertexValue;
#ifdef ASE_ABSOLUTE_VERTEX_POS
v.vertex.xyz = vertexValue;
#else
v.vertex.xyz += vertexValue;
#endif
v.ase_normal = v.ase_normal;
float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
float4 positionCS = TransformWorldToHClip( positionWS );
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
o.worldPos = positionWS;
#endif
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
VertexPositionInputs vertexInput = (VertexPositionInputs)0;
vertexInput.positionWS = positionWS;
vertexInput.positionCS = positionCS;
o.shadowCoord = GetShadowCoord( vertexInput );
#endif
#ifdef ASE_FOG
o.fogFactor = ComputeFogFactor( positionCS.z );
#endif
o.clipPos = positionCS;
return o;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 vertex : INTERNALTESSPOS;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( VertexInput v )
{
VertexControl o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
o.vertex = v.vertex;
o.ase_normal = v.ase_normal;
o.ase_texcoord = v.ase_texcoord;
o.ase_texcoord1 = v.ase_texcoord1;
o.ase_texcoord2 = v.ase_texcoord2;
return o;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
{
TessellationFactors o;
float4 tf = 1;
float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
return o;
}
[domain("tri")]
[partitioning("fractional_odd")]
[outputtopology("triangle_cw")]
[patchconstantfunc("TessellationFunction")]
[outputcontrolpoints(3)]
VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
{
return patch[id];
}
[domain("tri")]
VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
VertexInput o = (VertexInput) 0;
o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
o.ase_texcoord2 = patch[0].ase_texcoord2 * bary.x + patch[1].ase_texcoord2 * bary.y + patch[2].ase_texcoord2 * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
float phongStrength = _TessPhongStrength;
o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
return VertexFunction(o);
}
#else
VertexOutput vert ( VertexInput v )
{
return VertexFunction( v );
}
#endif
half4 frag ( VertexOutput IN ) : SV_Target
{
UNITY_SETUP_INSTANCE_ID( IN );
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
float3 WorldPosition = IN.worldPos;
#endif
float4 ShadowCoords = float4( 0, 0, 0, 0 );
#if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
ShadowCoords = IN.shadowCoord;
#elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
#endif
#endif
float4 temp_cast_0 = (0.0).xxxx;
float4 screenPos = IN.ase_texcoord3;
float4 ase_grabScreenPos = ASE_ComputeGrabScreenPos( screenPos );
float4 ase_grabScreenPosNorm = ase_grabScreenPos / ase_grabScreenPos.w;
float UVClip21_g149 = 1.0;
float UClamp21_g149 = 0.0;
float VClamp21_g149 = 0.0;
float UMirror21_g149 = _RefactionTexUMirror;
float VMirror21_g149 = _RefactionTexVMirror;
float2 appendResult4_g149 = (float2(_RefactionTexUSpeed , _RefactionTexVSpeed));
float2 uv_RefactionTex = IN.ase_texcoord4.xy * _RefactionTex_ST.xy + _RefactionTex_ST.zw;
float cos38_g149 = cos( ( _RefactionTexRotator * ( 2.0 * PI ) ) );
float sin38_g149 = sin( ( _RefactionTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g149 = mul( uv_RefactionTex - float2( 0.5,0.5 ) , float2x2( cos38_g149 , -sin38_g149 , sin38_g149 , cos38_g149 )) + float2( 0.5,0.5 );
float2 panner5_g149 = ( 1.0 * _Time.y * appendResult4_g149 + rotator38_g149);
float2 break22_g149 = panner5_g149;
float U21_g149 = break22_g149.x;
float V21_g149 = break22_g149.y;
float F21_g149 = 0.0;
float localUVClamp21_g149 = UVClamp21_g149( UVClip21_g149 , UClamp21_g149 , VClamp21_g149 , UMirror21_g149 , VMirror21_g149 , U21_g149 , V21_g149 , F21_g149 );
float2 appendResult44_g149 = (float2(U21_g149 , V21_g149));
float4 tex2DNode7_g149 = tex2D( _RefactionTex, appendResult44_g149 );
float temp_output_739_20 = ( F21_g149 * ( _RefactionTexAR == 0.0 ? tex2DNode7_g149.a : tex2DNode7_g149.r ) );
float Num5_g148 = _RefactionFactorC;
float4 texCoord1_g148 = IN.ase_texcoord4;
texCoord1_g148.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g148 = texCoord1_g148.z;
float c1y5_g148 = texCoord1_g148.w;
float4 texCoord2_g148 = IN.ase_texcoord5;
texCoord2_g148.xy = IN.ase_texcoord5.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g148 = texCoord2_g148.x;
float c1w5_g148 = texCoord2_g148.y;
float c2x5_g148 = texCoord2_g148.z;
float c2y5_g148 = texCoord2_g148.w;
float4 texCoord3_g148 = IN.ase_texcoord6;
texCoord3_g148.xy = IN.ase_texcoord6.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g148 = texCoord3_g148.x;
float c2w5_g148 = texCoord3_g148.y;
float F5_g148 = 0.0;
float localCustomChanelSwitch5_g148 = CustomChanelSwitch5_g148( Num5_g148 , c1x5_g148 , c1y5_g148 , c1z5_g148 , c1w5_g148 , c2x5_g148 , c2y5_g148 , c2z5_g148 , c2w5_g148 , F5_g148 );
float UVClip21_g150 = _RefactionMaskTexUVClip;
float UClamp21_g150 = _RefactionMaskTexUClamp;
float VClamp21_g150 = _RefactionMaskTexVClamp;
float UMirror21_g150 = _RefactionMaskTexUMirror;
float VMirror21_g150 = _RefactionMaskTexVMirror;
float2 appendResult4_g150 = (float2(_RefactionMaskTexUSpeed , _RefactionMaskTexVSpeed));
float2 uv_RefactionMaskTex = IN.ase_texcoord4.xy * _RefactionMaskTex_ST.xy + _RefactionMaskTex_ST.zw;
float cos38_g150 = cos( ( _RefactionMaskTexRotator * ( 2.0 * PI ) ) );
float sin38_g150 = sin( ( _RefactionMaskTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g150 = mul( uv_RefactionMaskTex - float2( 0.5,0.5 ) , float2x2( cos38_g150 , -sin38_g150 , sin38_g150 , cos38_g150 )) + float2( 0.5,0.5 );
float2 panner5_g150 = ( 1.0 * _Time.y * appendResult4_g150 + rotator38_g150);
float2 break22_g150 = panner5_g150;
float U21_g150 = break22_g150.x;
float V21_g150 = break22_g150.y;
float F21_g150 = 0.0;
float localUVClamp21_g150 = UVClamp21_g150( UVClip21_g150 , UClamp21_g150 , VClamp21_g150 , UMirror21_g150 , VMirror21_g150 , U21_g150 , V21_g150 , F21_g150 );
float2 appendResult44_g150 = (float2(U21_g150 , V21_g150));
float4 tex2DNode7_g150 = tex2D( _RefactionMaskTex, appendResult44_g150 );
#ifdef _IFREFACTIONMASK_ON
float staticSwitch781 = ( F21_g150 * ( _RefactionMaskTexAR == 0.0 ? tex2DNode7_g150.a : tex2DNode7_g150.r ) );
#else
float staticSwitch781 = 1.0;
#endif
#ifdef _IFREFACTION_ON
float4 staticSwitch726 = tex2D( _PandaGrabTex, ( ase_grabScreenPosNorm + ( (( _RefactionRemap )?( (-0.5 + (temp_output_739_20 - 0.0) * (0.5 - -0.5) / (1.0 - 0.0)) ):( temp_output_739_20 )) * (( _CustomRefactionFactor )?( ( F5_g148 * 0.2 ) ):( ( _RefactionFactor * 0.2 ) )) * staticSwitch781 ) ).xy );
#else
float4 staticSwitch726 = temp_cast_0;
#endif
#ifdef _IFREFACTION_ON
float staticSwitch728 = 1.0;
#else
float staticSwitch728 = 0.0;
#endif
float3 Color = staticSwitch726.rgb;
float Alpha = staticSwitch728;
float AlphaClipThreshold = 0.5;
#ifdef _ALPHATEST_ON
clip( Alpha - AlphaClipThreshold );
#endif
#ifdef LOD_FADE_CROSSFADE
LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
#endif
#ifdef ASE_FOG
Color = MixFog( Color, IN.fogFactor );
#endif
return half4( Color, Alpha );
}
ENDHLSL
}
Pass
{
Name "Forward"
Tags { "LightMode"="UniversalForwardOnly" "Queue"="Transparent" }
Blend [_Scr] [_Dst], One OneMinusSrcAlpha
ZWrite Off
ZTest [_ZTest]
Offset 0 , 0
ColorMask [_MainRGBA]
HLSLPROGRAM
#define _RECEIVE_SHADOWS_OFF 1
#define _SURFACE_TYPE_TRANSPARENT 1
#define _ALPHATEST_ON 1
#define ASE_SRP_VERSION 120107
#define REQUIRE_DEPTH_TEXTURE 1
#pragma multi_compile _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
#pragma multi_compile _ LIGHTMAP_ON
#pragma multi_compile _ DIRLIGHTMAP_COMBINED
#pragma multi_compile _ DEBUG_DISPLAY
#pragma vertex vert
#pragma fragment frag
#define SHADERPASS SHADERPASS_UNLIT
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DBuffer.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging3D.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/SurfaceData.hlsl"
#define ASE_NEEDS_VERT_NORMAL
#define ASE_NEEDS_FRAG_WORLD_POSITION
#define ASE_NEEDS_FRAG_COLOR
#pragma shader_feature_local _IFVTO_ON
#pragma shader_feature_local _FDISSOLVETEX_ON
#pragma shader_feature_local _FDISTORTTEX_ON
#pragma shader_feature_local _FDISSOLVEPLUSTEX_ON
#pragma shader_feature_local _FFNL_ON
#pragma shader_feature_local _FMASKTEX_ON
#pragma shader_feature_local _FDEPTH_ON
struct VertexInput
{
float4 vertex : POSITION;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VertexOutput
{
float4 clipPos : SV_POSITION;
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
float3 worldPos : TEXCOORD0;
#endif
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
float4 shadowCoord : TEXCOORD1;
#endif
#ifdef ASE_FOG
float fogFactor : TEXCOORD2;
#endif
float4 ase_color : COLOR;
float4 ase_texcoord3 : TEXCOORD3;
float4 ase_texcoord4 : TEXCOORD4;
float4 ase_texcoord5 : TEXCOORD5;
float4 ase_texcoord6 : TEXCOORD6;
float4 ase_texcoord7 : TEXCOORD7;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
CBUFFER_START(UnityPerMaterial)
float4 _RefactionTex_ST;
float4 _MainTexRefine;
float4 _RefactionMaskTex_ST;
float4 _VTOTex_ST;
float4 _DistortTex_ST;
half4 _MainColor;
float4 _DissolvePlusTex_ST;
float4 _MaskTex_ST;
half4 _DissolveColor;
half4 _FnlColor;
float4 _DissolveTex_ST;
float4 _MainTex_ST;
half _DissolveTexVMirror;
half _DissolveTexUSpeed;
float _CustomDissolveTexUOffset;
half _DistortDissolveTex;
float _DissolveTexUOffsetC;
float _CustomDissolveTexVOffset;
float _DissolveTexVOffsetC;
half _DissolveTexVSpeed;
half _CullMode;
half _DissolveTexVClamp;
half _DissolveTexRotator;
half _DissolveTexUClamp;
half _DissolveTexUVClip;
half _DissolveSoft;
half _DissolveWide;
float _DissolveFactorC;
half _DissolveFactor;
float _CustomDissolve;
half _MainTexDesaturate;
float _MainTexCAFator;
half _MainTexRotator;
float _MainTexVOffsetC;
float _CustomMainTexVOffset;
float _MainTexUOffsetC;
half _DissolveTexUMirror;
half _DissolveTexAR;
half _DissolvePlusTexVClamp;
half _DissolvePlusTexUClamp;
half _MaskTexAR;
half _MaskTexRotator;
float _MaskTexVOffsetC;
float _CustomMaskTexVOffset;
float _MaskTexUOffsetC;
float _CustomMaskTexUOffset;
half _DistortMaskTex;
half _MaskTexVSpeed;
half _MaskTexUSpeed;
half _MaskTexVMirror;
half _MaskTexUMirror;
half _MaskTexVClamp;
half _MaskTexUClamp;
half _MaskTexUVClip;
half _MainTexAR;
half _FnlPower;
half _FnlScale;
float _CustomMainTexUOffset;
half _DissolvePlusTexUMirror;
half _DissolvePlusTexVMirror;
half _DissolvePlusTexUSpeed;
half _DissolvePlusTexVSpeed;
float _CustomDissolvePlusTexUOffset;
half _DissolvePlusTexUVClip;
float _DissolvePlusTexUOffsetC;
float _DissolvePlusTexVOffsetC;
half _DissolvePlusTexRotator;
half _DissolvePlusTexAR;
float _DissolvePlusIntensity;
float _MainAlpha;
half _ReFnl;
float _CustomDissolvePlusTexVOffset;
float _DistortVIntensity;
float _CustomDistortFactor;
float _DistortFactorC;
half _RefactionMaskTexVMirror;
half _RefactionMaskTexUMirror;
float _RefactionMaskTexVClamp;
float _RefactionMaskTexUClamp;
float _RefactionMaskTexUVClip;
float _RefactionFactorC;
half _RefactionFactor;
float _CustomRefactionFactor;
half _RefactionTexAR;
half _RefactionTexRotator;
half _RefactionTexVSpeed;
half _RefactionTexUSpeed;
half _RefactionTexVMirror;
half _RefactionTexUMirror;
float _RefactionRemap;
float _MainRGBA;
float _SBCompare;
float _SB;
half _ZTest;
float _RefactionMaskTexDetail;
float _RefactionTexDetail;
float _MainTexDetail;
float _VTOTexDetail;
float _DissolvePlusTexDetail;
float _DissolveTexDetail;
float _DistortTexDetail;
float _MaskTexDetail;
half _Dst;
half _BlendMode;
half _RefactionMaskTexUSpeed;
half _RefactionMaskTexVSpeed;
half _RefactionMaskTexRotator;
half _RefactionMaskTexAR;
half _DistortFactor;
float _DepthFade;
half _DistortTexAR;
half _DistortTexRotator;
half _DistortTexVSpeed;
half _DistortTexUSpeed;
half _DistortTexVMirror;
half _DistortTexUMirror;
float _DistortRemap;
half _DistortMainTex;
half _MainTexVSpeed;
half _MainTexUSpeed;
half _MainTexVMirror;
half _MainTexUMirror;
float _DistortUIntensity;
half _MainTexVClamp;
half _MainTexUVClip;
half _Scr;
float _VTOScaleC;
float _VTOScale;
float _CustomVTO;
half _VTOTexAR;
half _VTOTexRotator;
half _VTOTexVSpeed;
half _VTOTexUSpeed;
half _VTOTexVMirror;
half _VTOTexUMirror;
half _VTOTexVClamp;
half _VTOTexUClamp;
half _VTOTexUVClip;
half _MainTexUClamp;
float _AlphaClip;
#ifdef ASE_TESSELLATION
float _TessPhongStrength;
float _TessValue;
float _TessMin;
float _TessMax;
float _TessEdgeLength;
float _TessMaxDisp;
#endif
CBUFFER_END
sampler2D _VTOTex;
sampler2D _MainTex;
sampler2D _DistortTex;
sampler2D _DissolveTex;
sampler2D _DissolvePlusTex;
sampler2D _MaskTex;
uniform float4 _CameraDepthTexture_TexelSize;
float UVClamp21_g144( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g117( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g146( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g147( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g119( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g118( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g143( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g151( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g152( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g102( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g140( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g104( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g103( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g139( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g113( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g114( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g142( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
VertexOutput VertexFunction ( VertexInput v )
{
VertexOutput o = (VertexOutput)0;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
float3 temp_cast_0 = (0.0).xxx;
float UVClip21_g144 = _VTOTexUVClip;
float UClamp21_g144 = _VTOTexUClamp;
float VClamp21_g144 = _VTOTexVClamp;
float UMirror21_g144 = _VTOTexUMirror;
float VMirror21_g144 = _VTOTexVMirror;
float2 appendResult4_g144 = (float2(_VTOTexUSpeed , _VTOTexVSpeed));
float2 uv_VTOTex = v.ase_texcoord * _VTOTex_ST.xy + _VTOTex_ST.zw;
float cos38_g144 = cos( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float sin38_g144 = sin( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g144 = mul( uv_VTOTex - float2( 0.5,0.5 ) , float2x2( cos38_g144 , -sin38_g144 , sin38_g144 , cos38_g144 )) + float2( 0.5,0.5 );
float2 panner5_g144 = ( 1.0 * _Time.y * appendResult4_g144 + rotator38_g144);
float2 break22_g144 = panner5_g144;
float U21_g144 = break22_g144.x;
float V21_g144 = break22_g144.y;
float F21_g144 = 0.0;
float localUVClamp21_g144 = UVClamp21_g144( UVClip21_g144 , UClamp21_g144 , VClamp21_g144 , UMirror21_g144 , VMirror21_g144 , U21_g144 , V21_g144 , F21_g144 );
float2 appendResult44_g144 = (float2(U21_g144 , V21_g144));
float4 tex2DNode7_g144 = tex2Dlod( _VTOTex, float4( appendResult44_g144, 0, 0.0) );
float Num5_g117 = _VTOScaleC;
float4 texCoord1_g117 = v.ase_texcoord;
texCoord1_g117.xy = v.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g117 = texCoord1_g117.z;
float c1y5_g117 = texCoord1_g117.w;
float4 texCoord2_g117 = v.ase_texcoord1;
texCoord2_g117.xy = v.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g117 = texCoord2_g117.x;
float c1w5_g117 = texCoord2_g117.y;
float c2x5_g117 = texCoord2_g117.z;
float c2y5_g117 = texCoord2_g117.w;
float4 texCoord3_g117 = v.ase_texcoord2;
texCoord3_g117.xy = v.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g117 = texCoord3_g117.x;
float c2w5_g117 = texCoord3_g117.y;
float F5_g117 = 0.0;
float localCustomChanelSwitch5_g117 = CustomChanelSwitch5_g117( Num5_g117 , c1x5_g117 , c1y5_g117 , c1z5_g117 , c1w5_g117 , c2x5_g117 , c2y5_g117 , c2z5_g117 , c2w5_g117 , F5_g117 );
float3 VTO387 = ( v.ase_normal * ( F21_g144 * ( _VTOTexAR == 0.0 ? tex2DNode7_g144.a : tex2DNode7_g144.r ) ) * (( _CustomVTO )?( F5_g117 ):( _VTOScale )) );
#ifdef _IFVTO_ON
float3 staticSwitch390 = VTO387;
#else
float3 staticSwitch390 = temp_cast_0;
#endif
float3 ase_worldNormal = TransformObjectToWorldNormal(v.ase_normal);
o.ase_texcoord6.xyz = ase_worldNormal;
float4 ase_clipPos = TransformObjectToHClip((v.vertex).xyz);
float4 screenPos = ComputeScreenPos(ase_clipPos);
o.ase_texcoord7 = screenPos;
o.ase_color = v.ase_color;
o.ase_texcoord3 = v.ase_texcoord;
o.ase_texcoord4 = v.ase_texcoord1;
o.ase_texcoord5 = v.ase_texcoord2;
//setting value to unused interpolator channels and avoid initialization warnings
o.ase_texcoord6.w = 0;
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = v.vertex.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
float3 vertexValue = staticSwitch390;
#ifdef ASE_ABSOLUTE_VERTEX_POS
v.vertex.xyz = vertexValue;
#else
v.vertex.xyz += vertexValue;
#endif
v.ase_normal = v.ase_normal;
float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
float4 positionCS = TransformWorldToHClip( positionWS );
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
o.worldPos = positionWS;
#endif
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
VertexPositionInputs vertexInput = (VertexPositionInputs)0;
vertexInput.positionWS = positionWS;
vertexInput.positionCS = positionCS;
o.shadowCoord = GetShadowCoord( vertexInput );
#endif
#ifdef ASE_FOG
o.fogFactor = ComputeFogFactor( positionCS.z );
#endif
o.clipPos = positionCS;
return o;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 vertex : INTERNALTESSPOS;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( VertexInput v )
{
VertexControl o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
o.vertex = v.vertex;
o.ase_normal = v.ase_normal;
o.ase_texcoord = v.ase_texcoord;
o.ase_texcoord1 = v.ase_texcoord1;
o.ase_texcoord2 = v.ase_texcoord2;
o.ase_color = v.ase_color;
return o;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
{
TessellationFactors o;
float4 tf = 1;
float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
return o;
}
[domain("tri")]
[partitioning("fractional_odd")]
[outputtopology("triangle_cw")]
[patchconstantfunc("TessellationFunction")]
[outputcontrolpoints(3)]
VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
{
return patch[id];
}
[domain("tri")]
VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
VertexInput o = (VertexInput) 0;
o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
o.ase_texcoord2 = patch[0].ase_texcoord2 * bary.x + patch[1].ase_texcoord2 * bary.y + patch[2].ase_texcoord2 * bary.z;
o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
float phongStrength = _TessPhongStrength;
o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
return VertexFunction(o);
}
#else
VertexOutput vert ( VertexInput v )
{
return VertexFunction( v );
}
#endif
half4 frag ( VertexOutput IN ) : SV_Target
{
UNITY_SETUP_INSTANCE_ID( IN );
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
float3 WorldPosition = IN.worldPos;
#endif
float4 ShadowCoords = float4( 0, 0, 0, 0 );
#if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
ShadowCoords = IN.shadowCoord;
#elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
#endif
#endif
float Scr106 = _Scr;
float4 break30_g143 = _MainTexRefine;
float UVClip21_g143 = _MainTexUVClip;
float UClamp21_g143 = _MainTexUClamp;
float VClamp21_g143 = _MainTexVClamp;
float UMirror21_g143 = _MainTexUMirror;
float VMirror21_g143 = _MainTexVMirror;
float2 appendResult4_g143 = (float2(_MainTexUSpeed , _MainTexVSpeed));
float2 uv_MainTex = IN.ase_texcoord3.xy * _MainTex_ST.xy + _MainTex_ST.zw;
float2 temp_output_3_0_g145 = uv_MainTex;
float UVClip21_g146 = 1.0;
float UClamp21_g146 = 0.0;
float VClamp21_g146 = 0.0;
float UMirror21_g146 = _DistortTexUMirror;
float VMirror21_g146 = _DistortTexVMirror;
float2 appendResult4_g146 = (float2(_DistortTexUSpeed , _DistortTexVSpeed));
float2 uv_DistortTex = IN.ase_texcoord3.xy * _DistortTex_ST.xy + _DistortTex_ST.zw;
float cos38_g146 = cos( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float sin38_g146 = sin( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g146 = mul( uv_DistortTex - float2( 0.5,0.5 ) , float2x2( cos38_g146 , -sin38_g146 , sin38_g146 , cos38_g146 )) + float2( 0.5,0.5 );
float2 panner5_g146 = ( 1.0 * _Time.y * appendResult4_g146 + rotator38_g146);
float2 break22_g146 = panner5_g146;
float U21_g146 = break22_g146.x;
float V21_g146 = break22_g146.y;
float F21_g146 = 0.0;
float localUVClamp21_g146 = UVClamp21_g146( UVClip21_g146 , UClamp21_g146 , VClamp21_g146 , UMirror21_g146 , VMirror21_g146 , U21_g146 , V21_g146 , F21_g146 );
float2 appendResult44_g146 = (float2(U21_g146 , V21_g146));
float4 tex2DNode7_g146 = tex2D( _DistortTex, appendResult44_g146 );
float temp_output_675_20 = ( F21_g146 * ( _DistortTexAR == 0.0 ? tex2DNode7_g146.a : tex2DNode7_g146.r ) );
float Num5_g147 = _DistortFactorC;
float4 texCoord1_g147 = IN.ase_texcoord3;
texCoord1_g147.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g147 = texCoord1_g147.z;
float c1y5_g147 = texCoord1_g147.w;
float4 texCoord2_g147 = IN.ase_texcoord4;
texCoord2_g147.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g147 = texCoord2_g147.x;
float c1w5_g147 = texCoord2_g147.y;
float c2x5_g147 = texCoord2_g147.z;
float c2y5_g147 = texCoord2_g147.w;
float4 texCoord3_g147 = IN.ase_texcoord5;
texCoord3_g147.xy = IN.ase_texcoord5.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g147 = texCoord3_g147.x;
float c2w5_g147 = texCoord3_g147.y;
float F5_g147 = 0.0;
float localCustomChanelSwitch5_g147 = CustomChanelSwitch5_g147( Num5_g147 , c1x5_g147 , c1y5_g147 , c1z5_g147 , c1w5_g147 , c2x5_g147 , c2y5_g147 , c2z5_g147 , c2w5_g147 , F5_g147 );
float2 appendResult465 = (float2(_DistortUIntensity , _DistortVIntensity));
float2 Distort148 = ( (( _DistortRemap )?( (-0.5 + (temp_output_675_20 - 0.0) * (0.5 - -0.5) / (1.0 - 0.0)) ):( temp_output_675_20 )) * (( _CustomDistortFactor )?( F5_g147 ):( _DistortFactor )) * appendResult465 );
#ifdef _FDISTORTTEX_ON
float2 staticSwitch316 = ( _DistortMainTex == 0.0 ? temp_output_3_0_g145 : ( temp_output_3_0_g145 + Distort148 ) );
#else
float2 staticSwitch316 = uv_MainTex;
#endif
float Num5_g119 = _MainTexUOffsetC;
float4 texCoord1_g119 = IN.ase_texcoord3;
texCoord1_g119.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g119 = texCoord1_g119.z;
float c1y5_g119 = texCoord1_g119.w;
float4 texCoord2_g119 = IN.ase_texcoord4;
texCoord2_g119.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g119 = texCoord2_g119.x;
float c1w5_g119 = texCoord2_g119.y;
float c2x5_g119 = texCoord2_g119.z;
float c2y5_g119 = texCoord2_g119.w;
float4 texCoord3_g119 = IN.ase_texcoord5;
texCoord3_g119.xy = IN.ase_texcoord5.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g119 = texCoord3_g119.x;
float c2w5_g119 = texCoord3_g119.y;
float F5_g119 = 0.0;
float localCustomChanelSwitch5_g119 = CustomChanelSwitch5_g119( Num5_g119 , c1x5_g119 , c1y5_g119 , c1z5_g119 , c1w5_g119 , c2x5_g119 , c2y5_g119 , c2z5_g119 , c2w5_g119 , F5_g119 );
float Num5_g118 = _MainTexVOffsetC;
float4 texCoord1_g118 = IN.ase_texcoord3;
texCoord1_g118.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g118 = texCoord1_g118.z;
float c1y5_g118 = texCoord1_g118.w;
float4 texCoord2_g118 = IN.ase_texcoord4;
texCoord2_g118.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g118 = texCoord2_g118.x;
float c1w5_g118 = texCoord2_g118.y;
float c2x5_g118 = texCoord2_g118.z;
float c2y5_g118 = texCoord2_g118.w;
float4 texCoord3_g118 = IN.ase_texcoord5;
texCoord3_g118.xy = IN.ase_texcoord5.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g118 = texCoord3_g118.x;
float c2w5_g118 = texCoord3_g118.y;
float F5_g118 = 0.0;
float localCustomChanelSwitch5_g118 = CustomChanelSwitch5_g118( Num5_g118 , c1x5_g118 , c1y5_g118 , c1z5_g118 , c1w5_g118 , c2x5_g118 , c2y5_g118 , c2z5_g118 , c2w5_g118 , F5_g118 );
float2 appendResult330 = (float2((( _CustomMainTexUOffset )?( F5_g119 ):( 0.0 )) , (( _CustomMainTexVOffset )?( F5_g118 ):( 0.0 ))));
float cos38_g143 = cos( ( _MainTexRotator * ( 2.0 * PI ) ) );
float sin38_g143 = sin( ( _MainTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g143 = mul( ( staticSwitch316 + appendResult330 ) - float2( 0.5,0.5 ) , float2x2( cos38_g143 , -sin38_g143 , sin38_g143 , cos38_g143 )) + float2( 0.5,0.5 );
float2 panner5_g143 = ( 1.0 * _Time.y * appendResult4_g143 + rotator38_g143);
float2 break22_g143 = panner5_g143;
float U21_g143 = break22_g143.x;
float V21_g143 = break22_g143.y;
float F21_g143 = 0.0;
float localUVClamp21_g143 = UVClamp21_g143( UVClip21_g143 , UClamp21_g143 , VClamp21_g143 , UMirror21_g143 , VMirror21_g143 , U21_g143 , V21_g143 , F21_g143 );
float2 appendResult44_g143 = (float2(U21_g143 , V21_g143));
float temp_output_48_0_g143 = _MainTexCAFator;
float4 tex2DNode7_g143 = tex2D( _MainTex, appendResult44_g143 );
float2 temp_cast_0 = (temp_output_48_0_g143).xx;
float3 appendResult51_g143 = (float3(tex2D( _MainTex, ( appendResult44_g143 + temp_output_48_0_g143 ) ).r , tex2DNode7_g143.g , tex2D( _MainTex, ( appendResult44_g143 - temp_cast_0 ) ).b));
float3 desaturateInitialColor27_g143 = appendResult51_g143;
float desaturateDot27_g143 = dot( desaturateInitialColor27_g143, float3( 0.299, 0.587, 0.114 ));
float3 desaturateVar27_g143 = lerp( desaturateInitialColor27_g143, desaturateDot27_g143.xxx, 1.0 );
float lerpResult34_g143 = lerp( ( break30_g143.x * desaturateVar27_g143.x ) , ( break30_g143.y * pow( desaturateVar27_g143.x , break30_g143.z ) ) , break30_g143.w);
float3 desaturateInitialColor36_g143 = ( lerpResult34_g143 * ( F21_g143 * appendResult51_g143 ) );
float desaturateDot36_g143 = dot( desaturateInitialColor36_g143, float3( 0.299, 0.587, 0.114 ));
float3 desaturateVar36_g143 = lerp( desaturateInitialColor36_g143, desaturateDot36_g143.xxx, _MainTexDesaturate );
float4 MainTexColor215 = ( _MainColor * float4( desaturateVar36_g143 , 0.0 ) );
float Num5_g151 = _DissolveFactorC;
float4 texCoord1_g151 = IN.ase_texcoord3;
texCoord1_g151.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g151 = texCoord1_g151.z;
float c1y5_g151 = texCoord1_g151.w;
float4 texCoord2_g151 = IN.ase_texcoord4;
texCoord2_g151.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g151 = texCoord2_g151.x;
float c1w5_g151 = texCoord2_g151.y;
float c2x5_g151 = texCoord2_g151.z;
float c2y5_g151 = texCoord2_g151.w;
float4 texCoord3_g151 = IN.ase_texcoord5;
texCoord3_g151.xy = IN.ase_texcoord5.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g151 = texCoord3_g151.x;
float c2w5_g151 = texCoord3_g151.y;
float F5_g151 = 0.0;
float localCustomChanelSwitch5_g151 = CustomChanelSwitch5_g151( Num5_g151 , c1x5_g151 , c1y5_g151 , c1z5_g151 , c1w5_g151 , c2x5_g151 , c2y5_g151 , c2z5_g151 , c2w5_g151 , F5_g151 );
float temp_output_275_0 = (-_DissolveWide + ((( _CustomDissolve )?( F5_g151 ):( _DissolveFactor )) - 0.0) * (1.0 - -_DissolveWide) / (1.0 - 0.0));
float temp_output_277_0 = ( _DissolveSoft + 0.0001 );
float temp_output_272_0 = (-temp_output_277_0 + (( temp_output_275_0 + _DissolveWide ) - 0.0) * (1.0 - -temp_output_277_0) / (1.0 - 0.0));
float UVClip21_g140 = _DissolveTexUVClip;
float UClamp21_g140 = _DissolveTexUClamp;
float VClamp21_g140 = _DissolveTexVClamp;
float UMirror21_g140 = _DissolveTexUMirror;
float VMirror21_g140 = _DissolveTexVMirror;
float2 appendResult4_g140 = (float2(_DissolveTexUSpeed , _DissolveTexVSpeed));
float2 uv_DissolveTex = IN.ase_texcoord3.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;
float2 temp_output_3_0_g106 = uv_DissolveTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch314 = ( _DistortDissolveTex == 0.0 ? temp_output_3_0_g106 : ( temp_output_3_0_g106 + Distort148 ) );
#else
float2 staticSwitch314 = uv_DissolveTex;
#endif
float Num5_g152 = _DissolveTexUOffsetC;
float4 texCoord1_g152 = IN.ase_texcoord3;
texCoord1_g152.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g152 = texCoord1_g152.z;
float c1y5_g152 = texCoord1_g152.w;
float4 texCoord2_g152 = IN.ase_texcoord4;
texCoord2_g152.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g152 = texCoord2_g152.x;
float c1w5_g152 = texCoord2_g152.y;
float c2x5_g152 = texCoord2_g152.z;
float c2y5_g152 = texCoord2_g152.w;
float4 texCoord3_g152 = IN.ase_texcoord5;
texCoord3_g152.xy = IN.ase_texcoord5.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g152 = texCoord3_g152.x;
float c2w5_g152 = texCoord3_g152.y;
float F5_g152 = 0.0;
float localCustomChanelSwitch5_g152 = CustomChanelSwitch5_g152( Num5_g152 , c1x5_g152 , c1y5_g152 , c1z5_g152 , c1w5_g152 , c2x5_g152 , c2y5_g152 , c2z5_g152 , c2w5_g152 , F5_g152 );
float Num5_g102 = _DissolveTexVOffsetC;
float4 texCoord1_g102 = IN.ase_texcoord3;
texCoord1_g102.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g102 = texCoord1_g102.z;
float c1y5_g102 = texCoord1_g102.w;
float4 texCoord2_g102 = IN.ase_texcoord4;
texCoord2_g102.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g102 = texCoord2_g102.x;
float c1w5_g102 = texCoord2_g102.y;
float c2x5_g102 = texCoord2_g102.z;
float c2y5_g102 = texCoord2_g102.w;
float4 texCoord3_g102 = IN.ase_texcoord5;
texCoord3_g102.xy = IN.ase_texcoord5.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g102 = texCoord3_g102.x;
float c2w5_g102 = texCoord3_g102.y;
float F5_g102 = 0.0;
float localCustomChanelSwitch5_g102 = CustomChanelSwitch5_g102( Num5_g102 , c1x5_g102 , c1y5_g102 , c1z5_g102 , c1w5_g102 , c2x5_g102 , c2y5_g102 , c2z5_g102 , c2w5_g102 , F5_g102 );
float2 appendResult479 = (float2((( _CustomDissolveTexUOffset )?( F5_g152 ):( 0.0 )) , (( _CustomDissolveTexVOffset )?( F5_g102 ):( 0.0 ))));
float cos38_g140 = cos( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float sin38_g140 = sin( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g140 = mul( ( staticSwitch314 + appendResult479 ) - float2( 0.5,0.5 ) , float2x2( cos38_g140 , -sin38_g140 , sin38_g140 , cos38_g140 )) + float2( 0.5,0.5 );
float2 panner5_g140 = ( 1.0 * _Time.y * appendResult4_g140 + rotator38_g140);
float2 break22_g140 = panner5_g140;
float U21_g140 = break22_g140.x;
float V21_g140 = break22_g140.y;
float F21_g140 = 0.0;
float localUVClamp21_g140 = UVClamp21_g140( UVClip21_g140 , UClamp21_g140 , VClamp21_g140 , UMirror21_g140 , VMirror21_g140 , U21_g140 , V21_g140 , F21_g140 );
float2 appendResult44_g140 = (float2(U21_g140 , V21_g140));
float4 tex2DNode7_g140 = tex2D( _DissolveTex, appendResult44_g140 );
float temp_output_677_20 = ( F21_g140 * ( _DissolveTexAR == 0.0 ? tex2DNode7_g140.a : tex2DNode7_g140.r ) );
float UVClip21_g139 = _DissolvePlusTexUVClip;
float UClamp21_g139 = _DissolvePlusTexUClamp;
float VClamp21_g139 = _DissolvePlusTexVClamp;
float UMirror21_g139 = _DissolvePlusTexUMirror;
float VMirror21_g139 = _DissolvePlusTexVMirror;
float2 appendResult4_g139 = (float2(_DissolvePlusTexUSpeed , _DissolvePlusTexVSpeed));
float2 uv_DissolvePlusTex = IN.ase_texcoord3.xy * _DissolvePlusTex_ST.xy + _DissolvePlusTex_ST.zw;
float Num5_g104 = _DissolvePlusTexUOffsetC;
float4 texCoord1_g104 = IN.ase_texcoord3;
texCoord1_g104.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g104 = texCoord1_g104.z;
float c1y5_g104 = texCoord1_g104.w;
float4 texCoord2_g104 = IN.ase_texcoord4;
texCoord2_g104.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g104 = texCoord2_g104.x;
float c1w5_g104 = texCoord2_g104.y;
float c2x5_g104 = texCoord2_g104.z;
float c2y5_g104 = texCoord2_g104.w;
float4 texCoord3_g104 = IN.ase_texcoord5;
texCoord3_g104.xy = IN.ase_texcoord5.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g104 = texCoord3_g104.x;
float c2w5_g104 = texCoord3_g104.y;
float F5_g104 = 0.0;
float localCustomChanelSwitch5_g104 = CustomChanelSwitch5_g104( Num5_g104 , c1x5_g104 , c1y5_g104 , c1z5_g104 , c1w5_g104 , c2x5_g104 , c2y5_g104 , c2z5_g104 , c2w5_g104 , F5_g104 );
float Num5_g103 = _DissolvePlusTexVOffsetC;
float4 texCoord1_g103 = IN.ase_texcoord3;
texCoord1_g103.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g103 = texCoord1_g103.z;
float c1y5_g103 = texCoord1_g103.w;
float4 texCoord2_g103 = IN.ase_texcoord4;
texCoord2_g103.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g103 = texCoord2_g103.x;
float c1w5_g103 = texCoord2_g103.y;
float c2x5_g103 = texCoord2_g103.z;
float c2y5_g103 = texCoord2_g103.w;
float4 texCoord3_g103 = IN.ase_texcoord5;
texCoord3_g103.xy = IN.ase_texcoord5.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g103 = texCoord3_g103.x;
float c2w5_g103 = texCoord3_g103.y;
float F5_g103 = 0.0;
float localCustomChanelSwitch5_g103 = CustomChanelSwitch5_g103( Num5_g103 , c1x5_g103 , c1y5_g103 , c1z5_g103 , c1w5_g103 , c2x5_g103 , c2y5_g103 , c2z5_g103 , c2w5_g103 , F5_g103 );
float2 appendResult497 = (float2((( _CustomDissolvePlusTexUOffset )?( F5_g104 ):( 0.0 )) , (( _CustomDissolvePlusTexVOffset )?( F5_g103 ):( 0.0 ))));
float cos38_g139 = cos( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float sin38_g139 = sin( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g139 = mul( ( uv_DissolvePlusTex + appendResult497 ) - float2( 0.5,0.5 ) , float2x2( cos38_g139 , -sin38_g139 , sin38_g139 , cos38_g139 )) + float2( 0.5,0.5 );
float2 panner5_g139 = ( 1.0 * _Time.y * appendResult4_g139 + rotator38_g139);
float2 break22_g139 = panner5_g139;
float U21_g139 = break22_g139.x;
float V21_g139 = break22_g139.y;
float F21_g139 = 0.0;
float localUVClamp21_g139 = UVClamp21_g139( UVClip21_g139 , UClamp21_g139 , VClamp21_g139 , UMirror21_g139 , VMirror21_g139 , U21_g139 , V21_g139 , F21_g139 );
float2 appendResult44_g139 = (float2(U21_g139 , V21_g139));
float4 tex2DNode7_g139 = tex2D( _DissolvePlusTex, appendResult44_g139 );
float lerpResult413 = lerp( temp_output_677_20 , ( F21_g139 * ( _DissolvePlusTexAR == 0.0 ? tex2DNode7_g139.a : tex2DNode7_g139.r ) ) , _DissolvePlusIntensity);
#ifdef _FDISSOLVEPLUSTEX_ON
float staticSwitch415 = lerpResult413;
#else
float staticSwitch415 = temp_output_677_20;
#endif
float smoothstepResult264 = smoothstep( temp_output_272_0 , ( temp_output_272_0 + temp_output_277_0 ) , staticSwitch415);
float Alpha337 = _MainAlpha;
float4 lerpResult223 = lerp( MainTexColor215 , _DissolveColor , ( _DissolveColor.a * ( 1.0 - smoothstepResult264 ) * Alpha337 ));
#ifdef _FDISSOLVETEX_ON
float4 staticSwitch298 = lerpResult223;
#else
float4 staticSwitch298 = MainTexColor215;
#endif
float4 temp_cast_2 = (0.0).xxxx;
float Refnl339 = _ReFnl;
float3 ase_worldViewDir = ( _WorldSpaceCameraPos.xyz - WorldPosition );
ase_worldViewDir = normalize(ase_worldViewDir);
float3 ase_worldNormal = IN.ase_texcoord6.xyz;
float fresnelNdotV279 = dot( ase_worldNormal, ase_worldViewDir );
float fresnelNode279 = ( 0.0 + _FnlScale * pow( 1.0 - fresnelNdotV279, _FnlPower ) );
float temp_output_283_0 = saturate( fresnelNode279 );
float4 FnlMainColor286 = ( _FnlColor * temp_output_283_0 * _FnlColor.a );
float4 temp_cast_3 = (0.0).xxxx;
#ifdef _FFNL_ON
float4 staticSwitch300 = ( Refnl339 == 0.0 ? FnlMainColor286 : temp_cast_3 );
#else
float4 staticSwitch300 = temp_cast_2;
#endif
float4 MainColor98 = ( IN.ase_color * ( staticSwitch298 + staticSwitch300 ) );
float MainTexAlpha138 = ( _MainColor.a * ( F21_g143 * ( _MainTexAR == 0.0 ? tex2DNode7_g143.a : tex2DNode7_g143.r ) ) );
float UVClip21_g142 = _MaskTexUVClip;
float UClamp21_g142 = _MaskTexUClamp;
float VClamp21_g142 = _MaskTexVClamp;
float UMirror21_g142 = _MaskTexUMirror;
float VMirror21_g142 = _MaskTexVMirror;
float2 appendResult4_g142 = (float2(_MaskTexUSpeed , _MaskTexVSpeed));
float2 uv_MaskTex = IN.ase_texcoord3.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;
float2 temp_output_3_0_g115 = uv_MaskTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch312 = ( _DistortMaskTex == 0.0 ? temp_output_3_0_g115 : ( temp_output_3_0_g115 + Distort148 ) );
#else
float2 staticSwitch312 = uv_MaskTex;
#endif
float Num5_g113 = _MaskTexUOffsetC;
float4 texCoord1_g113 = IN.ase_texcoord3;
texCoord1_g113.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g113 = texCoord1_g113.z;
float c1y5_g113 = texCoord1_g113.w;
float4 texCoord2_g113 = IN.ase_texcoord4;
texCoord2_g113.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g113 = texCoord2_g113.x;
float c1w5_g113 = texCoord2_g113.y;
float c2x5_g113 = texCoord2_g113.z;
float c2y5_g113 = texCoord2_g113.w;
float4 texCoord3_g113 = IN.ase_texcoord5;
texCoord3_g113.xy = IN.ase_texcoord5.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g113 = texCoord3_g113.x;
float c2w5_g113 = texCoord3_g113.y;
float F5_g113 = 0.0;
float localCustomChanelSwitch5_g113 = CustomChanelSwitch5_g113( Num5_g113 , c1x5_g113 , c1y5_g113 , c1z5_g113 , c1w5_g113 , c2x5_g113 , c2y5_g113 , c2z5_g113 , c2w5_g113 , F5_g113 );
float Num5_g114 = _MaskTexVOffsetC;
float4 texCoord1_g114 = IN.ase_texcoord3;
texCoord1_g114.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g114 = texCoord1_g114.z;
float c1y5_g114 = texCoord1_g114.w;
float4 texCoord2_g114 = IN.ase_texcoord4;
texCoord2_g114.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g114 = texCoord2_g114.x;
float c1w5_g114 = texCoord2_g114.y;
float c2x5_g114 = texCoord2_g114.z;
float c2y5_g114 = texCoord2_g114.w;
float4 texCoord3_g114 = IN.ase_texcoord5;
texCoord3_g114.xy = IN.ase_texcoord5.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g114 = texCoord3_g114.x;
float c2w5_g114 = texCoord3_g114.y;
float F5_g114 = 0.0;
float localCustomChanelSwitch5_g114 = CustomChanelSwitch5_g114( Num5_g114 , c1x5_g114 , c1y5_g114 , c1z5_g114 , c1w5_g114 , c2x5_g114 , c2y5_g114 , c2z5_g114 , c2w5_g114 , F5_g114 );
float2 appendResult446 = (float2((( _CustomMaskTexUOffset )?( F5_g113 ):( 0.0 )) , (( _CustomMaskTexVOffset )?( F5_g114 ):( 0.0 ))));
float cos38_g142 = cos( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float sin38_g142 = sin( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g142 = mul( ( staticSwitch312 + appendResult446 ) - float2( 0.5,0.5 ) , float2x2( cos38_g142 , -sin38_g142 , sin38_g142 , cos38_g142 )) + float2( 0.5,0.5 );
float2 panner5_g142 = ( 1.0 * _Time.y * appendResult4_g142 + rotator38_g142);
float2 break22_g142 = panner5_g142;
float U21_g142 = break22_g142.x;
float V21_g142 = break22_g142.y;
float F21_g142 = 0.0;
float localUVClamp21_g142 = UVClamp21_g142( UVClip21_g142 , UClamp21_g142 , VClamp21_g142 , UMirror21_g142 , VMirror21_g142 , U21_g142 , V21_g142 , F21_g142 );
float2 appendResult44_g142 = (float2(U21_g142 , V21_g142));
float4 tex2DNode7_g142 = tex2D( _MaskTex, appendResult44_g142 );
#ifdef _FMASKTEX_ON
float staticSwitch291 = ( F21_g142 * ( _MaskTexAR == 0.0 ? tex2DNode7_g142.a : tex2DNode7_g142.r ) );
#else
float staticSwitch291 = 1.0;
#endif
float temp_output_270_0 = (-temp_output_277_0 + (temp_output_275_0 - 0.0) * (1.0 - -temp_output_277_0) / (1.0 - 0.0));
float smoothstepResult256 = smoothstep( temp_output_270_0 , ( temp_output_270_0 + temp_output_277_0 ) , staticSwitch415);
float DissolveAlpha212 = smoothstepResult256;
#ifdef _FDISSOLVETEX_ON
float staticSwitch299 = DissolveAlpha212;
#else
float staticSwitch299 = 1.0;
#endif
float ReFnlAlpha318 = ( 1.0 - temp_output_283_0 );
#ifdef _FFNL_ON
float staticSwitch319 = ( Refnl339 == 0.0 ? 1.0 : ReFnlAlpha318 );
#else
float staticSwitch319 = 1.0;
#endif
float4 screenPos = IN.ase_texcoord7;
float4 ase_screenPosNorm = screenPos / screenPos.w;
ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5;
float screenDepth375 = LinearEyeDepth(SHADERGRAPH_SAMPLE_SCENE_DEPTH( ase_screenPosNorm.xy ),_ZBufferParams);
float distanceDepth375 = abs( ( screenDepth375 - LinearEyeDepth( ase_screenPosNorm.z,_ZBufferParams ) ) / ( _DepthFade ) );
#ifdef _FDEPTH_ON
float staticSwitch378 = saturate( distanceDepth375 );
#else
float staticSwitch378 = 1.0;
#endif
float MainAlpha97 = saturate( ( MainTexAlpha138 * staticSwitch291 * IN.ase_color.a * Alpha337 * staticSwitch299 * staticSwitch319 * staticSwitch378 ) );
float3 BakedAlbedo = 0;
float3 BakedEmission = 0;
float3 Color = ( Scr106 == 5.0 ? MainColor98 : ( MainColor98 * MainAlpha97 ) ).rgb;
float Alpha = MainAlpha97;
float AlphaClipThreshold = _AlphaClip;
float AlphaClipThresholdShadow = 0.5;
#ifdef _ALPHATEST_ON
clip( Alpha - AlphaClipThreshold );
#endif
#if defined(_DBUFFER)
ApplyDecalToBaseColor(IN.clipPos, Color);
#endif
#if defined(_ALPHAPREMULTIPLY_ON)
Color *= Alpha;
#endif
#ifdef LOD_FADE_CROSSFADE
LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
#endif
#ifdef ASE_FOG
Color = MixFog( Color, IN.fogFactor );
#endif
return half4( Color, Alpha );
}
ENDHLSL
}
Pass
{
Name "DepthOnly"
Tags { "LightMode"="DepthOnly" }
ZWrite On
ColorMask 0
AlphaToMask Off
HLSLPROGRAM
#define _RECEIVE_SHADOWS_OFF 1
#define _SURFACE_TYPE_TRANSPARENT 1
#define _ALPHATEST_ON 1
#define ASE_SRP_VERSION 120107
#define REQUIRE_DEPTH_TEXTURE 1
#pragma vertex vert
#pragma fragment frag
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#define ASE_NEEDS_VERT_NORMAL
#define ASE_NEEDS_FRAG_WORLD_POSITION
#pragma shader_feature_local _IFVTO_ON
#pragma shader_feature_local _FDISTORTTEX_ON
#pragma shader_feature_local _FMASKTEX_ON
#pragma shader_feature_local _FDISSOLVETEX_ON
#pragma shader_feature_local _FDISSOLVEPLUSTEX_ON
#pragma shader_feature_local _FFNL_ON
#pragma shader_feature_local _FDEPTH_ON
struct VertexInput
{
float4 vertex : POSITION;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VertexOutput
{
float4 clipPos : SV_POSITION;
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
float3 worldPos : TEXCOORD0;
#endif
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
float4 shadowCoord : TEXCOORD1;
#endif
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_texcoord3 : TEXCOORD3;
float4 ase_texcoord4 : TEXCOORD4;
float4 ase_color : COLOR;
float4 ase_texcoord5 : TEXCOORD5;
float4 ase_texcoord6 : TEXCOORD6;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
CBUFFER_START(UnityPerMaterial)
float4 _RefactionTex_ST;
float4 _MainTexRefine;
float4 _RefactionMaskTex_ST;
float4 _VTOTex_ST;
float4 _DistortTex_ST;
half4 _MainColor;
float4 _DissolvePlusTex_ST;
float4 _MaskTex_ST;
half4 _DissolveColor;
half4 _FnlColor;
float4 _DissolveTex_ST;
float4 _MainTex_ST;
half _DissolveTexVMirror;
half _DissolveTexUSpeed;
float _CustomDissolveTexUOffset;
half _DistortDissolveTex;
float _DissolveTexUOffsetC;
float _CustomDissolveTexVOffset;
float _DissolveTexVOffsetC;
half _DissolveTexVSpeed;
half _CullMode;
half _DissolveTexVClamp;
half _DissolveTexRotator;
half _DissolveTexUClamp;
half _DissolveTexUVClip;
half _DissolveSoft;
half _DissolveWide;
float _DissolveFactorC;
half _DissolveFactor;
float _CustomDissolve;
half _MainTexDesaturate;
float _MainTexCAFator;
half _MainTexRotator;
float _MainTexVOffsetC;
float _CustomMainTexVOffset;
float _MainTexUOffsetC;
half _DissolveTexUMirror;
half _DissolveTexAR;
half _DissolvePlusTexVClamp;
half _DissolvePlusTexUClamp;
half _MaskTexAR;
half _MaskTexRotator;
float _MaskTexVOffsetC;
float _CustomMaskTexVOffset;
float _MaskTexUOffsetC;
float _CustomMaskTexUOffset;
half _DistortMaskTex;
half _MaskTexVSpeed;
half _MaskTexUSpeed;
half _MaskTexVMirror;
half _MaskTexUMirror;
half _MaskTexVClamp;
half _MaskTexUClamp;
half _MaskTexUVClip;
half _MainTexAR;
half _FnlPower;
half _FnlScale;
float _CustomMainTexUOffset;
half _DissolvePlusTexUMirror;
half _DissolvePlusTexVMirror;
half _DissolvePlusTexUSpeed;
half _DissolvePlusTexVSpeed;
float _CustomDissolvePlusTexUOffset;
half _DissolvePlusTexUVClip;
float _DissolvePlusTexUOffsetC;
float _DissolvePlusTexVOffsetC;
half _DissolvePlusTexRotator;
half _DissolvePlusTexAR;
float _DissolvePlusIntensity;
float _MainAlpha;
half _ReFnl;
float _CustomDissolvePlusTexVOffset;
float _DistortVIntensity;
float _CustomDistortFactor;
float _DistortFactorC;
half _RefactionMaskTexVMirror;
half _RefactionMaskTexUMirror;
float _RefactionMaskTexVClamp;
float _RefactionMaskTexUClamp;
float _RefactionMaskTexUVClip;
float _RefactionFactorC;
half _RefactionFactor;
float _CustomRefactionFactor;
half _RefactionTexAR;
half _RefactionTexRotator;
half _RefactionTexVSpeed;
half _RefactionTexUSpeed;
half _RefactionTexVMirror;
half _RefactionTexUMirror;
float _RefactionRemap;
float _MainRGBA;
float _SBCompare;
float _SB;
half _ZTest;
float _RefactionMaskTexDetail;
float _RefactionTexDetail;
float _MainTexDetail;
float _VTOTexDetail;
float _DissolvePlusTexDetail;
float _DissolveTexDetail;
float _DistortTexDetail;
float _MaskTexDetail;
half _Dst;
half _BlendMode;
half _RefactionMaskTexUSpeed;
half _RefactionMaskTexVSpeed;
half _RefactionMaskTexRotator;
half _RefactionMaskTexAR;
half _DistortFactor;
float _DepthFade;
half _DistortTexAR;
half _DistortTexRotator;
half _DistortTexVSpeed;
half _DistortTexUSpeed;
half _DistortTexVMirror;
half _DistortTexUMirror;
float _DistortRemap;
half _DistortMainTex;
half _MainTexVSpeed;
half _MainTexUSpeed;
half _MainTexVMirror;
half _MainTexUMirror;
float _DistortUIntensity;
half _MainTexVClamp;
half _MainTexUVClip;
half _Scr;
float _VTOScaleC;
float _VTOScale;
float _CustomVTO;
half _VTOTexAR;
half _VTOTexRotator;
half _VTOTexVSpeed;
half _VTOTexUSpeed;
half _VTOTexVMirror;
half _VTOTexUMirror;
half _VTOTexVClamp;
half _VTOTexUClamp;
half _VTOTexUVClip;
half _MainTexUClamp;
float _AlphaClip;
#ifdef ASE_TESSELLATION
float _TessPhongStrength;
float _TessValue;
float _TessMin;
float _TessMax;
float _TessEdgeLength;
float _TessMaxDisp;
#endif
CBUFFER_END
sampler2D _VTOTex;
sampler2D _MainTex;
sampler2D _DistortTex;
sampler2D _MaskTex;
sampler2D _DissolveTex;
sampler2D _DissolvePlusTex;
uniform float4 _CameraDepthTexture_TexelSize;
float UVClamp21_g144( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g117( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g146( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g147( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g119( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g118( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g143( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g113( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g114( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g142( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g151( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g152( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g102( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g140( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g104( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g103( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g139( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
VertexOutput VertexFunction( VertexInput v )
{
VertexOutput o = (VertexOutput)0;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
float3 temp_cast_0 = (0.0).xxx;
float UVClip21_g144 = _VTOTexUVClip;
float UClamp21_g144 = _VTOTexUClamp;
float VClamp21_g144 = _VTOTexVClamp;
float UMirror21_g144 = _VTOTexUMirror;
float VMirror21_g144 = _VTOTexVMirror;
float2 appendResult4_g144 = (float2(_VTOTexUSpeed , _VTOTexVSpeed));
float2 uv_VTOTex = v.ase_texcoord * _VTOTex_ST.xy + _VTOTex_ST.zw;
float cos38_g144 = cos( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float sin38_g144 = sin( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g144 = mul( uv_VTOTex - float2( 0.5,0.5 ) , float2x2( cos38_g144 , -sin38_g144 , sin38_g144 , cos38_g144 )) + float2( 0.5,0.5 );
float2 panner5_g144 = ( 1.0 * _Time.y * appendResult4_g144 + rotator38_g144);
float2 break22_g144 = panner5_g144;
float U21_g144 = break22_g144.x;
float V21_g144 = break22_g144.y;
float F21_g144 = 0.0;
float localUVClamp21_g144 = UVClamp21_g144( UVClip21_g144 , UClamp21_g144 , VClamp21_g144 , UMirror21_g144 , VMirror21_g144 , U21_g144 , V21_g144 , F21_g144 );
float2 appendResult44_g144 = (float2(U21_g144 , V21_g144));
float4 tex2DNode7_g144 = tex2Dlod( _VTOTex, float4( appendResult44_g144, 0, 0.0) );
float Num5_g117 = _VTOScaleC;
float4 texCoord1_g117 = v.ase_texcoord;
texCoord1_g117.xy = v.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g117 = texCoord1_g117.z;
float c1y5_g117 = texCoord1_g117.w;
float4 texCoord2_g117 = v.ase_texcoord1;
texCoord2_g117.xy = v.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g117 = texCoord2_g117.x;
float c1w5_g117 = texCoord2_g117.y;
float c2x5_g117 = texCoord2_g117.z;
float c2y5_g117 = texCoord2_g117.w;
float4 texCoord3_g117 = v.ase_texcoord2;
texCoord3_g117.xy = v.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g117 = texCoord3_g117.x;
float c2w5_g117 = texCoord3_g117.y;
float F5_g117 = 0.0;
float localCustomChanelSwitch5_g117 = CustomChanelSwitch5_g117( Num5_g117 , c1x5_g117 , c1y5_g117 , c1z5_g117 , c1w5_g117 , c2x5_g117 , c2y5_g117 , c2z5_g117 , c2w5_g117 , F5_g117 );
float3 VTO387 = ( v.ase_normal * ( F21_g144 * ( _VTOTexAR == 0.0 ? tex2DNode7_g144.a : tex2DNode7_g144.r ) ) * (( _CustomVTO )?( F5_g117 ):( _VTOScale )) );
#ifdef _IFVTO_ON
float3 staticSwitch390 = VTO387;
#else
float3 staticSwitch390 = temp_cast_0;
#endif
float3 ase_worldNormal = TransformObjectToWorldNormal(v.ase_normal);
o.ase_texcoord5.xyz = ase_worldNormal;
float4 ase_clipPos = TransformObjectToHClip((v.vertex).xyz);
float4 screenPos = ComputeScreenPos(ase_clipPos);
o.ase_texcoord6 = screenPos;
o.ase_texcoord2 = v.ase_texcoord;
o.ase_texcoord3 = v.ase_texcoord1;
o.ase_texcoord4 = v.ase_texcoord2;
o.ase_color = v.ase_color;
//setting value to unused interpolator channels and avoid initialization warnings
o.ase_texcoord5.w = 0;
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = v.vertex.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
float3 vertexValue = staticSwitch390;
#ifdef ASE_ABSOLUTE_VERTEX_POS
v.vertex.xyz = vertexValue;
#else
v.vertex.xyz += vertexValue;
#endif
v.ase_normal = v.ase_normal;
float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
o.worldPos = positionWS;
#endif
o.clipPos = TransformWorldToHClip( positionWS );
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR) && defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
VertexPositionInputs vertexInput = (VertexPositionInputs)0;
vertexInput.positionWS = positionWS;
vertexInput.positionCS = o.clipPos;
o.shadowCoord = GetShadowCoord( vertexInput );
#endif
return o;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 vertex : INTERNALTESSPOS;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( VertexInput v )
{
VertexControl o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
o.vertex = v.vertex;
o.ase_normal = v.ase_normal;
o.ase_texcoord = v.ase_texcoord;
o.ase_texcoord1 = v.ase_texcoord1;
o.ase_texcoord2 = v.ase_texcoord2;
o.ase_color = v.ase_color;
return o;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
{
TessellationFactors o;
float4 tf = 1;
float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
return o;
}
[domain("tri")]
[partitioning("fractional_odd")]
[outputtopology("triangle_cw")]
[patchconstantfunc("TessellationFunction")]
[outputcontrolpoints(3)]
VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
{
return patch[id];
}
[domain("tri")]
VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
VertexInput o = (VertexInput) 0;
o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
o.ase_texcoord2 = patch[0].ase_texcoord2 * bary.x + patch[1].ase_texcoord2 * bary.y + patch[2].ase_texcoord2 * bary.z;
o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
float phongStrength = _TessPhongStrength;
o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
return VertexFunction(o);
}
#else
VertexOutput vert ( VertexInput v )
{
return VertexFunction( v );
}
#endif
half4 frag(VertexOutput IN ) : SV_TARGET
{
UNITY_SETUP_INSTANCE_ID(IN);
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX( IN );
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
float3 WorldPosition = IN.worldPos;
#endif
float4 ShadowCoords = float4( 0, 0, 0, 0 );
#if defined(ASE_NEEDS_FRAG_SHADOWCOORDS)
#if defined(REQUIRES_VERTEX_SHADOW_COORD_INTERPOLATOR)
ShadowCoords = IN.shadowCoord;
#elif defined(MAIN_LIGHT_CALCULATE_SHADOWS)
ShadowCoords = TransformWorldToShadowCoord( WorldPosition );
#endif
#endif
float UVClip21_g143 = _MainTexUVClip;
float UClamp21_g143 = _MainTexUClamp;
float VClamp21_g143 = _MainTexVClamp;
float UMirror21_g143 = _MainTexUMirror;
float VMirror21_g143 = _MainTexVMirror;
float2 appendResult4_g143 = (float2(_MainTexUSpeed , _MainTexVSpeed));
float2 uv_MainTex = IN.ase_texcoord2.xy * _MainTex_ST.xy + _MainTex_ST.zw;
float2 temp_output_3_0_g145 = uv_MainTex;
float UVClip21_g146 = 1.0;
float UClamp21_g146 = 0.0;
float VClamp21_g146 = 0.0;
float UMirror21_g146 = _DistortTexUMirror;
float VMirror21_g146 = _DistortTexVMirror;
float2 appendResult4_g146 = (float2(_DistortTexUSpeed , _DistortTexVSpeed));
float2 uv_DistortTex = IN.ase_texcoord2.xy * _DistortTex_ST.xy + _DistortTex_ST.zw;
float cos38_g146 = cos( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float sin38_g146 = sin( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g146 = mul( uv_DistortTex - float2( 0.5,0.5 ) , float2x2( cos38_g146 , -sin38_g146 , sin38_g146 , cos38_g146 )) + float2( 0.5,0.5 );
float2 panner5_g146 = ( 1.0 * _Time.y * appendResult4_g146 + rotator38_g146);
float2 break22_g146 = panner5_g146;
float U21_g146 = break22_g146.x;
float V21_g146 = break22_g146.y;
float F21_g146 = 0.0;
float localUVClamp21_g146 = UVClamp21_g146( UVClip21_g146 , UClamp21_g146 , VClamp21_g146 , UMirror21_g146 , VMirror21_g146 , U21_g146 , V21_g146 , F21_g146 );
float2 appendResult44_g146 = (float2(U21_g146 , V21_g146));
float4 tex2DNode7_g146 = tex2D( _DistortTex, appendResult44_g146 );
float temp_output_675_20 = ( F21_g146 * ( _DistortTexAR == 0.0 ? tex2DNode7_g146.a : tex2DNode7_g146.r ) );
float Num5_g147 = _DistortFactorC;
float4 texCoord1_g147 = IN.ase_texcoord2;
texCoord1_g147.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g147 = texCoord1_g147.z;
float c1y5_g147 = texCoord1_g147.w;
float4 texCoord2_g147 = IN.ase_texcoord3;
texCoord2_g147.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g147 = texCoord2_g147.x;
float c1w5_g147 = texCoord2_g147.y;
float c2x5_g147 = texCoord2_g147.z;
float c2y5_g147 = texCoord2_g147.w;
float4 texCoord3_g147 = IN.ase_texcoord4;
texCoord3_g147.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g147 = texCoord3_g147.x;
float c2w5_g147 = texCoord3_g147.y;
float F5_g147 = 0.0;
float localCustomChanelSwitch5_g147 = CustomChanelSwitch5_g147( Num5_g147 , c1x5_g147 , c1y5_g147 , c1z5_g147 , c1w5_g147 , c2x5_g147 , c2y5_g147 , c2z5_g147 , c2w5_g147 , F5_g147 );
float2 appendResult465 = (float2(_DistortUIntensity , _DistortVIntensity));
float2 Distort148 = ( (( _DistortRemap )?( (-0.5 + (temp_output_675_20 - 0.0) * (0.5 - -0.5) / (1.0 - 0.0)) ):( temp_output_675_20 )) * (( _CustomDistortFactor )?( F5_g147 ):( _DistortFactor )) * appendResult465 );
#ifdef _FDISTORTTEX_ON
float2 staticSwitch316 = ( _DistortMainTex == 0.0 ? temp_output_3_0_g145 : ( temp_output_3_0_g145 + Distort148 ) );
#else
float2 staticSwitch316 = uv_MainTex;
#endif
float Num5_g119 = _MainTexUOffsetC;
float4 texCoord1_g119 = IN.ase_texcoord2;
texCoord1_g119.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g119 = texCoord1_g119.z;
float c1y5_g119 = texCoord1_g119.w;
float4 texCoord2_g119 = IN.ase_texcoord3;
texCoord2_g119.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g119 = texCoord2_g119.x;
float c1w5_g119 = texCoord2_g119.y;
float c2x5_g119 = texCoord2_g119.z;
float c2y5_g119 = texCoord2_g119.w;
float4 texCoord3_g119 = IN.ase_texcoord4;
texCoord3_g119.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g119 = texCoord3_g119.x;
float c2w5_g119 = texCoord3_g119.y;
float F5_g119 = 0.0;
float localCustomChanelSwitch5_g119 = CustomChanelSwitch5_g119( Num5_g119 , c1x5_g119 , c1y5_g119 , c1z5_g119 , c1w5_g119 , c2x5_g119 , c2y5_g119 , c2z5_g119 , c2w5_g119 , F5_g119 );
float Num5_g118 = _MainTexVOffsetC;
float4 texCoord1_g118 = IN.ase_texcoord2;
texCoord1_g118.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g118 = texCoord1_g118.z;
float c1y5_g118 = texCoord1_g118.w;
float4 texCoord2_g118 = IN.ase_texcoord3;
texCoord2_g118.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g118 = texCoord2_g118.x;
float c1w5_g118 = texCoord2_g118.y;
float c2x5_g118 = texCoord2_g118.z;
float c2y5_g118 = texCoord2_g118.w;
float4 texCoord3_g118 = IN.ase_texcoord4;
texCoord3_g118.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g118 = texCoord3_g118.x;
float c2w5_g118 = texCoord3_g118.y;
float F5_g118 = 0.0;
float localCustomChanelSwitch5_g118 = CustomChanelSwitch5_g118( Num5_g118 , c1x5_g118 , c1y5_g118 , c1z5_g118 , c1w5_g118 , c2x5_g118 , c2y5_g118 , c2z5_g118 , c2w5_g118 , F5_g118 );
float2 appendResult330 = (float2((( _CustomMainTexUOffset )?( F5_g119 ):( 0.0 )) , (( _CustomMainTexVOffset )?( F5_g118 ):( 0.0 ))));
float cos38_g143 = cos( ( _MainTexRotator * ( 2.0 * PI ) ) );
float sin38_g143 = sin( ( _MainTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g143 = mul( ( staticSwitch316 + appendResult330 ) - float2( 0.5,0.5 ) , float2x2( cos38_g143 , -sin38_g143 , sin38_g143 , cos38_g143 )) + float2( 0.5,0.5 );
float2 panner5_g143 = ( 1.0 * _Time.y * appendResult4_g143 + rotator38_g143);
float2 break22_g143 = panner5_g143;
float U21_g143 = break22_g143.x;
float V21_g143 = break22_g143.y;
float F21_g143 = 0.0;
float localUVClamp21_g143 = UVClamp21_g143( UVClip21_g143 , UClamp21_g143 , VClamp21_g143 , UMirror21_g143 , VMirror21_g143 , U21_g143 , V21_g143 , F21_g143 );
float2 appendResult44_g143 = (float2(U21_g143 , V21_g143));
float4 tex2DNode7_g143 = tex2D( _MainTex, appendResult44_g143 );
float MainTexAlpha138 = ( _MainColor.a * ( F21_g143 * ( _MainTexAR == 0.0 ? tex2DNode7_g143.a : tex2DNode7_g143.r ) ) );
float UVClip21_g142 = _MaskTexUVClip;
float UClamp21_g142 = _MaskTexUClamp;
float VClamp21_g142 = _MaskTexVClamp;
float UMirror21_g142 = _MaskTexUMirror;
float VMirror21_g142 = _MaskTexVMirror;
float2 appendResult4_g142 = (float2(_MaskTexUSpeed , _MaskTexVSpeed));
float2 uv_MaskTex = IN.ase_texcoord2.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;
float2 temp_output_3_0_g115 = uv_MaskTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch312 = ( _DistortMaskTex == 0.0 ? temp_output_3_0_g115 : ( temp_output_3_0_g115 + Distort148 ) );
#else
float2 staticSwitch312 = uv_MaskTex;
#endif
float Num5_g113 = _MaskTexUOffsetC;
float4 texCoord1_g113 = IN.ase_texcoord2;
texCoord1_g113.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g113 = texCoord1_g113.z;
float c1y5_g113 = texCoord1_g113.w;
float4 texCoord2_g113 = IN.ase_texcoord3;
texCoord2_g113.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g113 = texCoord2_g113.x;
float c1w5_g113 = texCoord2_g113.y;
float c2x5_g113 = texCoord2_g113.z;
float c2y5_g113 = texCoord2_g113.w;
float4 texCoord3_g113 = IN.ase_texcoord4;
texCoord3_g113.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g113 = texCoord3_g113.x;
float c2w5_g113 = texCoord3_g113.y;
float F5_g113 = 0.0;
float localCustomChanelSwitch5_g113 = CustomChanelSwitch5_g113( Num5_g113 , c1x5_g113 , c1y5_g113 , c1z5_g113 , c1w5_g113 , c2x5_g113 , c2y5_g113 , c2z5_g113 , c2w5_g113 , F5_g113 );
float Num5_g114 = _MaskTexVOffsetC;
float4 texCoord1_g114 = IN.ase_texcoord2;
texCoord1_g114.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g114 = texCoord1_g114.z;
float c1y5_g114 = texCoord1_g114.w;
float4 texCoord2_g114 = IN.ase_texcoord3;
texCoord2_g114.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g114 = texCoord2_g114.x;
float c1w5_g114 = texCoord2_g114.y;
float c2x5_g114 = texCoord2_g114.z;
float c2y5_g114 = texCoord2_g114.w;
float4 texCoord3_g114 = IN.ase_texcoord4;
texCoord3_g114.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g114 = texCoord3_g114.x;
float c2w5_g114 = texCoord3_g114.y;
float F5_g114 = 0.0;
float localCustomChanelSwitch5_g114 = CustomChanelSwitch5_g114( Num5_g114 , c1x5_g114 , c1y5_g114 , c1z5_g114 , c1w5_g114 , c2x5_g114 , c2y5_g114 , c2z5_g114 , c2w5_g114 , F5_g114 );
float2 appendResult446 = (float2((( _CustomMaskTexUOffset )?( F5_g113 ):( 0.0 )) , (( _CustomMaskTexVOffset )?( F5_g114 ):( 0.0 ))));
float cos38_g142 = cos( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float sin38_g142 = sin( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g142 = mul( ( staticSwitch312 + appendResult446 ) - float2( 0.5,0.5 ) , float2x2( cos38_g142 , -sin38_g142 , sin38_g142 , cos38_g142 )) + float2( 0.5,0.5 );
float2 panner5_g142 = ( 1.0 * _Time.y * appendResult4_g142 + rotator38_g142);
float2 break22_g142 = panner5_g142;
float U21_g142 = break22_g142.x;
float V21_g142 = break22_g142.y;
float F21_g142 = 0.0;
float localUVClamp21_g142 = UVClamp21_g142( UVClip21_g142 , UClamp21_g142 , VClamp21_g142 , UMirror21_g142 , VMirror21_g142 , U21_g142 , V21_g142 , F21_g142 );
float2 appendResult44_g142 = (float2(U21_g142 , V21_g142));
float4 tex2DNode7_g142 = tex2D( _MaskTex, appendResult44_g142 );
#ifdef _FMASKTEX_ON
float staticSwitch291 = ( F21_g142 * ( _MaskTexAR == 0.0 ? tex2DNode7_g142.a : tex2DNode7_g142.r ) );
#else
float staticSwitch291 = 1.0;
#endif
float Alpha337 = _MainAlpha;
float Num5_g151 = _DissolveFactorC;
float4 texCoord1_g151 = IN.ase_texcoord2;
texCoord1_g151.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g151 = texCoord1_g151.z;
float c1y5_g151 = texCoord1_g151.w;
float4 texCoord2_g151 = IN.ase_texcoord3;
texCoord2_g151.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g151 = texCoord2_g151.x;
float c1w5_g151 = texCoord2_g151.y;
float c2x5_g151 = texCoord2_g151.z;
float c2y5_g151 = texCoord2_g151.w;
float4 texCoord3_g151 = IN.ase_texcoord4;
texCoord3_g151.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g151 = texCoord3_g151.x;
float c2w5_g151 = texCoord3_g151.y;
float F5_g151 = 0.0;
float localCustomChanelSwitch5_g151 = CustomChanelSwitch5_g151( Num5_g151 , c1x5_g151 , c1y5_g151 , c1z5_g151 , c1w5_g151 , c2x5_g151 , c2y5_g151 , c2z5_g151 , c2w5_g151 , F5_g151 );
float temp_output_275_0 = (-_DissolveWide + ((( _CustomDissolve )?( F5_g151 ):( _DissolveFactor )) - 0.0) * (1.0 - -_DissolveWide) / (1.0 - 0.0));
float temp_output_277_0 = ( _DissolveSoft + 0.0001 );
float temp_output_270_0 = (-temp_output_277_0 + (temp_output_275_0 - 0.0) * (1.0 - -temp_output_277_0) / (1.0 - 0.0));
float UVClip21_g140 = _DissolveTexUVClip;
float UClamp21_g140 = _DissolveTexUClamp;
float VClamp21_g140 = _DissolveTexVClamp;
float UMirror21_g140 = _DissolveTexUMirror;
float VMirror21_g140 = _DissolveTexVMirror;
float2 appendResult4_g140 = (float2(_DissolveTexUSpeed , _DissolveTexVSpeed));
float2 uv_DissolveTex = IN.ase_texcoord2.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;
float2 temp_output_3_0_g106 = uv_DissolveTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch314 = ( _DistortDissolveTex == 0.0 ? temp_output_3_0_g106 : ( temp_output_3_0_g106 + Distort148 ) );
#else
float2 staticSwitch314 = uv_DissolveTex;
#endif
float Num5_g152 = _DissolveTexUOffsetC;
float4 texCoord1_g152 = IN.ase_texcoord2;
texCoord1_g152.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g152 = texCoord1_g152.z;
float c1y5_g152 = texCoord1_g152.w;
float4 texCoord2_g152 = IN.ase_texcoord3;
texCoord2_g152.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g152 = texCoord2_g152.x;
float c1w5_g152 = texCoord2_g152.y;
float c2x5_g152 = texCoord2_g152.z;
float c2y5_g152 = texCoord2_g152.w;
float4 texCoord3_g152 = IN.ase_texcoord4;
texCoord3_g152.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g152 = texCoord3_g152.x;
float c2w5_g152 = texCoord3_g152.y;
float F5_g152 = 0.0;
float localCustomChanelSwitch5_g152 = CustomChanelSwitch5_g152( Num5_g152 , c1x5_g152 , c1y5_g152 , c1z5_g152 , c1w5_g152 , c2x5_g152 , c2y5_g152 , c2z5_g152 , c2w5_g152 , F5_g152 );
float Num5_g102 = _DissolveTexVOffsetC;
float4 texCoord1_g102 = IN.ase_texcoord2;
texCoord1_g102.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g102 = texCoord1_g102.z;
float c1y5_g102 = texCoord1_g102.w;
float4 texCoord2_g102 = IN.ase_texcoord3;
texCoord2_g102.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g102 = texCoord2_g102.x;
float c1w5_g102 = texCoord2_g102.y;
float c2x5_g102 = texCoord2_g102.z;
float c2y5_g102 = texCoord2_g102.w;
float4 texCoord3_g102 = IN.ase_texcoord4;
texCoord3_g102.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g102 = texCoord3_g102.x;
float c2w5_g102 = texCoord3_g102.y;
float F5_g102 = 0.0;
float localCustomChanelSwitch5_g102 = CustomChanelSwitch5_g102( Num5_g102 , c1x5_g102 , c1y5_g102 , c1z5_g102 , c1w5_g102 , c2x5_g102 , c2y5_g102 , c2z5_g102 , c2w5_g102 , F5_g102 );
float2 appendResult479 = (float2((( _CustomDissolveTexUOffset )?( F5_g152 ):( 0.0 )) , (( _CustomDissolveTexVOffset )?( F5_g102 ):( 0.0 ))));
float cos38_g140 = cos( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float sin38_g140 = sin( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g140 = mul( ( staticSwitch314 + appendResult479 ) - float2( 0.5,0.5 ) , float2x2( cos38_g140 , -sin38_g140 , sin38_g140 , cos38_g140 )) + float2( 0.5,0.5 );
float2 panner5_g140 = ( 1.0 * _Time.y * appendResult4_g140 + rotator38_g140);
float2 break22_g140 = panner5_g140;
float U21_g140 = break22_g140.x;
float V21_g140 = break22_g140.y;
float F21_g140 = 0.0;
float localUVClamp21_g140 = UVClamp21_g140( UVClip21_g140 , UClamp21_g140 , VClamp21_g140 , UMirror21_g140 , VMirror21_g140 , U21_g140 , V21_g140 , F21_g140 );
float2 appendResult44_g140 = (float2(U21_g140 , V21_g140));
float4 tex2DNode7_g140 = tex2D( _DissolveTex, appendResult44_g140 );
float temp_output_677_20 = ( F21_g140 * ( _DissolveTexAR == 0.0 ? tex2DNode7_g140.a : tex2DNode7_g140.r ) );
float UVClip21_g139 = _DissolvePlusTexUVClip;
float UClamp21_g139 = _DissolvePlusTexUClamp;
float VClamp21_g139 = _DissolvePlusTexVClamp;
float UMirror21_g139 = _DissolvePlusTexUMirror;
float VMirror21_g139 = _DissolvePlusTexVMirror;
float2 appendResult4_g139 = (float2(_DissolvePlusTexUSpeed , _DissolvePlusTexVSpeed));
float2 uv_DissolvePlusTex = IN.ase_texcoord2.xy * _DissolvePlusTex_ST.xy + _DissolvePlusTex_ST.zw;
float Num5_g104 = _DissolvePlusTexUOffsetC;
float4 texCoord1_g104 = IN.ase_texcoord2;
texCoord1_g104.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g104 = texCoord1_g104.z;
float c1y5_g104 = texCoord1_g104.w;
float4 texCoord2_g104 = IN.ase_texcoord3;
texCoord2_g104.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g104 = texCoord2_g104.x;
float c1w5_g104 = texCoord2_g104.y;
float c2x5_g104 = texCoord2_g104.z;
float c2y5_g104 = texCoord2_g104.w;
float4 texCoord3_g104 = IN.ase_texcoord4;
texCoord3_g104.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g104 = texCoord3_g104.x;
float c2w5_g104 = texCoord3_g104.y;
float F5_g104 = 0.0;
float localCustomChanelSwitch5_g104 = CustomChanelSwitch5_g104( Num5_g104 , c1x5_g104 , c1y5_g104 , c1z5_g104 , c1w5_g104 , c2x5_g104 , c2y5_g104 , c2z5_g104 , c2w5_g104 , F5_g104 );
float Num5_g103 = _DissolvePlusTexVOffsetC;
float4 texCoord1_g103 = IN.ase_texcoord2;
texCoord1_g103.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g103 = texCoord1_g103.z;
float c1y5_g103 = texCoord1_g103.w;
float4 texCoord2_g103 = IN.ase_texcoord3;
texCoord2_g103.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g103 = texCoord2_g103.x;
float c1w5_g103 = texCoord2_g103.y;
float c2x5_g103 = texCoord2_g103.z;
float c2y5_g103 = texCoord2_g103.w;
float4 texCoord3_g103 = IN.ase_texcoord4;
texCoord3_g103.xy = IN.ase_texcoord4.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g103 = texCoord3_g103.x;
float c2w5_g103 = texCoord3_g103.y;
float F5_g103 = 0.0;
float localCustomChanelSwitch5_g103 = CustomChanelSwitch5_g103( Num5_g103 , c1x5_g103 , c1y5_g103 , c1z5_g103 , c1w5_g103 , c2x5_g103 , c2y5_g103 , c2z5_g103 , c2w5_g103 , F5_g103 );
float2 appendResult497 = (float2((( _CustomDissolvePlusTexUOffset )?( F5_g104 ):( 0.0 )) , (( _CustomDissolvePlusTexVOffset )?( F5_g103 ):( 0.0 ))));
float cos38_g139 = cos( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float sin38_g139 = sin( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g139 = mul( ( uv_DissolvePlusTex + appendResult497 ) - float2( 0.5,0.5 ) , float2x2( cos38_g139 , -sin38_g139 , sin38_g139 , cos38_g139 )) + float2( 0.5,0.5 );
float2 panner5_g139 = ( 1.0 * _Time.y * appendResult4_g139 + rotator38_g139);
float2 break22_g139 = panner5_g139;
float U21_g139 = break22_g139.x;
float V21_g139 = break22_g139.y;
float F21_g139 = 0.0;
float localUVClamp21_g139 = UVClamp21_g139( UVClip21_g139 , UClamp21_g139 , VClamp21_g139 , UMirror21_g139 , VMirror21_g139 , U21_g139 , V21_g139 , F21_g139 );
float2 appendResult44_g139 = (float2(U21_g139 , V21_g139));
float4 tex2DNode7_g139 = tex2D( _DissolvePlusTex, appendResult44_g139 );
float lerpResult413 = lerp( temp_output_677_20 , ( F21_g139 * ( _DissolvePlusTexAR == 0.0 ? tex2DNode7_g139.a : tex2DNode7_g139.r ) ) , _DissolvePlusIntensity);
#ifdef _FDISSOLVEPLUSTEX_ON
float staticSwitch415 = lerpResult413;
#else
float staticSwitch415 = temp_output_677_20;
#endif
float smoothstepResult256 = smoothstep( temp_output_270_0 , ( temp_output_270_0 + temp_output_277_0 ) , staticSwitch415);
float DissolveAlpha212 = smoothstepResult256;
#ifdef _FDISSOLVETEX_ON
float staticSwitch299 = DissolveAlpha212;
#else
float staticSwitch299 = 1.0;
#endif
float Refnl339 = _ReFnl;
float3 ase_worldViewDir = ( _WorldSpaceCameraPos.xyz - WorldPosition );
ase_worldViewDir = normalize(ase_worldViewDir);
float3 ase_worldNormal = IN.ase_texcoord5.xyz;
float fresnelNdotV279 = dot( ase_worldNormal, ase_worldViewDir );
float fresnelNode279 = ( 0.0 + _FnlScale * pow( 1.0 - fresnelNdotV279, _FnlPower ) );
float temp_output_283_0 = saturate( fresnelNode279 );
float ReFnlAlpha318 = ( 1.0 - temp_output_283_0 );
#ifdef _FFNL_ON
float staticSwitch319 = ( Refnl339 == 0.0 ? 1.0 : ReFnlAlpha318 );
#else
float staticSwitch319 = 1.0;
#endif
float4 screenPos = IN.ase_texcoord6;
float4 ase_screenPosNorm = screenPos / screenPos.w;
ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5;
float screenDepth375 = LinearEyeDepth(SHADERGRAPH_SAMPLE_SCENE_DEPTH( ase_screenPosNorm.xy ),_ZBufferParams);
float distanceDepth375 = abs( ( screenDepth375 - LinearEyeDepth( ase_screenPosNorm.z,_ZBufferParams ) ) / ( _DepthFade ) );
#ifdef _FDEPTH_ON
float staticSwitch378 = saturate( distanceDepth375 );
#else
float staticSwitch378 = 1.0;
#endif
float MainAlpha97 = saturate( ( MainTexAlpha138 * staticSwitch291 * IN.ase_color.a * Alpha337 * staticSwitch299 * staticSwitch319 * staticSwitch378 ) );
float Alpha = MainAlpha97;
float AlphaClipThreshold = _AlphaClip;
#ifdef _ALPHATEST_ON
clip(Alpha - AlphaClipThreshold);
#endif
#ifdef LOD_FADE_CROSSFADE
LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
#endif
return 0;
}
ENDHLSL
}
Pass
{
Name "SceneSelectionPass"
Tags { "LightMode"="SceneSelectionPass" }
Cull Off
HLSLPROGRAM
#define _RECEIVE_SHADOWS_OFF 1
#define _SURFACE_TYPE_TRANSPARENT 1
#define _ALPHATEST_ON 1
#define ASE_SRP_VERSION 120107
#define REQUIRE_DEPTH_TEXTURE 1
#pragma vertex vert
#pragma fragment frag
#define ATTRIBUTES_NEED_NORMAL
#define ATTRIBUTES_NEED_TANGENT
#define SHADERPASS SHADERPASS_DEPTHONLY
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#define ASE_NEEDS_VERT_NORMAL
#pragma shader_feature_local _IFVTO_ON
#pragma shader_feature_local _FDISTORTTEX_ON
#pragma shader_feature_local _FMASKTEX_ON
#pragma shader_feature_local _FDISSOLVETEX_ON
#pragma shader_feature_local _FDISSOLVEPLUSTEX_ON
#pragma shader_feature_local _FFNL_ON
#pragma shader_feature_local _FDEPTH_ON
struct VertexInput
{
float4 vertex : POSITION;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VertexOutput
{
float4 clipPos : SV_POSITION;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
float4 ase_texcoord3 : TEXCOORD3;
float4 ase_texcoord4 : TEXCOORD4;
float4 ase_texcoord5 : TEXCOORD5;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
CBUFFER_START(UnityPerMaterial)
float4 _RefactionTex_ST;
float4 _MainTexRefine;
float4 _RefactionMaskTex_ST;
float4 _VTOTex_ST;
float4 _DistortTex_ST;
half4 _MainColor;
float4 _DissolvePlusTex_ST;
float4 _MaskTex_ST;
half4 _DissolveColor;
half4 _FnlColor;
float4 _DissolveTex_ST;
float4 _MainTex_ST;
half _DissolveTexVMirror;
half _DissolveTexUSpeed;
float _CustomDissolveTexUOffset;
half _DistortDissolveTex;
float _DissolveTexUOffsetC;
float _CustomDissolveTexVOffset;
float _DissolveTexVOffsetC;
half _DissolveTexVSpeed;
half _CullMode;
half _DissolveTexVClamp;
half _DissolveTexRotator;
half _DissolveTexUClamp;
half _DissolveTexUVClip;
half _DissolveSoft;
half _DissolveWide;
float _DissolveFactorC;
half _DissolveFactor;
float _CustomDissolve;
half _MainTexDesaturate;
float _MainTexCAFator;
half _MainTexRotator;
float _MainTexVOffsetC;
float _CustomMainTexVOffset;
float _MainTexUOffsetC;
half _DissolveTexUMirror;
half _DissolveTexAR;
half _DissolvePlusTexVClamp;
half _DissolvePlusTexUClamp;
half _MaskTexAR;
half _MaskTexRotator;
float _MaskTexVOffsetC;
float _CustomMaskTexVOffset;
float _MaskTexUOffsetC;
float _CustomMaskTexUOffset;
half _DistortMaskTex;
half _MaskTexVSpeed;
half _MaskTexUSpeed;
half _MaskTexVMirror;
half _MaskTexUMirror;
half _MaskTexVClamp;
half _MaskTexUClamp;
half _MaskTexUVClip;
half _MainTexAR;
half _FnlPower;
half _FnlScale;
float _CustomMainTexUOffset;
half _DissolvePlusTexUMirror;
half _DissolvePlusTexVMirror;
half _DissolvePlusTexUSpeed;
half _DissolvePlusTexVSpeed;
float _CustomDissolvePlusTexUOffset;
half _DissolvePlusTexUVClip;
float _DissolvePlusTexUOffsetC;
float _DissolvePlusTexVOffsetC;
half _DissolvePlusTexRotator;
half _DissolvePlusTexAR;
float _DissolvePlusIntensity;
float _MainAlpha;
half _ReFnl;
float _CustomDissolvePlusTexVOffset;
float _DistortVIntensity;
float _CustomDistortFactor;
float _DistortFactorC;
half _RefactionMaskTexVMirror;
half _RefactionMaskTexUMirror;
float _RefactionMaskTexVClamp;
float _RefactionMaskTexUClamp;
float _RefactionMaskTexUVClip;
float _RefactionFactorC;
half _RefactionFactor;
float _CustomRefactionFactor;
half _RefactionTexAR;
half _RefactionTexRotator;
half _RefactionTexVSpeed;
half _RefactionTexUSpeed;
half _RefactionTexVMirror;
half _RefactionTexUMirror;
float _RefactionRemap;
float _MainRGBA;
float _SBCompare;
float _SB;
half _ZTest;
float _RefactionMaskTexDetail;
float _RefactionTexDetail;
float _MainTexDetail;
float _VTOTexDetail;
float _DissolvePlusTexDetail;
float _DissolveTexDetail;
float _DistortTexDetail;
float _MaskTexDetail;
half _Dst;
half _BlendMode;
half _RefactionMaskTexUSpeed;
half _RefactionMaskTexVSpeed;
half _RefactionMaskTexRotator;
half _RefactionMaskTexAR;
half _DistortFactor;
float _DepthFade;
half _DistortTexAR;
half _DistortTexRotator;
half _DistortTexVSpeed;
half _DistortTexUSpeed;
half _DistortTexVMirror;
half _DistortTexUMirror;
float _DistortRemap;
half _DistortMainTex;
half _MainTexVSpeed;
half _MainTexUSpeed;
half _MainTexVMirror;
half _MainTexUMirror;
float _DistortUIntensity;
half _MainTexVClamp;
half _MainTexUVClip;
half _Scr;
float _VTOScaleC;
float _VTOScale;
float _CustomVTO;
half _VTOTexAR;
half _VTOTexRotator;
half _VTOTexVSpeed;
half _VTOTexUSpeed;
half _VTOTexVMirror;
half _VTOTexUMirror;
half _VTOTexVClamp;
half _VTOTexUClamp;
half _VTOTexUVClip;
half _MainTexUClamp;
float _AlphaClip;
#ifdef ASE_TESSELLATION
float _TessPhongStrength;
float _TessValue;
float _TessMin;
float _TessMax;
float _TessEdgeLength;
float _TessMaxDisp;
#endif
CBUFFER_END
sampler2D _VTOTex;
sampler2D _MainTex;
sampler2D _DistortTex;
sampler2D _MaskTex;
sampler2D _DissolveTex;
sampler2D _DissolvePlusTex;
uniform float4 _CameraDepthTexture_TexelSize;
float UVClamp21_g144( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g117( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g146( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g147( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g119( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g118( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g143( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g113( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g114( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g142( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g151( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g152( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g102( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g140( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g104( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g103( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g139( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
int _ObjectId;
int _PassValue;
struct SurfaceDescription
{
float Alpha;
float AlphaClipThreshold;
};
VertexOutput VertexFunction(VertexInput v )
{
VertexOutput o;
ZERO_INITIALIZE(VertexOutput, o);
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
float3 temp_cast_0 = (0.0).xxx;
float UVClip21_g144 = _VTOTexUVClip;
float UClamp21_g144 = _VTOTexUClamp;
float VClamp21_g144 = _VTOTexVClamp;
float UMirror21_g144 = _VTOTexUMirror;
float VMirror21_g144 = _VTOTexVMirror;
float2 appendResult4_g144 = (float2(_VTOTexUSpeed , _VTOTexVSpeed));
float2 uv_VTOTex = v.ase_texcoord * _VTOTex_ST.xy + _VTOTex_ST.zw;
float cos38_g144 = cos( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float sin38_g144 = sin( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g144 = mul( uv_VTOTex - float2( 0.5,0.5 ) , float2x2( cos38_g144 , -sin38_g144 , sin38_g144 , cos38_g144 )) + float2( 0.5,0.5 );
float2 panner5_g144 = ( 1.0 * _Time.y * appendResult4_g144 + rotator38_g144);
float2 break22_g144 = panner5_g144;
float U21_g144 = break22_g144.x;
float V21_g144 = break22_g144.y;
float F21_g144 = 0.0;
float localUVClamp21_g144 = UVClamp21_g144( UVClip21_g144 , UClamp21_g144 , VClamp21_g144 , UMirror21_g144 , VMirror21_g144 , U21_g144 , V21_g144 , F21_g144 );
float2 appendResult44_g144 = (float2(U21_g144 , V21_g144));
float4 tex2DNode7_g144 = tex2Dlod( _VTOTex, float4( appendResult44_g144, 0, 0.0) );
float Num5_g117 = _VTOScaleC;
float4 texCoord1_g117 = v.ase_texcoord;
texCoord1_g117.xy = v.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g117 = texCoord1_g117.z;
float c1y5_g117 = texCoord1_g117.w;
float4 texCoord2_g117 = v.ase_texcoord1;
texCoord2_g117.xy = v.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g117 = texCoord2_g117.x;
float c1w5_g117 = texCoord2_g117.y;
float c2x5_g117 = texCoord2_g117.z;
float c2y5_g117 = texCoord2_g117.w;
float4 texCoord3_g117 = v.ase_texcoord2;
texCoord3_g117.xy = v.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g117 = texCoord3_g117.x;
float c2w5_g117 = texCoord3_g117.y;
float F5_g117 = 0.0;
float localCustomChanelSwitch5_g117 = CustomChanelSwitch5_g117( Num5_g117 , c1x5_g117 , c1y5_g117 , c1z5_g117 , c1w5_g117 , c2x5_g117 , c2y5_g117 , c2z5_g117 , c2w5_g117 , F5_g117 );
float3 VTO387 = ( v.ase_normal * ( F21_g144 * ( _VTOTexAR == 0.0 ? tex2DNode7_g144.a : tex2DNode7_g144.r ) ) * (( _CustomVTO )?( F5_g117 ):( _VTOScale )) );
#ifdef _IFVTO_ON
float3 staticSwitch390 = VTO387;
#else
float3 staticSwitch390 = temp_cast_0;
#endif
float3 ase_worldPos = TransformObjectToWorld( (v.vertex).xyz );
o.ase_texcoord3.xyz = ase_worldPos;
float3 ase_worldNormal = TransformObjectToWorldNormal(v.ase_normal);
o.ase_texcoord4.xyz = ase_worldNormal;
float4 ase_clipPos = TransformObjectToHClip((v.vertex).xyz);
float4 screenPos = ComputeScreenPos(ase_clipPos);
o.ase_texcoord5 = screenPos;
o.ase_texcoord = v.ase_texcoord;
o.ase_texcoord1 = v.ase_texcoord1;
o.ase_texcoord2 = v.ase_texcoord2;
o.ase_color = v.ase_color;
//setting value to unused interpolator channels and avoid initialization warnings
o.ase_texcoord3.w = 0;
o.ase_texcoord4.w = 0;
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = v.vertex.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
float3 vertexValue = staticSwitch390;
#ifdef ASE_ABSOLUTE_VERTEX_POS
v.vertex.xyz = vertexValue;
#else
v.vertex.xyz += vertexValue;
#endif
v.ase_normal = v.ase_normal;
float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
o.clipPos = TransformWorldToHClip(positionWS);
return o;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 vertex : INTERNALTESSPOS;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( VertexInput v )
{
VertexControl o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
o.vertex = v.vertex;
o.ase_normal = v.ase_normal;
o.ase_texcoord = v.ase_texcoord;
o.ase_texcoord1 = v.ase_texcoord1;
o.ase_texcoord2 = v.ase_texcoord2;
o.ase_color = v.ase_color;
return o;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
{
TessellationFactors o;
float4 tf = 1;
float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
return o;
}
[domain("tri")]
[partitioning("fractional_odd")]
[outputtopology("triangle_cw")]
[patchconstantfunc("TessellationFunction")]
[outputcontrolpoints(3)]
VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
{
return patch[id];
}
[domain("tri")]
VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
VertexInput o = (VertexInput) 0;
o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
o.ase_texcoord2 = patch[0].ase_texcoord2 * bary.x + patch[1].ase_texcoord2 * bary.y + patch[2].ase_texcoord2 * bary.z;
o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
float phongStrength = _TessPhongStrength;
o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
return VertexFunction(o);
}
#else
VertexOutput vert ( VertexInput v )
{
return VertexFunction( v );
}
#endif
half4 frag(VertexOutput IN ) : SV_TARGET
{
SurfaceDescription surfaceDescription = (SurfaceDescription)0;
float UVClip21_g143 = _MainTexUVClip;
float UClamp21_g143 = _MainTexUClamp;
float VClamp21_g143 = _MainTexVClamp;
float UMirror21_g143 = _MainTexUMirror;
float VMirror21_g143 = _MainTexVMirror;
float2 appendResult4_g143 = (float2(_MainTexUSpeed , _MainTexVSpeed));
float2 uv_MainTex = IN.ase_texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
float2 temp_output_3_0_g145 = uv_MainTex;
float UVClip21_g146 = 1.0;
float UClamp21_g146 = 0.0;
float VClamp21_g146 = 0.0;
float UMirror21_g146 = _DistortTexUMirror;
float VMirror21_g146 = _DistortTexVMirror;
float2 appendResult4_g146 = (float2(_DistortTexUSpeed , _DistortTexVSpeed));
float2 uv_DistortTex = IN.ase_texcoord.xy * _DistortTex_ST.xy + _DistortTex_ST.zw;
float cos38_g146 = cos( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float sin38_g146 = sin( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g146 = mul( uv_DistortTex - float2( 0.5,0.5 ) , float2x2( cos38_g146 , -sin38_g146 , sin38_g146 , cos38_g146 )) + float2( 0.5,0.5 );
float2 panner5_g146 = ( 1.0 * _Time.y * appendResult4_g146 + rotator38_g146);
float2 break22_g146 = panner5_g146;
float U21_g146 = break22_g146.x;
float V21_g146 = break22_g146.y;
float F21_g146 = 0.0;
float localUVClamp21_g146 = UVClamp21_g146( UVClip21_g146 , UClamp21_g146 , VClamp21_g146 , UMirror21_g146 , VMirror21_g146 , U21_g146 , V21_g146 , F21_g146 );
float2 appendResult44_g146 = (float2(U21_g146 , V21_g146));
float4 tex2DNode7_g146 = tex2D( _DistortTex, appendResult44_g146 );
float temp_output_675_20 = ( F21_g146 * ( _DistortTexAR == 0.0 ? tex2DNode7_g146.a : tex2DNode7_g146.r ) );
float Num5_g147 = _DistortFactorC;
float4 texCoord1_g147 = IN.ase_texcoord;
texCoord1_g147.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g147 = texCoord1_g147.z;
float c1y5_g147 = texCoord1_g147.w;
float4 texCoord2_g147 = IN.ase_texcoord1;
texCoord2_g147.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g147 = texCoord2_g147.x;
float c1w5_g147 = texCoord2_g147.y;
float c2x5_g147 = texCoord2_g147.z;
float c2y5_g147 = texCoord2_g147.w;
float4 texCoord3_g147 = IN.ase_texcoord2;
texCoord3_g147.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g147 = texCoord3_g147.x;
float c2w5_g147 = texCoord3_g147.y;
float F5_g147 = 0.0;
float localCustomChanelSwitch5_g147 = CustomChanelSwitch5_g147( Num5_g147 , c1x5_g147 , c1y5_g147 , c1z5_g147 , c1w5_g147 , c2x5_g147 , c2y5_g147 , c2z5_g147 , c2w5_g147 , F5_g147 );
float2 appendResult465 = (float2(_DistortUIntensity , _DistortVIntensity));
float2 Distort148 = ( (( _DistortRemap )?( (-0.5 + (temp_output_675_20 - 0.0) * (0.5 - -0.5) / (1.0 - 0.0)) ):( temp_output_675_20 )) * (( _CustomDistortFactor )?( F5_g147 ):( _DistortFactor )) * appendResult465 );
#ifdef _FDISTORTTEX_ON
float2 staticSwitch316 = ( _DistortMainTex == 0.0 ? temp_output_3_0_g145 : ( temp_output_3_0_g145 + Distort148 ) );
#else
float2 staticSwitch316 = uv_MainTex;
#endif
float Num5_g119 = _MainTexUOffsetC;
float4 texCoord1_g119 = IN.ase_texcoord;
texCoord1_g119.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g119 = texCoord1_g119.z;
float c1y5_g119 = texCoord1_g119.w;
float4 texCoord2_g119 = IN.ase_texcoord1;
texCoord2_g119.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g119 = texCoord2_g119.x;
float c1w5_g119 = texCoord2_g119.y;
float c2x5_g119 = texCoord2_g119.z;
float c2y5_g119 = texCoord2_g119.w;
float4 texCoord3_g119 = IN.ase_texcoord2;
texCoord3_g119.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g119 = texCoord3_g119.x;
float c2w5_g119 = texCoord3_g119.y;
float F5_g119 = 0.0;
float localCustomChanelSwitch5_g119 = CustomChanelSwitch5_g119( Num5_g119 , c1x5_g119 , c1y5_g119 , c1z5_g119 , c1w5_g119 , c2x5_g119 , c2y5_g119 , c2z5_g119 , c2w5_g119 , F5_g119 );
float Num5_g118 = _MainTexVOffsetC;
float4 texCoord1_g118 = IN.ase_texcoord;
texCoord1_g118.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g118 = texCoord1_g118.z;
float c1y5_g118 = texCoord1_g118.w;
float4 texCoord2_g118 = IN.ase_texcoord1;
texCoord2_g118.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g118 = texCoord2_g118.x;
float c1w5_g118 = texCoord2_g118.y;
float c2x5_g118 = texCoord2_g118.z;
float c2y5_g118 = texCoord2_g118.w;
float4 texCoord3_g118 = IN.ase_texcoord2;
texCoord3_g118.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g118 = texCoord3_g118.x;
float c2w5_g118 = texCoord3_g118.y;
float F5_g118 = 0.0;
float localCustomChanelSwitch5_g118 = CustomChanelSwitch5_g118( Num5_g118 , c1x5_g118 , c1y5_g118 , c1z5_g118 , c1w5_g118 , c2x5_g118 , c2y5_g118 , c2z5_g118 , c2w5_g118 , F5_g118 );
float2 appendResult330 = (float2((( _CustomMainTexUOffset )?( F5_g119 ):( 0.0 )) , (( _CustomMainTexVOffset )?( F5_g118 ):( 0.0 ))));
float cos38_g143 = cos( ( _MainTexRotator * ( 2.0 * PI ) ) );
float sin38_g143 = sin( ( _MainTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g143 = mul( ( staticSwitch316 + appendResult330 ) - float2( 0.5,0.5 ) , float2x2( cos38_g143 , -sin38_g143 , sin38_g143 , cos38_g143 )) + float2( 0.5,0.5 );
float2 panner5_g143 = ( 1.0 * _Time.y * appendResult4_g143 + rotator38_g143);
float2 break22_g143 = panner5_g143;
float U21_g143 = break22_g143.x;
float V21_g143 = break22_g143.y;
float F21_g143 = 0.0;
float localUVClamp21_g143 = UVClamp21_g143( UVClip21_g143 , UClamp21_g143 , VClamp21_g143 , UMirror21_g143 , VMirror21_g143 , U21_g143 , V21_g143 , F21_g143 );
float2 appendResult44_g143 = (float2(U21_g143 , V21_g143));
float4 tex2DNode7_g143 = tex2D( _MainTex, appendResult44_g143 );
float MainTexAlpha138 = ( _MainColor.a * ( F21_g143 * ( _MainTexAR == 0.0 ? tex2DNode7_g143.a : tex2DNode7_g143.r ) ) );
float UVClip21_g142 = _MaskTexUVClip;
float UClamp21_g142 = _MaskTexUClamp;
float VClamp21_g142 = _MaskTexVClamp;
float UMirror21_g142 = _MaskTexUMirror;
float VMirror21_g142 = _MaskTexVMirror;
float2 appendResult4_g142 = (float2(_MaskTexUSpeed , _MaskTexVSpeed));
float2 uv_MaskTex = IN.ase_texcoord.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;
float2 temp_output_3_0_g115 = uv_MaskTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch312 = ( _DistortMaskTex == 0.0 ? temp_output_3_0_g115 : ( temp_output_3_0_g115 + Distort148 ) );
#else
float2 staticSwitch312 = uv_MaskTex;
#endif
float Num5_g113 = _MaskTexUOffsetC;
float4 texCoord1_g113 = IN.ase_texcoord;
texCoord1_g113.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g113 = texCoord1_g113.z;
float c1y5_g113 = texCoord1_g113.w;
float4 texCoord2_g113 = IN.ase_texcoord1;
texCoord2_g113.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g113 = texCoord2_g113.x;
float c1w5_g113 = texCoord2_g113.y;
float c2x5_g113 = texCoord2_g113.z;
float c2y5_g113 = texCoord2_g113.w;
float4 texCoord3_g113 = IN.ase_texcoord2;
texCoord3_g113.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g113 = texCoord3_g113.x;
float c2w5_g113 = texCoord3_g113.y;
float F5_g113 = 0.0;
float localCustomChanelSwitch5_g113 = CustomChanelSwitch5_g113( Num5_g113 , c1x5_g113 , c1y5_g113 , c1z5_g113 , c1w5_g113 , c2x5_g113 , c2y5_g113 , c2z5_g113 , c2w5_g113 , F5_g113 );
float Num5_g114 = _MaskTexVOffsetC;
float4 texCoord1_g114 = IN.ase_texcoord;
texCoord1_g114.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g114 = texCoord1_g114.z;
float c1y5_g114 = texCoord1_g114.w;
float4 texCoord2_g114 = IN.ase_texcoord1;
texCoord2_g114.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g114 = texCoord2_g114.x;
float c1w5_g114 = texCoord2_g114.y;
float c2x5_g114 = texCoord2_g114.z;
float c2y5_g114 = texCoord2_g114.w;
float4 texCoord3_g114 = IN.ase_texcoord2;
texCoord3_g114.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g114 = texCoord3_g114.x;
float c2w5_g114 = texCoord3_g114.y;
float F5_g114 = 0.0;
float localCustomChanelSwitch5_g114 = CustomChanelSwitch5_g114( Num5_g114 , c1x5_g114 , c1y5_g114 , c1z5_g114 , c1w5_g114 , c2x5_g114 , c2y5_g114 , c2z5_g114 , c2w5_g114 , F5_g114 );
float2 appendResult446 = (float2((( _CustomMaskTexUOffset )?( F5_g113 ):( 0.0 )) , (( _CustomMaskTexVOffset )?( F5_g114 ):( 0.0 ))));
float cos38_g142 = cos( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float sin38_g142 = sin( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g142 = mul( ( staticSwitch312 + appendResult446 ) - float2( 0.5,0.5 ) , float2x2( cos38_g142 , -sin38_g142 , sin38_g142 , cos38_g142 )) + float2( 0.5,0.5 );
float2 panner5_g142 = ( 1.0 * _Time.y * appendResult4_g142 + rotator38_g142);
float2 break22_g142 = panner5_g142;
float U21_g142 = break22_g142.x;
float V21_g142 = break22_g142.y;
float F21_g142 = 0.0;
float localUVClamp21_g142 = UVClamp21_g142( UVClip21_g142 , UClamp21_g142 , VClamp21_g142 , UMirror21_g142 , VMirror21_g142 , U21_g142 , V21_g142 , F21_g142 );
float2 appendResult44_g142 = (float2(U21_g142 , V21_g142));
float4 tex2DNode7_g142 = tex2D( _MaskTex, appendResult44_g142 );
#ifdef _FMASKTEX_ON
float staticSwitch291 = ( F21_g142 * ( _MaskTexAR == 0.0 ? tex2DNode7_g142.a : tex2DNode7_g142.r ) );
#else
float staticSwitch291 = 1.0;
#endif
float Alpha337 = _MainAlpha;
float Num5_g151 = _DissolveFactorC;
float4 texCoord1_g151 = IN.ase_texcoord;
texCoord1_g151.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g151 = texCoord1_g151.z;
float c1y5_g151 = texCoord1_g151.w;
float4 texCoord2_g151 = IN.ase_texcoord1;
texCoord2_g151.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g151 = texCoord2_g151.x;
float c1w5_g151 = texCoord2_g151.y;
float c2x5_g151 = texCoord2_g151.z;
float c2y5_g151 = texCoord2_g151.w;
float4 texCoord3_g151 = IN.ase_texcoord2;
texCoord3_g151.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g151 = texCoord3_g151.x;
float c2w5_g151 = texCoord3_g151.y;
float F5_g151 = 0.0;
float localCustomChanelSwitch5_g151 = CustomChanelSwitch5_g151( Num5_g151 , c1x5_g151 , c1y5_g151 , c1z5_g151 , c1w5_g151 , c2x5_g151 , c2y5_g151 , c2z5_g151 , c2w5_g151 , F5_g151 );
float temp_output_275_0 = (-_DissolveWide + ((( _CustomDissolve )?( F5_g151 ):( _DissolveFactor )) - 0.0) * (1.0 - -_DissolveWide) / (1.0 - 0.0));
float temp_output_277_0 = ( _DissolveSoft + 0.0001 );
float temp_output_270_0 = (-temp_output_277_0 + (temp_output_275_0 - 0.0) * (1.0 - -temp_output_277_0) / (1.0 - 0.0));
float UVClip21_g140 = _DissolveTexUVClip;
float UClamp21_g140 = _DissolveTexUClamp;
float VClamp21_g140 = _DissolveTexVClamp;
float UMirror21_g140 = _DissolveTexUMirror;
float VMirror21_g140 = _DissolveTexVMirror;
float2 appendResult4_g140 = (float2(_DissolveTexUSpeed , _DissolveTexVSpeed));
float2 uv_DissolveTex = IN.ase_texcoord.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;
float2 temp_output_3_0_g106 = uv_DissolveTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch314 = ( _DistortDissolveTex == 0.0 ? temp_output_3_0_g106 : ( temp_output_3_0_g106 + Distort148 ) );
#else
float2 staticSwitch314 = uv_DissolveTex;
#endif
float Num5_g152 = _DissolveTexUOffsetC;
float4 texCoord1_g152 = IN.ase_texcoord;
texCoord1_g152.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g152 = texCoord1_g152.z;
float c1y5_g152 = texCoord1_g152.w;
float4 texCoord2_g152 = IN.ase_texcoord1;
texCoord2_g152.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g152 = texCoord2_g152.x;
float c1w5_g152 = texCoord2_g152.y;
float c2x5_g152 = texCoord2_g152.z;
float c2y5_g152 = texCoord2_g152.w;
float4 texCoord3_g152 = IN.ase_texcoord2;
texCoord3_g152.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g152 = texCoord3_g152.x;
float c2w5_g152 = texCoord3_g152.y;
float F5_g152 = 0.0;
float localCustomChanelSwitch5_g152 = CustomChanelSwitch5_g152( Num5_g152 , c1x5_g152 , c1y5_g152 , c1z5_g152 , c1w5_g152 , c2x5_g152 , c2y5_g152 , c2z5_g152 , c2w5_g152 , F5_g152 );
float Num5_g102 = _DissolveTexVOffsetC;
float4 texCoord1_g102 = IN.ase_texcoord;
texCoord1_g102.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g102 = texCoord1_g102.z;
float c1y5_g102 = texCoord1_g102.w;
float4 texCoord2_g102 = IN.ase_texcoord1;
texCoord2_g102.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g102 = texCoord2_g102.x;
float c1w5_g102 = texCoord2_g102.y;
float c2x5_g102 = texCoord2_g102.z;
float c2y5_g102 = texCoord2_g102.w;
float4 texCoord3_g102 = IN.ase_texcoord2;
texCoord3_g102.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g102 = texCoord3_g102.x;
float c2w5_g102 = texCoord3_g102.y;
float F5_g102 = 0.0;
float localCustomChanelSwitch5_g102 = CustomChanelSwitch5_g102( Num5_g102 , c1x5_g102 , c1y5_g102 , c1z5_g102 , c1w5_g102 , c2x5_g102 , c2y5_g102 , c2z5_g102 , c2w5_g102 , F5_g102 );
float2 appendResult479 = (float2((( _CustomDissolveTexUOffset )?( F5_g152 ):( 0.0 )) , (( _CustomDissolveTexVOffset )?( F5_g102 ):( 0.0 ))));
float cos38_g140 = cos( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float sin38_g140 = sin( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g140 = mul( ( staticSwitch314 + appendResult479 ) - float2( 0.5,0.5 ) , float2x2( cos38_g140 , -sin38_g140 , sin38_g140 , cos38_g140 )) + float2( 0.5,0.5 );
float2 panner5_g140 = ( 1.0 * _Time.y * appendResult4_g140 + rotator38_g140);
float2 break22_g140 = panner5_g140;
float U21_g140 = break22_g140.x;
float V21_g140 = break22_g140.y;
float F21_g140 = 0.0;
float localUVClamp21_g140 = UVClamp21_g140( UVClip21_g140 , UClamp21_g140 , VClamp21_g140 , UMirror21_g140 , VMirror21_g140 , U21_g140 , V21_g140 , F21_g140 );
float2 appendResult44_g140 = (float2(U21_g140 , V21_g140));
float4 tex2DNode7_g140 = tex2D( _DissolveTex, appendResult44_g140 );
float temp_output_677_20 = ( F21_g140 * ( _DissolveTexAR == 0.0 ? tex2DNode7_g140.a : tex2DNode7_g140.r ) );
float UVClip21_g139 = _DissolvePlusTexUVClip;
float UClamp21_g139 = _DissolvePlusTexUClamp;
float VClamp21_g139 = _DissolvePlusTexVClamp;
float UMirror21_g139 = _DissolvePlusTexUMirror;
float VMirror21_g139 = _DissolvePlusTexVMirror;
float2 appendResult4_g139 = (float2(_DissolvePlusTexUSpeed , _DissolvePlusTexVSpeed));
float2 uv_DissolvePlusTex = IN.ase_texcoord.xy * _DissolvePlusTex_ST.xy + _DissolvePlusTex_ST.zw;
float Num5_g104 = _DissolvePlusTexUOffsetC;
float4 texCoord1_g104 = IN.ase_texcoord;
texCoord1_g104.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g104 = texCoord1_g104.z;
float c1y5_g104 = texCoord1_g104.w;
float4 texCoord2_g104 = IN.ase_texcoord1;
texCoord2_g104.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g104 = texCoord2_g104.x;
float c1w5_g104 = texCoord2_g104.y;
float c2x5_g104 = texCoord2_g104.z;
float c2y5_g104 = texCoord2_g104.w;
float4 texCoord3_g104 = IN.ase_texcoord2;
texCoord3_g104.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g104 = texCoord3_g104.x;
float c2w5_g104 = texCoord3_g104.y;
float F5_g104 = 0.0;
float localCustomChanelSwitch5_g104 = CustomChanelSwitch5_g104( Num5_g104 , c1x5_g104 , c1y5_g104 , c1z5_g104 , c1w5_g104 , c2x5_g104 , c2y5_g104 , c2z5_g104 , c2w5_g104 , F5_g104 );
float Num5_g103 = _DissolvePlusTexVOffsetC;
float4 texCoord1_g103 = IN.ase_texcoord;
texCoord1_g103.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g103 = texCoord1_g103.z;
float c1y5_g103 = texCoord1_g103.w;
float4 texCoord2_g103 = IN.ase_texcoord1;
texCoord2_g103.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g103 = texCoord2_g103.x;
float c1w5_g103 = texCoord2_g103.y;
float c2x5_g103 = texCoord2_g103.z;
float c2y5_g103 = texCoord2_g103.w;
float4 texCoord3_g103 = IN.ase_texcoord2;
texCoord3_g103.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g103 = texCoord3_g103.x;
float c2w5_g103 = texCoord3_g103.y;
float F5_g103 = 0.0;
float localCustomChanelSwitch5_g103 = CustomChanelSwitch5_g103( Num5_g103 , c1x5_g103 , c1y5_g103 , c1z5_g103 , c1w5_g103 , c2x5_g103 , c2y5_g103 , c2z5_g103 , c2w5_g103 , F5_g103 );
float2 appendResult497 = (float2((( _CustomDissolvePlusTexUOffset )?( F5_g104 ):( 0.0 )) , (( _CustomDissolvePlusTexVOffset )?( F5_g103 ):( 0.0 ))));
float cos38_g139 = cos( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float sin38_g139 = sin( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g139 = mul( ( uv_DissolvePlusTex + appendResult497 ) - float2( 0.5,0.5 ) , float2x2( cos38_g139 , -sin38_g139 , sin38_g139 , cos38_g139 )) + float2( 0.5,0.5 );
float2 panner5_g139 = ( 1.0 * _Time.y * appendResult4_g139 + rotator38_g139);
float2 break22_g139 = panner5_g139;
float U21_g139 = break22_g139.x;
float V21_g139 = break22_g139.y;
float F21_g139 = 0.0;
float localUVClamp21_g139 = UVClamp21_g139( UVClip21_g139 , UClamp21_g139 , VClamp21_g139 , UMirror21_g139 , VMirror21_g139 , U21_g139 , V21_g139 , F21_g139 );
float2 appendResult44_g139 = (float2(U21_g139 , V21_g139));
float4 tex2DNode7_g139 = tex2D( _DissolvePlusTex, appendResult44_g139 );
float lerpResult413 = lerp( temp_output_677_20 , ( F21_g139 * ( _DissolvePlusTexAR == 0.0 ? tex2DNode7_g139.a : tex2DNode7_g139.r ) ) , _DissolvePlusIntensity);
#ifdef _FDISSOLVEPLUSTEX_ON
float staticSwitch415 = lerpResult413;
#else
float staticSwitch415 = temp_output_677_20;
#endif
float smoothstepResult256 = smoothstep( temp_output_270_0 , ( temp_output_270_0 + temp_output_277_0 ) , staticSwitch415);
float DissolveAlpha212 = smoothstepResult256;
#ifdef _FDISSOLVETEX_ON
float staticSwitch299 = DissolveAlpha212;
#else
float staticSwitch299 = 1.0;
#endif
float Refnl339 = _ReFnl;
float3 ase_worldPos = IN.ase_texcoord3.xyz;
float3 ase_worldViewDir = ( _WorldSpaceCameraPos.xyz - ase_worldPos );
ase_worldViewDir = normalize(ase_worldViewDir);
float3 ase_worldNormal = IN.ase_texcoord4.xyz;
float fresnelNdotV279 = dot( ase_worldNormal, ase_worldViewDir );
float fresnelNode279 = ( 0.0 + _FnlScale * pow( 1.0 - fresnelNdotV279, _FnlPower ) );
float temp_output_283_0 = saturate( fresnelNode279 );
float ReFnlAlpha318 = ( 1.0 - temp_output_283_0 );
#ifdef _FFNL_ON
float staticSwitch319 = ( Refnl339 == 0.0 ? 1.0 : ReFnlAlpha318 );
#else
float staticSwitch319 = 1.0;
#endif
float4 screenPos = IN.ase_texcoord5;
float4 ase_screenPosNorm = screenPos / screenPos.w;
ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5;
float screenDepth375 = LinearEyeDepth(SHADERGRAPH_SAMPLE_SCENE_DEPTH( ase_screenPosNorm.xy ),_ZBufferParams);
float distanceDepth375 = abs( ( screenDepth375 - LinearEyeDepth( ase_screenPosNorm.z,_ZBufferParams ) ) / ( _DepthFade ) );
#ifdef _FDEPTH_ON
float staticSwitch378 = saturate( distanceDepth375 );
#else
float staticSwitch378 = 1.0;
#endif
float MainAlpha97 = saturate( ( MainTexAlpha138 * staticSwitch291 * IN.ase_color.a * Alpha337 * staticSwitch299 * staticSwitch319 * staticSwitch378 ) );
surfaceDescription.Alpha = MainAlpha97;
surfaceDescription.AlphaClipThreshold = _AlphaClip;
#if _ALPHATEST_ON
float alphaClipThreshold = 0.01f;
#if ALPHA_CLIP_THRESHOLD
alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
#endif
clip(surfaceDescription.Alpha - alphaClipThreshold);
#endif
half4 outColor = half4(_ObjectId, _PassValue, 1.0, 1.0);
return outColor;
}
ENDHLSL
}
Pass
{
Name "ScenePickingPass"
Tags { "LightMode"="Picking" }
HLSLPROGRAM
#define _RECEIVE_SHADOWS_OFF 1
#define _SURFACE_TYPE_TRANSPARENT 1
#define _ALPHATEST_ON 1
#define ASE_SRP_VERSION 120107
#define REQUIRE_DEPTH_TEXTURE 1
#pragma vertex vert
#pragma fragment frag
#define ATTRIBUTES_NEED_NORMAL
#define ATTRIBUTES_NEED_TANGENT
#define SHADERPASS SHADERPASS_DEPTHONLY
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#define ASE_NEEDS_VERT_NORMAL
#pragma shader_feature_local _IFVTO_ON
#pragma shader_feature_local _FDISTORTTEX_ON
#pragma shader_feature_local _FMASKTEX_ON
#pragma shader_feature_local _FDISSOLVETEX_ON
#pragma shader_feature_local _FDISSOLVEPLUSTEX_ON
#pragma shader_feature_local _FFNL_ON
#pragma shader_feature_local _FDEPTH_ON
struct VertexInput
{
float4 vertex : POSITION;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VertexOutput
{
float4 clipPos : SV_POSITION;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
float4 ase_texcoord3 : TEXCOORD3;
float4 ase_texcoord4 : TEXCOORD4;
float4 ase_texcoord5 : TEXCOORD5;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
CBUFFER_START(UnityPerMaterial)
float4 _RefactionTex_ST;
float4 _MainTexRefine;
float4 _RefactionMaskTex_ST;
float4 _VTOTex_ST;
float4 _DistortTex_ST;
half4 _MainColor;
float4 _DissolvePlusTex_ST;
float4 _MaskTex_ST;
half4 _DissolveColor;
half4 _FnlColor;
float4 _DissolveTex_ST;
float4 _MainTex_ST;
half _DissolveTexVMirror;
half _DissolveTexUSpeed;
float _CustomDissolveTexUOffset;
half _DistortDissolveTex;
float _DissolveTexUOffsetC;
float _CustomDissolveTexVOffset;
float _DissolveTexVOffsetC;
half _DissolveTexVSpeed;
half _CullMode;
half _DissolveTexVClamp;
half _DissolveTexRotator;
half _DissolveTexUClamp;
half _DissolveTexUVClip;
half _DissolveSoft;
half _DissolveWide;
float _DissolveFactorC;
half _DissolveFactor;
float _CustomDissolve;
half _MainTexDesaturate;
float _MainTexCAFator;
half _MainTexRotator;
float _MainTexVOffsetC;
float _CustomMainTexVOffset;
float _MainTexUOffsetC;
half _DissolveTexUMirror;
half _DissolveTexAR;
half _DissolvePlusTexVClamp;
half _DissolvePlusTexUClamp;
half _MaskTexAR;
half _MaskTexRotator;
float _MaskTexVOffsetC;
float _CustomMaskTexVOffset;
float _MaskTexUOffsetC;
float _CustomMaskTexUOffset;
half _DistortMaskTex;
half _MaskTexVSpeed;
half _MaskTexUSpeed;
half _MaskTexVMirror;
half _MaskTexUMirror;
half _MaskTexVClamp;
half _MaskTexUClamp;
half _MaskTexUVClip;
half _MainTexAR;
half _FnlPower;
half _FnlScale;
float _CustomMainTexUOffset;
half _DissolvePlusTexUMirror;
half _DissolvePlusTexVMirror;
half _DissolvePlusTexUSpeed;
half _DissolvePlusTexVSpeed;
float _CustomDissolvePlusTexUOffset;
half _DissolvePlusTexUVClip;
float _DissolvePlusTexUOffsetC;
float _DissolvePlusTexVOffsetC;
half _DissolvePlusTexRotator;
half _DissolvePlusTexAR;
float _DissolvePlusIntensity;
float _MainAlpha;
half _ReFnl;
float _CustomDissolvePlusTexVOffset;
float _DistortVIntensity;
float _CustomDistortFactor;
float _DistortFactorC;
half _RefactionMaskTexVMirror;
half _RefactionMaskTexUMirror;
float _RefactionMaskTexVClamp;
float _RefactionMaskTexUClamp;
float _RefactionMaskTexUVClip;
float _RefactionFactorC;
half _RefactionFactor;
float _CustomRefactionFactor;
half _RefactionTexAR;
half _RefactionTexRotator;
half _RefactionTexVSpeed;
half _RefactionTexUSpeed;
half _RefactionTexVMirror;
half _RefactionTexUMirror;
float _RefactionRemap;
float _MainRGBA;
float _SBCompare;
float _SB;
half _ZTest;
float _RefactionMaskTexDetail;
float _RefactionTexDetail;
float _MainTexDetail;
float _VTOTexDetail;
float _DissolvePlusTexDetail;
float _DissolveTexDetail;
float _DistortTexDetail;
float _MaskTexDetail;
half _Dst;
half _BlendMode;
half _RefactionMaskTexUSpeed;
half _RefactionMaskTexVSpeed;
half _RefactionMaskTexRotator;
half _RefactionMaskTexAR;
half _DistortFactor;
float _DepthFade;
half _DistortTexAR;
half _DistortTexRotator;
half _DistortTexVSpeed;
half _DistortTexUSpeed;
half _DistortTexVMirror;
half _DistortTexUMirror;
float _DistortRemap;
half _DistortMainTex;
half _MainTexVSpeed;
half _MainTexUSpeed;
half _MainTexVMirror;
half _MainTexUMirror;
float _DistortUIntensity;
half _MainTexVClamp;
half _MainTexUVClip;
half _Scr;
float _VTOScaleC;
float _VTOScale;
float _CustomVTO;
half _VTOTexAR;
half _VTOTexRotator;
half _VTOTexVSpeed;
half _VTOTexUSpeed;
half _VTOTexVMirror;
half _VTOTexUMirror;
half _VTOTexVClamp;
half _VTOTexUClamp;
half _VTOTexUVClip;
half _MainTexUClamp;
float _AlphaClip;
#ifdef ASE_TESSELLATION
float _TessPhongStrength;
float _TessValue;
float _TessMin;
float _TessMax;
float _TessEdgeLength;
float _TessMaxDisp;
#endif
CBUFFER_END
sampler2D _VTOTex;
sampler2D _MainTex;
sampler2D _DistortTex;
sampler2D _MaskTex;
sampler2D _DissolveTex;
sampler2D _DissolvePlusTex;
uniform float4 _CameraDepthTexture_TexelSize;
float UVClamp21_g144( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g117( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g146( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g147( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g119( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g118( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g143( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g113( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g114( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g142( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g151( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g152( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g102( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g140( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g104( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g103( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g139( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float4 _SelectionID;
struct SurfaceDescription
{
float Alpha;
float AlphaClipThreshold;
};
VertexOutput VertexFunction(VertexInput v )
{
VertexOutput o;
ZERO_INITIALIZE(VertexOutput, o);
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
float3 temp_cast_0 = (0.0).xxx;
float UVClip21_g144 = _VTOTexUVClip;
float UClamp21_g144 = _VTOTexUClamp;
float VClamp21_g144 = _VTOTexVClamp;
float UMirror21_g144 = _VTOTexUMirror;
float VMirror21_g144 = _VTOTexVMirror;
float2 appendResult4_g144 = (float2(_VTOTexUSpeed , _VTOTexVSpeed));
float2 uv_VTOTex = v.ase_texcoord * _VTOTex_ST.xy + _VTOTex_ST.zw;
float cos38_g144 = cos( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float sin38_g144 = sin( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g144 = mul( uv_VTOTex - float2( 0.5,0.5 ) , float2x2( cos38_g144 , -sin38_g144 , sin38_g144 , cos38_g144 )) + float2( 0.5,0.5 );
float2 panner5_g144 = ( 1.0 * _Time.y * appendResult4_g144 + rotator38_g144);
float2 break22_g144 = panner5_g144;
float U21_g144 = break22_g144.x;
float V21_g144 = break22_g144.y;
float F21_g144 = 0.0;
float localUVClamp21_g144 = UVClamp21_g144( UVClip21_g144 , UClamp21_g144 , VClamp21_g144 , UMirror21_g144 , VMirror21_g144 , U21_g144 , V21_g144 , F21_g144 );
float2 appendResult44_g144 = (float2(U21_g144 , V21_g144));
float4 tex2DNode7_g144 = tex2Dlod( _VTOTex, float4( appendResult44_g144, 0, 0.0) );
float Num5_g117 = _VTOScaleC;
float4 texCoord1_g117 = v.ase_texcoord;
texCoord1_g117.xy = v.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g117 = texCoord1_g117.z;
float c1y5_g117 = texCoord1_g117.w;
float4 texCoord2_g117 = v.ase_texcoord1;
texCoord2_g117.xy = v.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g117 = texCoord2_g117.x;
float c1w5_g117 = texCoord2_g117.y;
float c2x5_g117 = texCoord2_g117.z;
float c2y5_g117 = texCoord2_g117.w;
float4 texCoord3_g117 = v.ase_texcoord2;
texCoord3_g117.xy = v.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g117 = texCoord3_g117.x;
float c2w5_g117 = texCoord3_g117.y;
float F5_g117 = 0.0;
float localCustomChanelSwitch5_g117 = CustomChanelSwitch5_g117( Num5_g117 , c1x5_g117 , c1y5_g117 , c1z5_g117 , c1w5_g117 , c2x5_g117 , c2y5_g117 , c2z5_g117 , c2w5_g117 , F5_g117 );
float3 VTO387 = ( v.ase_normal * ( F21_g144 * ( _VTOTexAR == 0.0 ? tex2DNode7_g144.a : tex2DNode7_g144.r ) ) * (( _CustomVTO )?( F5_g117 ):( _VTOScale )) );
#ifdef _IFVTO_ON
float3 staticSwitch390 = VTO387;
#else
float3 staticSwitch390 = temp_cast_0;
#endif
float3 ase_worldPos = TransformObjectToWorld( (v.vertex).xyz );
o.ase_texcoord3.xyz = ase_worldPos;
float3 ase_worldNormal = TransformObjectToWorldNormal(v.ase_normal);
o.ase_texcoord4.xyz = ase_worldNormal;
float4 ase_clipPos = TransformObjectToHClip((v.vertex).xyz);
float4 screenPos = ComputeScreenPos(ase_clipPos);
o.ase_texcoord5 = screenPos;
o.ase_texcoord = v.ase_texcoord;
o.ase_texcoord1 = v.ase_texcoord1;
o.ase_texcoord2 = v.ase_texcoord2;
o.ase_color = v.ase_color;
//setting value to unused interpolator channels and avoid initialization warnings
o.ase_texcoord3.w = 0;
o.ase_texcoord4.w = 0;
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = v.vertex.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
float3 vertexValue = staticSwitch390;
#ifdef ASE_ABSOLUTE_VERTEX_POS
v.vertex.xyz = vertexValue;
#else
v.vertex.xyz += vertexValue;
#endif
v.ase_normal = v.ase_normal;
float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
o.clipPos = TransformWorldToHClip(positionWS);
return o;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 vertex : INTERNALTESSPOS;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( VertexInput v )
{
VertexControl o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
o.vertex = v.vertex;
o.ase_normal = v.ase_normal;
o.ase_texcoord = v.ase_texcoord;
o.ase_texcoord1 = v.ase_texcoord1;
o.ase_texcoord2 = v.ase_texcoord2;
o.ase_color = v.ase_color;
return o;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
{
TessellationFactors o;
float4 tf = 1;
float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
return o;
}
[domain("tri")]
[partitioning("fractional_odd")]
[outputtopology("triangle_cw")]
[patchconstantfunc("TessellationFunction")]
[outputcontrolpoints(3)]
VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
{
return patch[id];
}
[domain("tri")]
VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
VertexInput o = (VertexInput) 0;
o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
o.ase_texcoord2 = patch[0].ase_texcoord2 * bary.x + patch[1].ase_texcoord2 * bary.y + patch[2].ase_texcoord2 * bary.z;
o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
float phongStrength = _TessPhongStrength;
o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
return VertexFunction(o);
}
#else
VertexOutput vert ( VertexInput v )
{
return VertexFunction( v );
}
#endif
half4 frag(VertexOutput IN ) : SV_TARGET
{
SurfaceDescription surfaceDescription = (SurfaceDescription)0;
float UVClip21_g143 = _MainTexUVClip;
float UClamp21_g143 = _MainTexUClamp;
float VClamp21_g143 = _MainTexVClamp;
float UMirror21_g143 = _MainTexUMirror;
float VMirror21_g143 = _MainTexVMirror;
float2 appendResult4_g143 = (float2(_MainTexUSpeed , _MainTexVSpeed));
float2 uv_MainTex = IN.ase_texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
float2 temp_output_3_0_g145 = uv_MainTex;
float UVClip21_g146 = 1.0;
float UClamp21_g146 = 0.0;
float VClamp21_g146 = 0.0;
float UMirror21_g146 = _DistortTexUMirror;
float VMirror21_g146 = _DistortTexVMirror;
float2 appendResult4_g146 = (float2(_DistortTexUSpeed , _DistortTexVSpeed));
float2 uv_DistortTex = IN.ase_texcoord.xy * _DistortTex_ST.xy + _DistortTex_ST.zw;
float cos38_g146 = cos( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float sin38_g146 = sin( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g146 = mul( uv_DistortTex - float2( 0.5,0.5 ) , float2x2( cos38_g146 , -sin38_g146 , sin38_g146 , cos38_g146 )) + float2( 0.5,0.5 );
float2 panner5_g146 = ( 1.0 * _Time.y * appendResult4_g146 + rotator38_g146);
float2 break22_g146 = panner5_g146;
float U21_g146 = break22_g146.x;
float V21_g146 = break22_g146.y;
float F21_g146 = 0.0;
float localUVClamp21_g146 = UVClamp21_g146( UVClip21_g146 , UClamp21_g146 , VClamp21_g146 , UMirror21_g146 , VMirror21_g146 , U21_g146 , V21_g146 , F21_g146 );
float2 appendResult44_g146 = (float2(U21_g146 , V21_g146));
float4 tex2DNode7_g146 = tex2D( _DistortTex, appendResult44_g146 );
float temp_output_675_20 = ( F21_g146 * ( _DistortTexAR == 0.0 ? tex2DNode7_g146.a : tex2DNode7_g146.r ) );
float Num5_g147 = _DistortFactorC;
float4 texCoord1_g147 = IN.ase_texcoord;
texCoord1_g147.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g147 = texCoord1_g147.z;
float c1y5_g147 = texCoord1_g147.w;
float4 texCoord2_g147 = IN.ase_texcoord1;
texCoord2_g147.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g147 = texCoord2_g147.x;
float c1w5_g147 = texCoord2_g147.y;
float c2x5_g147 = texCoord2_g147.z;
float c2y5_g147 = texCoord2_g147.w;
float4 texCoord3_g147 = IN.ase_texcoord2;
texCoord3_g147.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g147 = texCoord3_g147.x;
float c2w5_g147 = texCoord3_g147.y;
float F5_g147 = 0.0;
float localCustomChanelSwitch5_g147 = CustomChanelSwitch5_g147( Num5_g147 , c1x5_g147 , c1y5_g147 , c1z5_g147 , c1w5_g147 , c2x5_g147 , c2y5_g147 , c2z5_g147 , c2w5_g147 , F5_g147 );
float2 appendResult465 = (float2(_DistortUIntensity , _DistortVIntensity));
float2 Distort148 = ( (( _DistortRemap )?( (-0.5 + (temp_output_675_20 - 0.0) * (0.5 - -0.5) / (1.0 - 0.0)) ):( temp_output_675_20 )) * (( _CustomDistortFactor )?( F5_g147 ):( _DistortFactor )) * appendResult465 );
#ifdef _FDISTORTTEX_ON
float2 staticSwitch316 = ( _DistortMainTex == 0.0 ? temp_output_3_0_g145 : ( temp_output_3_0_g145 + Distort148 ) );
#else
float2 staticSwitch316 = uv_MainTex;
#endif
float Num5_g119 = _MainTexUOffsetC;
float4 texCoord1_g119 = IN.ase_texcoord;
texCoord1_g119.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g119 = texCoord1_g119.z;
float c1y5_g119 = texCoord1_g119.w;
float4 texCoord2_g119 = IN.ase_texcoord1;
texCoord2_g119.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g119 = texCoord2_g119.x;
float c1w5_g119 = texCoord2_g119.y;
float c2x5_g119 = texCoord2_g119.z;
float c2y5_g119 = texCoord2_g119.w;
float4 texCoord3_g119 = IN.ase_texcoord2;
texCoord3_g119.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g119 = texCoord3_g119.x;
float c2w5_g119 = texCoord3_g119.y;
float F5_g119 = 0.0;
float localCustomChanelSwitch5_g119 = CustomChanelSwitch5_g119( Num5_g119 , c1x5_g119 , c1y5_g119 , c1z5_g119 , c1w5_g119 , c2x5_g119 , c2y5_g119 , c2z5_g119 , c2w5_g119 , F5_g119 );
float Num5_g118 = _MainTexVOffsetC;
float4 texCoord1_g118 = IN.ase_texcoord;
texCoord1_g118.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g118 = texCoord1_g118.z;
float c1y5_g118 = texCoord1_g118.w;
float4 texCoord2_g118 = IN.ase_texcoord1;
texCoord2_g118.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g118 = texCoord2_g118.x;
float c1w5_g118 = texCoord2_g118.y;
float c2x5_g118 = texCoord2_g118.z;
float c2y5_g118 = texCoord2_g118.w;
float4 texCoord3_g118 = IN.ase_texcoord2;
texCoord3_g118.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g118 = texCoord3_g118.x;
float c2w5_g118 = texCoord3_g118.y;
float F5_g118 = 0.0;
float localCustomChanelSwitch5_g118 = CustomChanelSwitch5_g118( Num5_g118 , c1x5_g118 , c1y5_g118 , c1z5_g118 , c1w5_g118 , c2x5_g118 , c2y5_g118 , c2z5_g118 , c2w5_g118 , F5_g118 );
float2 appendResult330 = (float2((( _CustomMainTexUOffset )?( F5_g119 ):( 0.0 )) , (( _CustomMainTexVOffset )?( F5_g118 ):( 0.0 ))));
float cos38_g143 = cos( ( _MainTexRotator * ( 2.0 * PI ) ) );
float sin38_g143 = sin( ( _MainTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g143 = mul( ( staticSwitch316 + appendResult330 ) - float2( 0.5,0.5 ) , float2x2( cos38_g143 , -sin38_g143 , sin38_g143 , cos38_g143 )) + float2( 0.5,0.5 );
float2 panner5_g143 = ( 1.0 * _Time.y * appendResult4_g143 + rotator38_g143);
float2 break22_g143 = panner5_g143;
float U21_g143 = break22_g143.x;
float V21_g143 = break22_g143.y;
float F21_g143 = 0.0;
float localUVClamp21_g143 = UVClamp21_g143( UVClip21_g143 , UClamp21_g143 , VClamp21_g143 , UMirror21_g143 , VMirror21_g143 , U21_g143 , V21_g143 , F21_g143 );
float2 appendResult44_g143 = (float2(U21_g143 , V21_g143));
float4 tex2DNode7_g143 = tex2D( _MainTex, appendResult44_g143 );
float MainTexAlpha138 = ( _MainColor.a * ( F21_g143 * ( _MainTexAR == 0.0 ? tex2DNode7_g143.a : tex2DNode7_g143.r ) ) );
float UVClip21_g142 = _MaskTexUVClip;
float UClamp21_g142 = _MaskTexUClamp;
float VClamp21_g142 = _MaskTexVClamp;
float UMirror21_g142 = _MaskTexUMirror;
float VMirror21_g142 = _MaskTexVMirror;
float2 appendResult4_g142 = (float2(_MaskTexUSpeed , _MaskTexVSpeed));
float2 uv_MaskTex = IN.ase_texcoord.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;
float2 temp_output_3_0_g115 = uv_MaskTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch312 = ( _DistortMaskTex == 0.0 ? temp_output_3_0_g115 : ( temp_output_3_0_g115 + Distort148 ) );
#else
float2 staticSwitch312 = uv_MaskTex;
#endif
float Num5_g113 = _MaskTexUOffsetC;
float4 texCoord1_g113 = IN.ase_texcoord;
texCoord1_g113.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g113 = texCoord1_g113.z;
float c1y5_g113 = texCoord1_g113.w;
float4 texCoord2_g113 = IN.ase_texcoord1;
texCoord2_g113.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g113 = texCoord2_g113.x;
float c1w5_g113 = texCoord2_g113.y;
float c2x5_g113 = texCoord2_g113.z;
float c2y5_g113 = texCoord2_g113.w;
float4 texCoord3_g113 = IN.ase_texcoord2;
texCoord3_g113.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g113 = texCoord3_g113.x;
float c2w5_g113 = texCoord3_g113.y;
float F5_g113 = 0.0;
float localCustomChanelSwitch5_g113 = CustomChanelSwitch5_g113( Num5_g113 , c1x5_g113 , c1y5_g113 , c1z5_g113 , c1w5_g113 , c2x5_g113 , c2y5_g113 , c2z5_g113 , c2w5_g113 , F5_g113 );
float Num5_g114 = _MaskTexVOffsetC;
float4 texCoord1_g114 = IN.ase_texcoord;
texCoord1_g114.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g114 = texCoord1_g114.z;
float c1y5_g114 = texCoord1_g114.w;
float4 texCoord2_g114 = IN.ase_texcoord1;
texCoord2_g114.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g114 = texCoord2_g114.x;
float c1w5_g114 = texCoord2_g114.y;
float c2x5_g114 = texCoord2_g114.z;
float c2y5_g114 = texCoord2_g114.w;
float4 texCoord3_g114 = IN.ase_texcoord2;
texCoord3_g114.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g114 = texCoord3_g114.x;
float c2w5_g114 = texCoord3_g114.y;
float F5_g114 = 0.0;
float localCustomChanelSwitch5_g114 = CustomChanelSwitch5_g114( Num5_g114 , c1x5_g114 , c1y5_g114 , c1z5_g114 , c1w5_g114 , c2x5_g114 , c2y5_g114 , c2z5_g114 , c2w5_g114 , F5_g114 );
float2 appendResult446 = (float2((( _CustomMaskTexUOffset )?( F5_g113 ):( 0.0 )) , (( _CustomMaskTexVOffset )?( F5_g114 ):( 0.0 ))));
float cos38_g142 = cos( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float sin38_g142 = sin( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g142 = mul( ( staticSwitch312 + appendResult446 ) - float2( 0.5,0.5 ) , float2x2( cos38_g142 , -sin38_g142 , sin38_g142 , cos38_g142 )) + float2( 0.5,0.5 );
float2 panner5_g142 = ( 1.0 * _Time.y * appendResult4_g142 + rotator38_g142);
float2 break22_g142 = panner5_g142;
float U21_g142 = break22_g142.x;
float V21_g142 = break22_g142.y;
float F21_g142 = 0.0;
float localUVClamp21_g142 = UVClamp21_g142( UVClip21_g142 , UClamp21_g142 , VClamp21_g142 , UMirror21_g142 , VMirror21_g142 , U21_g142 , V21_g142 , F21_g142 );
float2 appendResult44_g142 = (float2(U21_g142 , V21_g142));
float4 tex2DNode7_g142 = tex2D( _MaskTex, appendResult44_g142 );
#ifdef _FMASKTEX_ON
float staticSwitch291 = ( F21_g142 * ( _MaskTexAR == 0.0 ? tex2DNode7_g142.a : tex2DNode7_g142.r ) );
#else
float staticSwitch291 = 1.0;
#endif
float Alpha337 = _MainAlpha;
float Num5_g151 = _DissolveFactorC;
float4 texCoord1_g151 = IN.ase_texcoord;
texCoord1_g151.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g151 = texCoord1_g151.z;
float c1y5_g151 = texCoord1_g151.w;
float4 texCoord2_g151 = IN.ase_texcoord1;
texCoord2_g151.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g151 = texCoord2_g151.x;
float c1w5_g151 = texCoord2_g151.y;
float c2x5_g151 = texCoord2_g151.z;
float c2y5_g151 = texCoord2_g151.w;
float4 texCoord3_g151 = IN.ase_texcoord2;
texCoord3_g151.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g151 = texCoord3_g151.x;
float c2w5_g151 = texCoord3_g151.y;
float F5_g151 = 0.0;
float localCustomChanelSwitch5_g151 = CustomChanelSwitch5_g151( Num5_g151 , c1x5_g151 , c1y5_g151 , c1z5_g151 , c1w5_g151 , c2x5_g151 , c2y5_g151 , c2z5_g151 , c2w5_g151 , F5_g151 );
float temp_output_275_0 = (-_DissolveWide + ((( _CustomDissolve )?( F5_g151 ):( _DissolveFactor )) - 0.0) * (1.0 - -_DissolveWide) / (1.0 - 0.0));
float temp_output_277_0 = ( _DissolveSoft + 0.0001 );
float temp_output_270_0 = (-temp_output_277_0 + (temp_output_275_0 - 0.0) * (1.0 - -temp_output_277_0) / (1.0 - 0.0));
float UVClip21_g140 = _DissolveTexUVClip;
float UClamp21_g140 = _DissolveTexUClamp;
float VClamp21_g140 = _DissolveTexVClamp;
float UMirror21_g140 = _DissolveTexUMirror;
float VMirror21_g140 = _DissolveTexVMirror;
float2 appendResult4_g140 = (float2(_DissolveTexUSpeed , _DissolveTexVSpeed));
float2 uv_DissolveTex = IN.ase_texcoord.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;
float2 temp_output_3_0_g106 = uv_DissolveTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch314 = ( _DistortDissolveTex == 0.0 ? temp_output_3_0_g106 : ( temp_output_3_0_g106 + Distort148 ) );
#else
float2 staticSwitch314 = uv_DissolveTex;
#endif
float Num5_g152 = _DissolveTexUOffsetC;
float4 texCoord1_g152 = IN.ase_texcoord;
texCoord1_g152.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g152 = texCoord1_g152.z;
float c1y5_g152 = texCoord1_g152.w;
float4 texCoord2_g152 = IN.ase_texcoord1;
texCoord2_g152.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g152 = texCoord2_g152.x;
float c1w5_g152 = texCoord2_g152.y;
float c2x5_g152 = texCoord2_g152.z;
float c2y5_g152 = texCoord2_g152.w;
float4 texCoord3_g152 = IN.ase_texcoord2;
texCoord3_g152.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g152 = texCoord3_g152.x;
float c2w5_g152 = texCoord3_g152.y;
float F5_g152 = 0.0;
float localCustomChanelSwitch5_g152 = CustomChanelSwitch5_g152( Num5_g152 , c1x5_g152 , c1y5_g152 , c1z5_g152 , c1w5_g152 , c2x5_g152 , c2y5_g152 , c2z5_g152 , c2w5_g152 , F5_g152 );
float Num5_g102 = _DissolveTexVOffsetC;
float4 texCoord1_g102 = IN.ase_texcoord;
texCoord1_g102.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g102 = texCoord1_g102.z;
float c1y5_g102 = texCoord1_g102.w;
float4 texCoord2_g102 = IN.ase_texcoord1;
texCoord2_g102.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g102 = texCoord2_g102.x;
float c1w5_g102 = texCoord2_g102.y;
float c2x5_g102 = texCoord2_g102.z;
float c2y5_g102 = texCoord2_g102.w;
float4 texCoord3_g102 = IN.ase_texcoord2;
texCoord3_g102.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g102 = texCoord3_g102.x;
float c2w5_g102 = texCoord3_g102.y;
float F5_g102 = 0.0;
float localCustomChanelSwitch5_g102 = CustomChanelSwitch5_g102( Num5_g102 , c1x5_g102 , c1y5_g102 , c1z5_g102 , c1w5_g102 , c2x5_g102 , c2y5_g102 , c2z5_g102 , c2w5_g102 , F5_g102 );
float2 appendResult479 = (float2((( _CustomDissolveTexUOffset )?( F5_g152 ):( 0.0 )) , (( _CustomDissolveTexVOffset )?( F5_g102 ):( 0.0 ))));
float cos38_g140 = cos( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float sin38_g140 = sin( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g140 = mul( ( staticSwitch314 + appendResult479 ) - float2( 0.5,0.5 ) , float2x2( cos38_g140 , -sin38_g140 , sin38_g140 , cos38_g140 )) + float2( 0.5,0.5 );
float2 panner5_g140 = ( 1.0 * _Time.y * appendResult4_g140 + rotator38_g140);
float2 break22_g140 = panner5_g140;
float U21_g140 = break22_g140.x;
float V21_g140 = break22_g140.y;
float F21_g140 = 0.0;
float localUVClamp21_g140 = UVClamp21_g140( UVClip21_g140 , UClamp21_g140 , VClamp21_g140 , UMirror21_g140 , VMirror21_g140 , U21_g140 , V21_g140 , F21_g140 );
float2 appendResult44_g140 = (float2(U21_g140 , V21_g140));
float4 tex2DNode7_g140 = tex2D( _DissolveTex, appendResult44_g140 );
float temp_output_677_20 = ( F21_g140 * ( _DissolveTexAR == 0.0 ? tex2DNode7_g140.a : tex2DNode7_g140.r ) );
float UVClip21_g139 = _DissolvePlusTexUVClip;
float UClamp21_g139 = _DissolvePlusTexUClamp;
float VClamp21_g139 = _DissolvePlusTexVClamp;
float UMirror21_g139 = _DissolvePlusTexUMirror;
float VMirror21_g139 = _DissolvePlusTexVMirror;
float2 appendResult4_g139 = (float2(_DissolvePlusTexUSpeed , _DissolvePlusTexVSpeed));
float2 uv_DissolvePlusTex = IN.ase_texcoord.xy * _DissolvePlusTex_ST.xy + _DissolvePlusTex_ST.zw;
float Num5_g104 = _DissolvePlusTexUOffsetC;
float4 texCoord1_g104 = IN.ase_texcoord;
texCoord1_g104.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g104 = texCoord1_g104.z;
float c1y5_g104 = texCoord1_g104.w;
float4 texCoord2_g104 = IN.ase_texcoord1;
texCoord2_g104.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g104 = texCoord2_g104.x;
float c1w5_g104 = texCoord2_g104.y;
float c2x5_g104 = texCoord2_g104.z;
float c2y5_g104 = texCoord2_g104.w;
float4 texCoord3_g104 = IN.ase_texcoord2;
texCoord3_g104.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g104 = texCoord3_g104.x;
float c2w5_g104 = texCoord3_g104.y;
float F5_g104 = 0.0;
float localCustomChanelSwitch5_g104 = CustomChanelSwitch5_g104( Num5_g104 , c1x5_g104 , c1y5_g104 , c1z5_g104 , c1w5_g104 , c2x5_g104 , c2y5_g104 , c2z5_g104 , c2w5_g104 , F5_g104 );
float Num5_g103 = _DissolvePlusTexVOffsetC;
float4 texCoord1_g103 = IN.ase_texcoord;
texCoord1_g103.xy = IN.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g103 = texCoord1_g103.z;
float c1y5_g103 = texCoord1_g103.w;
float4 texCoord2_g103 = IN.ase_texcoord1;
texCoord2_g103.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g103 = texCoord2_g103.x;
float c1w5_g103 = texCoord2_g103.y;
float c2x5_g103 = texCoord2_g103.z;
float c2y5_g103 = texCoord2_g103.w;
float4 texCoord3_g103 = IN.ase_texcoord2;
texCoord3_g103.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g103 = texCoord3_g103.x;
float c2w5_g103 = texCoord3_g103.y;
float F5_g103 = 0.0;
float localCustomChanelSwitch5_g103 = CustomChanelSwitch5_g103( Num5_g103 , c1x5_g103 , c1y5_g103 , c1z5_g103 , c1w5_g103 , c2x5_g103 , c2y5_g103 , c2z5_g103 , c2w5_g103 , F5_g103 );
float2 appendResult497 = (float2((( _CustomDissolvePlusTexUOffset )?( F5_g104 ):( 0.0 )) , (( _CustomDissolvePlusTexVOffset )?( F5_g103 ):( 0.0 ))));
float cos38_g139 = cos( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float sin38_g139 = sin( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g139 = mul( ( uv_DissolvePlusTex + appendResult497 ) - float2( 0.5,0.5 ) , float2x2( cos38_g139 , -sin38_g139 , sin38_g139 , cos38_g139 )) + float2( 0.5,0.5 );
float2 panner5_g139 = ( 1.0 * _Time.y * appendResult4_g139 + rotator38_g139);
float2 break22_g139 = panner5_g139;
float U21_g139 = break22_g139.x;
float V21_g139 = break22_g139.y;
float F21_g139 = 0.0;
float localUVClamp21_g139 = UVClamp21_g139( UVClip21_g139 , UClamp21_g139 , VClamp21_g139 , UMirror21_g139 , VMirror21_g139 , U21_g139 , V21_g139 , F21_g139 );
float2 appendResult44_g139 = (float2(U21_g139 , V21_g139));
float4 tex2DNode7_g139 = tex2D( _DissolvePlusTex, appendResult44_g139 );
float lerpResult413 = lerp( temp_output_677_20 , ( F21_g139 * ( _DissolvePlusTexAR == 0.0 ? tex2DNode7_g139.a : tex2DNode7_g139.r ) ) , _DissolvePlusIntensity);
#ifdef _FDISSOLVEPLUSTEX_ON
float staticSwitch415 = lerpResult413;
#else
float staticSwitch415 = temp_output_677_20;
#endif
float smoothstepResult256 = smoothstep( temp_output_270_0 , ( temp_output_270_0 + temp_output_277_0 ) , staticSwitch415);
float DissolveAlpha212 = smoothstepResult256;
#ifdef _FDISSOLVETEX_ON
float staticSwitch299 = DissolveAlpha212;
#else
float staticSwitch299 = 1.0;
#endif
float Refnl339 = _ReFnl;
float3 ase_worldPos = IN.ase_texcoord3.xyz;
float3 ase_worldViewDir = ( _WorldSpaceCameraPos.xyz - ase_worldPos );
ase_worldViewDir = normalize(ase_worldViewDir);
float3 ase_worldNormal = IN.ase_texcoord4.xyz;
float fresnelNdotV279 = dot( ase_worldNormal, ase_worldViewDir );
float fresnelNode279 = ( 0.0 + _FnlScale * pow( 1.0 - fresnelNdotV279, _FnlPower ) );
float temp_output_283_0 = saturate( fresnelNode279 );
float ReFnlAlpha318 = ( 1.0 - temp_output_283_0 );
#ifdef _FFNL_ON
float staticSwitch319 = ( Refnl339 == 0.0 ? 1.0 : ReFnlAlpha318 );
#else
float staticSwitch319 = 1.0;
#endif
float4 screenPos = IN.ase_texcoord5;
float4 ase_screenPosNorm = screenPos / screenPos.w;
ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5;
float screenDepth375 = LinearEyeDepth(SHADERGRAPH_SAMPLE_SCENE_DEPTH( ase_screenPosNorm.xy ),_ZBufferParams);
float distanceDepth375 = abs( ( screenDepth375 - LinearEyeDepth( ase_screenPosNorm.z,_ZBufferParams ) ) / ( _DepthFade ) );
#ifdef _FDEPTH_ON
float staticSwitch378 = saturate( distanceDepth375 );
#else
float staticSwitch378 = 1.0;
#endif
float MainAlpha97 = saturate( ( MainTexAlpha138 * staticSwitch291 * IN.ase_color.a * Alpha337 * staticSwitch299 * staticSwitch319 * staticSwitch378 ) );
surfaceDescription.Alpha = MainAlpha97;
surfaceDescription.AlphaClipThreshold = _AlphaClip;
#if _ALPHATEST_ON
float alphaClipThreshold = 0.01f;
#if ALPHA_CLIP_THRESHOLD
alphaClipThreshold = surfaceDescription.AlphaClipThreshold;
#endif
clip(surfaceDescription.Alpha - alphaClipThreshold);
#endif
half4 outColor = 0;
outColor = _SelectionID;
return outColor;
}
ENDHLSL
}
Pass
{
Name "DepthNormals"
Tags { "LightMode"="DepthNormalsOnly" }
ZTest LEqual
ZWrite On
HLSLPROGRAM
#define _RECEIVE_SHADOWS_OFF 1
#define _SURFACE_TYPE_TRANSPARENT 1
#define _ALPHATEST_ON 1
#define ASE_SRP_VERSION 120107
#define REQUIRE_DEPTH_TEXTURE 1
#pragma vertex vert
#pragma fragment frag
#define ATTRIBUTES_NEED_NORMAL
#define ATTRIBUTES_NEED_TANGENT
#define VARYINGS_NEED_NORMAL_WS
#define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#define ASE_NEEDS_VERT_NORMAL
#pragma shader_feature_local _IFVTO_ON
#pragma shader_feature_local _FDISTORTTEX_ON
#pragma shader_feature_local _FMASKTEX_ON
#pragma shader_feature_local _FDISSOLVETEX_ON
#pragma shader_feature_local _FDISSOLVEPLUSTEX_ON
#pragma shader_feature_local _FFNL_ON
#pragma shader_feature_local _FDEPTH_ON
struct VertexInput
{
float4 vertex : POSITION;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VertexOutput
{
float4 clipPos : SV_POSITION;
float3 normalWS : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_texcoord3 : TEXCOORD3;
float4 ase_color : COLOR;
float4 ase_texcoord4 : TEXCOORD4;
float4 ase_texcoord5 : TEXCOORD5;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
CBUFFER_START(UnityPerMaterial)
float4 _RefactionTex_ST;
float4 _MainTexRefine;
float4 _RefactionMaskTex_ST;
float4 _VTOTex_ST;
float4 _DistortTex_ST;
half4 _MainColor;
float4 _DissolvePlusTex_ST;
float4 _MaskTex_ST;
half4 _DissolveColor;
half4 _FnlColor;
float4 _DissolveTex_ST;
float4 _MainTex_ST;
half _DissolveTexVMirror;
half _DissolveTexUSpeed;
float _CustomDissolveTexUOffset;
half _DistortDissolveTex;
float _DissolveTexUOffsetC;
float _CustomDissolveTexVOffset;
float _DissolveTexVOffsetC;
half _DissolveTexVSpeed;
half _CullMode;
half _DissolveTexVClamp;
half _DissolveTexRotator;
half _DissolveTexUClamp;
half _DissolveTexUVClip;
half _DissolveSoft;
half _DissolveWide;
float _DissolveFactorC;
half _DissolveFactor;
float _CustomDissolve;
half _MainTexDesaturate;
float _MainTexCAFator;
half _MainTexRotator;
float _MainTexVOffsetC;
float _CustomMainTexVOffset;
float _MainTexUOffsetC;
half _DissolveTexUMirror;
half _DissolveTexAR;
half _DissolvePlusTexVClamp;
half _DissolvePlusTexUClamp;
half _MaskTexAR;
half _MaskTexRotator;
float _MaskTexVOffsetC;
float _CustomMaskTexVOffset;
float _MaskTexUOffsetC;
float _CustomMaskTexUOffset;
half _DistortMaskTex;
half _MaskTexVSpeed;
half _MaskTexUSpeed;
half _MaskTexVMirror;
half _MaskTexUMirror;
half _MaskTexVClamp;
half _MaskTexUClamp;
half _MaskTexUVClip;
half _MainTexAR;
half _FnlPower;
half _FnlScale;
float _CustomMainTexUOffset;
half _DissolvePlusTexUMirror;
half _DissolvePlusTexVMirror;
half _DissolvePlusTexUSpeed;
half _DissolvePlusTexVSpeed;
float _CustomDissolvePlusTexUOffset;
half _DissolvePlusTexUVClip;
float _DissolvePlusTexUOffsetC;
float _DissolvePlusTexVOffsetC;
half _DissolvePlusTexRotator;
half _DissolvePlusTexAR;
float _DissolvePlusIntensity;
float _MainAlpha;
half _ReFnl;
float _CustomDissolvePlusTexVOffset;
float _DistortVIntensity;
float _CustomDistortFactor;
float _DistortFactorC;
half _RefactionMaskTexVMirror;
half _RefactionMaskTexUMirror;
float _RefactionMaskTexVClamp;
float _RefactionMaskTexUClamp;
float _RefactionMaskTexUVClip;
float _RefactionFactorC;
half _RefactionFactor;
float _CustomRefactionFactor;
half _RefactionTexAR;
half _RefactionTexRotator;
half _RefactionTexVSpeed;
half _RefactionTexUSpeed;
half _RefactionTexVMirror;
half _RefactionTexUMirror;
float _RefactionRemap;
float _MainRGBA;
float _SBCompare;
float _SB;
half _ZTest;
float _RefactionMaskTexDetail;
float _RefactionTexDetail;
float _MainTexDetail;
float _VTOTexDetail;
float _DissolvePlusTexDetail;
float _DissolveTexDetail;
float _DistortTexDetail;
float _MaskTexDetail;
half _Dst;
half _BlendMode;
half _RefactionMaskTexUSpeed;
half _RefactionMaskTexVSpeed;
half _RefactionMaskTexRotator;
half _RefactionMaskTexAR;
half _DistortFactor;
float _DepthFade;
half _DistortTexAR;
half _DistortTexRotator;
half _DistortTexVSpeed;
half _DistortTexUSpeed;
half _DistortTexVMirror;
half _DistortTexUMirror;
float _DistortRemap;
half _DistortMainTex;
half _MainTexVSpeed;
half _MainTexUSpeed;
half _MainTexVMirror;
half _MainTexUMirror;
float _DistortUIntensity;
half _MainTexVClamp;
half _MainTexUVClip;
half _Scr;
float _VTOScaleC;
float _VTOScale;
float _CustomVTO;
half _VTOTexAR;
half _VTOTexRotator;
half _VTOTexVSpeed;
half _VTOTexUSpeed;
half _VTOTexVMirror;
half _VTOTexUMirror;
half _VTOTexVClamp;
half _VTOTexUClamp;
half _VTOTexUVClip;
half _MainTexUClamp;
float _AlphaClip;
#ifdef ASE_TESSELLATION
float _TessPhongStrength;
float _TessValue;
float _TessMin;
float _TessMax;
float _TessEdgeLength;
float _TessMaxDisp;
#endif
CBUFFER_END
sampler2D _VTOTex;
sampler2D _MainTex;
sampler2D _DistortTex;
sampler2D _MaskTex;
sampler2D _DissolveTex;
sampler2D _DissolvePlusTex;
uniform float4 _CameraDepthTexture_TexelSize;
float UVClamp21_g144( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g117( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g146( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g147( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g119( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g118( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g143( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g113( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g114( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g142( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g151( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g152( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g102( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g140( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g104( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g103( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g139( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
struct SurfaceDescription
{
float Alpha;
float AlphaClipThreshold;
};
VertexOutput VertexFunction(VertexInput v )
{
VertexOutput o;
ZERO_INITIALIZE(VertexOutput, o);
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
float3 temp_cast_0 = (0.0).xxx;
float UVClip21_g144 = _VTOTexUVClip;
float UClamp21_g144 = _VTOTexUClamp;
float VClamp21_g144 = _VTOTexVClamp;
float UMirror21_g144 = _VTOTexUMirror;
float VMirror21_g144 = _VTOTexVMirror;
float2 appendResult4_g144 = (float2(_VTOTexUSpeed , _VTOTexVSpeed));
float2 uv_VTOTex = v.ase_texcoord * _VTOTex_ST.xy + _VTOTex_ST.zw;
float cos38_g144 = cos( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float sin38_g144 = sin( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g144 = mul( uv_VTOTex - float2( 0.5,0.5 ) , float2x2( cos38_g144 , -sin38_g144 , sin38_g144 , cos38_g144 )) + float2( 0.5,0.5 );
float2 panner5_g144 = ( 1.0 * _Time.y * appendResult4_g144 + rotator38_g144);
float2 break22_g144 = panner5_g144;
float U21_g144 = break22_g144.x;
float V21_g144 = break22_g144.y;
float F21_g144 = 0.0;
float localUVClamp21_g144 = UVClamp21_g144( UVClip21_g144 , UClamp21_g144 , VClamp21_g144 , UMirror21_g144 , VMirror21_g144 , U21_g144 , V21_g144 , F21_g144 );
float2 appendResult44_g144 = (float2(U21_g144 , V21_g144));
float4 tex2DNode7_g144 = tex2Dlod( _VTOTex, float4( appendResult44_g144, 0, 0.0) );
float Num5_g117 = _VTOScaleC;
float4 texCoord1_g117 = v.ase_texcoord;
texCoord1_g117.xy = v.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g117 = texCoord1_g117.z;
float c1y5_g117 = texCoord1_g117.w;
float4 texCoord2_g117 = v.ase_texcoord1;
texCoord2_g117.xy = v.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g117 = texCoord2_g117.x;
float c1w5_g117 = texCoord2_g117.y;
float c2x5_g117 = texCoord2_g117.z;
float c2y5_g117 = texCoord2_g117.w;
float4 texCoord3_g117 = v.ase_texcoord2;
texCoord3_g117.xy = v.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g117 = texCoord3_g117.x;
float c2w5_g117 = texCoord3_g117.y;
float F5_g117 = 0.0;
float localCustomChanelSwitch5_g117 = CustomChanelSwitch5_g117( Num5_g117 , c1x5_g117 , c1y5_g117 , c1z5_g117 , c1w5_g117 , c2x5_g117 , c2y5_g117 , c2z5_g117 , c2w5_g117 , F5_g117 );
float3 VTO387 = ( v.ase_normal * ( F21_g144 * ( _VTOTexAR == 0.0 ? tex2DNode7_g144.a : tex2DNode7_g144.r ) ) * (( _CustomVTO )?( F5_g117 ):( _VTOScale )) );
#ifdef _IFVTO_ON
float3 staticSwitch390 = VTO387;
#else
float3 staticSwitch390 = temp_cast_0;
#endif
float3 ase_worldPos = TransformObjectToWorld( (v.vertex).xyz );
o.ase_texcoord4.xyz = ase_worldPos;
float4 ase_clipPos = TransformObjectToHClip((v.vertex).xyz);
float4 screenPos = ComputeScreenPos(ase_clipPos);
o.ase_texcoord5 = screenPos;
o.ase_texcoord1 = v.ase_texcoord;
o.ase_texcoord2 = v.ase_texcoord1;
o.ase_texcoord3 = v.ase_texcoord2;
o.ase_color = v.ase_color;
//setting value to unused interpolator channels and avoid initialization warnings
o.ase_texcoord4.w = 0;
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = v.vertex.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
float3 vertexValue = staticSwitch390;
#ifdef ASE_ABSOLUTE_VERTEX_POS
v.vertex.xyz = vertexValue;
#else
v.vertex.xyz += vertexValue;
#endif
v.ase_normal = v.ase_normal;
float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);
o.clipPos = TransformWorldToHClip(positionWS);
o.normalWS.xyz = normalWS;
return o;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 vertex : INTERNALTESSPOS;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( VertexInput v )
{
VertexControl o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
o.vertex = v.vertex;
o.ase_normal = v.ase_normal;
o.ase_texcoord = v.ase_texcoord;
o.ase_texcoord1 = v.ase_texcoord1;
o.ase_texcoord2 = v.ase_texcoord2;
o.ase_color = v.ase_color;
return o;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
{
TessellationFactors o;
float4 tf = 1;
float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
return o;
}
[domain("tri")]
[partitioning("fractional_odd")]
[outputtopology("triangle_cw")]
[patchconstantfunc("TessellationFunction")]
[outputcontrolpoints(3)]
VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
{
return patch[id];
}
[domain("tri")]
VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
VertexInput o = (VertexInput) 0;
o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
o.ase_texcoord2 = patch[0].ase_texcoord2 * bary.x + patch[1].ase_texcoord2 * bary.y + patch[2].ase_texcoord2 * bary.z;
o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
float phongStrength = _TessPhongStrength;
o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
return VertexFunction(o);
}
#else
VertexOutput vert ( VertexInput v )
{
return VertexFunction( v );
}
#endif
half4 frag(VertexOutput IN ) : SV_TARGET
{
SurfaceDescription surfaceDescription = (SurfaceDescription)0;
float UVClip21_g143 = _MainTexUVClip;
float UClamp21_g143 = _MainTexUClamp;
float VClamp21_g143 = _MainTexVClamp;
float UMirror21_g143 = _MainTexUMirror;
float VMirror21_g143 = _MainTexVMirror;
float2 appendResult4_g143 = (float2(_MainTexUSpeed , _MainTexVSpeed));
float2 uv_MainTex = IN.ase_texcoord1.xy * _MainTex_ST.xy + _MainTex_ST.zw;
float2 temp_output_3_0_g145 = uv_MainTex;
float UVClip21_g146 = 1.0;
float UClamp21_g146 = 0.0;
float VClamp21_g146 = 0.0;
float UMirror21_g146 = _DistortTexUMirror;
float VMirror21_g146 = _DistortTexVMirror;
float2 appendResult4_g146 = (float2(_DistortTexUSpeed , _DistortTexVSpeed));
float2 uv_DistortTex = IN.ase_texcoord1.xy * _DistortTex_ST.xy + _DistortTex_ST.zw;
float cos38_g146 = cos( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float sin38_g146 = sin( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g146 = mul( uv_DistortTex - float2( 0.5,0.5 ) , float2x2( cos38_g146 , -sin38_g146 , sin38_g146 , cos38_g146 )) + float2( 0.5,0.5 );
float2 panner5_g146 = ( 1.0 * _Time.y * appendResult4_g146 + rotator38_g146);
float2 break22_g146 = panner5_g146;
float U21_g146 = break22_g146.x;
float V21_g146 = break22_g146.y;
float F21_g146 = 0.0;
float localUVClamp21_g146 = UVClamp21_g146( UVClip21_g146 , UClamp21_g146 , VClamp21_g146 , UMirror21_g146 , VMirror21_g146 , U21_g146 , V21_g146 , F21_g146 );
float2 appendResult44_g146 = (float2(U21_g146 , V21_g146));
float4 tex2DNode7_g146 = tex2D( _DistortTex, appendResult44_g146 );
float temp_output_675_20 = ( F21_g146 * ( _DistortTexAR == 0.0 ? tex2DNode7_g146.a : tex2DNode7_g146.r ) );
float Num5_g147 = _DistortFactorC;
float4 texCoord1_g147 = IN.ase_texcoord1;
texCoord1_g147.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g147 = texCoord1_g147.z;
float c1y5_g147 = texCoord1_g147.w;
float4 texCoord2_g147 = IN.ase_texcoord2;
texCoord2_g147.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g147 = texCoord2_g147.x;
float c1w5_g147 = texCoord2_g147.y;
float c2x5_g147 = texCoord2_g147.z;
float c2y5_g147 = texCoord2_g147.w;
float4 texCoord3_g147 = IN.ase_texcoord3;
texCoord3_g147.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g147 = texCoord3_g147.x;
float c2w5_g147 = texCoord3_g147.y;
float F5_g147 = 0.0;
float localCustomChanelSwitch5_g147 = CustomChanelSwitch5_g147( Num5_g147 , c1x5_g147 , c1y5_g147 , c1z5_g147 , c1w5_g147 , c2x5_g147 , c2y5_g147 , c2z5_g147 , c2w5_g147 , F5_g147 );
float2 appendResult465 = (float2(_DistortUIntensity , _DistortVIntensity));
float2 Distort148 = ( (( _DistortRemap )?( (-0.5 + (temp_output_675_20 - 0.0) * (0.5 - -0.5) / (1.0 - 0.0)) ):( temp_output_675_20 )) * (( _CustomDistortFactor )?( F5_g147 ):( _DistortFactor )) * appendResult465 );
#ifdef _FDISTORTTEX_ON
float2 staticSwitch316 = ( _DistortMainTex == 0.0 ? temp_output_3_0_g145 : ( temp_output_3_0_g145 + Distort148 ) );
#else
float2 staticSwitch316 = uv_MainTex;
#endif
float Num5_g119 = _MainTexUOffsetC;
float4 texCoord1_g119 = IN.ase_texcoord1;
texCoord1_g119.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g119 = texCoord1_g119.z;
float c1y5_g119 = texCoord1_g119.w;
float4 texCoord2_g119 = IN.ase_texcoord2;
texCoord2_g119.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g119 = texCoord2_g119.x;
float c1w5_g119 = texCoord2_g119.y;
float c2x5_g119 = texCoord2_g119.z;
float c2y5_g119 = texCoord2_g119.w;
float4 texCoord3_g119 = IN.ase_texcoord3;
texCoord3_g119.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g119 = texCoord3_g119.x;
float c2w5_g119 = texCoord3_g119.y;
float F5_g119 = 0.0;
float localCustomChanelSwitch5_g119 = CustomChanelSwitch5_g119( Num5_g119 , c1x5_g119 , c1y5_g119 , c1z5_g119 , c1w5_g119 , c2x5_g119 , c2y5_g119 , c2z5_g119 , c2w5_g119 , F5_g119 );
float Num5_g118 = _MainTexVOffsetC;
float4 texCoord1_g118 = IN.ase_texcoord1;
texCoord1_g118.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g118 = texCoord1_g118.z;
float c1y5_g118 = texCoord1_g118.w;
float4 texCoord2_g118 = IN.ase_texcoord2;
texCoord2_g118.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g118 = texCoord2_g118.x;
float c1w5_g118 = texCoord2_g118.y;
float c2x5_g118 = texCoord2_g118.z;
float c2y5_g118 = texCoord2_g118.w;
float4 texCoord3_g118 = IN.ase_texcoord3;
texCoord3_g118.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g118 = texCoord3_g118.x;
float c2w5_g118 = texCoord3_g118.y;
float F5_g118 = 0.0;
float localCustomChanelSwitch5_g118 = CustomChanelSwitch5_g118( Num5_g118 , c1x5_g118 , c1y5_g118 , c1z5_g118 , c1w5_g118 , c2x5_g118 , c2y5_g118 , c2z5_g118 , c2w5_g118 , F5_g118 );
float2 appendResult330 = (float2((( _CustomMainTexUOffset )?( F5_g119 ):( 0.0 )) , (( _CustomMainTexVOffset )?( F5_g118 ):( 0.0 ))));
float cos38_g143 = cos( ( _MainTexRotator * ( 2.0 * PI ) ) );
float sin38_g143 = sin( ( _MainTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g143 = mul( ( staticSwitch316 + appendResult330 ) - float2( 0.5,0.5 ) , float2x2( cos38_g143 , -sin38_g143 , sin38_g143 , cos38_g143 )) + float2( 0.5,0.5 );
float2 panner5_g143 = ( 1.0 * _Time.y * appendResult4_g143 + rotator38_g143);
float2 break22_g143 = panner5_g143;
float U21_g143 = break22_g143.x;
float V21_g143 = break22_g143.y;
float F21_g143 = 0.0;
float localUVClamp21_g143 = UVClamp21_g143( UVClip21_g143 , UClamp21_g143 , VClamp21_g143 , UMirror21_g143 , VMirror21_g143 , U21_g143 , V21_g143 , F21_g143 );
float2 appendResult44_g143 = (float2(U21_g143 , V21_g143));
float4 tex2DNode7_g143 = tex2D( _MainTex, appendResult44_g143 );
float MainTexAlpha138 = ( _MainColor.a * ( F21_g143 * ( _MainTexAR == 0.0 ? tex2DNode7_g143.a : tex2DNode7_g143.r ) ) );
float UVClip21_g142 = _MaskTexUVClip;
float UClamp21_g142 = _MaskTexUClamp;
float VClamp21_g142 = _MaskTexVClamp;
float UMirror21_g142 = _MaskTexUMirror;
float VMirror21_g142 = _MaskTexVMirror;
float2 appendResult4_g142 = (float2(_MaskTexUSpeed , _MaskTexVSpeed));
float2 uv_MaskTex = IN.ase_texcoord1.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;
float2 temp_output_3_0_g115 = uv_MaskTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch312 = ( _DistortMaskTex == 0.0 ? temp_output_3_0_g115 : ( temp_output_3_0_g115 + Distort148 ) );
#else
float2 staticSwitch312 = uv_MaskTex;
#endif
float Num5_g113 = _MaskTexUOffsetC;
float4 texCoord1_g113 = IN.ase_texcoord1;
texCoord1_g113.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g113 = texCoord1_g113.z;
float c1y5_g113 = texCoord1_g113.w;
float4 texCoord2_g113 = IN.ase_texcoord2;
texCoord2_g113.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g113 = texCoord2_g113.x;
float c1w5_g113 = texCoord2_g113.y;
float c2x5_g113 = texCoord2_g113.z;
float c2y5_g113 = texCoord2_g113.w;
float4 texCoord3_g113 = IN.ase_texcoord3;
texCoord3_g113.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g113 = texCoord3_g113.x;
float c2w5_g113 = texCoord3_g113.y;
float F5_g113 = 0.0;
float localCustomChanelSwitch5_g113 = CustomChanelSwitch5_g113( Num5_g113 , c1x5_g113 , c1y5_g113 , c1z5_g113 , c1w5_g113 , c2x5_g113 , c2y5_g113 , c2z5_g113 , c2w5_g113 , F5_g113 );
float Num5_g114 = _MaskTexVOffsetC;
float4 texCoord1_g114 = IN.ase_texcoord1;
texCoord1_g114.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g114 = texCoord1_g114.z;
float c1y5_g114 = texCoord1_g114.w;
float4 texCoord2_g114 = IN.ase_texcoord2;
texCoord2_g114.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g114 = texCoord2_g114.x;
float c1w5_g114 = texCoord2_g114.y;
float c2x5_g114 = texCoord2_g114.z;
float c2y5_g114 = texCoord2_g114.w;
float4 texCoord3_g114 = IN.ase_texcoord3;
texCoord3_g114.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g114 = texCoord3_g114.x;
float c2w5_g114 = texCoord3_g114.y;
float F5_g114 = 0.0;
float localCustomChanelSwitch5_g114 = CustomChanelSwitch5_g114( Num5_g114 , c1x5_g114 , c1y5_g114 , c1z5_g114 , c1w5_g114 , c2x5_g114 , c2y5_g114 , c2z5_g114 , c2w5_g114 , F5_g114 );
float2 appendResult446 = (float2((( _CustomMaskTexUOffset )?( F5_g113 ):( 0.0 )) , (( _CustomMaskTexVOffset )?( F5_g114 ):( 0.0 ))));
float cos38_g142 = cos( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float sin38_g142 = sin( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g142 = mul( ( staticSwitch312 + appendResult446 ) - float2( 0.5,0.5 ) , float2x2( cos38_g142 , -sin38_g142 , sin38_g142 , cos38_g142 )) + float2( 0.5,0.5 );
float2 panner5_g142 = ( 1.0 * _Time.y * appendResult4_g142 + rotator38_g142);
float2 break22_g142 = panner5_g142;
float U21_g142 = break22_g142.x;
float V21_g142 = break22_g142.y;
float F21_g142 = 0.0;
float localUVClamp21_g142 = UVClamp21_g142( UVClip21_g142 , UClamp21_g142 , VClamp21_g142 , UMirror21_g142 , VMirror21_g142 , U21_g142 , V21_g142 , F21_g142 );
float2 appendResult44_g142 = (float2(U21_g142 , V21_g142));
float4 tex2DNode7_g142 = tex2D( _MaskTex, appendResult44_g142 );
#ifdef _FMASKTEX_ON
float staticSwitch291 = ( F21_g142 * ( _MaskTexAR == 0.0 ? tex2DNode7_g142.a : tex2DNode7_g142.r ) );
#else
float staticSwitch291 = 1.0;
#endif
float Alpha337 = _MainAlpha;
float Num5_g151 = _DissolveFactorC;
float4 texCoord1_g151 = IN.ase_texcoord1;
texCoord1_g151.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g151 = texCoord1_g151.z;
float c1y5_g151 = texCoord1_g151.w;
float4 texCoord2_g151 = IN.ase_texcoord2;
texCoord2_g151.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g151 = texCoord2_g151.x;
float c1w5_g151 = texCoord2_g151.y;
float c2x5_g151 = texCoord2_g151.z;
float c2y5_g151 = texCoord2_g151.w;
float4 texCoord3_g151 = IN.ase_texcoord3;
texCoord3_g151.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g151 = texCoord3_g151.x;
float c2w5_g151 = texCoord3_g151.y;
float F5_g151 = 0.0;
float localCustomChanelSwitch5_g151 = CustomChanelSwitch5_g151( Num5_g151 , c1x5_g151 , c1y5_g151 , c1z5_g151 , c1w5_g151 , c2x5_g151 , c2y5_g151 , c2z5_g151 , c2w5_g151 , F5_g151 );
float temp_output_275_0 = (-_DissolveWide + ((( _CustomDissolve )?( F5_g151 ):( _DissolveFactor )) - 0.0) * (1.0 - -_DissolveWide) / (1.0 - 0.0));
float temp_output_277_0 = ( _DissolveSoft + 0.0001 );
float temp_output_270_0 = (-temp_output_277_0 + (temp_output_275_0 - 0.0) * (1.0 - -temp_output_277_0) / (1.0 - 0.0));
float UVClip21_g140 = _DissolveTexUVClip;
float UClamp21_g140 = _DissolveTexUClamp;
float VClamp21_g140 = _DissolveTexVClamp;
float UMirror21_g140 = _DissolveTexUMirror;
float VMirror21_g140 = _DissolveTexVMirror;
float2 appendResult4_g140 = (float2(_DissolveTexUSpeed , _DissolveTexVSpeed));
float2 uv_DissolveTex = IN.ase_texcoord1.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;
float2 temp_output_3_0_g106 = uv_DissolveTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch314 = ( _DistortDissolveTex == 0.0 ? temp_output_3_0_g106 : ( temp_output_3_0_g106 + Distort148 ) );
#else
float2 staticSwitch314 = uv_DissolveTex;
#endif
float Num5_g152 = _DissolveTexUOffsetC;
float4 texCoord1_g152 = IN.ase_texcoord1;
texCoord1_g152.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g152 = texCoord1_g152.z;
float c1y5_g152 = texCoord1_g152.w;
float4 texCoord2_g152 = IN.ase_texcoord2;
texCoord2_g152.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g152 = texCoord2_g152.x;
float c1w5_g152 = texCoord2_g152.y;
float c2x5_g152 = texCoord2_g152.z;
float c2y5_g152 = texCoord2_g152.w;
float4 texCoord3_g152 = IN.ase_texcoord3;
texCoord3_g152.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g152 = texCoord3_g152.x;
float c2w5_g152 = texCoord3_g152.y;
float F5_g152 = 0.0;
float localCustomChanelSwitch5_g152 = CustomChanelSwitch5_g152( Num5_g152 , c1x5_g152 , c1y5_g152 , c1z5_g152 , c1w5_g152 , c2x5_g152 , c2y5_g152 , c2z5_g152 , c2w5_g152 , F5_g152 );
float Num5_g102 = _DissolveTexVOffsetC;
float4 texCoord1_g102 = IN.ase_texcoord1;
texCoord1_g102.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g102 = texCoord1_g102.z;
float c1y5_g102 = texCoord1_g102.w;
float4 texCoord2_g102 = IN.ase_texcoord2;
texCoord2_g102.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g102 = texCoord2_g102.x;
float c1w5_g102 = texCoord2_g102.y;
float c2x5_g102 = texCoord2_g102.z;
float c2y5_g102 = texCoord2_g102.w;
float4 texCoord3_g102 = IN.ase_texcoord3;
texCoord3_g102.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g102 = texCoord3_g102.x;
float c2w5_g102 = texCoord3_g102.y;
float F5_g102 = 0.0;
float localCustomChanelSwitch5_g102 = CustomChanelSwitch5_g102( Num5_g102 , c1x5_g102 , c1y5_g102 , c1z5_g102 , c1w5_g102 , c2x5_g102 , c2y5_g102 , c2z5_g102 , c2w5_g102 , F5_g102 );
float2 appendResult479 = (float2((( _CustomDissolveTexUOffset )?( F5_g152 ):( 0.0 )) , (( _CustomDissolveTexVOffset )?( F5_g102 ):( 0.0 ))));
float cos38_g140 = cos( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float sin38_g140 = sin( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g140 = mul( ( staticSwitch314 + appendResult479 ) - float2( 0.5,0.5 ) , float2x2( cos38_g140 , -sin38_g140 , sin38_g140 , cos38_g140 )) + float2( 0.5,0.5 );
float2 panner5_g140 = ( 1.0 * _Time.y * appendResult4_g140 + rotator38_g140);
float2 break22_g140 = panner5_g140;
float U21_g140 = break22_g140.x;
float V21_g140 = break22_g140.y;
float F21_g140 = 0.0;
float localUVClamp21_g140 = UVClamp21_g140( UVClip21_g140 , UClamp21_g140 , VClamp21_g140 , UMirror21_g140 , VMirror21_g140 , U21_g140 , V21_g140 , F21_g140 );
float2 appendResult44_g140 = (float2(U21_g140 , V21_g140));
float4 tex2DNode7_g140 = tex2D( _DissolveTex, appendResult44_g140 );
float temp_output_677_20 = ( F21_g140 * ( _DissolveTexAR == 0.0 ? tex2DNode7_g140.a : tex2DNode7_g140.r ) );
float UVClip21_g139 = _DissolvePlusTexUVClip;
float UClamp21_g139 = _DissolvePlusTexUClamp;
float VClamp21_g139 = _DissolvePlusTexVClamp;
float UMirror21_g139 = _DissolvePlusTexUMirror;
float VMirror21_g139 = _DissolvePlusTexVMirror;
float2 appendResult4_g139 = (float2(_DissolvePlusTexUSpeed , _DissolvePlusTexVSpeed));
float2 uv_DissolvePlusTex = IN.ase_texcoord1.xy * _DissolvePlusTex_ST.xy + _DissolvePlusTex_ST.zw;
float Num5_g104 = _DissolvePlusTexUOffsetC;
float4 texCoord1_g104 = IN.ase_texcoord1;
texCoord1_g104.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g104 = texCoord1_g104.z;
float c1y5_g104 = texCoord1_g104.w;
float4 texCoord2_g104 = IN.ase_texcoord2;
texCoord2_g104.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g104 = texCoord2_g104.x;
float c1w5_g104 = texCoord2_g104.y;
float c2x5_g104 = texCoord2_g104.z;
float c2y5_g104 = texCoord2_g104.w;
float4 texCoord3_g104 = IN.ase_texcoord3;
texCoord3_g104.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g104 = texCoord3_g104.x;
float c2w5_g104 = texCoord3_g104.y;
float F5_g104 = 0.0;
float localCustomChanelSwitch5_g104 = CustomChanelSwitch5_g104( Num5_g104 , c1x5_g104 , c1y5_g104 , c1z5_g104 , c1w5_g104 , c2x5_g104 , c2y5_g104 , c2z5_g104 , c2w5_g104 , F5_g104 );
float Num5_g103 = _DissolvePlusTexVOffsetC;
float4 texCoord1_g103 = IN.ase_texcoord1;
texCoord1_g103.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g103 = texCoord1_g103.z;
float c1y5_g103 = texCoord1_g103.w;
float4 texCoord2_g103 = IN.ase_texcoord2;
texCoord2_g103.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g103 = texCoord2_g103.x;
float c1w5_g103 = texCoord2_g103.y;
float c2x5_g103 = texCoord2_g103.z;
float c2y5_g103 = texCoord2_g103.w;
float4 texCoord3_g103 = IN.ase_texcoord3;
texCoord3_g103.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g103 = texCoord3_g103.x;
float c2w5_g103 = texCoord3_g103.y;
float F5_g103 = 0.0;
float localCustomChanelSwitch5_g103 = CustomChanelSwitch5_g103( Num5_g103 , c1x5_g103 , c1y5_g103 , c1z5_g103 , c1w5_g103 , c2x5_g103 , c2y5_g103 , c2z5_g103 , c2w5_g103 , F5_g103 );
float2 appendResult497 = (float2((( _CustomDissolvePlusTexUOffset )?( F5_g104 ):( 0.0 )) , (( _CustomDissolvePlusTexVOffset )?( F5_g103 ):( 0.0 ))));
float cos38_g139 = cos( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float sin38_g139 = sin( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g139 = mul( ( uv_DissolvePlusTex + appendResult497 ) - float2( 0.5,0.5 ) , float2x2( cos38_g139 , -sin38_g139 , sin38_g139 , cos38_g139 )) + float2( 0.5,0.5 );
float2 panner5_g139 = ( 1.0 * _Time.y * appendResult4_g139 + rotator38_g139);
float2 break22_g139 = panner5_g139;
float U21_g139 = break22_g139.x;
float V21_g139 = break22_g139.y;
float F21_g139 = 0.0;
float localUVClamp21_g139 = UVClamp21_g139( UVClip21_g139 , UClamp21_g139 , VClamp21_g139 , UMirror21_g139 , VMirror21_g139 , U21_g139 , V21_g139 , F21_g139 );
float2 appendResult44_g139 = (float2(U21_g139 , V21_g139));
float4 tex2DNode7_g139 = tex2D( _DissolvePlusTex, appendResult44_g139 );
float lerpResult413 = lerp( temp_output_677_20 , ( F21_g139 * ( _DissolvePlusTexAR == 0.0 ? tex2DNode7_g139.a : tex2DNode7_g139.r ) ) , _DissolvePlusIntensity);
#ifdef _FDISSOLVEPLUSTEX_ON
float staticSwitch415 = lerpResult413;
#else
float staticSwitch415 = temp_output_677_20;
#endif
float smoothstepResult256 = smoothstep( temp_output_270_0 , ( temp_output_270_0 + temp_output_277_0 ) , staticSwitch415);
float DissolveAlpha212 = smoothstepResult256;
#ifdef _FDISSOLVETEX_ON
float staticSwitch299 = DissolveAlpha212;
#else
float staticSwitch299 = 1.0;
#endif
float Refnl339 = _ReFnl;
float3 ase_worldPos = IN.ase_texcoord4.xyz;
float3 ase_worldViewDir = ( _WorldSpaceCameraPos.xyz - ase_worldPos );
ase_worldViewDir = normalize(ase_worldViewDir);
float fresnelNdotV279 = dot( IN.normalWS, ase_worldViewDir );
float fresnelNode279 = ( 0.0 + _FnlScale * pow( 1.0 - fresnelNdotV279, _FnlPower ) );
float temp_output_283_0 = saturate( fresnelNode279 );
float ReFnlAlpha318 = ( 1.0 - temp_output_283_0 );
#ifdef _FFNL_ON
float staticSwitch319 = ( Refnl339 == 0.0 ? 1.0 : ReFnlAlpha318 );
#else
float staticSwitch319 = 1.0;
#endif
float4 screenPos = IN.ase_texcoord5;
float4 ase_screenPosNorm = screenPos / screenPos.w;
ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5;
float screenDepth375 = LinearEyeDepth(SHADERGRAPH_SAMPLE_SCENE_DEPTH( ase_screenPosNorm.xy ),_ZBufferParams);
float distanceDepth375 = abs( ( screenDepth375 - LinearEyeDepth( ase_screenPosNorm.z,_ZBufferParams ) ) / ( _DepthFade ) );
#ifdef _FDEPTH_ON
float staticSwitch378 = saturate( distanceDepth375 );
#else
float staticSwitch378 = 1.0;
#endif
float MainAlpha97 = saturate( ( MainTexAlpha138 * staticSwitch291 * IN.ase_color.a * Alpha337 * staticSwitch299 * staticSwitch319 * staticSwitch378 ) );
surfaceDescription.Alpha = MainAlpha97;
surfaceDescription.AlphaClipThreshold = _AlphaClip;
#if _ALPHATEST_ON
clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);
#endif
#ifdef LOD_FADE_CROSSFADE
LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
#endif
float3 normalWS = IN.normalWS;
return half4(NormalizeNormalPerPixel(normalWS), 0.0);
}
ENDHLSL
}
Pass
{
Name "DepthNormalsOnly"
Tags { "LightMode"="DepthNormalsOnly" }
ZTest LEqual
ZWrite On
HLSLPROGRAM
#define _RECEIVE_SHADOWS_OFF 1
#define _SURFACE_TYPE_TRANSPARENT 1
#define _ALPHATEST_ON 1
#define ASE_SRP_VERSION 120107
#define REQUIRE_DEPTH_TEXTURE 1
#pragma exclude_renderers glcore gles gles3
#pragma vertex vert
#pragma fragment frag
#define ATTRIBUTES_NEED_NORMAL
#define ATTRIBUTES_NEED_TANGENT
#define ATTRIBUTES_NEED_TEXCOORD1
#define VARYINGS_NEED_NORMAL_WS
#define VARYINGS_NEED_TANGENT_WS
#define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Color.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/Texture.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#define ASE_NEEDS_VERT_NORMAL
#pragma shader_feature_local _IFVTO_ON
#pragma shader_feature_local _FDISTORTTEX_ON
#pragma shader_feature_local _FMASKTEX_ON
#pragma shader_feature_local _FDISSOLVETEX_ON
#pragma shader_feature_local _FDISSOLVEPLUSTEX_ON
#pragma shader_feature_local _FFNL_ON
#pragma shader_feature_local _FDEPTH_ON
struct VertexInput
{
float4 vertex : POSITION;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VertexOutput
{
float4 clipPos : SV_POSITION;
float3 normalWS : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_texcoord3 : TEXCOORD3;
float4 ase_color : COLOR;
float4 ase_texcoord4 : TEXCOORD4;
float4 ase_texcoord5 : TEXCOORD5;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
CBUFFER_START(UnityPerMaterial)
float4 _RefactionTex_ST;
float4 _MainTexRefine;
float4 _RefactionMaskTex_ST;
float4 _VTOTex_ST;
float4 _DistortTex_ST;
half4 _MainColor;
float4 _DissolvePlusTex_ST;
float4 _MaskTex_ST;
half4 _DissolveColor;
half4 _FnlColor;
float4 _DissolveTex_ST;
float4 _MainTex_ST;
half _DissolveTexVMirror;
half _DissolveTexUSpeed;
float _CustomDissolveTexUOffset;
half _DistortDissolveTex;
float _DissolveTexUOffsetC;
float _CustomDissolveTexVOffset;
float _DissolveTexVOffsetC;
half _DissolveTexVSpeed;
half _CullMode;
half _DissolveTexVClamp;
half _DissolveTexRotator;
half _DissolveTexUClamp;
half _DissolveTexUVClip;
half _DissolveSoft;
half _DissolveWide;
float _DissolveFactorC;
half _DissolveFactor;
float _CustomDissolve;
half _MainTexDesaturate;
float _MainTexCAFator;
half _MainTexRotator;
float _MainTexVOffsetC;
float _CustomMainTexVOffset;
float _MainTexUOffsetC;
half _DissolveTexUMirror;
half _DissolveTexAR;
half _DissolvePlusTexVClamp;
half _DissolvePlusTexUClamp;
half _MaskTexAR;
half _MaskTexRotator;
float _MaskTexVOffsetC;
float _CustomMaskTexVOffset;
float _MaskTexUOffsetC;
float _CustomMaskTexUOffset;
half _DistortMaskTex;
half _MaskTexVSpeed;
half _MaskTexUSpeed;
half _MaskTexVMirror;
half _MaskTexUMirror;
half _MaskTexVClamp;
half _MaskTexUClamp;
half _MaskTexUVClip;
half _MainTexAR;
half _FnlPower;
half _FnlScale;
float _CustomMainTexUOffset;
half _DissolvePlusTexUMirror;
half _DissolvePlusTexVMirror;
half _DissolvePlusTexUSpeed;
half _DissolvePlusTexVSpeed;
float _CustomDissolvePlusTexUOffset;
half _DissolvePlusTexUVClip;
float _DissolvePlusTexUOffsetC;
float _DissolvePlusTexVOffsetC;
half _DissolvePlusTexRotator;
half _DissolvePlusTexAR;
float _DissolvePlusIntensity;
float _MainAlpha;
half _ReFnl;
float _CustomDissolvePlusTexVOffset;
float _DistortVIntensity;
float _CustomDistortFactor;
float _DistortFactorC;
half _RefactionMaskTexVMirror;
half _RefactionMaskTexUMirror;
float _RefactionMaskTexVClamp;
float _RefactionMaskTexUClamp;
float _RefactionMaskTexUVClip;
float _RefactionFactorC;
half _RefactionFactor;
float _CustomRefactionFactor;
half _RefactionTexAR;
half _RefactionTexRotator;
half _RefactionTexVSpeed;
half _RefactionTexUSpeed;
half _RefactionTexVMirror;
half _RefactionTexUMirror;
float _RefactionRemap;
float _MainRGBA;
float _SBCompare;
float _SB;
half _ZTest;
float _RefactionMaskTexDetail;
float _RefactionTexDetail;
float _MainTexDetail;
float _VTOTexDetail;
float _DissolvePlusTexDetail;
float _DissolveTexDetail;
float _DistortTexDetail;
float _MaskTexDetail;
half _Dst;
half _BlendMode;
half _RefactionMaskTexUSpeed;
half _RefactionMaskTexVSpeed;
half _RefactionMaskTexRotator;
half _RefactionMaskTexAR;
half _DistortFactor;
float _DepthFade;
half _DistortTexAR;
half _DistortTexRotator;
half _DistortTexVSpeed;
half _DistortTexUSpeed;
half _DistortTexVMirror;
half _DistortTexUMirror;
float _DistortRemap;
half _DistortMainTex;
half _MainTexVSpeed;
half _MainTexUSpeed;
half _MainTexVMirror;
half _MainTexUMirror;
float _DistortUIntensity;
half _MainTexVClamp;
half _MainTexUVClip;
half _Scr;
float _VTOScaleC;
float _VTOScale;
float _CustomVTO;
half _VTOTexAR;
half _VTOTexRotator;
half _VTOTexVSpeed;
half _VTOTexUSpeed;
half _VTOTexVMirror;
half _VTOTexUMirror;
half _VTOTexVClamp;
half _VTOTexUClamp;
half _VTOTexUVClip;
half _MainTexUClamp;
float _AlphaClip;
#ifdef ASE_TESSELLATION
float _TessPhongStrength;
float _TessValue;
float _TessMin;
float _TessMax;
float _TessEdgeLength;
float _TessMaxDisp;
#endif
CBUFFER_END
sampler2D _VTOTex;
sampler2D _MainTex;
sampler2D _DistortTex;
sampler2D _MaskTex;
sampler2D _DissolveTex;
sampler2D _DissolvePlusTex;
uniform float4 _CameraDepthTexture_TexelSize;
float UVClamp21_g144( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g117( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g146( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g147( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g119( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g118( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g143( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g113( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g114( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g142( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g151( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g152( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g102( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g140( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
float CustomChanelSwitch5_g104( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float CustomChanelSwitch5_g103( float Num, float c1x, float c1y, float c1z, float c1w, float c2x, float c2y, float c2z, float c2w, out float F )
{
if(Num==0)
{
F= 0;
}
else if(Num==1)
{
F=c1x;
}
else if(Num==2)
{
F=c1y;
}
else if(Num==3)
{
F= c1z;
}
else if(Num==4)
{
F= c1w;
}
else if(Num==5)
{
F=c2x;
}
else if(Num==6)
{
F= c2y;
}
else if(Num==7)
{
F=c2z;
}
else if(Num==8)
{
F= c2w;
}
return 0;
}
float UVClamp21_g139( float UVClip, float UClamp, float VClamp, float UMirror, float VMirror, inout float U, inout float V, out float F )
{
F=1;
if(UMirror==1)
{
U=-U+1;
}
if(VMirror==1)
{
V=V*(-1)+1;
}
if(UClamp==1&&UVClip==1)
{
if(U>1||U<0)
{
F=0;
}
}
if(UClamp==1&&UVClip==0)
{
if(U>1)
{
U=1;
}
if(U<0)
{
U=0;
}
}
if(VClamp==1&&UVClip==1)
{
if(V>1||V<0)
{
F=0;
}
}
if(VClamp==1&&UVClip==0)
{
if(V>1)
{
V=1;
}
if(V<0)
{
V=0;
}
}
return 0;
}
struct SurfaceDescription
{
float Alpha;
float AlphaClipThreshold;
};
VertexOutput VertexFunction(VertexInput v )
{
VertexOutput o;
ZERO_INITIALIZE(VertexOutput, o);
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
float3 temp_cast_0 = (0.0).xxx;
float UVClip21_g144 = _VTOTexUVClip;
float UClamp21_g144 = _VTOTexUClamp;
float VClamp21_g144 = _VTOTexVClamp;
float UMirror21_g144 = _VTOTexUMirror;
float VMirror21_g144 = _VTOTexVMirror;
float2 appendResult4_g144 = (float2(_VTOTexUSpeed , _VTOTexVSpeed));
float2 uv_VTOTex = v.ase_texcoord * _VTOTex_ST.xy + _VTOTex_ST.zw;
float cos38_g144 = cos( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float sin38_g144 = sin( ( _VTOTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g144 = mul( uv_VTOTex - float2( 0.5,0.5 ) , float2x2( cos38_g144 , -sin38_g144 , sin38_g144 , cos38_g144 )) + float2( 0.5,0.5 );
float2 panner5_g144 = ( 1.0 * _Time.y * appendResult4_g144 + rotator38_g144);
float2 break22_g144 = panner5_g144;
float U21_g144 = break22_g144.x;
float V21_g144 = break22_g144.y;
float F21_g144 = 0.0;
float localUVClamp21_g144 = UVClamp21_g144( UVClip21_g144 , UClamp21_g144 , VClamp21_g144 , UMirror21_g144 , VMirror21_g144 , U21_g144 , V21_g144 , F21_g144 );
float2 appendResult44_g144 = (float2(U21_g144 , V21_g144));
float4 tex2DNode7_g144 = tex2Dlod( _VTOTex, float4( appendResult44_g144, 0, 0.0) );
float Num5_g117 = _VTOScaleC;
float4 texCoord1_g117 = v.ase_texcoord;
texCoord1_g117.xy = v.ase_texcoord.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g117 = texCoord1_g117.z;
float c1y5_g117 = texCoord1_g117.w;
float4 texCoord2_g117 = v.ase_texcoord1;
texCoord2_g117.xy = v.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g117 = texCoord2_g117.x;
float c1w5_g117 = texCoord2_g117.y;
float c2x5_g117 = texCoord2_g117.z;
float c2y5_g117 = texCoord2_g117.w;
float4 texCoord3_g117 = v.ase_texcoord2;
texCoord3_g117.xy = v.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g117 = texCoord3_g117.x;
float c2w5_g117 = texCoord3_g117.y;
float F5_g117 = 0.0;
float localCustomChanelSwitch5_g117 = CustomChanelSwitch5_g117( Num5_g117 , c1x5_g117 , c1y5_g117 , c1z5_g117 , c1w5_g117 , c2x5_g117 , c2y5_g117 , c2z5_g117 , c2w5_g117 , F5_g117 );
float3 VTO387 = ( v.ase_normal * ( F21_g144 * ( _VTOTexAR == 0.0 ? tex2DNode7_g144.a : tex2DNode7_g144.r ) ) * (( _CustomVTO )?( F5_g117 ):( _VTOScale )) );
#ifdef _IFVTO_ON
float3 staticSwitch390 = VTO387;
#else
float3 staticSwitch390 = temp_cast_0;
#endif
float3 ase_worldPos = TransformObjectToWorld( (v.vertex).xyz );
o.ase_texcoord4.xyz = ase_worldPos;
float4 ase_clipPos = TransformObjectToHClip((v.vertex).xyz);
float4 screenPos = ComputeScreenPos(ase_clipPos);
o.ase_texcoord5 = screenPos;
o.ase_texcoord1 = v.ase_texcoord;
o.ase_texcoord2 = v.ase_texcoord1;
o.ase_texcoord3 = v.ase_texcoord2;
o.ase_color = v.ase_color;
//setting value to unused interpolator channels and avoid initialization warnings
o.ase_texcoord4.w = 0;
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = v.vertex.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
float3 vertexValue = staticSwitch390;
#ifdef ASE_ABSOLUTE_VERTEX_POS
v.vertex.xyz = vertexValue;
#else
v.vertex.xyz += vertexValue;
#endif
v.ase_normal = v.ase_normal;
float3 positionWS = TransformObjectToWorld( v.vertex.xyz );
float3 normalWS = TransformObjectToWorldNormal(v.ase_normal);
o.clipPos = TransformWorldToHClip(positionWS);
o.normalWS.xyz = normalWS;
return o;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 vertex : INTERNALTESSPOS;
float3 ase_normal : NORMAL;
float4 ase_texcoord : TEXCOORD0;
float4 ase_texcoord1 : TEXCOORD1;
float4 ase_texcoord2 : TEXCOORD2;
float4 ase_color : COLOR;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( VertexInput v )
{
VertexControl o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_TRANSFER_INSTANCE_ID(v, o);
o.vertex = v.vertex;
o.ase_normal = v.ase_normal;
o.ase_texcoord = v.ase_texcoord;
o.ase_texcoord1 = v.ase_texcoord1;
o.ase_texcoord2 = v.ase_texcoord2;
o.ase_color = v.ase_color;
return o;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> v)
{
TessellationFactors o;
float4 tf = 1;
float tessValue = _TessValue; float tessMin = _TessMin; float tessMax = _TessMax;
float edgeLength = _TessEdgeLength; float tessMaxDisp = _TessMaxDisp;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(v[0].vertex, v[1].vertex, v[2].vertex, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
o.edge[0] = tf.x; o.edge[1] = tf.y; o.edge[2] = tf.z; o.inside = tf.w;
return o;
}
[domain("tri")]
[partitioning("fractional_odd")]
[outputtopology("triangle_cw")]
[patchconstantfunc("TessellationFunction")]
[outputcontrolpoints(3)]
VertexControl HullFunction(InputPatch<VertexControl, 3> patch, uint id : SV_OutputControlPointID)
{
return patch[id];
}
[domain("tri")]
VertexOutput DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
VertexInput o = (VertexInput) 0;
o.vertex = patch[0].vertex * bary.x + patch[1].vertex * bary.y + patch[2].vertex * bary.z;
o.ase_normal = patch[0].ase_normal * bary.x + patch[1].ase_normal * bary.y + patch[2].ase_normal * bary.z;
o.ase_texcoord = patch[0].ase_texcoord * bary.x + patch[1].ase_texcoord * bary.y + patch[2].ase_texcoord * bary.z;
o.ase_texcoord1 = patch[0].ase_texcoord1 * bary.x + patch[1].ase_texcoord1 * bary.y + patch[2].ase_texcoord1 * bary.z;
o.ase_texcoord2 = patch[0].ase_texcoord2 * bary.x + patch[1].ase_texcoord2 * bary.y + patch[2].ase_texcoord2 * bary.z;
o.ase_color = patch[0].ase_color * bary.x + patch[1].ase_color * bary.y + patch[2].ase_color * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = o.vertex.xyz - patch[i].ase_normal * (dot(o.vertex.xyz, patch[i].ase_normal) - dot(patch[i].vertex.xyz, patch[i].ase_normal));
float phongStrength = _TessPhongStrength;
o.vertex.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * o.vertex.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], o);
return VertexFunction(o);
}
#else
VertexOutput vert ( VertexInput v )
{
return VertexFunction( v );
}
#endif
half4 frag(VertexOutput IN ) : SV_TARGET
{
SurfaceDescription surfaceDescription = (SurfaceDescription)0;
float UVClip21_g143 = _MainTexUVClip;
float UClamp21_g143 = _MainTexUClamp;
float VClamp21_g143 = _MainTexVClamp;
float UMirror21_g143 = _MainTexUMirror;
float VMirror21_g143 = _MainTexVMirror;
float2 appendResult4_g143 = (float2(_MainTexUSpeed , _MainTexVSpeed));
float2 uv_MainTex = IN.ase_texcoord1.xy * _MainTex_ST.xy + _MainTex_ST.zw;
float2 temp_output_3_0_g145 = uv_MainTex;
float UVClip21_g146 = 1.0;
float UClamp21_g146 = 0.0;
float VClamp21_g146 = 0.0;
float UMirror21_g146 = _DistortTexUMirror;
float VMirror21_g146 = _DistortTexVMirror;
float2 appendResult4_g146 = (float2(_DistortTexUSpeed , _DistortTexVSpeed));
float2 uv_DistortTex = IN.ase_texcoord1.xy * _DistortTex_ST.xy + _DistortTex_ST.zw;
float cos38_g146 = cos( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float sin38_g146 = sin( ( _DistortTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g146 = mul( uv_DistortTex - float2( 0.5,0.5 ) , float2x2( cos38_g146 , -sin38_g146 , sin38_g146 , cos38_g146 )) + float2( 0.5,0.5 );
float2 panner5_g146 = ( 1.0 * _Time.y * appendResult4_g146 + rotator38_g146);
float2 break22_g146 = panner5_g146;
float U21_g146 = break22_g146.x;
float V21_g146 = break22_g146.y;
float F21_g146 = 0.0;
float localUVClamp21_g146 = UVClamp21_g146( UVClip21_g146 , UClamp21_g146 , VClamp21_g146 , UMirror21_g146 , VMirror21_g146 , U21_g146 , V21_g146 , F21_g146 );
float2 appendResult44_g146 = (float2(U21_g146 , V21_g146));
float4 tex2DNode7_g146 = tex2D( _DistortTex, appendResult44_g146 );
float temp_output_675_20 = ( F21_g146 * ( _DistortTexAR == 0.0 ? tex2DNode7_g146.a : tex2DNode7_g146.r ) );
float Num5_g147 = _DistortFactorC;
float4 texCoord1_g147 = IN.ase_texcoord1;
texCoord1_g147.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g147 = texCoord1_g147.z;
float c1y5_g147 = texCoord1_g147.w;
float4 texCoord2_g147 = IN.ase_texcoord2;
texCoord2_g147.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g147 = texCoord2_g147.x;
float c1w5_g147 = texCoord2_g147.y;
float c2x5_g147 = texCoord2_g147.z;
float c2y5_g147 = texCoord2_g147.w;
float4 texCoord3_g147 = IN.ase_texcoord3;
texCoord3_g147.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g147 = texCoord3_g147.x;
float c2w5_g147 = texCoord3_g147.y;
float F5_g147 = 0.0;
float localCustomChanelSwitch5_g147 = CustomChanelSwitch5_g147( Num5_g147 , c1x5_g147 , c1y5_g147 , c1z5_g147 , c1w5_g147 , c2x5_g147 , c2y5_g147 , c2z5_g147 , c2w5_g147 , F5_g147 );
float2 appendResult465 = (float2(_DistortUIntensity , _DistortVIntensity));
float2 Distort148 = ( (( _DistortRemap )?( (-0.5 + (temp_output_675_20 - 0.0) * (0.5 - -0.5) / (1.0 - 0.0)) ):( temp_output_675_20 )) * (( _CustomDistortFactor )?( F5_g147 ):( _DistortFactor )) * appendResult465 );
#ifdef _FDISTORTTEX_ON
float2 staticSwitch316 = ( _DistortMainTex == 0.0 ? temp_output_3_0_g145 : ( temp_output_3_0_g145 + Distort148 ) );
#else
float2 staticSwitch316 = uv_MainTex;
#endif
float Num5_g119 = _MainTexUOffsetC;
float4 texCoord1_g119 = IN.ase_texcoord1;
texCoord1_g119.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g119 = texCoord1_g119.z;
float c1y5_g119 = texCoord1_g119.w;
float4 texCoord2_g119 = IN.ase_texcoord2;
texCoord2_g119.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g119 = texCoord2_g119.x;
float c1w5_g119 = texCoord2_g119.y;
float c2x5_g119 = texCoord2_g119.z;
float c2y5_g119 = texCoord2_g119.w;
float4 texCoord3_g119 = IN.ase_texcoord3;
texCoord3_g119.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g119 = texCoord3_g119.x;
float c2w5_g119 = texCoord3_g119.y;
float F5_g119 = 0.0;
float localCustomChanelSwitch5_g119 = CustomChanelSwitch5_g119( Num5_g119 , c1x5_g119 , c1y5_g119 , c1z5_g119 , c1w5_g119 , c2x5_g119 , c2y5_g119 , c2z5_g119 , c2w5_g119 , F5_g119 );
float Num5_g118 = _MainTexVOffsetC;
float4 texCoord1_g118 = IN.ase_texcoord1;
texCoord1_g118.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g118 = texCoord1_g118.z;
float c1y5_g118 = texCoord1_g118.w;
float4 texCoord2_g118 = IN.ase_texcoord2;
texCoord2_g118.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g118 = texCoord2_g118.x;
float c1w5_g118 = texCoord2_g118.y;
float c2x5_g118 = texCoord2_g118.z;
float c2y5_g118 = texCoord2_g118.w;
float4 texCoord3_g118 = IN.ase_texcoord3;
texCoord3_g118.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g118 = texCoord3_g118.x;
float c2w5_g118 = texCoord3_g118.y;
float F5_g118 = 0.0;
float localCustomChanelSwitch5_g118 = CustomChanelSwitch5_g118( Num5_g118 , c1x5_g118 , c1y5_g118 , c1z5_g118 , c1w5_g118 , c2x5_g118 , c2y5_g118 , c2z5_g118 , c2w5_g118 , F5_g118 );
float2 appendResult330 = (float2((( _CustomMainTexUOffset )?( F5_g119 ):( 0.0 )) , (( _CustomMainTexVOffset )?( F5_g118 ):( 0.0 ))));
float cos38_g143 = cos( ( _MainTexRotator * ( 2.0 * PI ) ) );
float sin38_g143 = sin( ( _MainTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g143 = mul( ( staticSwitch316 + appendResult330 ) - float2( 0.5,0.5 ) , float2x2( cos38_g143 , -sin38_g143 , sin38_g143 , cos38_g143 )) + float2( 0.5,0.5 );
float2 panner5_g143 = ( 1.0 * _Time.y * appendResult4_g143 + rotator38_g143);
float2 break22_g143 = panner5_g143;
float U21_g143 = break22_g143.x;
float V21_g143 = break22_g143.y;
float F21_g143 = 0.0;
float localUVClamp21_g143 = UVClamp21_g143( UVClip21_g143 , UClamp21_g143 , VClamp21_g143 , UMirror21_g143 , VMirror21_g143 , U21_g143 , V21_g143 , F21_g143 );
float2 appendResult44_g143 = (float2(U21_g143 , V21_g143));
float4 tex2DNode7_g143 = tex2D( _MainTex, appendResult44_g143 );
float MainTexAlpha138 = ( _MainColor.a * ( F21_g143 * ( _MainTexAR == 0.0 ? tex2DNode7_g143.a : tex2DNode7_g143.r ) ) );
float UVClip21_g142 = _MaskTexUVClip;
float UClamp21_g142 = _MaskTexUClamp;
float VClamp21_g142 = _MaskTexVClamp;
float UMirror21_g142 = _MaskTexUMirror;
float VMirror21_g142 = _MaskTexVMirror;
float2 appendResult4_g142 = (float2(_MaskTexUSpeed , _MaskTexVSpeed));
float2 uv_MaskTex = IN.ase_texcoord1.xy * _MaskTex_ST.xy + _MaskTex_ST.zw;
float2 temp_output_3_0_g115 = uv_MaskTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch312 = ( _DistortMaskTex == 0.0 ? temp_output_3_0_g115 : ( temp_output_3_0_g115 + Distort148 ) );
#else
float2 staticSwitch312 = uv_MaskTex;
#endif
float Num5_g113 = _MaskTexUOffsetC;
float4 texCoord1_g113 = IN.ase_texcoord1;
texCoord1_g113.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g113 = texCoord1_g113.z;
float c1y5_g113 = texCoord1_g113.w;
float4 texCoord2_g113 = IN.ase_texcoord2;
texCoord2_g113.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g113 = texCoord2_g113.x;
float c1w5_g113 = texCoord2_g113.y;
float c2x5_g113 = texCoord2_g113.z;
float c2y5_g113 = texCoord2_g113.w;
float4 texCoord3_g113 = IN.ase_texcoord3;
texCoord3_g113.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g113 = texCoord3_g113.x;
float c2w5_g113 = texCoord3_g113.y;
float F5_g113 = 0.0;
float localCustomChanelSwitch5_g113 = CustomChanelSwitch5_g113( Num5_g113 , c1x5_g113 , c1y5_g113 , c1z5_g113 , c1w5_g113 , c2x5_g113 , c2y5_g113 , c2z5_g113 , c2w5_g113 , F5_g113 );
float Num5_g114 = _MaskTexVOffsetC;
float4 texCoord1_g114 = IN.ase_texcoord1;
texCoord1_g114.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g114 = texCoord1_g114.z;
float c1y5_g114 = texCoord1_g114.w;
float4 texCoord2_g114 = IN.ase_texcoord2;
texCoord2_g114.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g114 = texCoord2_g114.x;
float c1w5_g114 = texCoord2_g114.y;
float c2x5_g114 = texCoord2_g114.z;
float c2y5_g114 = texCoord2_g114.w;
float4 texCoord3_g114 = IN.ase_texcoord3;
texCoord3_g114.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g114 = texCoord3_g114.x;
float c2w5_g114 = texCoord3_g114.y;
float F5_g114 = 0.0;
float localCustomChanelSwitch5_g114 = CustomChanelSwitch5_g114( Num5_g114 , c1x5_g114 , c1y5_g114 , c1z5_g114 , c1w5_g114 , c2x5_g114 , c2y5_g114 , c2z5_g114 , c2w5_g114 , F5_g114 );
float2 appendResult446 = (float2((( _CustomMaskTexUOffset )?( F5_g113 ):( 0.0 )) , (( _CustomMaskTexVOffset )?( F5_g114 ):( 0.0 ))));
float cos38_g142 = cos( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float sin38_g142 = sin( ( _MaskTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g142 = mul( ( staticSwitch312 + appendResult446 ) - float2( 0.5,0.5 ) , float2x2( cos38_g142 , -sin38_g142 , sin38_g142 , cos38_g142 )) + float2( 0.5,0.5 );
float2 panner5_g142 = ( 1.0 * _Time.y * appendResult4_g142 + rotator38_g142);
float2 break22_g142 = panner5_g142;
float U21_g142 = break22_g142.x;
float V21_g142 = break22_g142.y;
float F21_g142 = 0.0;
float localUVClamp21_g142 = UVClamp21_g142( UVClip21_g142 , UClamp21_g142 , VClamp21_g142 , UMirror21_g142 , VMirror21_g142 , U21_g142 , V21_g142 , F21_g142 );
float2 appendResult44_g142 = (float2(U21_g142 , V21_g142));
float4 tex2DNode7_g142 = tex2D( _MaskTex, appendResult44_g142 );
#ifdef _FMASKTEX_ON
float staticSwitch291 = ( F21_g142 * ( _MaskTexAR == 0.0 ? tex2DNode7_g142.a : tex2DNode7_g142.r ) );
#else
float staticSwitch291 = 1.0;
#endif
float Alpha337 = _MainAlpha;
float Num5_g151 = _DissolveFactorC;
float4 texCoord1_g151 = IN.ase_texcoord1;
texCoord1_g151.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g151 = texCoord1_g151.z;
float c1y5_g151 = texCoord1_g151.w;
float4 texCoord2_g151 = IN.ase_texcoord2;
texCoord2_g151.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g151 = texCoord2_g151.x;
float c1w5_g151 = texCoord2_g151.y;
float c2x5_g151 = texCoord2_g151.z;
float c2y5_g151 = texCoord2_g151.w;
float4 texCoord3_g151 = IN.ase_texcoord3;
texCoord3_g151.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g151 = texCoord3_g151.x;
float c2w5_g151 = texCoord3_g151.y;
float F5_g151 = 0.0;
float localCustomChanelSwitch5_g151 = CustomChanelSwitch5_g151( Num5_g151 , c1x5_g151 , c1y5_g151 , c1z5_g151 , c1w5_g151 , c2x5_g151 , c2y5_g151 , c2z5_g151 , c2w5_g151 , F5_g151 );
float temp_output_275_0 = (-_DissolveWide + ((( _CustomDissolve )?( F5_g151 ):( _DissolveFactor )) - 0.0) * (1.0 - -_DissolveWide) / (1.0 - 0.0));
float temp_output_277_0 = ( _DissolveSoft + 0.0001 );
float temp_output_270_0 = (-temp_output_277_0 + (temp_output_275_0 - 0.0) * (1.0 - -temp_output_277_0) / (1.0 - 0.0));
float UVClip21_g140 = _DissolveTexUVClip;
float UClamp21_g140 = _DissolveTexUClamp;
float VClamp21_g140 = _DissolveTexVClamp;
float UMirror21_g140 = _DissolveTexUMirror;
float VMirror21_g140 = _DissolveTexVMirror;
float2 appendResult4_g140 = (float2(_DissolveTexUSpeed , _DissolveTexVSpeed));
float2 uv_DissolveTex = IN.ase_texcoord1.xy * _DissolveTex_ST.xy + _DissolveTex_ST.zw;
float2 temp_output_3_0_g106 = uv_DissolveTex;
#ifdef _FDISTORTTEX_ON
float2 staticSwitch314 = ( _DistortDissolveTex == 0.0 ? temp_output_3_0_g106 : ( temp_output_3_0_g106 + Distort148 ) );
#else
float2 staticSwitch314 = uv_DissolveTex;
#endif
float Num5_g152 = _DissolveTexUOffsetC;
float4 texCoord1_g152 = IN.ase_texcoord1;
texCoord1_g152.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g152 = texCoord1_g152.z;
float c1y5_g152 = texCoord1_g152.w;
float4 texCoord2_g152 = IN.ase_texcoord2;
texCoord2_g152.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g152 = texCoord2_g152.x;
float c1w5_g152 = texCoord2_g152.y;
float c2x5_g152 = texCoord2_g152.z;
float c2y5_g152 = texCoord2_g152.w;
float4 texCoord3_g152 = IN.ase_texcoord3;
texCoord3_g152.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g152 = texCoord3_g152.x;
float c2w5_g152 = texCoord3_g152.y;
float F5_g152 = 0.0;
float localCustomChanelSwitch5_g152 = CustomChanelSwitch5_g152( Num5_g152 , c1x5_g152 , c1y5_g152 , c1z5_g152 , c1w5_g152 , c2x5_g152 , c2y5_g152 , c2z5_g152 , c2w5_g152 , F5_g152 );
float Num5_g102 = _DissolveTexVOffsetC;
float4 texCoord1_g102 = IN.ase_texcoord1;
texCoord1_g102.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g102 = texCoord1_g102.z;
float c1y5_g102 = texCoord1_g102.w;
float4 texCoord2_g102 = IN.ase_texcoord2;
texCoord2_g102.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g102 = texCoord2_g102.x;
float c1w5_g102 = texCoord2_g102.y;
float c2x5_g102 = texCoord2_g102.z;
float c2y5_g102 = texCoord2_g102.w;
float4 texCoord3_g102 = IN.ase_texcoord3;
texCoord3_g102.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g102 = texCoord3_g102.x;
float c2w5_g102 = texCoord3_g102.y;
float F5_g102 = 0.0;
float localCustomChanelSwitch5_g102 = CustomChanelSwitch5_g102( Num5_g102 , c1x5_g102 , c1y5_g102 , c1z5_g102 , c1w5_g102 , c2x5_g102 , c2y5_g102 , c2z5_g102 , c2w5_g102 , F5_g102 );
float2 appendResult479 = (float2((( _CustomDissolveTexUOffset )?( F5_g152 ):( 0.0 )) , (( _CustomDissolveTexVOffset )?( F5_g102 ):( 0.0 ))));
float cos38_g140 = cos( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float sin38_g140 = sin( ( _DissolveTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g140 = mul( ( staticSwitch314 + appendResult479 ) - float2( 0.5,0.5 ) , float2x2( cos38_g140 , -sin38_g140 , sin38_g140 , cos38_g140 )) + float2( 0.5,0.5 );
float2 panner5_g140 = ( 1.0 * _Time.y * appendResult4_g140 + rotator38_g140);
float2 break22_g140 = panner5_g140;
float U21_g140 = break22_g140.x;
float V21_g140 = break22_g140.y;
float F21_g140 = 0.0;
float localUVClamp21_g140 = UVClamp21_g140( UVClip21_g140 , UClamp21_g140 , VClamp21_g140 , UMirror21_g140 , VMirror21_g140 , U21_g140 , V21_g140 , F21_g140 );
float2 appendResult44_g140 = (float2(U21_g140 , V21_g140));
float4 tex2DNode7_g140 = tex2D( _DissolveTex, appendResult44_g140 );
float temp_output_677_20 = ( F21_g140 * ( _DissolveTexAR == 0.0 ? tex2DNode7_g140.a : tex2DNode7_g140.r ) );
float UVClip21_g139 = _DissolvePlusTexUVClip;
float UClamp21_g139 = _DissolvePlusTexUClamp;
float VClamp21_g139 = _DissolvePlusTexVClamp;
float UMirror21_g139 = _DissolvePlusTexUMirror;
float VMirror21_g139 = _DissolvePlusTexVMirror;
float2 appendResult4_g139 = (float2(_DissolvePlusTexUSpeed , _DissolvePlusTexVSpeed));
float2 uv_DissolvePlusTex = IN.ase_texcoord1.xy * _DissolvePlusTex_ST.xy + _DissolvePlusTex_ST.zw;
float Num5_g104 = _DissolvePlusTexUOffsetC;
float4 texCoord1_g104 = IN.ase_texcoord1;
texCoord1_g104.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g104 = texCoord1_g104.z;
float c1y5_g104 = texCoord1_g104.w;
float4 texCoord2_g104 = IN.ase_texcoord2;
texCoord2_g104.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g104 = texCoord2_g104.x;
float c1w5_g104 = texCoord2_g104.y;
float c2x5_g104 = texCoord2_g104.z;
float c2y5_g104 = texCoord2_g104.w;
float4 texCoord3_g104 = IN.ase_texcoord3;
texCoord3_g104.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g104 = texCoord3_g104.x;
float c2w5_g104 = texCoord3_g104.y;
float F5_g104 = 0.0;
float localCustomChanelSwitch5_g104 = CustomChanelSwitch5_g104( Num5_g104 , c1x5_g104 , c1y5_g104 , c1z5_g104 , c1w5_g104 , c2x5_g104 , c2y5_g104 , c2z5_g104 , c2w5_g104 , F5_g104 );
float Num5_g103 = _DissolvePlusTexVOffsetC;
float4 texCoord1_g103 = IN.ase_texcoord1;
texCoord1_g103.xy = IN.ase_texcoord1.xy * float2( 1,1 ) + float2( 0,0 );
float c1x5_g103 = texCoord1_g103.z;
float c1y5_g103 = texCoord1_g103.w;
float4 texCoord2_g103 = IN.ase_texcoord2;
texCoord2_g103.xy = IN.ase_texcoord2.xy * float2( 1,1 ) + float2( 0,0 );
float c1z5_g103 = texCoord2_g103.x;
float c1w5_g103 = texCoord2_g103.y;
float c2x5_g103 = texCoord2_g103.z;
float c2y5_g103 = texCoord2_g103.w;
float4 texCoord3_g103 = IN.ase_texcoord3;
texCoord3_g103.xy = IN.ase_texcoord3.xy * float2( 1,1 ) + float2( 0,0 );
float c2z5_g103 = texCoord3_g103.x;
float c2w5_g103 = texCoord3_g103.y;
float F5_g103 = 0.0;
float localCustomChanelSwitch5_g103 = CustomChanelSwitch5_g103( Num5_g103 , c1x5_g103 , c1y5_g103 , c1z5_g103 , c1w5_g103 , c2x5_g103 , c2y5_g103 , c2z5_g103 , c2w5_g103 , F5_g103 );
float2 appendResult497 = (float2((( _CustomDissolvePlusTexUOffset )?( F5_g104 ):( 0.0 )) , (( _CustomDissolvePlusTexVOffset )?( F5_g103 ):( 0.0 ))));
float cos38_g139 = cos( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float sin38_g139 = sin( ( _DissolvePlusTexRotator * ( 2.0 * PI ) ) );
float2 rotator38_g139 = mul( ( uv_DissolvePlusTex + appendResult497 ) - float2( 0.5,0.5 ) , float2x2( cos38_g139 , -sin38_g139 , sin38_g139 , cos38_g139 )) + float2( 0.5,0.5 );
float2 panner5_g139 = ( 1.0 * _Time.y * appendResult4_g139 + rotator38_g139);
float2 break22_g139 = panner5_g139;
float U21_g139 = break22_g139.x;
float V21_g139 = break22_g139.y;
float F21_g139 = 0.0;
float localUVClamp21_g139 = UVClamp21_g139( UVClip21_g139 , UClamp21_g139 , VClamp21_g139 , UMirror21_g139 , VMirror21_g139 , U21_g139 , V21_g139 , F21_g139 );
float2 appendResult44_g139 = (float2(U21_g139 , V21_g139));
float4 tex2DNode7_g139 = tex2D( _DissolvePlusTex, appendResult44_g139 );
float lerpResult413 = lerp( temp_output_677_20 , ( F21_g139 * ( _DissolvePlusTexAR == 0.0 ? tex2DNode7_g139.a : tex2DNode7_g139.r ) ) , _DissolvePlusIntensity);
#ifdef _FDISSOLVEPLUSTEX_ON
float staticSwitch415 = lerpResult413;
#else
float staticSwitch415 = temp_output_677_20;
#endif
float smoothstepResult256 = smoothstep( temp_output_270_0 , ( temp_output_270_0 + temp_output_277_0 ) , staticSwitch415);
float DissolveAlpha212 = smoothstepResult256;
#ifdef _FDISSOLVETEX_ON
float staticSwitch299 = DissolveAlpha212;
#else
float staticSwitch299 = 1.0;
#endif
float Refnl339 = _ReFnl;
float3 ase_worldPos = IN.ase_texcoord4.xyz;
float3 ase_worldViewDir = ( _WorldSpaceCameraPos.xyz - ase_worldPos );
ase_worldViewDir = normalize(ase_worldViewDir);
float fresnelNdotV279 = dot( IN.normalWS, ase_worldViewDir );
float fresnelNode279 = ( 0.0 + _FnlScale * pow( 1.0 - fresnelNdotV279, _FnlPower ) );
float temp_output_283_0 = saturate( fresnelNode279 );
float ReFnlAlpha318 = ( 1.0 - temp_output_283_0 );
#ifdef _FFNL_ON
float staticSwitch319 = ( Refnl339 == 0.0 ? 1.0 : ReFnlAlpha318 );
#else
float staticSwitch319 = 1.0;
#endif
float4 screenPos = IN.ase_texcoord5;
float4 ase_screenPosNorm = screenPos / screenPos.w;
ase_screenPosNorm.z = ( UNITY_NEAR_CLIP_VALUE >= 0 ) ? ase_screenPosNorm.z : ase_screenPosNorm.z * 0.5 + 0.5;
float screenDepth375 = LinearEyeDepth(SHADERGRAPH_SAMPLE_SCENE_DEPTH( ase_screenPosNorm.xy ),_ZBufferParams);
float distanceDepth375 = abs( ( screenDepth375 - LinearEyeDepth( ase_screenPosNorm.z,_ZBufferParams ) ) / ( _DepthFade ) );
#ifdef _FDEPTH_ON
float staticSwitch378 = saturate( distanceDepth375 );
#else
float staticSwitch378 = 1.0;
#endif
float MainAlpha97 = saturate( ( MainTexAlpha138 * staticSwitch291 * IN.ase_color.a * Alpha337 * staticSwitch299 * staticSwitch319 * staticSwitch378 ) );
surfaceDescription.Alpha = MainAlpha97;
surfaceDescription.AlphaClipThreshold = _AlphaClip;
#if _ALPHATEST_ON
clip(surfaceDescription.Alpha - surfaceDescription.AlphaClipThreshold);
#endif
#ifdef LOD_FADE_CROSSFADE
LODDitheringTransition( IN.clipPos.xyz, unity_LODFade.x );
#endif
float3 normalWS = IN.normalWS;
return half4(NormalizeNormalPerPixel(normalWS), 0.0);
}
ENDHLSL
}
}
CustomEditor "SampleGUIURP"
FallBack "Hidden/Shader Graph/FallbackError"
Fallback "Hidden/InternalErrorShader"
}