Fix : 쉐이더 수정 사항 업데이트 및 반영
This commit is contained in:
parent
d0cae9f2b2
commit
980c610b86
@ -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()
|
||||
{
|
||||
|
||||
@ -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
|
||||
{
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 2534d4d29a40afc46a3cc49af189fcb4
|
||||
guid: df83b33f62768f64cb5fff5416086758
|
||||
ShaderImporter:
|
||||
externalObjects: {}
|
||||
defaultTextures: []
|
||||
|
||||
@ -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}
|
||||
|
||||
@ -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
|
||||
@ -107,6 +107,8 @@ TextureImporter:
|
||||
edges: []
|
||||
weights: []
|
||||
secondaryTextures: []
|
||||
spriteCustomMetadata:
|
||||
entries: []
|
||||
nameFileIdTable: {}
|
||||
mipmapLimitGroupName:
|
||||
pSDRemoveMatte: 0
|
||||
|
||||
BIN
Assets/ResourcesData/Background/White Horizon/White Horizon/Global Volume Profile.asset
(Stored with Git LFS)
BIN
Assets/ResourcesData/Background/White Horizon/White Horizon/Global Volume Profile.asset
(Stored with Git LFS)
Binary file not shown.
Binary file not shown.
@ -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}
|
||||
|
||||
BIN
Assets/ResourcesData/Character/@040_최또/Avatar/최또_251201_라이브방송/모캡용/최또.prefab
(Stored with Git LFS)
Normal file
BIN
Assets/ResourcesData/Character/@040_최또/Avatar/최또_251201_라이브방송/모캡용/최또.prefab
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
Assets/ResourcesData/Character/@040_최또/Avatar/최또_251201_라이브방송/모캡용/최똥.prefab
(Stored with Git LFS)
BIN
Assets/ResourcesData/Character/@040_최또/Avatar/최또_251201_라이브방송/모캡용/최똥.prefab
(Stored with Git LFS)
Binary file not shown.
File diff suppressed because it is too large
Load Diff
BIN
Assets/ResourcesData/Project/251027_모션촬영/251027_모션촬영.unity
(Stored with Git LFS)
BIN
Assets/ResourcesData/Project/251027_모션촬영/251027_모션촬영.unity
(Stored with Git LFS)
Binary file not shown.
BIN
Assets/ResourcesData/Project/251201_문모모_최똥_방송/문모모_최똥_캐릭터 세팅.unity
(Stored with Git LFS)
BIN
Assets/ResourcesData/Project/251201_문모모_최똥_방송/문모모_최똥_캐릭터 세팅.unity
(Stored with Git LFS)
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user