Fix : 쉐이더 수정 사항 업데이트 및 반영

This commit is contained in:
KINDNICK 2025-12-01 02:00:50 +09:00
parent d0cae9f2b2
commit 980c610b86
15 changed files with 695 additions and 1208 deletions

View File

@ -96,6 +96,11 @@ namespace AmplifyShaderEditor
{
AmplifyShaderEditorWindow.CreateConfirmationTemplateShader( "2534d4d29a40afc46a3cc49af189fcb4" );
}
[MenuItem( "Assets/Create/Amplify Shader/Universal/NiloToonEnvironment_v2", false, 85 )]
public static void ApplyTemplateUniversalNiloToonEnvironment_v2()
{
AmplifyShaderEditorWindow.CreateConfirmationTemplateShader( "df83b33f62768f64cb5fff5416086758" );
}
[MenuItem( "Assets/Create/Amplify Shader/Universal/Unlit", false, 85 )]
public static void ApplyTemplateUniversalUnlit()
{

View File

@ -9,11 +9,14 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
[ToggleUI] _ReceiveShadows("Receive Shadows", Float) = 1.0
[HideInInspector] _QueueOffset("_QueueOffset", Float) = 0
[HideInInspector] _QueueControl("_QueueControl", Float) = -1
[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) = "" {}
[HideInInspector][NoScaleOffset] unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
[HideInInspector][NoScaleOffset] unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
[HideInInspector][NoScaleOffset] unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
// Surface type (0 = Opaque, 1 = Transparent) - required for DBuffer decals
[HideInInspector] _Surface("__surface", Float) = 0.0
// NiloToon Screen Space Outline
_ScreenSpaceOutlineIntensity("Screen Space Outline Intensity", Range(0,1)) = 1
@ -60,12 +63,14 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
true:SetDefine:Forward:pragma shader_feature_local_fragment _ALPHATEST_ON
true:SetDefine:ShadowCaster:pragma shader_feature_local _ALPHATEST_ON
true:SetDefine:DepthOnly:pragma shader_feature_local _ALPHATEST_ON
true:SetDefine:DepthNormals:pragma shader_feature_local _ALPHATEST_ON
true:SetDefine:DepthNormalsOnly:pragma shader_feature_local _ALPHATEST_ON
true:SetDefine:Meta:pragma shader_feature_local_fragment _ALPHATEST_ON
false:HidePort:Forward:Alpha Clip Threshold
false:RemoveDefine:Forward:pragma shader_feature_local_fragment _ALPHATEST_ON
false:RemoveDefine:ShadowCaster:pragma shader_feature_local _ALPHATEST_ON
false:RemoveDefine:DepthOnly:pragma shader_feature_local _ALPHATEST_ON
false:RemoveDefine:DepthNormals:pragma shader_feature_local _ALPHATEST_ON
false:RemoveDefine:DepthNormalsOnly:pragma shader_feature_local _ALPHATEST_ON
false:RemoveDefine:Meta:pragma shader_feature_local_fragment _ALPHATEST_ON
Option:Fragment Normal Space:Tangent,Object,World:Tangent
Tangent:SetDefine:_NORMAL_DROPOFF_TS 1
Tangent:SetPortName:Forward:1,Normal
@ -104,22 +109,22 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
true:SetDefine:Forward:pragma multi_compile_instancing
true:SetDefine:ShadowCaster:pragma multi_compile_instancing
true:SetDefine:DepthOnly:pragma multi_compile_instancing
true:SetDefine:DepthNormals:pragma multi_compile_instancing
true:SetDefine:DepthNormalsOnly:pragma multi_compile_instancing
true:SetDefine:Meta:pragma multi_compile_instancing
false:RemoveDefine:Forward:pragma multi_compile_instancing
false:RemoveDefine:ShadowCaster:pragma multi_compile_instancing
false:RemoveDefine:DepthOnly:pragma multi_compile_instancing
false:RemoveDefine:DepthNormals:pragma multi_compile_instancing
false:RemoveDefine:DepthNormalsOnly:pragma multi_compile_instancing
false:RemoveDefine:Meta:pragma multi_compile_instancing
Option:LOD CrossFade:false,true:true
true:SetDefine:Forward:pragma multi_compile _ LOD_FADE_CROSSFADE
true:SetDefine:ShadowCaster:pragma multi_compile _ LOD_FADE_CROSSFADE
true:SetDefine:DepthOnly:pragma multi_compile _ LOD_FADE_CROSSFADE
true:SetDefine:DepthNormals:pragma multi_compile _ LOD_FADE_CROSSFADE
true:SetDefine:DepthNormalsOnly:pragma multi_compile _ LOD_FADE_CROSSFADE
false:RemoveDefine:Forward:pragma multi_compile _ LOD_FADE_CROSSFADE
false:RemoveDefine:ShadowCaster:pragma multi_compile _ LOD_FADE_CROSSFADE
false:RemoveDefine:DepthOnly:pragma multi_compile _ LOD_FADE_CROSSFADE
false:RemoveDefine:DepthNormals:pragma multi_compile _ LOD_FADE_CROSSFADE
false:RemoveDefine:DepthNormalsOnly:pragma multi_compile _ LOD_FADE_CROSSFADE
Option:NiloToon Screen Space Outline:false,true:false
true:SetDefine:Forward:pragma multi_compile_fragment _ _NILOTOON_GLOBAL_ENABLE_SCREENSPACE_OUTLINE
false:RemoveDefine:Forward:pragma multi_compile_fragment _ _NILOTOON_GLOBAL_ENABLE_SCREENSPACE_OUTLINE
@ -129,8 +134,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
{
"RenderPipeline" = "UniversalPipeline"
"RenderType" = "Opaque"
"UniversalMaterialType" = "Lit"
"Queue" = "Geometry"
"UniversalMaterialType" = "ComplexLit"
"IgnoreProjector" = "True"
}
@ -145,8 +149,6 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
HLSLINCLUDE
#pragma target 3.0
#pragma prefer_hlslcc gles
// GPU Instancing not available in WebGL
// #pragma exclude_renderers gles //
ENDHLSL
/*ase_pass*/
@ -157,7 +159,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
Tags
{
"LightMode" = "UniversalForwardOnly"
}
}
Blend One Zero
ZWrite On
@ -168,19 +170,47 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
/*ase_stencil*/
HLSLPROGRAM
#pragma target 2.0
// -------------------------------------
// Shader Stages
#pragma vertex vert
#pragma fragment frag
// -------------------------------------
// Material Keywords
#pragma shader_feature_local _NORMALMAP
#pragma shader_feature_local _PARALLAXMAP
#pragma shader_feature_local _RECEIVE_SHADOWS_OFF
#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED
#pragma shader_feature_local_fragment _SURFACE_TYPE_TRANSPARENT
//#pragma shader_feature_local_fragment _ALPHATEST_ON
#pragma shader_feature_local_fragment _ _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON
#pragma shader_feature_local_fragment _EMISSION
#pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
#pragma shader_feature_local_fragment _OCCLUSIONMAP
#pragma shader_feature_local_fragment _ _CLEARCOAT _CLEARCOATMAP
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF
#pragma shader_feature_local_fragment _ENVIRONMENTREFLECTIONS_OFF
#pragma shader_feature_local_fragment _SPECULAR_SETUP
// -------------------------------------
// Universal Pipeline keywords
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
#pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX
#pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX
#pragma multi_compile _ _LIGHT_LAYERS
#pragma multi_compile _ _CLUSTER_LIGHT_LOOP
#pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
#pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING
#pragma multi_compile_fragment _ _REFLECTION_PROBE_BOX_PROJECTION
#pragma multi_compile_fragment _ _REFLECTION_PROBE_ATLAS
#pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
#pragma multi_compile_fragment _ _SHADOWS_SOFT
#pragma multi_compile_fragment _ _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
#pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
#pragma multi_compile _ _LIGHT_LAYERS
#pragma multi_compile_fragment _ _LIGHT_COOKIES
#pragma multi_compile _ _CLUSTER_LIGHT_LOOP
#pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
#pragma multi_compile _ SHADOWS_SHADOWMASK
@ -190,13 +220,6 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
#pragma vertex vert
#pragma fragment frag
#if defined(_SPECULAR_SETUP) && defined(_SPECULAR_COLOR)
#define _SPECULAR_COLOR 1
#endif
#define SHADERPASS SHADERPASS_FORWARD
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
@ -209,8 +232,8 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
@ -218,15 +241,17 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#if defined(LOD_FADE_CROSSFADE)
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
// NiloToon Screen Space Outline Support
// Note: Include NiloToon's utility files for screen space outline functionality
#if defined(_NILOTOON_GLOBAL_ENABLE_SCREENSPACE_OUTLINE)
#include "../../../../../../NiloToonURP/ShaderLibrary/NiloUtilityHLSL/NiloAllUtilIncludes.hlsl"
#include "Assets/NiloToonURP/ShaderLibrary/NiloUtilityHLSL/NiloAllUtilIncludes.hlsl"
#endif
// NOTE: _DBUFFER is automatically defined in DBuffer.hlsl when _DBUFFER_MRT variants are active
// and _SURFACE_TYPE_TRANSPARENT is not defined. No manual define needed.
/*ase_pragma*/
#if defined(ASE_EARLY_Z_DEPTH_OPTIMIZE) && (SHADER_TARGET >= 45)
@ -260,9 +285,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
half3 normalWS : TEXCOORD1;
float4 tangentWS : TEXCOORD2;
float4 lightmapUVOrVertexSH : TEXCOORD3;
#if defined(ASE_FOG) || defined(_ADDITIONAL_LIGHTS_VERTEX)
half4 fogFactorAndVertexLight : TEXCOORD4;
#endif
half4 fogFactorAndVertexLight : TEXCOORD4;
#if defined(DYNAMICLIGHTMAP_ON)
float2 dynamicLightmapUV : TEXCOORD5;
#endif
@ -281,6 +304,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
half3 _ScreenSpaceOutlineColor;
float _ScreenSpaceOutlineWidth;
float _Surface;
/*ase_srp_batcher*/
CBUFFER_END
// NiloToon Global Uniforms
@ -345,9 +369,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
fogFactor = ComputeFogFactor( vertexInput.positionCS.z );
#endif
#if defined(ASE_FOG) || defined(_ADDITIONAL_LIGHTS_VERTEX)
output.fogFactorAndVertexLight = half4(fogFactor, vertexLight);
#endif
output.fogFactorAndVertexLight = half4(fogFactor, vertexLight);
// NiloToon screen pos
output.screenPos = ComputeScreenPos(output.positionCS);
@ -355,96 +377,10 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
return output;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 positionOS : INTERNALTESSPOS;
half3 normalOS : NORMAL;
half4 tangentOS : TANGENT;
float4 texcoord : TEXCOORD0;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
/*ase_vcontrol*/
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( Attributes input )
{
VertexControl output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
output.positionOS = input.positionOS;
output.normalOS = input.normalOS;
output.tangentOS = input.tangentOS;
output.texcoord = input.texcoord;
output.texcoord1 = input.texcoord1;
output.texcoord2 = input.texcoord2;
/*ase_control_code:input=Attributes;output=VertexControl*/
return output;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
{
TessellationFactors output;
float4 tf = 1;
float tessValue = /*ase_inline_begin*/_TessValue/*ase_inline_end*/; float tessMin = /*ase_inline_begin*/_TessMin/*ase_inline_end*/; float tessMax = /*ase_inline_begin*/_TessMax/*ase_inline_end*/;
float edgeLength = /*ase_inline_begin*/_TessEdgeLength/*ase_inline_end*/; float tessMaxDisp = /*ase_inline_begin*/_TessMaxDisp/*ase_inline_end*/;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
return output;
}
[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")]
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
Attributes output = (Attributes) 0;
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
output.tangentOS = patch[0].tangentOS * bary.x + patch[1].tangentOS * bary.y + patch[2].tangentOS * bary.z;
output.texcoord = patch[0].texcoord * bary.x + patch[1].texcoord * bary.y + patch[2].texcoord * bary.z;
output.texcoord1 = patch[0].texcoord1 * bary.x + patch[1].texcoord1 * bary.y + patch[2].texcoord1 * bary.z;
output.texcoord2 = patch[0].texcoord2 * bary.x + patch[1].texcoord2 * bary.y + patch[2].texcoord2 * bary.z;
/*ase_domain_code:patch=VertexControl;output=Attributes;bary=SV_DomainLocation*/
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
float phongStrength = /*ase_inline_begin*/_TessPhongStrength/*ase_inline_end*/;
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
return VertexFunction(output);
}
#else
PackedVaryings vert ( Attributes input )
{
return VertexFunction( input );
}
#endif
half4 frag ( PackedVaryings input
#if defined( ASE_DEPTH_WRITE_ON )
@ -521,13 +457,13 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
inputData.shadowCoord = ShadowCoord;
#ifdef _NORMALMAP
#if _NORMAL_DROPOFF_TS
inputData.normalWS = TransformTangentToWorld(Normal, half3x3(TangentWS, BitangentWS, NormalWS));
#elif _NORMAL_DROPOFF_OS
inputData.normalWS = TransformObjectToWorldNormal(Normal);
#elif _NORMAL_DROPOFF_WS
inputData.normalWS = Normal;
#endif
#if _NORMAL_DROPOFF_TS
inputData.normalWS = TransformTangentToWorld(Normal, half3x3(TangentWS, BitangentWS, NormalWS));
#elif _NORMAL_DROPOFF_OS
inputData.normalWS = TransformObjectToWorldNormal(Normal);
#elif _NORMAL_DROPOFF_WS
inputData.normalWS = Normal;
#endif
inputData.normalWS = NormalizeNormalPerPixel(inputData.normalWS);
#else
inputData.normalWS = NormalWS;
@ -540,6 +476,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
inputData.vertexLighting = input.fogFactorAndVertexLight.yzw;
#endif
// Sample baked GI (same order as Amplify Lit template)
float3 SH = input.lightmapUVOrVertexSH.xyz;
#if defined(DYNAMICLIGHTMAP_ON)
@ -561,6 +498,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
inputData.bakedGI = inputData.bakedGI * _NiloToonGlobalEnviGITintColor + _NiloToonGlobalEnviGIAddColor;
inputData.bakedGI = lerp(inputData.bakedGI, _NiloToonGlobalEnviGIOverride.rgb, _NiloToonGlobalEnviGIOverride.a);
// Setup SurfaceData
SurfaceData surfaceData;
surfaceData.albedo = BaseColor;
surfaceData.metallic = saturate(Metallic);
@ -573,6 +511,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
surfaceData.clearCoatMask = 0;
surfaceData.clearCoatSmoothness = 1;
// Apply DBuffer Decal (same order as Amplify Lit template)
#if defined(_DBUFFER)
ApplyDecalToSurfaceData(input.positionCS, surfaceData, inputData);
#endif
@ -622,7 +561,10 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
}
#endif
color.rgb = MixFog(color.rgb, inputData.fogCoord);
#ifdef ASE_FOG
color.rgb = MixFog(color.rgb, inputData.fogCoord);
#endif
color.a = OutputAlpha(color.a, IsSurfaceTypeTransparent(_Surface));
#if defined( ASE_DEPTH_WRITE_ON )
@ -668,8 +610,8 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#if defined(LOD_FADE_CROSSFADE)
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
/*ase_pragma*/
@ -698,6 +640,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
half3 _ScreenSpaceOutlineColor;
float _ScreenSpaceOutlineWidth;
float _Surface;
/*ase_srp_batcher*/
CBUFFER_END
/*ase_globals*/
@ -742,84 +685,10 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
return output;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 positionOS : INTERNALTESSPOS;
float3 normalOS : NORMAL;
/*ase_vcontrol*/
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( Attributes input )
{
VertexControl output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
output.positionOS = input.positionOS;
output.normalOS = input.normalOS;
/*ase_control_code:input=Attributes;output=VertexControl*/
return output;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
{
TessellationFactors output;
float4 tf = 1;
float tessValue = /*ase_inline_begin*/_TessValue/*ase_inline_end*/; float tessMin = /*ase_inline_begin*/_TessMin/*ase_inline_end*/; float tessMax = /*ase_inline_begin*/_TessMax/*ase_inline_end*/;
float edgeLength = /*ase_inline_begin*/_TessEdgeLength/*ase_inline_end*/; float tessMaxDisp = /*ase_inline_begin*/_TessMaxDisp/*ase_inline_end*/;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
return output;
}
[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")]
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
Attributes output = (Attributes) 0;
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
/*ase_domain_code:patch=VertexControl;output=Attributes;bary=SV_DomainLocation*/
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
float phongStrength = /*ase_inline_begin*/_TessPhongStrength/*ase_inline_end*/;
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
return VertexFunction(output);
}
#else
PackedVaryings vert ( Attributes input )
{
return VertexFunction( input );
}
#endif
half4 frag(PackedVaryings input /*ase_frag_input*/ ) : SV_TARGET
{
@ -878,8 +747,8 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#if defined(LOD_FADE_CROSSFADE)
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
/*ase_pragma*/
@ -908,6 +777,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
half3 _ScreenSpaceOutlineColor;
float _ScreenSpaceOutlineWidth;
float _Surface;
/*ase_srp_batcher*/
CBUFFER_END
/*ase_globals*/
@ -935,84 +805,10 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
return output;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 positionOS : INTERNALTESSPOS;
float3 normalOS : NORMAL;
/*ase_vcontrol*/
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( Attributes input )
{
VertexControl output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
output.positionOS = input.positionOS;
output.normalOS = input.normalOS;
/*ase_control_code:input=Attributes;output=VertexControl*/
return output;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
{
TessellationFactors output;
float4 tf = 1;
float tessValue = /*ase_inline_begin*/_TessValue/*ase_inline_end*/; float tessMin = /*ase_inline_begin*/_TessMin/*ase_inline_end*/; float tessMax = /*ase_inline_begin*/_TessMax/*ase_inline_end*/;
float edgeLength = /*ase_inline_begin*/_TessEdgeLength/*ase_inline_end*/; float tessMaxDisp = /*ase_inline_begin*/_TessMaxDisp/*ase_inline_end*/;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
return output;
}
[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")]
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
Attributes output = (Attributes) 0;
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
/*ase_domain_code:patch=VertexControl;output=Attributes;bary=SV_DomainLocation*/
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
float phongStrength = /*ase_inline_begin*/_TessPhongStrength/*ase_inline_end*/;
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
return VertexFunction(output);
}
#else
PackedVaryings vert ( Attributes input )
{
return VertexFunction( input );
}
#endif
half4 frag(PackedVaryings input /*ase_frag_input*/ ) : SV_TARGET
{
@ -1048,7 +844,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
/*ase_pass*/
Pass
{
Name "DepthNormals"
Name "DepthNormalsOnly"
Tags
{
"LightMode" = "DepthNormalsOnly"
@ -1062,37 +858,45 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
#pragma vertex vert
#pragma fragment frag
#define SHADERPASS SHADERPASS_DEPTHNORMALS
#define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
#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.universal/ShaderLibrary/Input.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#if defined(LOD_FADE_CROSSFADE)
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
/*ase_pragma*/
struct Attributes
{
float4 positionOS : POSITION;
float3 normalOS : NORMAL;
float4 tangentOS : TANGENT;
/*ase_vdata:p=p;n=n;t=t*/
half3 normalOS : NORMAL;
half4 tangentOS : TANGENT;
half4 texcoord : TEXCOORD0;
/*ase_vdata:p=p;n=n;t=t;uv0=tc0*/
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct PackedVaryings
{
float4 positionCS : SV_POSITION;
float4 clipPosV : TEXCOORD0;
float3 normalWS : TEXCOORD1;
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
float3 positionWS : TEXCOORD2;
#endif
/*ase_interp(3,):*/
float3 positionWS : TEXCOORD0;
half3 normalWS : TEXCOORD1;
float4 tangentWS : TEXCOORD2;
/*ase_interp(3,):sp=sp;wp=tc0.xyz;wn=tc1.xyz;wt=tc2*/
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
@ -1102,118 +906,61 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
half3 _ScreenSpaceOutlineColor;
float _ScreenSpaceOutlineWidth;
float _Surface;
/*ase_srp_batcher*/
CBUFFER_END
/*ase_globals*/
/*ase_funcs*/
PackedVaryings VertexFunction( Attributes input )
PackedVaryings VertexFunction( Attributes input /*ase_vert_input*/ )
{
PackedVaryings output;
PackedVaryings output = (PackedVaryings)0;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
/*ase_vert_code:input=Attributes;output=PackedVaryings*/
float3 positionWS = TransformObjectToWorld( input.positionOS.xyz );
float3 normalWS = TransformObjectToWorldNormal( input.normalOS );
float4 positionCS = TransformWorldToHClip( positionWS );
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
output.positionWS = positionWS;
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = input.positionOS.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
output.positionCS = positionCS;
output.clipPosV = positionCS;
output.normalWS = normalWS;
float3 vertexValue = /*ase_vert_out:Vertex Offset;Float3;8;-1;_Vertex*/defaultVertexValue/*end*/;
#ifdef ASE_ABSOLUTE_VERTEX_POS
input.positionOS.xyz = vertexValue;
#else
input.positionOS.xyz += vertexValue;
#endif
input.normalOS = /*ase_vert_out:Vertex Normal;Float3;10;-1;_Normal*/input.normalOS/*end*/;
input.tangentOS = /*ase_vert_out:Vertex Tangent;Float4;30;-1;_Tangent*/input.tangentOS/*end*/;
VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
VertexNormalInputs normalInput = GetVertexNormalInputs( input.normalOS, input.tangentOS );
output.positionCS = vertexInput.positionCS;
output.positionWS = vertexInput.positionWS;
output.normalWS = normalInput.normalWS;
output.tangentWS = float4( normalInput.tangentWS, ( input.tangentOS.w > 0.0 ? 1.0 : -1.0 ) * GetOddNegativeScale() );
return output;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 positionOS : INTERNALTESSPOS;
float3 normalOS : NORMAL;
float4 tangentOS : TANGENT;
/*ase_vcontrol*/
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( Attributes input )
{
VertexControl output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
output.positionOS = input.positionOS;
output.normalOS = input.normalOS;
output.tangentOS = input.tangentOS;
/*ase_control_code:input=Attributes;output=VertexControl*/
return output;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
{
TessellationFactors output;
float4 tf = 1;
float tessValue = /*ase_inline_begin*/_TessValue/*ase_inline_end*/; float tessMin = /*ase_inline_begin*/_TessMin/*ase_inline_end*/; float tessMax = /*ase_inline_begin*/_TessMax/*ase_inline_end*/;
float edgeLength = /*ase_inline_begin*/_TessEdgeLength/*ase_inline_end*/; float tessMaxDisp = /*ase_inline_begin*/_TessMaxDisp/*ase_inline_end*/;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
return output;
}
[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")]
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
Attributes output = (Attributes) 0;
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
output.tangentOS = patch[0].tangentOS * bary.x + patch[1].tangentOS * bary.y + patch[2].tangentOS * bary.z;
/*ase_domain_code:patch=VertexControl;output=Attributes;bary=SV_DomainLocation*/
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
float phongStrength = /*ase_inline_begin*/_TessPhongStrength/*ase_inline_end*/;
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
return VertexFunction(output);
}
#else
PackedVaryings vert ( Attributes input )
{
return VertexFunction( input );
}
#endif
half4 frag(PackedVaryings input /*ase_frag_input*/ ) : SV_TARGET
void frag( PackedVaryings input
, out half4 outNormalWS : SV_Target0
#ifdef _WRITE_RENDERING_LAYERS
, out uint outRenderingLayers : SV_Target1
#endif
/*ase_frag_input*/ )
{
UNITY_SETUP_INSTANCE_ID(input);
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
@ -1222,13 +969,9 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
LODFadeCrossFade( input.positionCS );
#endif
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
float3 PositionWS = input.positionWS;
#endif
float4 ShadowCoord = float4( 0, 0, 0, 0 );
float4 ClipPos = input.clipPosV;
float4 ScreenPos = ComputeScreenPos( input.clipPosV );
/*ase_local_var:wp*/float3 PositionWS = input.positionWS;
/*ase_local_var:wn*/float3 NormalWS = input.normalWS;
/*ase_local_var:wt*/float4 TangentWS = input.tangentWS;
/*ase_frag_code:input=PackedVaryings*/
@ -1239,8 +982,20 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
AlphaDiscard( Alpha, AlphaClipThreshold );
#endif
float3 normalWS = input.normalWS;
return half4(NormalizeNormalPerPixel(normalWS), 0.0);
#if defined(_GBUFFER_NORMALS_OCT)
float3 normalWS = normalize(NormalWS);
float2 octNormalWS = PackNormalOctQuadEncode(normalWS);
float2 remappedOctNormalWS = saturate(octNormalWS * 0.5 + 0.5);
half3 packedNormalWS = PackFloat2To888(remappedOctNormalWS);
outNormalWS = half4(packedNormalWS, 0.0);
#else
float3 normalWS = NormalizeNormalPerPixel(NormalWS);
outNormalWS = half4(normalWS, 0.0);
#endif
#ifdef _WRITE_RENDERING_LAYERS
outRenderingLayers = EncodeMeshRenderingLayer();
#endif
}
ENDHLSL
}
@ -1300,6 +1055,7 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
half3 _ScreenSpaceOutlineColor;
float _ScreenSpaceOutlineWidth;
float _Surface;
/*ase_srp_batcher*/
CBUFFER_END
/*ase_globals*/
@ -1325,93 +1081,10 @@ Shader /*ase_name*/ "Hidden/Universal/NiloToonEnvironment" /*end*/
return output;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 positionOS : INTERNALTESSPOS;
float3 normalOS : NORMAL;
float4 texcoord : TEXCOORD0;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
/*ase_vcontrol*/
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( Attributes input )
{
VertexControl output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
output.positionOS = input.positionOS;
output.normalOS = input.normalOS;
output.texcoord = input.texcoord;
output.texcoord1 = input.texcoord1;
output.texcoord2 = input.texcoord2;
/*ase_control_code:input=Attributes;output=VertexControl*/
return output;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
{
TessellationFactors output;
float4 tf = 1;
float tessValue = /*ase_inline_begin*/_TessValue/*ase_inline_end*/; float tessMin = /*ase_inline_begin*/_TessMin/*ase_inline_end*/; float tessMax = /*ase_inline_begin*/_TessMax/*ase_inline_end*/;
float edgeLength = /*ase_inline_begin*/_TessEdgeLength/*ase_inline_end*/; float tessMaxDisp = /*ase_inline_begin*/_TessMaxDisp/*ase_inline_end*/;
#if defined(ASE_FIXED_TESSELLATION)
tf = FixedTess( tessValue );
#elif defined(ASE_DISTANCE_TESSELLATION)
tf = DistanceBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
return output;
}
[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")]
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
Attributes output = (Attributes) 0;
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
output.texcoord = patch[0].texcoord * bary.x + patch[1].texcoord * bary.y + patch[2].texcoord * bary.z;
output.texcoord1 = patch[0].texcoord1 * bary.x + patch[1].texcoord1 * bary.y + patch[2].texcoord1 * bary.z;
output.texcoord2 = patch[0].texcoord2 * bary.x + patch[1].texcoord2 * bary.y + patch[2].texcoord2 * bary.z;
/*ase_domain_code:patch=VertexControl;output=Attributes;bary=SV_DomainLocation*/
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
float phongStrength = /*ase_inline_begin*/_TessPhongStrength/*ase_inline_end*/;
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
return VertexFunction(output);
}
#else
PackedVaryings vert ( Attributes input )
{
return VertexFunction( input );
}
#endif
half4 frag(PackedVaryings input /*ase_frag_input*/ ) : SV_TARGET
{

View File

@ -1,5 +1,5 @@
fileFormatVersion: 2
guid: 2534d4d29a40afc46a3cc49af189fcb4
guid: df83b33f62768f64cb5fff5416086758
ShaderImporter:
externalObjects: {}
defaultTextures: []

View File

@ -16,8 +16,9 @@ Material:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
m_CustomRenderQueue: 1987
stringTagMap:
RenderType: Opaque
disabledShaderPasses: []
m_LockedProperties:
m_SavedProperties:
@ -27,6 +28,10 @@ Material:
m_Texture: {fileID: 2800000, guid: fd9a6a94cb29b5d45ac48fae83f0d611, type: 3}
m_Scale: {x: 200, y: 200}
m_Offset: {x: 0, y: 0}
- _BaseTexture:
m_Texture: {fileID: 2800000, guid: fd9a6a94cb29b5d45ac48fae83f0d611, type: 3}
m_Scale: {x: 200, y: 200}
m_Offset: {x: 0, y: 0}
- _BumpMap:
m_Texture: {fileID: 0}
m_Scale: {x: 1, y: 1}
@ -109,8 +114,8 @@ Material:
- _OcclusionStrength: 1
- _Parallax: 0.005
- _QueueControl: 0
- _QueueOffset: 0
- _Radius: 0.098
- _QueueOffset: -13
- _Radius: 0.084
- _ReceiveShadows: 1
- _SampleGI: 0
- _ScreenSpaceOutlineIntensity: 1
@ -124,6 +129,7 @@ Material:
- _WorkflowMode: 1
- _XRMotionVectorsPass: 1
- _ZWrite: 1
- __dirty: 0
m_Colors:
- _BaseColor: {r: 1, g: 1, b: 1, a: 1}
- _Color: {r: 1, g: 1, b: 1, a: 1}

View File

@ -6,7 +6,7 @@ Shader "Mingle/Floor/White Horizon"
{
[HideInInspector] _AlphaCutoff("Alpha Cutoff ", Range(0, 1)) = 0.5
[HideInInspector] _EmissionColor("Emission Color", Color) = (1,1,1,1)
_BaseMap( "BaseMap", 2D ) = "white" {}
_BaseTexture( "BaseTexture", 2D ) = "white" {}
_Radius( "Radius", Range( 0, 1 ) ) = 1
_Smoothness( "Smoothness", Range( 0.01, 1 ) ) = 0.5
[HideInInspector] _texcoord( "", 2D ) = "white" {}
@ -17,11 +17,14 @@ Shader "Mingle/Floor/White Horizon"
[ToggleUI] _ReceiveShadows("Receive Shadows", Float) = 1.0
[HideInInspector] _QueueOffset("_QueueOffset", Float) = 0
[HideInInspector] _QueueControl("_QueueControl", Float) = -1
[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) = "" {}
[HideInInspector][NoScaleOffset] unity_Lightmaps("unity_Lightmaps", 2DArray) = "" {}
[HideInInspector][NoScaleOffset] unity_LightmapsInd("unity_LightmapsInd", 2DArray) = "" {}
[HideInInspector][NoScaleOffset] unity_ShadowMasks("unity_ShadowMasks", 2DArray) = "" {}
// Surface type (0 = Opaque, 1 = Transparent) - required for DBuffer decals
[HideInInspector] _Surface("__surface", Float) = 0.0
// NiloToon Screen Space Outline
_ScreenSpaceOutlineIntensity("Screen Space Outline Intensity", Range(0,1)) = 1
@ -33,7 +36,7 @@ Shader "Mingle/Floor/White Horizon"
{
Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Opaque" "UniversalMaterialType"="Lit" "Queue"="Geometry" "IgnoreProjector"="True" }
Tags { "RenderPipeline"="UniversalPipeline" "RenderType"="Opaque" "UniversalMaterialType"="ComplexLit" "IgnoreProjector"="True" }
Cull Back
ZWrite On
@ -46,8 +49,6 @@ Shader "Mingle/Floor/White Horizon"
HLSLINCLUDE
#pragma target 3.0
#pragma prefer_hlslcc gles
// GPU Instancing not available in WebGL
// #pragma exclude_renderers gles //
ENDHLSL
@ -66,7 +67,6 @@ Shader "Mingle/Floor/White Horizon"
HLSLPROGRAM
#define _NORMAL_DROPOFF_TS 1
#pragma shader_feature_local_fragment _RECEIVE_SHADOWS_OFF
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF
@ -77,19 +77,47 @@ Shader "Mingle/Floor/White Horizon"
#define ASE_VERSION 19904
#define ASE_SRP_VERSION 170200
#pragma target 2.0
// -------------------------------------
// Shader Stages
#pragma vertex vert
#pragma fragment frag
// -------------------------------------
// Material Keywords
#pragma shader_feature_local _NORMALMAP
#pragma shader_feature_local _PARALLAXMAP
#pragma shader_feature_local _RECEIVE_SHADOWS_OFF
#pragma shader_feature_local _ _DETAIL_MULX2 _DETAIL_SCALED
#pragma shader_feature_local_fragment _SURFACE_TYPE_TRANSPARENT
//#pragma shader_feature_local_fragment _ALPHATEST_ON
#pragma shader_feature_local_fragment _ _ALPHAPREMULTIPLY_ON _ALPHAMODULATE_ON
#pragma shader_feature_local_fragment _EMISSION
#pragma shader_feature_local_fragment _METALLICSPECGLOSSMAP
#pragma shader_feature_local_fragment _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
#pragma shader_feature_local_fragment _OCCLUSIONMAP
#pragma shader_feature_local_fragment _ _CLEARCOAT _CLEARCOATMAP
#pragma shader_feature_local_fragment _SPECULARHIGHLIGHTS_OFF
#pragma shader_feature_local_fragment _ENVIRONMENTREFLECTIONS_OFF
#pragma shader_feature_local_fragment _SPECULAR_SETUP
// -------------------------------------
// Universal Pipeline keywords
#pragma multi_compile _ _MAIN_LIGHT_SHADOWS _MAIN_LIGHT_SHADOWS_CASCADE _MAIN_LIGHT_SHADOWS_SCREEN
#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
#pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX
#pragma multi_compile _ EVALUATE_SH_MIXED EVALUATE_SH_VERTEX
#pragma multi_compile _ _LIGHT_LAYERS
#pragma multi_compile _ _CLUSTER_LIGHT_LOOP
#pragma multi_compile_fragment _ _ADDITIONAL_LIGHT_SHADOWS
#pragma multi_compile_fragment _ _REFLECTION_PROBE_BLENDING
#pragma multi_compile_fragment _ _REFLECTION_PROBE_BOX_PROJECTION
#pragma multi_compile_fragment _ _REFLECTION_PROBE_ATLAS
#pragma multi_compile_fragment _ _SHADOWS_SOFT _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
#pragma multi_compile_fragment _ _SHADOWS_SOFT
#pragma multi_compile_fragment _ _SHADOWS_SOFT_LOW _SHADOWS_SOFT_MEDIUM _SHADOWS_SOFT_HIGH
#pragma multi_compile_fragment _ _SCREEN_SPACE_OCCLUSION
#pragma multi_compile_fragment _ _DBUFFER_MRT1 _DBUFFER_MRT2 _DBUFFER_MRT3
#pragma multi_compile _ _LIGHT_LAYERS
#pragma multi_compile_fragment _ _LIGHT_COOKIES
#pragma multi_compile _ _CLUSTER_LIGHT_LOOP
#pragma multi_compile _ LIGHTMAP_SHADOW_MIXING
#pragma multi_compile _ SHADOWS_SHADOWMASK
@ -99,13 +127,6 @@ Shader "Mingle/Floor/White Horizon"
#pragma multi_compile _ DYNAMICLIGHTMAP_ON
#pragma multi_compile _ USE_LEGACY_LIGHTMAPS
#pragma vertex vert
#pragma fragment frag
#if defined(_SPECULAR_SETUP) && defined(_SPECULAR_COLOR)
#define _SPECULAR_COLOR 1
#endif
#define SHADERPASS SHADERPASS_FORWARD
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
@ -118,8 +139,8 @@ Shader "Mingle/Floor/White Horizon"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Lighting.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Input.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Shadows.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
@ -127,15 +148,17 @@ Shader "Mingle/Floor/White Horizon"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#if defined(LOD_FADE_CROSSFADE)
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
// NiloToon Screen Space Outline Support
// Note: Include NiloToon's utility files for screen space outline functionality
#if defined(_NILOTOON_GLOBAL_ENABLE_SCREENSPACE_OUTLINE)
#include "../../../../../../NiloToonURP/ShaderLibrary/NiloUtilityHLSL/NiloAllUtilIncludes.hlsl"
#include "Assets/NiloToonURP/ShaderLibrary/NiloUtilityHLSL/NiloAllUtilIncludes.hlsl"
#endif
// NOTE: _DBUFFER is automatically defined in DBuffer.hlsl when _DBUFFER_MRT variants are active
// and _SURFACE_TYPE_TRANSPARENT is not defined. No manual define needed.
#define ASE_NEEDS_TEXTURE_COORDINATES0
#define ASE_NEEDS_FRAG_TEXTURE_COORDINATES0
@ -171,9 +194,7 @@ Shader "Mingle/Floor/White Horizon"
half3 normalWS : TEXCOORD1;
float4 tangentWS : TEXCOORD2;
float4 lightmapUVOrVertexSH : TEXCOORD3;
#if defined(ASE_FOG) || defined(_ADDITIONAL_LIGHTS_VERTEX)
half4 fogFactorAndVertexLight : TEXCOORD4;
#endif
half4 fogFactorAndVertexLight : TEXCOORD4;
#if defined(DYNAMICLIGHTMAP_ON)
float2 dynamicLightmapUV : TEXCOORD5;
#endif
@ -187,7 +208,7 @@ Shader "Mingle/Floor/White Horizon"
};
CBUFFER_START(UnityPerMaterial)
float4 _BaseMap_ST;
float4 _BaseTexture_ST;
float _Smoothness;
float _Radius;
// NiloToon Screen Space Outline
@ -195,6 +216,7 @@ Shader "Mingle/Floor/White Horizon"
half3 _ScreenSpaceOutlineColor;
float _ScreenSpaceOutlineWidth;
float _Surface;
/*ase_srp_batcher*/
CBUFFER_END
// NiloToon Global Uniforms
@ -222,7 +244,7 @@ Shader "Mingle/Floor/White Horizon"
int _PassValue;
#endif
sampler2D _BaseMap;
sampler2D _BaseTexture;
@ -262,9 +284,7 @@ Shader "Mingle/Floor/White Horizon"
fogFactor = ComputeFogFactor( vertexInput.positionCS.z );
#endif
#if defined(ASE_FOG) || defined(_ADDITIONAL_LIGHTS_VERTEX)
output.fogFactorAndVertexLight = half4(fogFactor, vertexLight);
#endif
output.fogFactorAndVertexLight = half4(fogFactor, vertexLight);
// NiloToon screen pos
output.screenPos = ComputeScreenPos(output.positionCS);
@ -272,96 +292,10 @@ Shader "Mingle/Floor/White Horizon"
return output;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 positionOS : INTERNALTESSPOS;
half3 normalOS : NORMAL;
half4 tangentOS : TANGENT;
float4 texcoord : TEXCOORD0;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( Attributes input )
{
VertexControl output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
output.positionOS = input.positionOS;
output.normalOS = input.normalOS;
output.tangentOS = input.tangentOS;
output.texcoord = input.texcoord;
output.texcoord1 = input.texcoord1;
output.texcoord2 = input.texcoord2;
return output;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
{
TessellationFactors output;
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(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
return output;
}
[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")]
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
Attributes output = (Attributes) 0;
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
output.tangentOS = patch[0].tangentOS * bary.x + patch[1].tangentOS * bary.y + patch[2].tangentOS * bary.z;
output.texcoord = patch[0].texcoord * bary.x + patch[1].texcoord * bary.y + patch[2].texcoord * bary.z;
output.texcoord1 = patch[0].texcoord1 * bary.x + patch[1].texcoord1 * bary.y + patch[2].texcoord1 * bary.z;
output.texcoord2 = patch[0].texcoord2 * bary.x + patch[1].texcoord2 * bary.y + patch[2].texcoord2 * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
float phongStrength = _TessPhongStrength;
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
return VertexFunction(output);
}
#else
PackedVaryings vert ( Attributes input )
{
return VertexFunction( input );
}
#endif
half4 frag ( PackedVaryings input
#if defined( ASE_DEPTH_WRITE_ON )
@ -407,18 +341,18 @@ Shader "Mingle/Floor/White Horizon"
float2 temp_cast_1 = (-1.0).xx;
float2 texCoord12 = input.ase_texcoord7.xy * temp_cast_0 + temp_cast_1;
float smoothstepResult13 = smoothstep( _Radius , ( _Radius - _Smoothness ) , length( texCoord12 ));
float2 uv_BaseMap = input.ase_texcoord7.xy * _BaseMap_ST.xy + _BaseMap_ST.zw;
float2 uv_BaseTexture = input.ase_texcoord7.xy * _BaseTexture_ST.xy + _BaseTexture_ST.zw;
float layeredBlendVar18 = smoothstepResult13;
float4 layeredBlend18 = ( lerp( float4( 1,1,1,1 ),tex2D( _BaseMap, uv_BaseMap ) , layeredBlendVar18 ) );
float4 layeredBlend18 = ( lerp( float4( 1,1,1,1 ),tex2D( _BaseTexture, uv_BaseTexture ) , layeredBlendVar18 ) );
float3 BaseColor = float3(0.5, 0.5, 0.5);
float3 BaseColor = layeredBlend18.rgb;
float3 Normal = float3(0, 0, 1);
float3 Specular = 0.5;
float Metallic = 0;
float Smoothness = 0.5;
float Metallic = 0.0;
float Smoothness = 0.0;
float Occlusion = 1;
float3 Emission = layeredBlend18.rgb;
float3 Emission = 0;
float Alpha = 1;
float AlphaClipThreshold = 0.5;
@ -445,13 +379,13 @@ Shader "Mingle/Floor/White Horizon"
inputData.shadowCoord = ShadowCoord;
#ifdef _NORMALMAP
#if _NORMAL_DROPOFF_TS
inputData.normalWS = TransformTangentToWorld(Normal, half3x3(TangentWS, BitangentWS, NormalWS));
#elif _NORMAL_DROPOFF_OS
inputData.normalWS = TransformObjectToWorldNormal(Normal);
#elif _NORMAL_DROPOFF_WS
inputData.normalWS = Normal;
#endif
#if _NORMAL_DROPOFF_TS
inputData.normalWS = TransformTangentToWorld(Normal, half3x3(TangentWS, BitangentWS, NormalWS));
#elif _NORMAL_DROPOFF_OS
inputData.normalWS = TransformObjectToWorldNormal(Normal);
#elif _NORMAL_DROPOFF_WS
inputData.normalWS = Normal;
#endif
inputData.normalWS = NormalizeNormalPerPixel(inputData.normalWS);
#else
inputData.normalWS = NormalWS;
@ -464,6 +398,7 @@ Shader "Mingle/Floor/White Horizon"
inputData.vertexLighting = input.fogFactorAndVertexLight.yzw;
#endif
// Sample baked GI (same order as Amplify Lit template)
float3 SH = input.lightmapUVOrVertexSH.xyz;
#if defined(DYNAMICLIGHTMAP_ON)
@ -485,6 +420,7 @@ Shader "Mingle/Floor/White Horizon"
inputData.bakedGI = inputData.bakedGI * _NiloToonGlobalEnviGITintColor + _NiloToonGlobalEnviGIAddColor;
inputData.bakedGI = lerp(inputData.bakedGI, _NiloToonGlobalEnviGIOverride.rgb, _NiloToonGlobalEnviGIOverride.a);
// Setup SurfaceData
SurfaceData surfaceData;
surfaceData.albedo = BaseColor;
surfaceData.metallic = saturate(Metallic);
@ -497,6 +433,7 @@ Shader "Mingle/Floor/White Horizon"
surfaceData.clearCoatMask = 0;
surfaceData.clearCoatSmoothness = 1;
// Apply DBuffer Decal (same order as Amplify Lit template)
#if defined(_DBUFFER)
ApplyDecalToSurfaceData(input.positionCS, surfaceData, inputData);
#endif
@ -546,7 +483,10 @@ Shader "Mingle/Floor/White Horizon"
}
#endif
color.rgb = MixFog(color.rgb, inputData.fogCoord);
#ifdef ASE_FOG
color.rgb = MixFog(color.rgb, inputData.fogCoord);
#endif
color.a = OutputAlpha(color.a, IsSurfaceTypeTransparent(_Surface));
#if defined( ASE_DEPTH_WRITE_ON )
@ -596,8 +536,8 @@ Shader "Mingle/Floor/White Horizon"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#if defined(LOD_FADE_CROSSFADE)
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
@ -622,13 +562,14 @@ Shader "Mingle/Floor/White Horizon"
};
CBUFFER_START(UnityPerMaterial)
float4 _BaseMap_ST;
float4 _BaseTexture_ST;
float _Smoothness;
float _Radius;
float _ScreenSpaceOutlineIntensity;
half3 _ScreenSpaceOutlineColor;
float _ScreenSpaceOutlineWidth;
float _Surface;
/*ase_srp_batcher*/
CBUFFER_END
@ -672,84 +613,10 @@ Shader "Mingle/Floor/White Horizon"
return output;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 positionOS : INTERNALTESSPOS;
float3 normalOS : NORMAL;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( Attributes input )
{
VertexControl output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
output.positionOS = input.positionOS;
output.normalOS = input.normalOS;
return output;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
{
TessellationFactors output;
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(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
return output;
}
[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")]
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
Attributes output = (Attributes) 0;
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
float phongStrength = _TessPhongStrength;
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
return VertexFunction(output);
}
#else
PackedVaryings vert ( Attributes input )
{
return VertexFunction( input );
}
#endif
half4 frag(PackedVaryings input ) : SV_TARGET
{
@ -812,8 +679,8 @@ Shader "Mingle/Floor/White Horizon"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#if defined(LOD_FADE_CROSSFADE)
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
@ -838,13 +705,14 @@ Shader "Mingle/Floor/White Horizon"
};
CBUFFER_START(UnityPerMaterial)
float4 _BaseMap_ST;
float4 _BaseTexture_ST;
float _Smoothness;
float _Radius;
float _ScreenSpaceOutlineIntensity;
half3 _ScreenSpaceOutlineColor;
float _ScreenSpaceOutlineWidth;
float _Surface;
/*ase_srp_batcher*/
CBUFFER_END
@ -871,84 +739,10 @@ Shader "Mingle/Floor/White Horizon"
return output;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 positionOS : INTERNALTESSPOS;
float3 normalOS : NORMAL;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( Attributes input )
{
VertexControl output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
output.positionOS = input.positionOS;
output.normalOS = input.normalOS;
return output;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
{
TessellationFactors output;
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(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
return output;
}
[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")]
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
Attributes output = (Attributes) 0;
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
float phongStrength = _TessPhongStrength;
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
return VertexFunction(output);
}
#else
PackedVaryings vert ( Attributes input )
{
return VertexFunction( input );
}
#endif
half4 frag(PackedVaryings input ) : SV_TARGET
{
@ -984,7 +778,7 @@ Shader "Mingle/Floor/White Horizon"
Pass
{
Name "DepthNormals"
Name "DepthNormalsOnly"
Tags { "LightMode"="DepthNormalsOnly" }
ZWrite On
@ -1002,24 +796,34 @@ Shader "Mingle/Floor/White Horizon"
#pragma vertex vert
#pragma fragment frag
#define SHADERPASS SHADERPASS_DEPTHNORMALS
#define SHADERPASS SHADERPASS_DEPTHNORMALSONLY
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/DOTS.hlsl"
#include_with_pragmas "Packages/com.unity.render-pipelines.universal/ShaderLibrary/RenderingLayers.hlsl"
#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.universal/ShaderLibrary/Input.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/TextureStack.hlsl"
#include_with_pragmas "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRenderingKeywords.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/FoveatedRendering.hlsl"
#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/ShaderGraphFunctions.hlsl"
#include "Packages/com.unity.render-pipelines.universal/Editor/ShaderGraph/Includes/ShaderPass.hlsl"
#if defined(LOD_FADE_CROSSFADE)
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/LODCrossFade.hlsl"
#endif
struct Attributes
{
float4 positionOS : POSITION;
float3 normalOS : NORMAL;
float4 tangentOS : TANGENT;
half3 normalOS : NORMAL;
half4 tangentOS : TANGENT;
half4 texcoord : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
@ -1027,135 +831,76 @@ Shader "Mingle/Floor/White Horizon"
struct PackedVaryings
{
float4 positionCS : SV_POSITION;
float4 clipPosV : TEXCOORD0;
float3 normalWS : TEXCOORD1;
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
float3 positionWS : TEXCOORD2;
#endif
float3 positionWS : TEXCOORD0;
half3 normalWS : TEXCOORD1;
float4 tangentWS : TEXCOORD2;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
CBUFFER_START(UnityPerMaterial)
float4 _BaseMap_ST;
float4 _BaseTexture_ST;
float _Smoothness;
float _Radius;
float _ScreenSpaceOutlineIntensity;
half3 _ScreenSpaceOutlineColor;
float _ScreenSpaceOutlineWidth;
float _Surface;
/*ase_srp_batcher*/
CBUFFER_END
PackedVaryings VertexFunction( Attributes input )
PackedVaryings VertexFunction( Attributes input )
{
PackedVaryings output;
PackedVaryings output = (PackedVaryings)0;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
float3 positionWS = TransformObjectToWorld( input.positionOS.xyz );
float3 normalWS = TransformObjectToWorldNormal( input.normalOS );
float4 positionCS = TransformWorldToHClip( positionWS );
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
output.positionWS = positionWS;
#ifdef ASE_ABSOLUTE_VERTEX_POS
float3 defaultVertexValue = input.positionOS.xyz;
#else
float3 defaultVertexValue = float3(0, 0, 0);
#endif
output.positionCS = positionCS;
output.clipPosV = positionCS;
output.normalWS = normalWS;
float3 vertexValue = defaultVertexValue;
#ifdef ASE_ABSOLUTE_VERTEX_POS
input.positionOS.xyz = vertexValue;
#else
input.positionOS.xyz += vertexValue;
#endif
input.normalOS = input.normalOS;
input.tangentOS = input.tangentOS;
VertexPositionInputs vertexInput = GetVertexPositionInputs( input.positionOS.xyz );
VertexNormalInputs normalInput = GetVertexNormalInputs( input.normalOS, input.tangentOS );
output.positionCS = vertexInput.positionCS;
output.positionWS = vertexInput.positionWS;
output.normalWS = normalInput.normalWS;
output.tangentWS = float4( normalInput.tangentWS, ( input.tangentOS.w > 0.0 ? 1.0 : -1.0 ) * GetOddNegativeScale() );
return output;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 positionOS : INTERNALTESSPOS;
float3 normalOS : NORMAL;
float4 tangentOS : TANGENT;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( Attributes input )
{
VertexControl output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
output.positionOS = input.positionOS;
output.normalOS = input.normalOS;
output.tangentOS = input.tangentOS;
return output;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
{
TessellationFactors output;
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(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
return output;
}
[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")]
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
Attributes output = (Attributes) 0;
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
output.tangentOS = patch[0].tangentOS * bary.x + patch[1].tangentOS * bary.y + patch[2].tangentOS * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
float phongStrength = _TessPhongStrength;
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
return VertexFunction(output);
}
#else
PackedVaryings vert ( Attributes input )
{
return VertexFunction( input );
}
#endif
half4 frag(PackedVaryings input ) : SV_TARGET
void frag( PackedVaryings input
, out half4 outNormalWS : SV_Target0
#ifdef _WRITE_RENDERING_LAYERS
, out uint outRenderingLayers : SV_Target1
#endif
)
{
UNITY_SETUP_INSTANCE_ID(input);
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
@ -1164,13 +909,9 @@ Shader "Mingle/Floor/White Horizon"
LODFadeCrossFade( input.positionCS );
#endif
#if defined(ASE_NEEDS_FRAG_WORLD_POSITION)
float3 PositionWS = input.positionWS;
#endif
float4 ShadowCoord = float4( 0, 0, 0, 0 );
float4 ClipPos = input.clipPosV;
float4 ScreenPos = ComputeScreenPos( input.clipPosV );
float3 PositionWS = input.positionWS;
float3 NormalWS = input.normalWS;
float4 TangentWS = input.tangentWS;
@ -1181,8 +922,20 @@ Shader "Mingle/Floor/White Horizon"
AlphaDiscard( Alpha, AlphaClipThreshold );
#endif
float3 normalWS = input.normalWS;
return half4(NormalizeNormalPerPixel(normalWS), 0.0);
#if defined(_GBUFFER_NORMALS_OCT)
float3 normalWS = normalize(NormalWS);
float2 octNormalWS = PackNormalOctQuadEncode(normalWS);
float2 remappedOctNormalWS = saturate(octNormalWS * 0.5 + 0.5);
half3 packedNormalWS = PackFloat2To888(remappedOctNormalWS);
outNormalWS = half4(packedNormalWS, 0.0);
#else
float3 normalWS = NormalizeNormalPerPixel(NormalWS);
outNormalWS = half4(normalWS, 0.0);
#endif
#ifdef _WRITE_RENDERING_LAYERS
outRenderingLayers = EncodeMeshRenderingLayer();
#endif
}
ENDHLSL
}
@ -1243,16 +996,17 @@ Shader "Mingle/Floor/White Horizon"
};
CBUFFER_START(UnityPerMaterial)
float4 _BaseMap_ST;
float4 _BaseTexture_ST;
float _Smoothness;
float _Radius;
float _ScreenSpaceOutlineIntensity;
half3 _ScreenSpaceOutlineColor;
float _ScreenSpaceOutlineWidth;
float _Surface;
/*ase_srp_batcher*/
CBUFFER_END
sampler2D _BaseMap;
sampler2D _BaseTexture;
@ -1278,93 +1032,10 @@ Shader "Mingle/Floor/White Horizon"
return output;
}
#if defined(ASE_TESSELLATION)
struct VertexControl
{
float4 positionOS : INTERNALTESSPOS;
float3 normalOS : NORMAL;
float4 texcoord : TEXCOORD0;
float4 texcoord1 : TEXCOORD1;
float4 texcoord2 : TEXCOORD2;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct TessellationFactors
{
float edge[3] : SV_TessFactor;
float inside : SV_InsideTessFactor;
};
VertexControl vert ( Attributes input )
{
VertexControl output;
UNITY_SETUP_INSTANCE_ID(input);
UNITY_TRANSFER_INSTANCE_ID(input, output);
output.positionOS = input.positionOS;
output.normalOS = input.normalOS;
output.texcoord = input.texcoord;
output.texcoord1 = input.texcoord1;
output.texcoord2 = input.texcoord2;
return output;
}
TessellationFactors TessellationFunction (InputPatch<VertexControl,3> input)
{
TessellationFactors output;
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(input[0].positionOS, input[1].positionOS, input[2].positionOS, tessValue, tessMin, tessMax, GetObjectToWorldMatrix(), _WorldSpaceCameraPos );
#elif defined(ASE_LENGTH_TESSELLATION)
tf = EdgeLengthBasedTess(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams );
#elif defined(ASE_LENGTH_CULL_TESSELLATION)
tf = EdgeLengthBasedTessCull(input[0].positionOS, input[1].positionOS, input[2].positionOS, edgeLength, tessMaxDisp, GetObjectToWorldMatrix(), _WorldSpaceCameraPos, _ScreenParams, unity_CameraWorldClipPlanes );
#endif
output.edge[0] = tf.x; output.edge[1] = tf.y; output.edge[2] = tf.z; output.inside = tf.w;
return output;
}
[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")]
PackedVaryings DomainFunction(TessellationFactors factors, OutputPatch<VertexControl, 3> patch, float3 bary : SV_DomainLocation)
{
Attributes output = (Attributes) 0;
output.positionOS = patch[0].positionOS * bary.x + patch[1].positionOS * bary.y + patch[2].positionOS * bary.z;
output.normalOS = patch[0].normalOS * bary.x + patch[1].normalOS * bary.y + patch[2].normalOS * bary.z;
output.texcoord = patch[0].texcoord * bary.x + patch[1].texcoord * bary.y + patch[2].texcoord * bary.z;
output.texcoord1 = patch[0].texcoord1 * bary.x + patch[1].texcoord1 * bary.y + patch[2].texcoord1 * bary.z;
output.texcoord2 = patch[0].texcoord2 * bary.x + patch[1].texcoord2 * bary.y + patch[2].texcoord2 * bary.z;
#if defined(ASE_PHONG_TESSELLATION)
float3 pp[3];
for (int i = 0; i < 3; ++i)
pp[i] = output.positionOS.xyz - patch[i].normalOS * (dot(output.positionOS.xyz, patch[i].normalOS) - dot(patch[i].positionOS.xyz, patch[i].normalOS));
float phongStrength = _TessPhongStrength;
output.positionOS.xyz = phongStrength * (pp[0]*bary.x + pp[1]*bary.y + pp[2]*bary.z) + (1.0f-phongStrength) * output.positionOS.xyz;
#endif
UNITY_TRANSFER_INSTANCE_ID(patch[0], output);
return VertexFunction(output);
}
#else
PackedVaryings vert ( Attributes input )
{
return VertexFunction( input );
}
#endif
half4 frag(PackedVaryings input ) : SV_TARGET
{
@ -1381,13 +1052,13 @@ Shader "Mingle/Floor/White Horizon"
float2 temp_cast_1 = (-1.0).xx;
float2 texCoord12 = input.ase_texcoord1.xy * temp_cast_0 + temp_cast_1;
float smoothstepResult13 = smoothstep( _Radius , ( _Radius - _Smoothness ) , length( texCoord12 ));
float2 uv_BaseMap = input.ase_texcoord1.xy * _BaseMap_ST.xy + _BaseMap_ST.zw;
float2 uv_BaseTexture = input.ase_texcoord1.xy * _BaseTexture_ST.xy + _BaseTexture_ST.zw;
float layeredBlendVar18 = smoothstepResult13;
float4 layeredBlend18 = ( lerp( float4( 1,1,1,1 ),tex2D( _BaseMap, uv_BaseMap ) , layeredBlendVar18 ) );
float4 layeredBlend18 = ( lerp( float4( 1,1,1,1 ),tex2D( _BaseTexture, uv_BaseTexture ) , layeredBlendVar18 ) );
float3 BaseColor = float3(0.5, 0.5, 0.5);
float3 Emission = layeredBlend18.rgb;
float3 BaseColor = layeredBlend18.rgb;
float3 Emission = 0;
float Alpha = 1;
float AlphaClipThreshold = 0.5;
@ -1414,19 +1085,20 @@ Shader "Mingle/Floor/White Horizon"
Version=19904
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;10;-1408,-32;Inherit;False;Constant;_1;-1;0;0;Create;True;0;0;0;False;0;False;-1;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;11;-1408,-112;Inherit;False;Constant;_2;2;0;0;Create;True;0;0;0;False;0;False;2;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;12;-1280,-112;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;7;-1280,80;Inherit;False;Property;_Smoothness;Smoothness;2;0;Create;True;0;0;0;False;0;False;0.5;0.5;0.01;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.TextureCoordinatesNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;12;-1280,-112;Inherit;False;0;-1;2;3;2;SAMPLER2D;;False;0;FLOAT2;1,1;False;1;FLOAT2;0,0;False;5;FLOAT2;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.SimpleSubtractOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;8;-992,48;Inherit;False;2;0;FLOAT;0;False;1;FLOAT;0;False;1;FLOAT;0
Node;AmplifyShaderEditor.LengthOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;9;-992,-16;Inherit;False;1;0;FLOAT2;0,0;False;1;FLOAT;0
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;6;-1280,16;Inherit;False;Property;_Radius;Radius;1;0;Create;True;0;0;0;False;0;False;1;1;0;1;0;1;FLOAT;0
Node;AmplifyShaderEditor.SmoothstepOpNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;13;-864,0;Inherit;True;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;1;False;1;FLOAT;0
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;5;-944,-240;Inherit;True;Property;_BaseMap;BaseMap;0;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
Node;AmplifyShaderEditor.SamplerNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;5;-944,-240;Inherit;True;Property;_BaseTexture;BaseTexture;0;0;Create;True;0;0;0;False;0;False;-1;None;None;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;False;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;6;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4;FLOAT3;5
Node;AmplifyShaderEditor.LayeredBlendNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;18;-624,-240;Inherit;False;6;0;FLOAT;0;False;1;COLOR;1,1,1,1;False;2;COLOR;1,1,1,1;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;1;COLOR;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;1;-352,-120.4;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;300;14;New Amplify Shader;2534d4d29a40afc46a3cc49af189fcb4;True;ShadowCaster;0;1;ShadowCaster;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;5;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;UniversalMaterialType=Lit;Queue=Geometry=Queue=0;IgnoreProjector=True;True;2;True;11;d3d11;glcore;gles3;metal;vulkan;xboxone;xboxseries;playstation;ps4;ps5;switch;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=ShadowCaster;False;False;0;;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;2;-352,-87.39999;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;300;14;New Amplify Shader;2534d4d29a40afc46a3cc49af189fcb4;True;DepthOnly;0;2;DepthOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;5;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;UniversalMaterialType=Lit;Queue=Geometry=Queue=0;IgnoreProjector=True;True;2;True;11;d3d11;glcore;gles3;metal;vulkan;xboxone;xboxseries;playstation;ps4;ps5;switch;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;True;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;False;False;True;1;LightMode=DepthOnly;False;False;0;;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;3;-352,-54.39999;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;300;14;New Amplify Shader;2534d4d29a40afc46a3cc49af189fcb4;True;DepthNormals;0;3;DepthNormals;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;5;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;UniversalMaterialType=Lit;Queue=Geometry=Queue=0;IgnoreProjector=True;True;2;True;11;d3d11;glcore;gles3;metal;vulkan;xboxone;xboxseries;playstation;ps4;ps5;switch;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;False;0;;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;4;-352,-21.39999;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;300;14;New Amplify Shader;2534d4d29a40afc46a3cc49af189fcb4;True;Meta;0;4;Meta;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;5;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;UniversalMaterialType=Lit;Queue=Geometry=Queue=0;IgnoreProjector=True;True;2;True;11;d3d11;glcore;gles3;metal;vulkan;xboxone;xboxseries;playstation;ps4;ps5;switch;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;False;0;;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;0;-352,-352;Float;False;True;-1;3;UnityEditor.ShaderGraphUnlitGUI;300;14;Mingle/Floor/White Horizon;2534d4d29a40afc46a3cc49af189fcb4;True;Forward;0;0;Forward;10;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;5;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;UniversalMaterialType=Lit;Queue=Geometry=Queue=0;IgnoreProjector=True;True;2;True;11;d3d11;glcore;gles3;metal;vulkan;xboxone;xboxseries;playstation;ps4;ps5;switch;0;False;True;1;1;False;;0;False;;1;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=UniversalForwardOnly;False;False;0;;0;0;Standard;14;Workflow;1;0;Surface;0;0; Blend;0;0;Two Sided;1;0;Alpha Clipping;0;0;Fragment Normal Space;0;0;Cast Shadows;1;0;Receive Shadows;2;0;Specular Highlights;2;0;Environment Reflections;2;0;Receive SSAO;1;0;GPU Instancing;1;0;LOD CrossFade;1;0;NiloToon Screen Space Outline;0;0;0;5;True;True;True;True;True;False;;False;0
Node;AmplifyShaderEditor.RangedFloatNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;19;-455.1483,-37.39032;Inherit;False;Constant;_Float0;Float 0;3;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;71;-192,-336;Float;False;True;-1;3;UnityEditor.ShaderGraphUnlitGUI;300;20;Mingle/Floor/White Horizon;df83b33f62768f64cb5fff5416086758;True;Forward;0;0;Forward;10;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;UniversalMaterialType=ComplexLit;IgnoreProjector=True;True;2;False;0;False;True;1;1;False;;0;False;;1;1;False;;0;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;True;True;True;True;0;False;;False;False;False;False;False;False;False;True;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;1;LightMode=UniversalForwardOnly;True;0;False;0;;0;0;Standard;14;Workflow;1;0;Surface;0;0; Blend;0;0;Two Sided;1;0;Alpha Clipping;0;0;Fragment Normal Space;0;0;Cast Shadows;1;0;Receive Shadows;2;0;Specular Highlights;2;0;Environment Reflections;2;0;Receive SSAO;1;0;GPU Instancing;1;0;LOD CrossFade;1;0;NiloToon Screen Space Outline;0;0;0;5;True;True;True;True;True;False;;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;72;-192,-104.4;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;300;20;New Amplify Shader;df83b33f62768f64cb5fff5416086758;True;ShadowCaster;0;1;ShadowCaster;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;UniversalMaterialType=ComplexLit;IgnoreProjector=True;True;2;False;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;False;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=ShadowCaster;False;False;0;;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;73;-192,-71.39999;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;300;20;New Amplify Shader;df83b33f62768f64cb5fff5416086758;True;DepthOnly;0;2;DepthOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;UniversalMaterialType=ComplexLit;IgnoreProjector=True;True;2;False;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;False;False;True;True;False;False;False;0;False;;False;False;False;False;False;False;False;False;False;True;1;False;;False;False;True;1;LightMode=DepthOnly;False;False;0;;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;75;-192,-38.39999;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;300;20;New Amplify Shader;df83b33f62768f64cb5fff5416086758;True;Meta;0;4;Meta;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;UniversalMaterialType=ComplexLit;IgnoreProjector=True;True;2;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;2;False;;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Meta;False;False;0;;0;0;Standard;0;False;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode, AmplifyShaderEditor, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null;76;-176,192;Float;False;False;-1;3;UnityEditor.ShaderGraphUnlitGUI;300;20;New Amplify Shader;df83b33f62768f64cb5fff5416086758;True;DepthNormalsOnly;0;3;DepthNormalsOnly;0;False;False;False;False;False;False;False;False;False;False;False;False;True;0;False;;False;True;0;False;;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;True;True;0;False;;0;False;;True;4;RenderPipeline=UniversalPipeline;RenderType=Opaque=RenderType;UniversalMaterialType=ComplexLit;IgnoreProjector=True;True;2;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;False;;True;3;False;;False;True;1;LightMode=DepthNormalsOnly;False;False;0;;0;0;Standard;0;False;0
WireConnection;12;0;11;0
WireConnection;12;1;10;0
WireConnection;8;0;6;0
@ -1437,6 +1109,8 @@ WireConnection;13;1;6;0
WireConnection;13;2;8;0
WireConnection;18;0;13;0
WireConnection;18;2;5;0
WireConnection;0;2;18;0
WireConnection;71;0;18;0
WireConnection;71;3;19;0
WireConnection;71;4;19;0
ASEEND*/
//CHKSM=2BD7053C0628F168A0CD2BFDD6E819C4CD45A937
//CHKSM=8B1CA8DE0570E445AF37A3658FBEA2444B0B4CEB

View File

@ -107,6 +107,8 @@ TextureImporter:
edges: []
weights: []
secondaryTextures: []
spriteCustomMetadata:
entries: []
nameFileIdTable: {}
mipmapLimitGroupName:
pSDRemoveMatte: 0

View File

@ -1573,7 +1573,7 @@ Material:
- _BackFaceTintColor: {r: 1, g: 1, b: 1, a: 1}
- _BackfaceColor: {r: 0, g: 0, b: 0, a: 0}
- _BacklightColor: {r: 0.85, g: 0.8, b: 0.7, a: 1}
- _BaseColor: {r: 0.6037736, g: 0.40126592, b: 0.23638302, a: 1}
- _BaseColor: {r: 0.6037736, g: 0.40126583, b: 0.23638296, a: 1}
- _BaseColor2: {r: 1, g: 1, b: 1, a: 1}
- _BaseMapStackingLayer10MaskTexChannel: {r: 0, g: 1, b: 0, a: 0}
- _BaseMapStackingLayer10TexUVAnimSpeed: {r: 0, g: 0, b: 0, a: 0}
@ -1631,7 +1631,7 @@ Material:
- _CharacterAreaColorFillTextureUVScrollSpeed: {r: 0, g: 0, b: 0, a: 1}
- _CharacterAreaColorFillTextureUVTilingOffset: {r: 1, g: 1, b: 0, a: 0}
- _CharacterBoundCenterPosWS: {r: 0, g: 0, b: 0, a: 1}
- _Color: {r: 0.6037736, g: 0.40126592, b: 0.23638302, a: 1}
- _Color: {r: 0.6037736, g: 0.40126583, b: 0.23638296, a: 1}
- _Color2nd: {r: 1, g: 1, b: 1, a: 1}
- _Color3rd: {r: 1, g: 1, b: 1, a: 1}
- _DepthTexRimLightAndShadowWidthMultiplierFromVertexColorChannelMask: {r: 0, g: 1, b: 0, a: 0}

File diff suppressed because it is too large Load Diff