468 lines
30 KiB
Plaintext
468 lines
30 KiB
Plaintext
![]() |
// Made with Amplify Shader Editor v1.9.3.2
|
||
|
// Available at the Unity Asset Store - http://u3d.as/y3X
|
||
|
Shader "Polyart/Dreamscape/Builtin/Rock Detail"
|
||
|
{
|
||
|
Properties
|
||
|
{
|
||
|
[Header(BASE COLOR)]_TextureSize("Texture Size", Float) = 100
|
||
|
_ColorMap("Color Map", 2D) = "white" {}
|
||
|
_ColorTint("Color Tint", Color) = (1,1,1,0)
|
||
|
[Header(BASE PBR)]_NormalMap("Normal Map", 2D) = "white" {}
|
||
|
_NormalIntensity("Normal Intensity", Range( 0 , 1)) = 1
|
||
|
_ORMMap("ORM Map", 2D) = "white" {}
|
||
|
_RoughnessIntensity("Roughness Intensity", Range( 0 , 2)) = 1
|
||
|
_AOIntensity("AO Intensity", Range( 0 , 2)) = 1
|
||
|
_MetallicIntensity("Metallic Intensity", Range( 0 , 1)) = 0
|
||
|
_EmissiveMap("Emissive Map", 2D) = "white" {}
|
||
|
_EmissiveColor("Emissive Color", Color) = (0,0,0,0)
|
||
|
_EmissiveIntensity("Emissive Intensity", Float) = 0
|
||
|
[Header(DETAIL MAPPING)][Toggle(_USEDETAILMAPS_ON)] _UseDetailMaps("Use Detail Maps?", Float) = 0
|
||
|
_DetailSize("Detail Size", Float) = 100
|
||
|
_DetailColorMap("Detail Color Map", 2D) = "white" {}
|
||
|
_DetailColorIntensity("Detail Color Intensity", Range( 0 , 1)) = 1
|
||
|
_DetailNormalMap("Detail Normal Map", 2D) = "bump" {}
|
||
|
_DetailNormalIntensity("Detail Normal Intensity", Range( 0 , 1)) = 1
|
||
|
[Toggle(_USETRIPLANAR_ON)] _UseTriplanar("Use Triplanar?", Float) = 1
|
||
|
[Header(COVERAGE)][Toggle(_ENABLECOVERAGE_ON)] _EnableCoverage("Enable Coverage?", Float) = 0
|
||
|
_CoverageSize("Coverage Size", Float) = 100
|
||
|
_CoverageColorMap("Coverage Color Map", 2D) = "white" {}
|
||
|
_CoverageNormalMap("Coverage Normal Map", 2D) = "white" {}
|
||
|
_CoverageNormalIntensity("Coverage Normal Intensity", Range( 0 , 1)) = 1
|
||
|
_CoverageORMMap(" Coverage ORM Map", 2D) = "white" {}
|
||
|
_CoverageRoughnessIntensity("Coverage Roughness Intensity", Range( 0 , 2)) = 1
|
||
|
_CoverageMetallicIntensity("Coverage Metallic Intensity", Range( 0 , 1)) = 0
|
||
|
_SlopeOffset("Slope Offset", Float) = 0
|
||
|
_SlopeContrast("Slope Contrast", Float) = 1
|
||
|
[KeywordEnum(VertexBlending,NormalBlending,NoiseBlending)] _EdgeBlending("Edge Blending", Float) = 0
|
||
|
_SlopeNoiseTexture("Slope Noise Texture", 2D) = "white" {}
|
||
|
_NoiseTextureSize("Noise Texture Size", Float) = 100
|
||
|
[HideInInspector] _texcoord( "", 2D ) = "white" {}
|
||
|
[HideInInspector] __dirty( "", Int ) = 1
|
||
|
}
|
||
|
|
||
|
SubShader
|
||
|
{
|
||
|
Tags{ "RenderType" = "Opaque" "Queue" = "Geometry+0" "IsEmissive" = "true" }
|
||
|
Cull Back
|
||
|
CGINCLUDE
|
||
|
#include "UnityStandardUtils.cginc"
|
||
|
#include "UnityPBSLighting.cginc"
|
||
|
#include "Lighting.cginc"
|
||
|
#pragma target 3.0
|
||
|
#pragma shader_feature_local _ENABLECOVERAGE_ON
|
||
|
#pragma shader_feature_local _USEDETAILMAPS_ON
|
||
|
#pragma shader_feature_local _USETRIPLANAR_ON
|
||
|
#pragma shader_feature_local _EDGEBLENDING_VERTEXBLENDING _EDGEBLENDING_NORMALBLENDING _EDGEBLENDING_NOISEBLENDING
|
||
|
#ifdef UNITY_PASS_SHADOWCASTER
|
||
|
#undef INTERNAL_DATA
|
||
|
#undef WorldReflectionVector
|
||
|
#undef WorldNormalVector
|
||
|
#define INTERNAL_DATA half3 internalSurfaceTtoW0; half3 internalSurfaceTtoW1; half3 internalSurfaceTtoW2;
|
||
|
#define WorldReflectionVector(data,normal) reflect (data.worldRefl, half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal)))
|
||
|
#define WorldNormalVector(data,normal) half3(dot(data.internalSurfaceTtoW0,normal), dot(data.internalSurfaceTtoW1,normal), dot(data.internalSurfaceTtoW2,normal))
|
||
|
#endif
|
||
|
struct Input
|
||
|
{
|
||
|
float2 uv_texcoord;
|
||
|
float3 worldPos;
|
||
|
float3 worldNormal;
|
||
|
INTERNAL_DATA
|
||
|
};
|
||
|
|
||
|
uniform sampler2D _NormalMap;
|
||
|
uniform float _TextureSize;
|
||
|
uniform float _NormalIntensity;
|
||
|
uniform sampler2D _DetailNormalMap;
|
||
|
uniform float _DetailSize;
|
||
|
uniform float _DetailNormalIntensity;
|
||
|
uniform sampler2D _CoverageNormalMap;
|
||
|
uniform float _CoverageSize;
|
||
|
uniform float _CoverageNormalIntensity;
|
||
|
uniform float _SlopeContrast;
|
||
|
uniform float _SlopeOffset;
|
||
|
uniform sampler2D _SlopeNoiseTexture;
|
||
|
uniform float _NoiseTextureSize;
|
||
|
uniform float4 _ColorTint;
|
||
|
uniform sampler2D _ColorMap;
|
||
|
uniform sampler2D _DetailColorMap;
|
||
|
uniform float _DetailColorIntensity;
|
||
|
uniform sampler2D _CoverageColorMap;
|
||
|
uniform sampler2D _EmissiveMap;
|
||
|
uniform float4 _EmissiveColor;
|
||
|
uniform float _EmissiveIntensity;
|
||
|
uniform sampler2D _ORMMap;
|
||
|
uniform float _MetallicIntensity;
|
||
|
uniform sampler2D _CoverageORMMap;
|
||
|
uniform float _CoverageMetallicIntensity;
|
||
|
uniform float _RoughnessIntensity;
|
||
|
uniform float _CoverageRoughnessIntensity;
|
||
|
uniform float _AOIntensity;
|
||
|
|
||
|
|
||
|
inline float3 TriplanarSampling19_g282( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index )
|
||
|
{
|
||
|
float3 projNormal = ( pow( abs( worldNormal ), falloff ) );
|
||
|
projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001;
|
||
|
float3 nsign = sign( worldNormal );
|
||
|
half4 xNorm; half4 yNorm; half4 zNorm;
|
||
|
xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2( nsign.x, 1.0 ) );
|
||
|
yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
|
||
|
zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) );
|
||
|
xNorm.xyz = half3( UnpackScaleNormal( xNorm, normalScale.y ).xy * float2( nsign.x, 1.0 ) + worldNormal.zy, worldNormal.x ).zyx;
|
||
|
yNorm.xyz = half3( UnpackScaleNormal( yNorm, normalScale.x ).xy * float2( nsign.y, 1.0 ) + worldNormal.xz, worldNormal.y ).xzy;
|
||
|
zNorm.xyz = half3( UnpackScaleNormal( zNorm, normalScale.y ).xy * float2( -nsign.z, 1.0 ) + worldNormal.xy, worldNormal.z ).xyz;
|
||
|
return normalize( xNorm.xyz * projNormal.x + yNorm.xyz * projNormal.y + zNorm.xyz * projNormal.z );
|
||
|
}
|
||
|
|
||
|
|
||
|
inline float4 TriplanarSampling35_g302( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index )
|
||
|
{
|
||
|
float3 projNormal = ( pow( abs( worldNormal ), falloff ) );
|
||
|
projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001;
|
||
|
float3 nsign = sign( worldNormal );
|
||
|
half4 xNorm; half4 yNorm; half4 zNorm;
|
||
|
xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2( nsign.x, 1.0 ) );
|
||
|
yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
|
||
|
zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) );
|
||
|
return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z;
|
||
|
}
|
||
|
|
||
|
|
||
|
inline float4 TriplanarSampling12_g282( sampler2D topTexMap, float3 worldPos, float3 worldNormal, float falloff, float2 tiling, float3 normalScale, float3 index )
|
||
|
{
|
||
|
float3 projNormal = ( pow( abs( worldNormal ), falloff ) );
|
||
|
projNormal /= ( projNormal.x + projNormal.y + projNormal.z ) + 0.00001;
|
||
|
float3 nsign = sign( worldNormal );
|
||
|
half4 xNorm; half4 yNorm; half4 zNorm;
|
||
|
xNorm = tex2D( topTexMap, tiling * worldPos.zy * float2( nsign.x, 1.0 ) );
|
||
|
yNorm = tex2D( topTexMap, tiling * worldPos.xz * float2( nsign.y, 1.0 ) );
|
||
|
zNorm = tex2D( topTexMap, tiling * worldPos.xy * float2( -nsign.z, 1.0 ) );
|
||
|
return xNorm * projNormal.x + yNorm * projNormal.y + zNorm * projNormal.z;
|
||
|
}
|
||
|
|
||
|
|
||
|
void surf( Input i , inout SurfaceOutputStandard o )
|
||
|
{
|
||
|
float2 temp_output_19_0_g283 = ( i.uv_texcoord / ( _TextureSize / 100.0 ) );
|
||
|
float3 temp_output_32_7 = UnpackScaleNormal( tex2D( _NormalMap, temp_output_19_0_g283 ), _NormalIntensity );
|
||
|
float temp_output_8_0_g282 = ( 100.0 / _DetailSize );
|
||
|
float2 temp_cast_1 = (temp_output_8_0_g282).xx;
|
||
|
float temp_output_18_0_g282 = _DetailNormalIntensity;
|
||
|
float2 temp_cast_3 = (temp_output_8_0_g282).xx;
|
||
|
float3 ase_worldPos = i.worldPos;
|
||
|
float3 ase_worldNormal = WorldNormalVector( i, float3( 0, 0, 1 ) );
|
||
|
float3 ase_worldTangent = WorldNormalVector( i, float3( 1, 0, 0 ) );
|
||
|
float3 ase_worldBitangent = WorldNormalVector( i, float3( 0, 1, 0 ) );
|
||
|
float3x3 ase_worldToTangent = float3x3( ase_worldTangent, ase_worldBitangent, ase_worldNormal );
|
||
|
float3 triplanar19_g282 = TriplanarSampling19_g282( _DetailNormalMap, ase_worldPos, ase_worldNormal, 1.0, temp_cast_3, temp_output_18_0_g282, 0 );
|
||
|
float3 tanTriplanarNormal19_g282 = mul( ase_worldToTangent, triplanar19_g282 );
|
||
|
#ifdef _USETRIPLANAR_ON
|
||
|
float3 staticSwitch16_g282 = tanTriplanarNormal19_g282;
|
||
|
#else
|
||
|
float3 staticSwitch16_g282 = UnpackScaleNormal( tex2D( _DetailNormalMap, temp_cast_1 ), temp_output_18_0_g282 );
|
||
|
#endif
|
||
|
#ifdef _USEDETAILMAPS_ON
|
||
|
float3 staticSwitch81 = BlendNormals( temp_output_32_7 , staticSwitch16_g282 );
|
||
|
#else
|
||
|
float3 staticSwitch81 = temp_output_32_7;
|
||
|
#endif
|
||
|
float2 temp_output_19_0_g286 = ( i.uv_texcoord / ( _CoverageSize / 100.0 ) );
|
||
|
float temp_output_1_0_g305 = _SlopeContrast;
|
||
|
float3 ase_vertexNormal = mul( unity_WorldToObject, float4( ase_worldNormal, 0 ) );
|
||
|
ase_vertexNormal = normalize( ase_vertexNormal );
|
||
|
float3 objToWorldDir51_g302 = mul( unity_ObjectToWorld, float4( ase_vertexNormal, 0 ) ).xyz;
|
||
|
float dotResult18_g302 = dot( objToWorldDir51_g302 , float3(0,2,0) );
|
||
|
float temp_output_21_0_g302 = ( ( _SlopeOffset + dotResult18_g302 ) * 2.0 );
|
||
|
float clampResult22_g302 = clamp( temp_output_21_0_g302 , 0.0 , 1.0 );
|
||
|
float lerpResult7_g305 = lerp( ( 0.0 - temp_output_1_0_g305 ) , ( temp_output_1_0_g305 + 0.0 ) , clampResult22_g302);
|
||
|
float clampResult8_g305 = clamp( lerpResult7_g305 , 0.0 , 1.0 );
|
||
|
float temp_output_1_0_g303 = _SlopeContrast;
|
||
|
float3x3 ase_tangentToWorldFast = float3x3(ase_worldTangent.x,ase_worldBitangent.x,ase_worldNormal.x,ase_worldTangent.y,ase_worldBitangent.y,ase_worldNormal.y,ase_worldTangent.z,ase_worldBitangent.z,ase_worldNormal.z);
|
||
|
float3 tangentToWorldDir6_g302 = mul( ase_tangentToWorldFast, temp_output_32_7 );
|
||
|
float dotResult7_g302 = dot( tangentToWorldDir6_g302 , float3(0,1,0) );
|
||
|
float lerpResult11_g302 = lerp( 0.0 , 3.0 , ( dotResult7_g302 + _SlopeOffset ));
|
||
|
float clampResult12_g302 = clamp( lerpResult11_g302 , 0.0 , 1.0 );
|
||
|
float lerpResult7_g303 = lerp( ( 0.0 - temp_output_1_0_g303 ) , ( temp_output_1_0_g303 + 0.0 ) , clampResult12_g302);
|
||
|
float clampResult8_g303 = clamp( lerpResult7_g303 , 0.0 , 1.0 );
|
||
|
float temp_output_1_0_g307 = _SlopeContrast;
|
||
|
float2 temp_cast_5 = (_NoiseTextureSize).xx;
|
||
|
float4 triplanar35_g302 = TriplanarSampling35_g302( _SlopeNoiseTexture, ase_worldPos, ase_worldNormal, 1.0, temp_cast_5, 1.0, 0 );
|
||
|
float clampResult42_g302 = clamp( (triplanar35_g302).x , 0.0 , 1.0 );
|
||
|
float lerpResult7_g307 = lerp( ( 0.0 - temp_output_1_0_g307 ) , ( temp_output_1_0_g307 + 0.0 ) , ( temp_output_21_0_g302 + clampResult42_g302 ));
|
||
|
float clampResult8_g307 = clamp( lerpResult7_g307 , 0.0 , 1.0 );
|
||
|
float clampResult26_g302 = clamp( clampResult8_g307 , 0.0 , 1.0 );
|
||
|
#if defined(_EDGEBLENDING_VERTEXBLENDING)
|
||
|
float staticSwitch43_g302 = clampResult8_g305;
|
||
|
#elif defined(_EDGEBLENDING_NORMALBLENDING)
|
||
|
float staticSwitch43_g302 = clampResult8_g303;
|
||
|
#elif defined(_EDGEBLENDING_NOISEBLENDING)
|
||
|
float staticSwitch43_g302 = clampResult26_g302;
|
||
|
#else
|
||
|
float staticSwitch43_g302 = clampResult8_g305;
|
||
|
#endif
|
||
|
float temp_output_149_0 = staticSwitch43_g302;
|
||
|
float3 lerpResult56 = lerp( staticSwitch81 , UnpackScaleNormal( tex2D( _CoverageNormalMap, temp_output_19_0_g286 ), _CoverageNormalIntensity ) , temp_output_149_0);
|
||
|
#ifdef _ENABLECOVERAGE_ON
|
||
|
float3 staticSwitch58 = lerpResult56;
|
||
|
#else
|
||
|
float3 staticSwitch58 = staticSwitch81;
|
||
|
#endif
|
||
|
o.Normal = staticSwitch58;
|
||
|
float4 temp_output_32_0 = ( _ColorTint * tex2D( _ColorMap, temp_output_19_0_g283 ) );
|
||
|
float2 temp_cast_7 = (temp_output_8_0_g282).xx;
|
||
|
float2 temp_cast_8 = (temp_output_8_0_g282).xx;
|
||
|
float4 triplanar12_g282 = TriplanarSampling12_g282( _DetailColorMap, ase_worldPos, ase_worldNormal, 1.0, temp_cast_8, 1.0, 0 );
|
||
|
#ifdef _USETRIPLANAR_ON
|
||
|
float4 staticSwitch11_g282 = triplanar12_g282;
|
||
|
#else
|
||
|
float4 staticSwitch11_g282 = tex2D( _DetailColorMap, temp_cast_7 );
|
||
|
#endif
|
||
|
float4 lerpResult16_g285 = lerp( temp_output_32_0 , staticSwitch11_g282 , _DetailColorIntensity);
|
||
|
#ifdef _USEDETAILMAPS_ON
|
||
|
float4 staticSwitch77 = lerpResult16_g285;
|
||
|
#else
|
||
|
float4 staticSwitch77 = temp_output_32_0;
|
||
|
#endif
|
||
|
float4 color13_g286 = IsGammaSpace() ? float4(1,1,1,0) : float4(1,1,1,0);
|
||
|
float4 lerpResult55 = lerp( staticSwitch77 , ( color13_g286 * tex2D( _CoverageColorMap, temp_output_19_0_g286 ) ) , temp_output_149_0);
|
||
|
#ifdef _ENABLECOVERAGE_ON
|
||
|
float4 staticSwitch57 = lerpResult55;
|
||
|
#else
|
||
|
float4 staticSwitch57 = staticSwitch77;
|
||
|
#endif
|
||
|
o.Albedo = staticSwitch57.rgb;
|
||
|
o.Emission = ( ( tex2D( _EmissiveMap, temp_output_19_0_g283 ) * _EmissiveColor ) * _EmissiveIntensity ).rgb;
|
||
|
float4 tex2DNode9_g284 = tex2D( _ORMMap, temp_output_19_0_g283 );
|
||
|
float temp_output_32_3 = ( tex2DNode9_g284.b * _MetallicIntensity );
|
||
|
float4 tex2DNode9_g287 = tex2D( _CoverageORMMap, temp_output_19_0_g286 );
|
||
|
float lerpResult63 = lerp( ( tex2DNode9_g287.b * _CoverageMetallicIntensity ) , temp_output_32_3 , temp_output_149_0);
|
||
|
#ifdef _ENABLECOVERAGE_ON
|
||
|
float staticSwitch60 = lerpResult63;
|
||
|
#else
|
||
|
float staticSwitch60 = temp_output_32_3;
|
||
|
#endif
|
||
|
o.Metallic = staticSwitch60;
|
||
|
float temp_output_32_5 = ( 1.0 - ( tex2DNode9_g284.g * _RoughnessIntensity ) );
|
||
|
float lerpResult62 = lerp( temp_output_32_5 , ( 1.0 - ( tex2DNode9_g287.g * _CoverageRoughnessIntensity ) ) , temp_output_149_0);
|
||
|
#ifdef _ENABLECOVERAGE_ON
|
||
|
float staticSwitch59 = lerpResult62;
|
||
|
#else
|
||
|
float staticSwitch59 = temp_output_32_5;
|
||
|
#endif
|
||
|
o.Smoothness = staticSwitch59;
|
||
|
float lerpResult10_g284 = lerp( 1.0 , tex2DNode9_g284.r , _AOIntensity);
|
||
|
float temp_output_32_8 = lerpResult10_g284;
|
||
|
float lerpResult10_g287 = lerp( 1.0 , tex2DNode9_g287.r , 0.0);
|
||
|
float lerpResult64 = lerp( lerpResult10_g287 , temp_output_32_8 , temp_output_149_0);
|
||
|
#ifdef _ENABLECOVERAGE_ON
|
||
|
float staticSwitch61 = lerpResult64;
|
||
|
#else
|
||
|
float staticSwitch61 = temp_output_32_8;
|
||
|
#endif
|
||
|
o.Occlusion = staticSwitch61;
|
||
|
o.Alpha = 1;
|
||
|
}
|
||
|
|
||
|
ENDCG
|
||
|
CGPROGRAM
|
||
|
#pragma surface surf Standard keepalpha fullforwardshadows
|
||
|
|
||
|
ENDCG
|
||
|
Pass
|
||
|
{
|
||
|
Name "ShadowCaster"
|
||
|
Tags{ "LightMode" = "ShadowCaster" }
|
||
|
ZWrite On
|
||
|
CGPROGRAM
|
||
|
#pragma vertex vert
|
||
|
#pragma fragment frag
|
||
|
#pragma target 3.0
|
||
|
#pragma multi_compile_shadowcaster
|
||
|
#pragma multi_compile UNITY_PASS_SHADOWCASTER
|
||
|
#pragma skip_variants FOG_LINEAR FOG_EXP FOG_EXP2
|
||
|
#include "HLSLSupport.cginc"
|
||
|
#if ( SHADER_API_D3D11 || SHADER_API_GLCORE || SHADER_API_GLES || SHADER_API_GLES3 || SHADER_API_METAL || SHADER_API_VULKAN )
|
||
|
#define CAN_SKIP_VPOS
|
||
|
#endif
|
||
|
#include "UnityCG.cginc"
|
||
|
#include "Lighting.cginc"
|
||
|
#include "UnityPBSLighting.cginc"
|
||
|
struct v2f
|
||
|
{
|
||
|
V2F_SHADOW_CASTER;
|
||
|
float2 customPack1 : TEXCOORD1;
|
||
|
float4 tSpace0 : TEXCOORD2;
|
||
|
float4 tSpace1 : TEXCOORD3;
|
||
|
float4 tSpace2 : TEXCOORD4;
|
||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||
|
UNITY_VERTEX_OUTPUT_STEREO
|
||
|
};
|
||
|
v2f vert( appdata_full v )
|
||
|
{
|
||
|
v2f o;
|
||
|
UNITY_SETUP_INSTANCE_ID( v );
|
||
|
UNITY_INITIALIZE_OUTPUT( v2f, o );
|
||
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o );
|
||
|
UNITY_TRANSFER_INSTANCE_ID( v, o );
|
||
|
Input customInputData;
|
||
|
float3 worldPos = mul( unity_ObjectToWorld, v.vertex ).xyz;
|
||
|
half3 worldNormal = UnityObjectToWorldNormal( v.normal );
|
||
|
half3 worldTangent = UnityObjectToWorldDir( v.tangent.xyz );
|
||
|
half tangentSign = v.tangent.w * unity_WorldTransformParams.w;
|
||
|
half3 worldBinormal = cross( worldNormal, worldTangent ) * tangentSign;
|
||
|
o.tSpace0 = float4( worldTangent.x, worldBinormal.x, worldNormal.x, worldPos.x );
|
||
|
o.tSpace1 = float4( worldTangent.y, worldBinormal.y, worldNormal.y, worldPos.y );
|
||
|
o.tSpace2 = float4( worldTangent.z, worldBinormal.z, worldNormal.z, worldPos.z );
|
||
|
o.customPack1.xy = customInputData.uv_texcoord;
|
||
|
o.customPack1.xy = v.texcoord;
|
||
|
TRANSFER_SHADOW_CASTER_NORMALOFFSET( o )
|
||
|
return o;
|
||
|
}
|
||
|
half4 frag( v2f IN
|
||
|
#if !defined( CAN_SKIP_VPOS )
|
||
|
, UNITY_VPOS_TYPE vpos : VPOS
|
||
|
#endif
|
||
|
) : SV_Target
|
||
|
{
|
||
|
UNITY_SETUP_INSTANCE_ID( IN );
|
||
|
Input surfIN;
|
||
|
UNITY_INITIALIZE_OUTPUT( Input, surfIN );
|
||
|
surfIN.uv_texcoord = IN.customPack1.xy;
|
||
|
float3 worldPos = float3( IN.tSpace0.w, IN.tSpace1.w, IN.tSpace2.w );
|
||
|
half3 worldViewDir = normalize( UnityWorldSpaceViewDir( worldPos ) );
|
||
|
surfIN.worldPos = worldPos;
|
||
|
surfIN.worldNormal = float3( IN.tSpace0.z, IN.tSpace1.z, IN.tSpace2.z );
|
||
|
surfIN.internalSurfaceTtoW0 = IN.tSpace0.xyz;
|
||
|
surfIN.internalSurfaceTtoW1 = IN.tSpace1.xyz;
|
||
|
surfIN.internalSurfaceTtoW2 = IN.tSpace2.xyz;
|
||
|
SurfaceOutputStandard o;
|
||
|
UNITY_INITIALIZE_OUTPUT( SurfaceOutputStandard, o )
|
||
|
surf( surfIN, o );
|
||
|
#if defined( CAN_SKIP_VPOS )
|
||
|
float2 vpos = IN.pos;
|
||
|
#endif
|
||
|
SHADOW_CASTER_FRAGMENT( IN )
|
||
|
}
|
||
|
ENDCG
|
||
|
}
|
||
|
}
|
||
|
Fallback "Diffuse"
|
||
|
}
|
||
|
/*ASEBEGIN
|
||
|
Version=19302
|
||
|
Node;AmplifyShaderEditor.CommentaryNode;31;-1929.161,-329.2871;Inherit;False;1072.199;1674.577;Comment;14;33;18;30;21;29;19;16;32;10;15;11;14;13;82;;1,1,1,1;0;0
|
||
|
Node;AmplifyShaderEditor.TexturePropertyNode;11;-1821.161,-191.2872;Inherit;True;Property;_ColorMap;Color Map;7;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;18;-1860.161,652.7126;Inherit;False;Property;_RoughnessIntensity;Roughness Intensity;12;0;Create;True;0;0;0;False;0;False;1;1;0;2;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;21;-1862.313,815.3082;Inherit;False;Property;_MetallicIntensity;Metallic Intensity;14;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;30;-1792.295,1259.69;Inherit;False;Property;_EmissiveIntensity;Emissive Intensity;17;0;Create;True;0;0;0;False;0;False;0;0;0;0;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;15;-1864.161,372.7129;Inherit;False;Property;_NormalIntensity;Normal Intensity;10;0;Create;True;0;0;0;False;0;False;1;1;0;1;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;33;-1865.635,737.5316;Inherit;False;Property;_AOIntensity;AO Intensity;13;0;Create;True;0;0;0;False;0;False;1;1;0;2;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.TexturePropertyNode;19;-1816.773,895.9807;Inherit;True;Property;_EmissiveMap;Emissive Map;15;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;10;-1761.161,-280.2871;Inherit;False;Property;_TextureSize;Texture Size;6;0;Create;True;0;0;0;False;1;Header(BASE COLOR);False;100;100;0;0;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.ColorNode;13;-1798.161,-0.2872119;Inherit;False;Property;_ColorTint;Color Tint;8;0;Create;True;0;0;0;False;0;False;1,1,1,0;1,1,1,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||
|
Node;AmplifyShaderEditor.TexturePropertyNode;16;-1818.161,447.7129;Inherit;True;Property;_ORMMap;ORM Map;11;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||
|
Node;AmplifyShaderEditor.TexturePropertyNode;14;-1817.161,173.7128;Inherit;True;Property;_NormalMap;Normal Map;9;0;Create;True;0;0;0;False;1;Header(BASE PBR);False;None;None;True;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;86;-1714.344,-579.924;Inherit;False;Property;_DetailNormalIntensity;Detail Normal Intensity;23;0;Create;True;0;0;0;False;0;False;1;0.674;0;1;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.TexturePropertyNode;85;-1665.047,-797.7583;Inherit;True;Property;_DetailNormalMap;Detail Normal Map;22;0;Create;True;0;0;0;False;0;False;None;None;False;bump;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||
|
Node;AmplifyShaderEditor.TexturePropertyNode;84;-1665.047,-1013.758;Inherit;True;Property;_DetailColorMap;Detail Color Map;20;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||
|
Node;AmplifyShaderEditor.ColorNode;29;-1799.295,1086.69;Inherit;False;Property;_EmissiveColor;Emissive Color;16;0;Create;True;0;0;0;False;0;False;0,0,0,0;0,0,0,0;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;146;-1555.887,-480.2272;Inherit;False;Property;_DetailSize;Detail Size;19;0;Create;True;0;0;0;False;0;False;100;0;0;0;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.CommentaryNode;39;-1884.634,1396.396;Inherit;False;1051.886;1058.01;Comment;8;40;47;50;52;51;48;46;41;;1,1,1,1;0;0
|
||
|
Node;AmplifyShaderEditor.FunctionNode;147;-1140.479,-554.282;Inherit;False;PA_SF_DetailTexture;24;;282;3e3ce62e92fb3dc48a5a47a0f7420594;0;5;6;SAMPLER2D;0;False;14;SAMPLER2D;0;False;18;FLOAT;1;False;9;FLOAT;100;False;13;FLOAT;1;False;2;COLOR;0;FLOAT3;1
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;82;-1139.487,-228.8505;Inherit;False;Property;_DetailColorIntensity;Detail Color Intensity;21;0;Create;True;0;0;0;False;0;False;1;0.445;0;1;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.FunctionNode;32;-1267.661,283.571;Inherit;False;PA_SF_BasePBR_OpaqueORM;0;;283;a21dcaebf1379e5439b421c5da1cd710;0;12;20;FLOAT;100;False;9;SAMPLER2D;0;False;15;COLOR;0,0,0,0;False;22;SAMPLER2D;;False;28;FLOAT;1;False;59;SAMPLER2D;;False;38;FLOAT;1;False;73;FLOAT;0;False;39;FLOAT;0;False;52;SAMPLER2D;;False;53;COLOR;0,0,0,0;False;54;FLOAT;0;False;6;COLOR;0;FLOAT3;7;COLOR;6;FLOAT;5;FLOAT;3;FLOAT;8
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;40;-1839.295,2322.321;Inherit;False;Property;_CoverageMetallicIntensity;Coverage Metallic Intensity;33;0;Create;True;0;0;0;False;0;False;0;0;0;1;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.WireNode;38;-674.0967,782.8811;Inherit;False;1;0;FLOAT3;0,0,0;False;1;FLOAT3;0
|
||
|
Node;AmplifyShaderEditor.TexturePropertyNode;35;-854.2053,895.7217;Inherit;True;Property;_SlopeNoiseTexture;Slope Noise Texture;40;0;Create;True;0;0;0;False;0;False;None;8965de8a437b2304f8e4aa6a137ab1ed;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||
|
Node;AmplifyShaderEditor.FunctionNode;117;-470.4984,-270.0388;Inherit;False;PA_SF_DetailMapping;-1;;285;926b4928e95edad4f8ece8c367ad2fa5;0;5;3;FLOAT4;0,0,0,0;False;4;FLOAT3;0,0,0;False;17;FLOAT;0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;2;FLOAT4;0;FLOAT3;18
|
||
|
Node;AmplifyShaderEditor.TexturePropertyNode;48;-1794.143,1744.06;Inherit;True;Property;_CoverageNormalMap;Coverage Normal Map;29;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||
|
Node;AmplifyShaderEditor.TexturePropertyNode;50;-1797.532,2027.616;Inherit;True;Property;_CoverageORMMap; Coverage ORM Map;31;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;37;-829.2182,1088.488;Inherit;False;Property;_NoiseTextureSize;Noise Texture Size;41;0;Create;True;0;0;0;False;0;False;100;0.3;0;0;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;47;-1841.143,1943.06;Inherit;False;Property;_CoverageNormalIntensity;Coverage Normal Intensity;30;0;Create;True;0;0;0;False;0;False;1;1;0;1;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;46;-1736.948,1446.396;Inherit;False;Property;_CoverageSize;Coverage Size;27;0;Create;True;0;0;0;False;0;False;100;31.78;0;0;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.RangedFloatNode;41;-1844.312,2226.64;Inherit;False;Property;_CoverageRoughnessIntensity;Coverage Roughness Intensity;32;0;Create;True;0;0;0;False;0;False;1;1;0;2;0;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.TexturePropertyNode;51;-1796.948,1534.396;Inherit;True;Property;_CoverageColorMap;Coverage Color Map;28;0;Create;True;0;0;0;False;0;False;None;None;False;white;Auto;Texture2D;-1;0;2;SAMPLER2D;0;SAMPLERSTATE;1
|
||
|
Node;AmplifyShaderEditor.FunctionNode;52;-1325.896,1787.005;Inherit;False;PA_SF_BasePBR_OpaqueORM;0;;286;a21dcaebf1379e5439b421c5da1cd710;0;12;20;FLOAT;100;False;9;SAMPLER2D;0;False;15;COLOR;0,0,0,0;False;22;SAMPLER2D;;False;28;FLOAT;1;False;59;SAMPLER2D;;False;38;FLOAT;1;False;73;FLOAT;0;False;39;FLOAT;0;False;52;SAMPLER2D;;False;53;COLOR;0,0,0,0;False;54;FLOAT;0;False;6;COLOR;0;FLOAT3;7;COLOR;6;FLOAT;5;FLOAT;3;FLOAT;8
|
||
|
Node;AmplifyShaderEditor.StaticSwitch;81;-6.565722,-166.6609;Inherit;False;Property;_UseDetailMaps;Use Detail Maps?;18;0;Create;True;0;0;0;False;1;Header(COVERAGE);False;0;0;0;True;;Toggle;2;Key0;Key1;Reference;77;True;True;All;9;1;FLOAT3;0,0,0;False;0;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT3;0,0,0;False;5;FLOAT3;0,0,0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT3;0,0,0;False;1;FLOAT3;0
|
||
|
Node;AmplifyShaderEditor.StaticSwitch;77;-7.613848,-306.7618;Inherit;False;Property;_UseDetailMaps;Use Detail Maps?;18;0;Create;True;0;0;0;False;1;Header(DETAIL MAPPING);False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;9;1;COLOR;0,0,0,0;False;0;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;4;COLOR;0,0,0,0;False;5;COLOR;0,0,0,0;False;6;COLOR;0,0,0,0;False;7;COLOR;0,0,0,0;False;8;COLOR;0,0,0,0;False;1;COLOR;0
|
||
|
Node;AmplifyShaderEditor.FunctionNode;149;-358.0807,1073.428;Inherit;False;PA_SF_VerticalBlend;34;;302;b9497802ac41dee4999b8364feedf4c9;0;3;36;SAMPLER2D;;False;38;FLOAT;1;False;2;FLOAT3;0,0,0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.LerpOp;55;499.448,742.1913;Inherit;False;3;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;2;FLOAT;0;False;1;COLOR;0
|
||
|
Node;AmplifyShaderEditor.LerpOp;64;496.4579,1276.388;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.LerpOp;56;503.5745,890.6774;Inherit;False;3;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT;0;False;1;FLOAT3;0
|
||
|
Node;AmplifyShaderEditor.LerpOp;62;497.8784,1144.956;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.LerpOp;63;494.9045,1018.544;Inherit;False;3;0;FLOAT;0;False;1;FLOAT;0;False;2;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.StaticSwitch;60;1210.189,316.053;Inherit;False;Property;_EnableCoverage;Enable Coverage?;26;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Reference;59;True;True;All;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.StaticSwitch;57;1209.443,64.64606;Inherit;False;Property;_EnableCoverage;Enable Coverage?;26;0;Create;True;0;0;0;False;1;Header(COVERAGE);False;0;0;0;True;;Toggle;2;Key0;Key1;Create;True;True;All;9;1;COLOR;0,0,0,0;False;0;COLOR;0,0,0,0;False;2;COLOR;0,0,0,0;False;3;COLOR;0,0,0,0;False;4;COLOR;0,0,0,0;False;5;COLOR;0,0,0,0;False;6;COLOR;0,0,0,0;False;7;COLOR;0,0,0,0;False;8;COLOR;0,0,0,0;False;1;COLOR;0
|
||
|
Node;AmplifyShaderEditor.StaticSwitch;59;1210.327,428.8028;Inherit;False;Property;_EnableCoverage;Enable Coverage?;26;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Reference;61;True;True;All;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.StaticSwitch;58;1213.277,177.14;Inherit;False;Property;_EnableCoverage;Enable Coverage?;26;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Reference;59;True;True;All;9;1;FLOAT3;0,0,0;False;0;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT3;0,0,0;False;4;FLOAT3;0,0,0;False;5;FLOAT3;0,0,0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT3;0,0,0;False;1;FLOAT3;0
|
||
|
Node;AmplifyShaderEditor.StaticSwitch;61;1212.44,548.1245;Inherit;False;Property;_EnableCoverage;Enable Coverage?;26;0;Create;True;0;0;0;False;0;False;0;0;0;True;;Toggle;2;Key0;Key1;Reference;57;True;True;All;9;1;FLOAT;0;False;0;FLOAT;0;False;2;FLOAT;0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT;0;False;7;FLOAT;0;False;8;FLOAT;0;False;1;FLOAT;0
|
||
|
Node;AmplifyShaderEditor.StandardSurfaceOutputNode;0;2077.191,68.90057;Float;False;True;-1;2;;0;0;Standard;Polyart/Dreamscape/Builtin/Rock Detail;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;Back;0;False;;0;False;;False;0;False;;0;False;;False;0;Opaque;0.5;True;True;0;False;Opaque;;Geometry;All;12;all;True;True;True;True;0;False;;False;0;False;;255;False;;255;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;0;False;;False;2;15;10;25;False;0.5;True;0;0;False;;0;False;;0;0;False;;0;False;;0;False;;0;False;;0;False;0;0,0,0,0;VertexOffset;True;False;Cylindrical;False;True;Relative;0;;-1;-1;-1;-1;0;False;0;0;False;;-1;0;False;;0;0;0;False;0.1;False;;0;False;;False;17;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;2;FLOAT3;0,0,0;False;3;FLOAT;0;False;4;FLOAT;0;False;5;FLOAT;0;False;6;FLOAT3;0,0,0;False;7;FLOAT3;0,0,0;False;8;FLOAT;0;False;9;FLOAT;0;False;10;FLOAT;0;False;13;FLOAT3;0,0,0;False;11;FLOAT3;0,0,0;False;12;FLOAT3;0,0,0;False;16;FLOAT4;0,0,0,0;False;14;FLOAT4;0,0,0,0;False;15;FLOAT3;0,0,0;False;0
|
||
|
WireConnection;147;6;84;0
|
||
|
WireConnection;147;14;85;0
|
||
|
WireConnection;147;18;86;0
|
||
|
WireConnection;147;9;146;0
|
||
|
WireConnection;32;20;10;0
|
||
|
WireConnection;32;9;11;0
|
||
|
WireConnection;32;15;13;0
|
||
|
WireConnection;32;22;14;0
|
||
|
WireConnection;32;28;15;0
|
||
|
WireConnection;32;59;16;0
|
||
|
WireConnection;32;38;18;0
|
||
|
WireConnection;32;73;33;0
|
||
|
WireConnection;32;39;21;0
|
||
|
WireConnection;32;52;19;0
|
||
|
WireConnection;32;53;29;0
|
||
|
WireConnection;32;54;30;0
|
||
|
WireConnection;38;0;32;7
|
||
|
WireConnection;117;3;147;0
|
||
|
WireConnection;117;4;147;1
|
||
|
WireConnection;117;17;82;0
|
||
|
WireConnection;117;14;32;0
|
||
|
WireConnection;117;15;32;7
|
||
|
WireConnection;52;20;46;0
|
||
|
WireConnection;52;9;51;0
|
||
|
WireConnection;52;22;48;0
|
||
|
WireConnection;52;28;47;0
|
||
|
WireConnection;52;59;50;0
|
||
|
WireConnection;52;38;41;0
|
||
|
WireConnection;52;39;40;0
|
||
|
WireConnection;81;1;32;7
|
||
|
WireConnection;81;0;117;18
|
||
|
WireConnection;77;1;32;0
|
||
|
WireConnection;77;0;117;0
|
||
|
WireConnection;149;36;35;0
|
||
|
WireConnection;149;38;37;0
|
||
|
WireConnection;149;2;38;0
|
||
|
WireConnection;55;0;77;0
|
||
|
WireConnection;55;1;52;0
|
||
|
WireConnection;55;2;149;0
|
||
|
WireConnection;64;0;52;8
|
||
|
WireConnection;64;1;32;8
|
||
|
WireConnection;64;2;149;0
|
||
|
WireConnection;56;0;81;0
|
||
|
WireConnection;56;1;52;7
|
||
|
WireConnection;56;2;149;0
|
||
|
WireConnection;62;0;32;5
|
||
|
WireConnection;62;1;52;5
|
||
|
WireConnection;62;2;149;0
|
||
|
WireConnection;63;0;52;3
|
||
|
WireConnection;63;1;32;3
|
||
|
WireConnection;63;2;149;0
|
||
|
WireConnection;60;1;32;3
|
||
|
WireConnection;60;0;63;0
|
||
|
WireConnection;57;1;77;0
|
||
|
WireConnection;57;0;55;0
|
||
|
WireConnection;59;1;32;5
|
||
|
WireConnection;59;0;62;0
|
||
|
WireConnection;58;1;81;0
|
||
|
WireConnection;58;0;56;0
|
||
|
WireConnection;61;1;32;8
|
||
|
WireConnection;61;0;64;0
|
||
|
WireConnection;0;0;57;0
|
||
|
WireConnection;0;1;58;0
|
||
|
WireConnection;0;2;32;6
|
||
|
WireConnection;0;3;60;0
|
||
|
WireConnection;0;4;59;0
|
||
|
WireConnection;0;5;61;0
|
||
|
ASEEND*/
|
||
|
//CHKSM=B749605B3719A927ECCBD6CCE3553872D4636013
|